Skip to content

Releases: ubi-agni/mujoco_ros_pkgs

0.9.0

31 Jul 16:04
Compare
Choose a tag to compare

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-c in 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_ptr with std::shared_ptr or std::unique_ptr wherever possible (ROS 1 fast intra-process message-passing requires boost::shared_ptr).
  • replaced shared_ptr with unique_ptr wherever possible.
  • replaced smart pointer constructor initialization with make_shared or make_unique wherever 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 mjSpec API is more stable and better documented.
  • 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

23 Oct 18:34
Compare
Choose a tag to compare

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 config and assets directories (#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_id2name that expect a non-const mjModel pointer need a const_cast<mjModel *> to not throw compile errors).

Contributors: @DavidPL1, @LeroyR, @rhaschke

0.7.0

15 Aug 11:04
Compare
Choose a tag to compare

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_requeststate service topic changed to get_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 visualize to headless for consistency.
  • Moved most contents of MujocoSim::rendering::VisualStruct into mujoco_ros::MujocoEnv::offscreen.
  • Renamed MujocoSim::rendering::CameraStream -> mujoco_ros::rendering::OffscreenCamera.
  • env_id members were removed from messages, since env_ids are no longer used.
  • Added more compiler warnings (see CompilerWarnings.cmake).

Contributors: @DavidPL1

0.6.0

30 Jun 14:09
Compare
Choose a tag to compare

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, and unregisterEnv functions.

Contributors: @DavidPL1, @lbergmann

0.5.0

24 Mar 13:35
Compare
Choose a tag to compare

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

24 Mar 13:34
Compare
Choose a tag to compare

Added

  • NO_OPTIM and ENABLE_SANITIZER cmake options for valgrind/asan dev build optimization.
  • Central launchfile for the server to include from other packages.
  • no_x parameter 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