Releases: ubi-agni/mujoco_ros_pkgs
Releases · ubi-agni/mujoco_ros_pkgs
0.10.0
Added
- Now it's possible to use MuJoCos intenal threadpool to speed up simulation. The number ob threads can be set with either
mujoco_threadsin the server launchfile or directly withnum_mj_threadsfor the server node.
If a number above 1 is used, multithreading is enabled. MuJoCo will then use the threadpool for parallel computations in the engine itself, but also plugins may use the threadpool to dispatch tasks (via (mjTask)[https://mujoco.readthedocs.io/en/3.3.5/APIreference/APItypes.html#mjtask] and (mju_threadPoolEnqueue)[https://mujoco.readthedocs.io/en/3.3.5/APIreference/APIfunctions.html#mju-threadpoolenqueue]).
The default ismin(#available_threads - 1, 4). - Added profiling of plugin load and callback execution times. For each callback an EMA with sensitivity of 1000 steps is computed. In case a plugin has lower frequency than simulation step size, the callback should set
skip_ema_ = truewhen skipping computations.
Loading and reset times are reported in the server debug log. All plugin stats can be retrieved by theget_plugin_statsservice call. - Added ros laser plugin.
- Added dynamic reconfigure for all MuJoCo settings for fast model testing.
Fixed
- Added missing call to render callbacks in viewer. While the callbacks were still being run for offscreen rendering, the viewer did not render additional geoms added by plugins.
- mujoco_ros_control: fixed sometimes using wrong joint id in default hardware interface (would only be correct, if the joints appear first and in the same order in the compiled MuJoCo model).
- mujoco_ros_sensors: now skipping user sensors, as they should be handled in separate, dedicated plugins.
- When loading takes more than 0.25 seconds the simulation is no longer automatically paused.
- Fixed fetching of body quaternion in
get_body_stateservice. - tests: PendulumEnvFixture now makes sure
mj_forwardhas been run at least once. This ensures the data object is populated with correct initial positions and velocities. - Re-added services for getting and setting gravity, that somehow vanished.
- Fixed flaky tests that did not consider control callbacks being called in paused mode, too (#40).
- Fixed bug that would not allow breaking out of as fast as possible stepping in headless mode without shutting down the simulation.
- Fixed occasional segfault when offscreen context was freed on shutdown.
- Fixed segmented image never being rendered/published.
- Fixed thread synchronization between MujocoEnv and Viewer.
Changed
- Moved
mujoco_ros::Viewer::Clockdefinition tomujoco_ros::Clock(into common_types.h). - Increased test coverage of
mujoco_ros_sensorsplugin. - Split monolithic ros interface tests into more individual tests.
- Added sleeping at least until the next lowerbound GUI refresh when paused to reduce cpu load.
- Removed
no_xlaunchparameter in favor of usingno_render, as offscreen rendering now is also available without X. - Optimized camera render configurations where RGB, Segmented and Depth streams are active, but only Segmented and Depth are subscribed. Previously, this would result in two separate low-level render calls, now it's done in one.
- Upgraded MuJoCo library version to 3.3.5
-
- SceneState was removed in 3.3.3 in favor of using
mjv_copyModelandmjv_copyDatawhich only copy arrays that are needed for visualization. The offscreen rendering pipeline was changed accordingly.
- SceneState was removed in 3.3.3 in favor of using
Full Changelog: 0.9.0...0.10.0
0.9.0
Added
- Mocap plugin to programmatically control mocap bodies.
- Services to alter equality constraints. Note that by MuJoCo's design no new constraints can be added, though.
- The Server node now gives a more verbose error message on failure due to mismatched header and library versions.
- Service to get basic simulation state info (loaded model path, model valid, load counter, loading state, paused, pending manual steps, measured rt factor, and rt factor setting).
- Service to set the real-time factor (applies the closest available factor found in the settings).
Fixed
- Repaired SIGINT handler callback.
C-cin the roslaunch terminal now shuts down the MuJoCo ROS node instead of escalating to SIGTERM. - Added actionlib to the list of mujoco_ros' dependencies.
- Updated CI actions (#33).
- Fixed linking order for mujoco_ros_mocap tests (#33).
- Fixed glx BadAccess error on exit when running with GUI.
- Fixed bug where stepping multiple times to get up to speed with the desired realtime factor would only happen if a viewer was attached.
- Enabling and disabling model flags in the GUI's 'Physics' tab is now applied to the attached environment.
Changed
- replaced
boost::shared_ptrwithstd::shared_ptrorstd::unique_ptrwherever possible (ROS 1 fast intra-process message-passing requires boost::shared_ptr). - replaced
shared_ptrwithunique_ptrwherever possible. - replaced smart pointer constructor initialization with
make_sharedormake_uniquewherever possible. - Updated to MuJoCo library version 3.2.0.
-
- VFS now only saves models provided as strings. Model loading and caching might change once the
mjSpecAPI is more stable and better documented.
- VFS now only saves models provided as strings. Model loading and caching might change once the
-
- Added jointactuatorfrc support in
mujoco_ros_sensors.
- Added jointactuatorfrc support in
- Updated to clang-tidy-14 (default on jammy).
- Added catkin_lint to pre-commit (i.e. format workflow).
- Introduced helper function to validate service call permissions in evaluation mode.
Contributors: @DavidPL1, @acodeodyssey
0.8.0
Added
- Manual steps now run as fast as possbile. I.e., if a viewer is connected, stepping is interrupted to render the UI at 30Hz. (This now also applies to running with unbound real-time, which previously was interrupted at 30Hz regardless if any viewer was connected).
- Added GitHub Actions for building docker images, CI, and formatting based on MoveIt's configuration (#30).
Fixed
- re-added setting realtime settings via ros param or in the mujoco model xml.
- Add missing install of mujoco_ros's
configandassetsdirectories (#28). - Added missing example config for
mujoco_ros_sensors. - Fixed catkin lint errors (#31).
- Resolved clang-tidy warnings.
Changed
- Reduced sensor noise std in tests to reduce wrongful fails due to too stochasticity.
- Updated toplevel README to be more informative.
- mujoco_ros_control & mujoco_ros_sensors have a Sanitize build type (#31).
Important
Breaking Changes
MujocoPlugin::node_ptr_now is a NodeHandle instead of a NodeHandlePtr.- MujocoPlugin callbacks now use raw pointers to mjModel and mjData instead of shared pointers in their callbacks (mjModel is even const, thus calls to functions like
mj_id2namethat expect a non-const mjModel pointer need aconst_cast<mjModel *>to not throw compile errors).
0.7.0
Added
- Updated to MuJoCo library version 2.3.6.
- Added a
step(num_steps=1, blocking=true)public function. - Unit tests for plugin loading and resetting and running callbacks correctly.
- Now automatically building with AVX instructions, if possible.
- CMake tooling borrowed from deepminds MuJoCo repo and https://github.com/osjacky430/ros_pkg_template/.
Changed
- Moved from static namespace to object oriented application model.
get_load_requeststateservice topic changed toget_loading_request_state.- Renamed namespaces:
-
mujoco_ros_sensors->mujoco_ros::sensors.
-
mujoco_ros_control->mujoco_ros::control.
-
MujocoSim->mujoco_ros.
-
MujocoSim::detail-> moved mostly to private access members, namespace is not necessary anymore.
-
MujocoSim::jointName2id->mujoco_ros::util::jointName2id.
- Node launchfile arg changed from
visualizetoheadlessfor consistency. - Moved most contents of
MujocoSim::rendering::VisualStructintomujoco_ros::MujocoEnv::offscreen. - Renamed
MujocoSim::rendering::CameraStream->mujoco_ros::rendering::OffscreenCamera. env_idmembers were removed from messages, since env_ids are no longer used.- Added more compiler warnings (see CompilerWarnings.cmake).
Contributors: @DavidPL1
0.6.0
Added
- Signal handling to gracefully exit on SIGINT and SIGTERM.
- docs: Contribution guideline along with commit template.
- Service call to load initial joint states from parameter server.
Changed
- Set GUI default to show info overlay and hide UI1.
Fixed
- Fixed publish rate of camera images (#22).
- Now publishing clock on reload.
- Fixed memory leak caused by missing deallocation of opengl contexts on reload.
- Cameras now publish their first image at timestep 0 instead of waiting for
t = 1/pub_frequency.
Refactored
- Deprecated
getEnv,getEnvById, andunregisterEnvfunctions.
Contributors: @DavidPL1, @lbergmann
0.5.0
Added
- Reload service call to either reload current model or supply a new model to load.
- Camera parameters are now available via camera info topics.
- Camera frames are now available in the TF trees.
Changed
- Updated UI functionalities to match simulate version 2.3.3.
- Removed parallel env mode
- Bump MuJoCo required version to 2.3.3
Fixed
- Stepping action server is now sensitive to preemts caused by reload/reset/shutdown and will inform clients in time instead of just severing the connection.
- Missing roll back of collision functions to default on reload caused calling unloaded code.
- An invalid model will not result in trying to reload indefinitely anymore.
Contributors: @DavidPL1, @fpatzelt
Full Changelog: 0.4.0...0.5.0
0.4.0
Added
NO_OPTIMandENABLE_SANITIZERcmake options for valgrind/asan dev build optimization.- Central launchfile for the server to include from other packages.
no_xparameter to completely disable OpenGL.- Service calls to set and get gravity.
- Service call to fetch loadrequest state over ROS.
- Option to disable offscreen rendering.
- Made camera stream resolutions configurable.
- Callback to notify plugins of a geom change at runtime.
Changed
- Use same package version for all packages in mujoco_ros_pkgs, following semver versioning conventions.
Fixed
- Time reset issue caused by delayed ros clock message processing.
- Out of bounds quaternion array access in debug print.
- Make sure env name is not an empty string.
- Memory leaks caused by wrong mjModelPtr and mjDataPtr deallocation.
- Sensor tests.
- Disable x usage in tests.
- Now reusing offscreen buffer glfw window on reset.
- Freeing textures from GPU manually causing an error.
- Stopping simulation on model compilation warning if in headless mode.
- Not setting ctrl signal when loading a keyframe.
- Render callbacks using the wrong scene (#17).
Refactored
- Updated and improved tests.
- More thorough memory deallocation.
Contributors: @DavidPL1, @fpatzelt
Full Changelog: 0.3.1...0.4.0