Repository Summary
| Checkout URI | https://github.com/ros-controls/mujoco_ros2_control.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2025-12-21 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| mujoco_ros2_control | 0.0.0 |
README
MuJoCo ros2_control Simulation
This package contains a ros2_control system interface for the MuJoCo Simulator. It was originally written for simulating robot hardware in NASA Johnson’s iMETRO facility.
The system interface wraps MuJoCo’s Simulate App to provide included functionality. Because the app is not bundled as a library, we compile it directly from a local install of MuJoCo.
Parts of this library are also based on the MoveIt mujoco_ros2_control package.
Installation
This interface has only been tested against ROS 2 jazzy and MuJoCo 3.4.0.
It should also be compatible with kilted and rolling, but we do not actively maintain those.
We assume all required ROS dependencies have been installed either manually or with rosdep.
For configuring MuJoCo, the included CMakeLists.txt will download and install the tarfile automatically. As long as users have a good network connection there should not be an issue.
However, a local install of MuJoCo can be used to build the application by setting the following environment variables,
# The tested version
MUJOCO_VERSION=3.4.0
# Wherever it was installed and extracted on your machine
MUJOCO_INSTALL_DIR=/opt/mujoco/mujoco-3.4.0
From there the library can be compiled with colcon build ..., as normal.
URDF Model Conversion
Mujoco does not support the full feature set of xacro/URDFs in the ROS 2 ecosystem. As such, users are required to convert any existing robot description files to an MJCF format. This includes adding actuators, sensors, and cameras as needed to the MJCF XML.
We have built a *highly experimental tool to automate URDF conversion. For more information refer to the documentation.
Hardware Interface Setup
Plugin
This application is shipped as a ros2_control hardware interface, and can be configured as such. Just specify the plugin and point to a valid MJCF on launch:
<ros2_control name="MujocoSystem" type="system">
<hardware>
<plugin>mujoco_ros2_control/MujocoSystemInterface</plugin>
<param name="mujoco_model">$(find my_description)/description/scene.xml</param>
<!--
Optional parameter to load the PIDs that can be used with the actuators loaded with the MuJoCo model.
The velocity actuator supports position mode with the PID gains, and the rest of the actuation models
support both position and velocity mode provided the corresponding PID gains. The gains should be in ROS
parameters format to be loaded by the control_toolbox::PidROS class.
-->
<param name="pids_config_file">$(find my_description)/config/pids.yaml</param>
<!--
Optional parameter to override the speed scaling parameters from the Simulate App window
and just attempt to run at whatever the desired rate is here. This allows users to run the simulation
faster than real time. For example, at 500% speed as set here. If this param is omitted or set to
a value <0, then the simulation will run using the slowdown requested from the App.
-->
<param name="sim_speed_factor">5.0</param>
<!--
Optional parameter to use the keyframe from a provided file as the starting configuration. This is mutually exclusive with
the initial_value that can be used for state interfaces. This is intended to provide an alternative method to load an entire
mujoco model state from a configuration that was saved by clicking 'Copy state' in the simulate window, and pasted into a
config file. Expected use cases are to work on a specific part of an application that involves the environment being in a
very specific starting configuration. If this parameter is an empty string, it will be ignored.
-->
<param name="override_start_position_file">$(find my_description)/config/start_positions.xml</param>
<!--
Optional parameter to update the simulated camera's color and depth image publish rates. If no
parameter is set then all cameras will publish at 5 hz. Note that all cameras in the sim currently
publish at the same intervals.
-->
<param name="camera_publish_rate">6.0</param>
<!--
Optional parameter to update the simulated lidar sensor's scan message publish rates.
All lidar sensors in the simulation will be configured to publish these scan messages at the same rate.
-->
<param name="lidar_publish_rate">10.0</param>
<!--
The parameter headless can be used to choose whether to launch the MuJoCo simulator in headless mode or not.
By default, it is set to false
-->
<param name="headless">false</param>
</hardware>
...
File truncated at 100 lines see the full file
CONTRIBUTING
Repository Summary
| Checkout URI | https://github.com/ros-controls/mujoco_ros2_control.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2025-12-21 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| mujoco_ros2_control | 0.0.0 |
README
MuJoCo ros2_control Simulation
This package contains a ros2_control system interface for the MuJoCo Simulator. It was originally written for simulating robot hardware in NASA Johnson’s iMETRO facility.
The system interface wraps MuJoCo’s Simulate App to provide included functionality. Because the app is not bundled as a library, we compile it directly from a local install of MuJoCo.
Parts of this library are also based on the MoveIt mujoco_ros2_control package.
Installation
This interface has only been tested against ROS 2 jazzy and MuJoCo 3.4.0.
It should also be compatible with kilted and rolling, but we do not actively maintain those.
We assume all required ROS dependencies have been installed either manually or with rosdep.
For configuring MuJoCo, the included CMakeLists.txt will download and install the tarfile automatically. As long as users have a good network connection there should not be an issue.
However, a local install of MuJoCo can be used to build the application by setting the following environment variables,
# The tested version
MUJOCO_VERSION=3.4.0
# Wherever it was installed and extracted on your machine
MUJOCO_INSTALL_DIR=/opt/mujoco/mujoco-3.4.0
From there the library can be compiled with colcon build ..., as normal.
URDF Model Conversion
Mujoco does not support the full feature set of xacro/URDFs in the ROS 2 ecosystem. As such, users are required to convert any existing robot description files to an MJCF format. This includes adding actuators, sensors, and cameras as needed to the MJCF XML.
We have built a *highly experimental tool to automate URDF conversion. For more information refer to the documentation.
Hardware Interface Setup
Plugin
This application is shipped as a ros2_control hardware interface, and can be configured as such. Just specify the plugin and point to a valid MJCF on launch:
<ros2_control name="MujocoSystem" type="system">
<hardware>
<plugin>mujoco_ros2_control/MujocoSystemInterface</plugin>
<param name="mujoco_model">$(find my_description)/description/scene.xml</param>
<!--
Optional parameter to load the PIDs that can be used with the actuators loaded with the MuJoCo model.
The velocity actuator supports position mode with the PID gains, and the rest of the actuation models
support both position and velocity mode provided the corresponding PID gains. The gains should be in ROS
parameters format to be loaded by the control_toolbox::PidROS class.
-->
<param name="pids_config_file">$(find my_description)/config/pids.yaml</param>
<!--
Optional parameter to override the speed scaling parameters from the Simulate App window
and just attempt to run at whatever the desired rate is here. This allows users to run the simulation
faster than real time. For example, at 500% speed as set here. If this param is omitted or set to
a value <0, then the simulation will run using the slowdown requested from the App.
-->
<param name="sim_speed_factor">5.0</param>
<!--
Optional parameter to use the keyframe from a provided file as the starting configuration. This is mutually exclusive with
the initial_value that can be used for state interfaces. This is intended to provide an alternative method to load an entire
mujoco model state from a configuration that was saved by clicking 'Copy state' in the simulate window, and pasted into a
config file. Expected use cases are to work on a specific part of an application that involves the environment being in a
very specific starting configuration. If this parameter is an empty string, it will be ignored.
-->
<param name="override_start_position_file">$(find my_description)/config/start_positions.xml</param>
<!--
Optional parameter to update the simulated camera's color and depth image publish rates. If no
parameter is set then all cameras will publish at 5 hz. Note that all cameras in the sim currently
publish at the same intervals.
-->
<param name="camera_publish_rate">6.0</param>
<!--
Optional parameter to update the simulated lidar sensor's scan message publish rates.
All lidar sensors in the simulation will be configured to publish these scan messages at the same rate.
-->
<param name="lidar_publish_rate">10.0</param>
<!--
The parameter headless can be used to choose whether to launch the MuJoCo simulator in headless mode or not.
By default, it is set to false
-->
<param name="headless">false</param>
</hardware>
...
File truncated at 100 lines see the full file
CONTRIBUTING
Repository Summary
| Checkout URI | https://github.com/ros-controls/mujoco_ros2_control.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2025-12-21 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| mujoco_ros2_control | 0.0.0 |
README
MuJoCo ros2_control Simulation
This package contains a ros2_control system interface for the MuJoCo Simulator. It was originally written for simulating robot hardware in NASA Johnson’s iMETRO facility.
The system interface wraps MuJoCo’s Simulate App to provide included functionality. Because the app is not bundled as a library, we compile it directly from a local install of MuJoCo.
Parts of this library are also based on the MoveIt mujoco_ros2_control package.
Installation
This interface has only been tested against ROS 2 jazzy and MuJoCo 3.4.0.
It should also be compatible with kilted and rolling, but we do not actively maintain those.
We assume all required ROS dependencies have been installed either manually or with rosdep.
For configuring MuJoCo, the included CMakeLists.txt will download and install the tarfile automatically. As long as users have a good network connection there should not be an issue.
However, a local install of MuJoCo can be used to build the application by setting the following environment variables,
# The tested version
MUJOCO_VERSION=3.4.0
# Wherever it was installed and extracted on your machine
MUJOCO_INSTALL_DIR=/opt/mujoco/mujoco-3.4.0
From there the library can be compiled with colcon build ..., as normal.
URDF Model Conversion
Mujoco does not support the full feature set of xacro/URDFs in the ROS 2 ecosystem. As such, users are required to convert any existing robot description files to an MJCF format. This includes adding actuators, sensors, and cameras as needed to the MJCF XML.
We have built a *highly experimental tool to automate URDF conversion. For more information refer to the documentation.
Hardware Interface Setup
Plugin
This application is shipped as a ros2_control hardware interface, and can be configured as such. Just specify the plugin and point to a valid MJCF on launch:
<ros2_control name="MujocoSystem" type="system">
<hardware>
<plugin>mujoco_ros2_control/MujocoSystemInterface</plugin>
<param name="mujoco_model">$(find my_description)/description/scene.xml</param>
<!--
Optional parameter to load the PIDs that can be used with the actuators loaded with the MuJoCo model.
The velocity actuator supports position mode with the PID gains, and the rest of the actuation models
support both position and velocity mode provided the corresponding PID gains. The gains should be in ROS
parameters format to be loaded by the control_toolbox::PidROS class.
-->
<param name="pids_config_file">$(find my_description)/config/pids.yaml</param>
<!--
Optional parameter to override the speed scaling parameters from the Simulate App window
and just attempt to run at whatever the desired rate is here. This allows users to run the simulation
faster than real time. For example, at 500% speed as set here. If this param is omitted or set to
a value <0, then the simulation will run using the slowdown requested from the App.
-->
<param name="sim_speed_factor">5.0</param>
<!--
Optional parameter to use the keyframe from a provided file as the starting configuration. This is mutually exclusive with
the initial_value that can be used for state interfaces. This is intended to provide an alternative method to load an entire
mujoco model state from a configuration that was saved by clicking 'Copy state' in the simulate window, and pasted into a
config file. Expected use cases are to work on a specific part of an application that involves the environment being in a
very specific starting configuration. If this parameter is an empty string, it will be ignored.
-->
<param name="override_start_position_file">$(find my_description)/config/start_positions.xml</param>
<!--
Optional parameter to update the simulated camera's color and depth image publish rates. If no
parameter is set then all cameras will publish at 5 hz. Note that all cameras in the sim currently
publish at the same intervals.
-->
<param name="camera_publish_rate">6.0</param>
<!--
Optional parameter to update the simulated lidar sensor's scan message publish rates.
All lidar sensors in the simulation will be configured to publish these scan messages at the same rate.
-->
<param name="lidar_publish_rate">10.0</param>
<!--
The parameter headless can be used to choose whether to launch the MuJoCo simulator in headless mode or not.
By default, it is set to false
-->
<param name="headless">false</param>
</hardware>
...
File truncated at 100 lines see the full file
CONTRIBUTING
Repository Summary
| Checkout URI | https://github.com/ros-controls/mujoco_ros2_control.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2025-12-21 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| mujoco_ros2_control | 0.0.0 |
README
MuJoCo ros2_control Simulation
This package contains a ros2_control system interface for the MuJoCo Simulator. It was originally written for simulating robot hardware in NASA Johnson’s iMETRO facility.
The system interface wraps MuJoCo’s Simulate App to provide included functionality. Because the app is not bundled as a library, we compile it directly from a local install of MuJoCo.
Parts of this library are also based on the MoveIt mujoco_ros2_control package.
Installation
This interface has only been tested against ROS 2 jazzy and MuJoCo 3.4.0.
It should also be compatible with kilted and rolling, but we do not actively maintain those.
We assume all required ROS dependencies have been installed either manually or with rosdep.
For configuring MuJoCo, the included CMakeLists.txt will download and install the tarfile automatically. As long as users have a good network connection there should not be an issue.
However, a local install of MuJoCo can be used to build the application by setting the following environment variables,
# The tested version
MUJOCO_VERSION=3.4.0
# Wherever it was installed and extracted on your machine
MUJOCO_INSTALL_DIR=/opt/mujoco/mujoco-3.4.0
From there the library can be compiled with colcon build ..., as normal.
URDF Model Conversion
Mujoco does not support the full feature set of xacro/URDFs in the ROS 2 ecosystem. As such, users are required to convert any existing robot description files to an MJCF format. This includes adding actuators, sensors, and cameras as needed to the MJCF XML.
We have built a *highly experimental tool to automate URDF conversion. For more information refer to the documentation.
Hardware Interface Setup
Plugin
This application is shipped as a ros2_control hardware interface, and can be configured as such. Just specify the plugin and point to a valid MJCF on launch:
<ros2_control name="MujocoSystem" type="system">
<hardware>
<plugin>mujoco_ros2_control/MujocoSystemInterface</plugin>
<param name="mujoco_model">$(find my_description)/description/scene.xml</param>
<!--
Optional parameter to load the PIDs that can be used with the actuators loaded with the MuJoCo model.
The velocity actuator supports position mode with the PID gains, and the rest of the actuation models
support both position and velocity mode provided the corresponding PID gains. The gains should be in ROS
parameters format to be loaded by the control_toolbox::PidROS class.
-->
<param name="pids_config_file">$(find my_description)/config/pids.yaml</param>
<!--
Optional parameter to override the speed scaling parameters from the Simulate App window
and just attempt to run at whatever the desired rate is here. This allows users to run the simulation
faster than real time. For example, at 500% speed as set here. If this param is omitted or set to
a value <0, then the simulation will run using the slowdown requested from the App.
-->
<param name="sim_speed_factor">5.0</param>
<!--
Optional parameter to use the keyframe from a provided file as the starting configuration. This is mutually exclusive with
the initial_value that can be used for state interfaces. This is intended to provide an alternative method to load an entire
mujoco model state from a configuration that was saved by clicking 'Copy state' in the simulate window, and pasted into a
config file. Expected use cases are to work on a specific part of an application that involves the environment being in a
very specific starting configuration. If this parameter is an empty string, it will be ignored.
-->
<param name="override_start_position_file">$(find my_description)/config/start_positions.xml</param>
<!--
Optional parameter to update the simulated camera's color and depth image publish rates. If no
parameter is set then all cameras will publish at 5 hz. Note that all cameras in the sim currently
publish at the same intervals.
-->
<param name="camera_publish_rate">6.0</param>
<!--
Optional parameter to update the simulated lidar sensor's scan message publish rates.
All lidar sensors in the simulation will be configured to publish these scan messages at the same rate.
-->
<param name="lidar_publish_rate">10.0</param>
<!--
The parameter headless can be used to choose whether to launch the MuJoCo simulator in headless mode or not.
By default, it is set to false
-->
<param name="headless">false</param>
</hardware>
...
File truncated at 100 lines see the full file
CONTRIBUTING
Repository Summary
| Checkout URI | https://github.com/ros-controls/mujoco_ros2_control.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2025-12-21 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| mujoco_ros2_control | 0.0.0 |
README
MuJoCo ros2_control Simulation
This package contains a ros2_control system interface for the MuJoCo Simulator. It was originally written for simulating robot hardware in NASA Johnson’s iMETRO facility.
The system interface wraps MuJoCo’s Simulate App to provide included functionality. Because the app is not bundled as a library, we compile it directly from a local install of MuJoCo.
Parts of this library are also based on the MoveIt mujoco_ros2_control package.
Installation
This interface has only been tested against ROS 2 jazzy and MuJoCo 3.4.0.
It should also be compatible with kilted and rolling, but we do not actively maintain those.
We assume all required ROS dependencies have been installed either manually or with rosdep.
For configuring MuJoCo, the included CMakeLists.txt will download and install the tarfile automatically. As long as users have a good network connection there should not be an issue.
However, a local install of MuJoCo can be used to build the application by setting the following environment variables,
# The tested version
MUJOCO_VERSION=3.4.0
# Wherever it was installed and extracted on your machine
MUJOCO_INSTALL_DIR=/opt/mujoco/mujoco-3.4.0
From there the library can be compiled with colcon build ..., as normal.
URDF Model Conversion
Mujoco does not support the full feature set of xacro/URDFs in the ROS 2 ecosystem. As such, users are required to convert any existing robot description files to an MJCF format. This includes adding actuators, sensors, and cameras as needed to the MJCF XML.
We have built a *highly experimental tool to automate URDF conversion. For more information refer to the documentation.
Hardware Interface Setup
Plugin
This application is shipped as a ros2_control hardware interface, and can be configured as such. Just specify the plugin and point to a valid MJCF on launch:
<ros2_control name="MujocoSystem" type="system">
<hardware>
<plugin>mujoco_ros2_control/MujocoSystemInterface</plugin>
<param name="mujoco_model">$(find my_description)/description/scene.xml</param>
<!--
Optional parameter to load the PIDs that can be used with the actuators loaded with the MuJoCo model.
The velocity actuator supports position mode with the PID gains, and the rest of the actuation models
support both position and velocity mode provided the corresponding PID gains. The gains should be in ROS
parameters format to be loaded by the control_toolbox::PidROS class.
-->
<param name="pids_config_file">$(find my_description)/config/pids.yaml</param>
<!--
Optional parameter to override the speed scaling parameters from the Simulate App window
and just attempt to run at whatever the desired rate is here. This allows users to run the simulation
faster than real time. For example, at 500% speed as set here. If this param is omitted or set to
a value <0, then the simulation will run using the slowdown requested from the App.
-->
<param name="sim_speed_factor">5.0</param>
<!--
Optional parameter to use the keyframe from a provided file as the starting configuration. This is mutually exclusive with
the initial_value that can be used for state interfaces. This is intended to provide an alternative method to load an entire
mujoco model state from a configuration that was saved by clicking 'Copy state' in the simulate window, and pasted into a
config file. Expected use cases are to work on a specific part of an application that involves the environment being in a
very specific starting configuration. If this parameter is an empty string, it will be ignored.
-->
<param name="override_start_position_file">$(find my_description)/config/start_positions.xml</param>
<!--
Optional parameter to update the simulated camera's color and depth image publish rates. If no
parameter is set then all cameras will publish at 5 hz. Note that all cameras in the sim currently
publish at the same intervals.
-->
<param name="camera_publish_rate">6.0</param>
<!--
Optional parameter to update the simulated lidar sensor's scan message publish rates.
All lidar sensors in the simulation will be configured to publish these scan messages at the same rate.
-->
<param name="lidar_publish_rate">10.0</param>
<!--
The parameter headless can be used to choose whether to launch the MuJoCo simulator in headless mode or not.
By default, it is set to false
-->
<param name="headless">false</param>
</hardware>
...
File truncated at 100 lines see the full file
CONTRIBUTING
Repository Summary
| Checkout URI | https://github.com/ros-controls/mujoco_ros2_control.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2025-12-21 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| mujoco_ros2_control | 0.0.0 |
README
MuJoCo ros2_control Simulation
This package contains a ros2_control system interface for the MuJoCo Simulator. It was originally written for simulating robot hardware in NASA Johnson’s iMETRO facility.
The system interface wraps MuJoCo’s Simulate App to provide included functionality. Because the app is not bundled as a library, we compile it directly from a local install of MuJoCo.
Parts of this library are also based on the MoveIt mujoco_ros2_control package.
Installation
This interface has only been tested against ROS 2 jazzy and MuJoCo 3.4.0.
It should also be compatible with kilted and rolling, but we do not actively maintain those.
We assume all required ROS dependencies have been installed either manually or with rosdep.
For configuring MuJoCo, the included CMakeLists.txt will download and install the tarfile automatically. As long as users have a good network connection there should not be an issue.
However, a local install of MuJoCo can be used to build the application by setting the following environment variables,
# The tested version
MUJOCO_VERSION=3.4.0
# Wherever it was installed and extracted on your machine
MUJOCO_INSTALL_DIR=/opt/mujoco/mujoco-3.4.0
From there the library can be compiled with colcon build ..., as normal.
URDF Model Conversion
Mujoco does not support the full feature set of xacro/URDFs in the ROS 2 ecosystem. As such, users are required to convert any existing robot description files to an MJCF format. This includes adding actuators, sensors, and cameras as needed to the MJCF XML.
We have built a *highly experimental tool to automate URDF conversion. For more information refer to the documentation.
Hardware Interface Setup
Plugin
This application is shipped as a ros2_control hardware interface, and can be configured as such. Just specify the plugin and point to a valid MJCF on launch:
<ros2_control name="MujocoSystem" type="system">
<hardware>
<plugin>mujoco_ros2_control/MujocoSystemInterface</plugin>
<param name="mujoco_model">$(find my_description)/description/scene.xml</param>
<!--
Optional parameter to load the PIDs that can be used with the actuators loaded with the MuJoCo model.
The velocity actuator supports position mode with the PID gains, and the rest of the actuation models
support both position and velocity mode provided the corresponding PID gains. The gains should be in ROS
parameters format to be loaded by the control_toolbox::PidROS class.
-->
<param name="pids_config_file">$(find my_description)/config/pids.yaml</param>
<!--
Optional parameter to override the speed scaling parameters from the Simulate App window
and just attempt to run at whatever the desired rate is here. This allows users to run the simulation
faster than real time. For example, at 500% speed as set here. If this param is omitted or set to
a value <0, then the simulation will run using the slowdown requested from the App.
-->
<param name="sim_speed_factor">5.0</param>
<!--
Optional parameter to use the keyframe from a provided file as the starting configuration. This is mutually exclusive with
the initial_value that can be used for state interfaces. This is intended to provide an alternative method to load an entire
mujoco model state from a configuration that was saved by clicking 'Copy state' in the simulate window, and pasted into a
config file. Expected use cases are to work on a specific part of an application that involves the environment being in a
very specific starting configuration. If this parameter is an empty string, it will be ignored.
-->
<param name="override_start_position_file">$(find my_description)/config/start_positions.xml</param>
<!--
Optional parameter to update the simulated camera's color and depth image publish rates. If no
parameter is set then all cameras will publish at 5 hz. Note that all cameras in the sim currently
publish at the same intervals.
-->
<param name="camera_publish_rate">6.0</param>
<!--
Optional parameter to update the simulated lidar sensor's scan message publish rates.
All lidar sensors in the simulation will be configured to publish these scan messages at the same rate.
-->
<param name="lidar_publish_rate">10.0</param>
<!--
The parameter headless can be used to choose whether to launch the MuJoCo simulator in headless mode or not.
By default, it is set to false
-->
<param name="headless">false</param>
</hardware>
...
File truncated at 100 lines see the full file
CONTRIBUTING
Repository Summary
| Checkout URI | https://github.com/ros-controls/mujoco_ros2_control.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2025-12-21 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| mujoco_ros2_control | 0.0.0 |
README
MuJoCo ros2_control Simulation
This package contains a ros2_control system interface for the MuJoCo Simulator. It was originally written for simulating robot hardware in NASA Johnson’s iMETRO facility.
The system interface wraps MuJoCo’s Simulate App to provide included functionality. Because the app is not bundled as a library, we compile it directly from a local install of MuJoCo.
Parts of this library are also based on the MoveIt mujoco_ros2_control package.
Installation
This interface has only been tested against ROS 2 jazzy and MuJoCo 3.4.0.
It should also be compatible with kilted and rolling, but we do not actively maintain those.
We assume all required ROS dependencies have been installed either manually or with rosdep.
For configuring MuJoCo, the included CMakeLists.txt will download and install the tarfile automatically. As long as users have a good network connection there should not be an issue.
However, a local install of MuJoCo can be used to build the application by setting the following environment variables,
# The tested version
MUJOCO_VERSION=3.4.0
# Wherever it was installed and extracted on your machine
MUJOCO_INSTALL_DIR=/opt/mujoco/mujoco-3.4.0
From there the library can be compiled with colcon build ..., as normal.
URDF Model Conversion
Mujoco does not support the full feature set of xacro/URDFs in the ROS 2 ecosystem. As such, users are required to convert any existing robot description files to an MJCF format. This includes adding actuators, sensors, and cameras as needed to the MJCF XML.
We have built a *highly experimental tool to automate URDF conversion. For more information refer to the documentation.
Hardware Interface Setup
Plugin
This application is shipped as a ros2_control hardware interface, and can be configured as such. Just specify the plugin and point to a valid MJCF on launch:
<ros2_control name="MujocoSystem" type="system">
<hardware>
<plugin>mujoco_ros2_control/MujocoSystemInterface</plugin>
<param name="mujoco_model">$(find my_description)/description/scene.xml</param>
<!--
Optional parameter to load the PIDs that can be used with the actuators loaded with the MuJoCo model.
The velocity actuator supports position mode with the PID gains, and the rest of the actuation models
support both position and velocity mode provided the corresponding PID gains. The gains should be in ROS
parameters format to be loaded by the control_toolbox::PidROS class.
-->
<param name="pids_config_file">$(find my_description)/config/pids.yaml</param>
<!--
Optional parameter to override the speed scaling parameters from the Simulate App window
and just attempt to run at whatever the desired rate is here. This allows users to run the simulation
faster than real time. For example, at 500% speed as set here. If this param is omitted or set to
a value <0, then the simulation will run using the slowdown requested from the App.
-->
<param name="sim_speed_factor">5.0</param>
<!--
Optional parameter to use the keyframe from a provided file as the starting configuration. This is mutually exclusive with
the initial_value that can be used for state interfaces. This is intended to provide an alternative method to load an entire
mujoco model state from a configuration that was saved by clicking 'Copy state' in the simulate window, and pasted into a
config file. Expected use cases are to work on a specific part of an application that involves the environment being in a
very specific starting configuration. If this parameter is an empty string, it will be ignored.
-->
<param name="override_start_position_file">$(find my_description)/config/start_positions.xml</param>
<!--
Optional parameter to update the simulated camera's color and depth image publish rates. If no
parameter is set then all cameras will publish at 5 hz. Note that all cameras in the sim currently
publish at the same intervals.
-->
<param name="camera_publish_rate">6.0</param>
<!--
Optional parameter to update the simulated lidar sensor's scan message publish rates.
All lidar sensors in the simulation will be configured to publish these scan messages at the same rate.
-->
<param name="lidar_publish_rate">10.0</param>
<!--
The parameter headless can be used to choose whether to launch the MuJoCo simulator in headless mode or not.
By default, it is set to false
-->
<param name="headless">false</param>
</hardware>
...
File truncated at 100 lines see the full file
CONTRIBUTING
Repository Summary
| Checkout URI | https://github.com/ros-controls/mujoco_ros2_control.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2025-12-21 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| mujoco_ros2_control | 0.0.0 |
README
MuJoCo ros2_control Simulation
This package contains a ros2_control system interface for the MuJoCo Simulator. It was originally written for simulating robot hardware in NASA Johnson’s iMETRO facility.
The system interface wraps MuJoCo’s Simulate App to provide included functionality. Because the app is not bundled as a library, we compile it directly from a local install of MuJoCo.
Parts of this library are also based on the MoveIt mujoco_ros2_control package.
Installation
This interface has only been tested against ROS 2 jazzy and MuJoCo 3.4.0.
It should also be compatible with kilted and rolling, but we do not actively maintain those.
We assume all required ROS dependencies have been installed either manually or with rosdep.
For configuring MuJoCo, the included CMakeLists.txt will download and install the tarfile automatically. As long as users have a good network connection there should not be an issue.
However, a local install of MuJoCo can be used to build the application by setting the following environment variables,
# The tested version
MUJOCO_VERSION=3.4.0
# Wherever it was installed and extracted on your machine
MUJOCO_INSTALL_DIR=/opt/mujoco/mujoco-3.4.0
From there the library can be compiled with colcon build ..., as normal.
URDF Model Conversion
Mujoco does not support the full feature set of xacro/URDFs in the ROS 2 ecosystem. As such, users are required to convert any existing robot description files to an MJCF format. This includes adding actuators, sensors, and cameras as needed to the MJCF XML.
We have built a *highly experimental tool to automate URDF conversion. For more information refer to the documentation.
Hardware Interface Setup
Plugin
This application is shipped as a ros2_control hardware interface, and can be configured as such. Just specify the plugin and point to a valid MJCF on launch:
<ros2_control name="MujocoSystem" type="system">
<hardware>
<plugin>mujoco_ros2_control/MujocoSystemInterface</plugin>
<param name="mujoco_model">$(find my_description)/description/scene.xml</param>
<!--
Optional parameter to load the PIDs that can be used with the actuators loaded with the MuJoCo model.
The velocity actuator supports position mode with the PID gains, and the rest of the actuation models
support both position and velocity mode provided the corresponding PID gains. The gains should be in ROS
parameters format to be loaded by the control_toolbox::PidROS class.
-->
<param name="pids_config_file">$(find my_description)/config/pids.yaml</param>
<!--
Optional parameter to override the speed scaling parameters from the Simulate App window
and just attempt to run at whatever the desired rate is here. This allows users to run the simulation
faster than real time. For example, at 500% speed as set here. If this param is omitted or set to
a value <0, then the simulation will run using the slowdown requested from the App.
-->
<param name="sim_speed_factor">5.0</param>
<!--
Optional parameter to use the keyframe from a provided file as the starting configuration. This is mutually exclusive with
the initial_value that can be used for state interfaces. This is intended to provide an alternative method to load an entire
mujoco model state from a configuration that was saved by clicking 'Copy state' in the simulate window, and pasted into a
config file. Expected use cases are to work on a specific part of an application that involves the environment being in a
very specific starting configuration. If this parameter is an empty string, it will be ignored.
-->
<param name="override_start_position_file">$(find my_description)/config/start_positions.xml</param>
<!--
Optional parameter to update the simulated camera's color and depth image publish rates. If no
parameter is set then all cameras will publish at 5 hz. Note that all cameras in the sim currently
publish at the same intervals.
-->
<param name="camera_publish_rate">6.0</param>
<!--
Optional parameter to update the simulated lidar sensor's scan message publish rates.
All lidar sensors in the simulation will be configured to publish these scan messages at the same rate.
-->
<param name="lidar_publish_rate">10.0</param>
<!--
The parameter headless can be used to choose whether to launch the MuJoCo simulator in headless mode or not.
By default, it is set to false
-->
<param name="headless">false</param>
</hardware>
...
File truncated at 100 lines see the full file
CONTRIBUTING
Repository Summary
| Checkout URI | https://github.com/ros-controls/mujoco_ros2_control.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2025-12-21 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| mujoco_ros2_control | 0.0.0 |
README
MuJoCo ros2_control Simulation
This package contains a ros2_control system interface for the MuJoCo Simulator. It was originally written for simulating robot hardware in NASA Johnson’s iMETRO facility.
The system interface wraps MuJoCo’s Simulate App to provide included functionality. Because the app is not bundled as a library, we compile it directly from a local install of MuJoCo.
Parts of this library are also based on the MoveIt mujoco_ros2_control package.
Installation
This interface has only been tested against ROS 2 jazzy and MuJoCo 3.4.0.
It should also be compatible with kilted and rolling, but we do not actively maintain those.
We assume all required ROS dependencies have been installed either manually or with rosdep.
For configuring MuJoCo, the included CMakeLists.txt will download and install the tarfile automatically. As long as users have a good network connection there should not be an issue.
However, a local install of MuJoCo can be used to build the application by setting the following environment variables,
# The tested version
MUJOCO_VERSION=3.4.0
# Wherever it was installed and extracted on your machine
MUJOCO_INSTALL_DIR=/opt/mujoco/mujoco-3.4.0
From there the library can be compiled with colcon build ..., as normal.
URDF Model Conversion
Mujoco does not support the full feature set of xacro/URDFs in the ROS 2 ecosystem. As such, users are required to convert any existing robot description files to an MJCF format. This includes adding actuators, sensors, and cameras as needed to the MJCF XML.
We have built a *highly experimental tool to automate URDF conversion. For more information refer to the documentation.
Hardware Interface Setup
Plugin
This application is shipped as a ros2_control hardware interface, and can be configured as such. Just specify the plugin and point to a valid MJCF on launch:
<ros2_control name="MujocoSystem" type="system">
<hardware>
<plugin>mujoco_ros2_control/MujocoSystemInterface</plugin>
<param name="mujoco_model">$(find my_description)/description/scene.xml</param>
<!--
Optional parameter to load the PIDs that can be used with the actuators loaded with the MuJoCo model.
The velocity actuator supports position mode with the PID gains, and the rest of the actuation models
support both position and velocity mode provided the corresponding PID gains. The gains should be in ROS
parameters format to be loaded by the control_toolbox::PidROS class.
-->
<param name="pids_config_file">$(find my_description)/config/pids.yaml</param>
<!--
Optional parameter to override the speed scaling parameters from the Simulate App window
and just attempt to run at whatever the desired rate is here. This allows users to run the simulation
faster than real time. For example, at 500% speed as set here. If this param is omitted or set to
a value <0, then the simulation will run using the slowdown requested from the App.
-->
<param name="sim_speed_factor">5.0</param>
<!--
Optional parameter to use the keyframe from a provided file as the starting configuration. This is mutually exclusive with
the initial_value that can be used for state interfaces. This is intended to provide an alternative method to load an entire
mujoco model state from a configuration that was saved by clicking 'Copy state' in the simulate window, and pasted into a
config file. Expected use cases are to work on a specific part of an application that involves the environment being in a
very specific starting configuration. If this parameter is an empty string, it will be ignored.
-->
<param name="override_start_position_file">$(find my_description)/config/start_positions.xml</param>
<!--
Optional parameter to update the simulated camera's color and depth image publish rates. If no
parameter is set then all cameras will publish at 5 hz. Note that all cameras in the sim currently
publish at the same intervals.
-->
<param name="camera_publish_rate">6.0</param>
<!--
Optional parameter to update the simulated lidar sensor's scan message publish rates.
All lidar sensors in the simulation will be configured to publish these scan messages at the same rate.
-->
<param name="lidar_publish_rate">10.0</param>
<!--
The parameter headless can be used to choose whether to launch the MuJoCo simulator in headless mode or not.
By default, it is set to false
-->
<param name="headless">false</param>
</hardware>
...
File truncated at 100 lines see the full file
CONTRIBUTING
Repository Summary
| Checkout URI | https://github.com/ros-controls/mujoco_ros2_control.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2025-12-21 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| mujoco_ros2_control | 0.0.0 |
README
MuJoCo ros2_control Simulation
This package contains a ros2_control system interface for the MuJoCo Simulator. It was originally written for simulating robot hardware in NASA Johnson’s iMETRO facility.
The system interface wraps MuJoCo’s Simulate App to provide included functionality. Because the app is not bundled as a library, we compile it directly from a local install of MuJoCo.
Parts of this library are also based on the MoveIt mujoco_ros2_control package.
Installation
This interface has only been tested against ROS 2 jazzy and MuJoCo 3.4.0.
It should also be compatible with kilted and rolling, but we do not actively maintain those.
We assume all required ROS dependencies have been installed either manually or with rosdep.
For configuring MuJoCo, the included CMakeLists.txt will download and install the tarfile automatically. As long as users have a good network connection there should not be an issue.
However, a local install of MuJoCo can be used to build the application by setting the following environment variables,
# The tested version
MUJOCO_VERSION=3.4.0
# Wherever it was installed and extracted on your machine
MUJOCO_INSTALL_DIR=/opt/mujoco/mujoco-3.4.0
From there the library can be compiled with colcon build ..., as normal.
URDF Model Conversion
Mujoco does not support the full feature set of xacro/URDFs in the ROS 2 ecosystem. As such, users are required to convert any existing robot description files to an MJCF format. This includes adding actuators, sensors, and cameras as needed to the MJCF XML.
We have built a *highly experimental tool to automate URDF conversion. For more information refer to the documentation.
Hardware Interface Setup
Plugin
This application is shipped as a ros2_control hardware interface, and can be configured as such. Just specify the plugin and point to a valid MJCF on launch:
<ros2_control name="MujocoSystem" type="system">
<hardware>
<plugin>mujoco_ros2_control/MujocoSystemInterface</plugin>
<param name="mujoco_model">$(find my_description)/description/scene.xml</param>
<!--
Optional parameter to load the PIDs that can be used with the actuators loaded with the MuJoCo model.
The velocity actuator supports position mode with the PID gains, and the rest of the actuation models
support both position and velocity mode provided the corresponding PID gains. The gains should be in ROS
parameters format to be loaded by the control_toolbox::PidROS class.
-->
<param name="pids_config_file">$(find my_description)/config/pids.yaml</param>
<!--
Optional parameter to override the speed scaling parameters from the Simulate App window
and just attempt to run at whatever the desired rate is here. This allows users to run the simulation
faster than real time. For example, at 500% speed as set here. If this param is omitted or set to
a value <0, then the simulation will run using the slowdown requested from the App.
-->
<param name="sim_speed_factor">5.0</param>
<!--
Optional parameter to use the keyframe from a provided file as the starting configuration. This is mutually exclusive with
the initial_value that can be used for state interfaces. This is intended to provide an alternative method to load an entire
mujoco model state from a configuration that was saved by clicking 'Copy state' in the simulate window, and pasted into a
config file. Expected use cases are to work on a specific part of an application that involves the environment being in a
very specific starting configuration. If this parameter is an empty string, it will be ignored.
-->
<param name="override_start_position_file">$(find my_description)/config/start_positions.xml</param>
<!--
Optional parameter to update the simulated camera's color and depth image publish rates. If no
parameter is set then all cameras will publish at 5 hz. Note that all cameras in the sim currently
publish at the same intervals.
-->
<param name="camera_publish_rate">6.0</param>
<!--
Optional parameter to update the simulated lidar sensor's scan message publish rates.
All lidar sensors in the simulation will be configured to publish these scan messages at the same rate.
-->
<param name="lidar_publish_rate">10.0</param>
<!--
The parameter headless can be used to choose whether to launch the MuJoCo simulator in headless mode or not.
By default, it is set to false
-->
<param name="headless">false</param>
</hardware>
...
File truncated at 100 lines see the full file
CONTRIBUTING
Repository Summary
| Checkout URI | https://github.com/ros-controls/mujoco_ros2_control.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2025-12-21 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| mujoco_ros2_control | 0.0.0 |
README
MuJoCo ros2_control Simulation
This package contains a ros2_control system interface for the MuJoCo Simulator. It was originally written for simulating robot hardware in NASA Johnson’s iMETRO facility.
The system interface wraps MuJoCo’s Simulate App to provide included functionality. Because the app is not bundled as a library, we compile it directly from a local install of MuJoCo.
Parts of this library are also based on the MoveIt mujoco_ros2_control package.
Installation
This interface has only been tested against ROS 2 jazzy and MuJoCo 3.4.0.
It should also be compatible with kilted and rolling, but we do not actively maintain those.
We assume all required ROS dependencies have been installed either manually or with rosdep.
For configuring MuJoCo, the included CMakeLists.txt will download and install the tarfile automatically. As long as users have a good network connection there should not be an issue.
However, a local install of MuJoCo can be used to build the application by setting the following environment variables,
# The tested version
MUJOCO_VERSION=3.4.0
# Wherever it was installed and extracted on your machine
MUJOCO_INSTALL_DIR=/opt/mujoco/mujoco-3.4.0
From there the library can be compiled with colcon build ..., as normal.
URDF Model Conversion
Mujoco does not support the full feature set of xacro/URDFs in the ROS 2 ecosystem. As such, users are required to convert any existing robot description files to an MJCF format. This includes adding actuators, sensors, and cameras as needed to the MJCF XML.
We have built a *highly experimental tool to automate URDF conversion. For more information refer to the documentation.
Hardware Interface Setup
Plugin
This application is shipped as a ros2_control hardware interface, and can be configured as such. Just specify the plugin and point to a valid MJCF on launch:
<ros2_control name="MujocoSystem" type="system">
<hardware>
<plugin>mujoco_ros2_control/MujocoSystemInterface</plugin>
<param name="mujoco_model">$(find my_description)/description/scene.xml</param>
<!--
Optional parameter to load the PIDs that can be used with the actuators loaded with the MuJoCo model.
The velocity actuator supports position mode with the PID gains, and the rest of the actuation models
support both position and velocity mode provided the corresponding PID gains. The gains should be in ROS
parameters format to be loaded by the control_toolbox::PidROS class.
-->
<param name="pids_config_file">$(find my_description)/config/pids.yaml</param>
<!--
Optional parameter to override the speed scaling parameters from the Simulate App window
and just attempt to run at whatever the desired rate is here. This allows users to run the simulation
faster than real time. For example, at 500% speed as set here. If this param is omitted or set to
a value <0, then the simulation will run using the slowdown requested from the App.
-->
<param name="sim_speed_factor">5.0</param>
<!--
Optional parameter to use the keyframe from a provided file as the starting configuration. This is mutually exclusive with
the initial_value that can be used for state interfaces. This is intended to provide an alternative method to load an entire
mujoco model state from a configuration that was saved by clicking 'Copy state' in the simulate window, and pasted into a
config file. Expected use cases are to work on a specific part of an application that involves the environment being in a
very specific starting configuration. If this parameter is an empty string, it will be ignored.
-->
<param name="override_start_position_file">$(find my_description)/config/start_positions.xml</param>
<!--
Optional parameter to update the simulated camera's color and depth image publish rates. If no
parameter is set then all cameras will publish at 5 hz. Note that all cameras in the sim currently
publish at the same intervals.
-->
<param name="camera_publish_rate">6.0</param>
<!--
Optional parameter to update the simulated lidar sensor's scan message publish rates.
All lidar sensors in the simulation will be configured to publish these scan messages at the same rate.
-->
<param name="lidar_publish_rate">10.0</param>
<!--
The parameter headless can be used to choose whether to launch the MuJoCo simulator in headless mode or not.
By default, it is set to false
-->
<param name="headless">false</param>
</hardware>
...
File truncated at 100 lines see the full file
CONTRIBUTING
Repository Summary
| Checkout URI | https://github.com/ros-controls/mujoco_ros2_control.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2025-12-21 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| mujoco_ros2_control | 0.0.0 |
README
MuJoCo ros2_control Simulation
This package contains a ros2_control system interface for the MuJoCo Simulator. It was originally written for simulating robot hardware in NASA Johnson’s iMETRO facility.
The system interface wraps MuJoCo’s Simulate App to provide included functionality. Because the app is not bundled as a library, we compile it directly from a local install of MuJoCo.
Parts of this library are also based on the MoveIt mujoco_ros2_control package.
Installation
This interface has only been tested against ROS 2 jazzy and MuJoCo 3.4.0.
It should also be compatible with kilted and rolling, but we do not actively maintain those.
We assume all required ROS dependencies have been installed either manually or with rosdep.
For configuring MuJoCo, the included CMakeLists.txt will download and install the tarfile automatically. As long as users have a good network connection there should not be an issue.
However, a local install of MuJoCo can be used to build the application by setting the following environment variables,
# The tested version
MUJOCO_VERSION=3.4.0
# Wherever it was installed and extracted on your machine
MUJOCO_INSTALL_DIR=/opt/mujoco/mujoco-3.4.0
From there the library can be compiled with colcon build ..., as normal.
URDF Model Conversion
Mujoco does not support the full feature set of xacro/URDFs in the ROS 2 ecosystem. As such, users are required to convert any existing robot description files to an MJCF format. This includes adding actuators, sensors, and cameras as needed to the MJCF XML.
We have built a *highly experimental tool to automate URDF conversion. For more information refer to the documentation.
Hardware Interface Setup
Plugin
This application is shipped as a ros2_control hardware interface, and can be configured as such. Just specify the plugin and point to a valid MJCF on launch:
<ros2_control name="MujocoSystem" type="system">
<hardware>
<plugin>mujoco_ros2_control/MujocoSystemInterface</plugin>
<param name="mujoco_model">$(find my_description)/description/scene.xml</param>
<!--
Optional parameter to load the PIDs that can be used with the actuators loaded with the MuJoCo model.
The velocity actuator supports position mode with the PID gains, and the rest of the actuation models
support both position and velocity mode provided the corresponding PID gains. The gains should be in ROS
parameters format to be loaded by the control_toolbox::PidROS class.
-->
<param name="pids_config_file">$(find my_description)/config/pids.yaml</param>
<!--
Optional parameter to override the speed scaling parameters from the Simulate App window
and just attempt to run at whatever the desired rate is here. This allows users to run the simulation
faster than real time. For example, at 500% speed as set here. If this param is omitted or set to
a value <0, then the simulation will run using the slowdown requested from the App.
-->
<param name="sim_speed_factor">5.0</param>
<!--
Optional parameter to use the keyframe from a provided file as the starting configuration. This is mutually exclusive with
the initial_value that can be used for state interfaces. This is intended to provide an alternative method to load an entire
mujoco model state from a configuration that was saved by clicking 'Copy state' in the simulate window, and pasted into a
config file. Expected use cases are to work on a specific part of an application that involves the environment being in a
very specific starting configuration. If this parameter is an empty string, it will be ignored.
-->
<param name="override_start_position_file">$(find my_description)/config/start_positions.xml</param>
<!--
Optional parameter to update the simulated camera's color and depth image publish rates. If no
parameter is set then all cameras will publish at 5 hz. Note that all cameras in the sim currently
publish at the same intervals.
-->
<param name="camera_publish_rate">6.0</param>
<!--
Optional parameter to update the simulated lidar sensor's scan message publish rates.
All lidar sensors in the simulation will be configured to publish these scan messages at the same rate.
-->
<param name="lidar_publish_rate">10.0</param>
<!--
The parameter headless can be used to choose whether to launch the MuJoCo simulator in headless mode or not.
By default, it is set to false
-->
<param name="headless">false</param>
</hardware>
...
File truncated at 100 lines see the full file
CONTRIBUTING
Repository Summary
| Checkout URI | https://github.com/ros-controls/mujoco_ros2_control.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2025-12-21 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| mujoco_ros2_control | 0.0.0 |
README
MuJoCo ros2_control Simulation
This package contains a ros2_control system interface for the MuJoCo Simulator. It was originally written for simulating robot hardware in NASA Johnson’s iMETRO facility.
The system interface wraps MuJoCo’s Simulate App to provide included functionality. Because the app is not bundled as a library, we compile it directly from a local install of MuJoCo.
Parts of this library are also based on the MoveIt mujoco_ros2_control package.
Installation
This interface has only been tested against ROS 2 jazzy and MuJoCo 3.4.0.
It should also be compatible with kilted and rolling, but we do not actively maintain those.
We assume all required ROS dependencies have been installed either manually or with rosdep.
For configuring MuJoCo, the included CMakeLists.txt will download and install the tarfile automatically. As long as users have a good network connection there should not be an issue.
However, a local install of MuJoCo can be used to build the application by setting the following environment variables,
# The tested version
MUJOCO_VERSION=3.4.0
# Wherever it was installed and extracted on your machine
MUJOCO_INSTALL_DIR=/opt/mujoco/mujoco-3.4.0
From there the library can be compiled with colcon build ..., as normal.
URDF Model Conversion
Mujoco does not support the full feature set of xacro/URDFs in the ROS 2 ecosystem. As such, users are required to convert any existing robot description files to an MJCF format. This includes adding actuators, sensors, and cameras as needed to the MJCF XML.
We have built a *highly experimental tool to automate URDF conversion. For more information refer to the documentation.
Hardware Interface Setup
Plugin
This application is shipped as a ros2_control hardware interface, and can be configured as such. Just specify the plugin and point to a valid MJCF on launch:
<ros2_control name="MujocoSystem" type="system">
<hardware>
<plugin>mujoco_ros2_control/MujocoSystemInterface</plugin>
<param name="mujoco_model">$(find my_description)/description/scene.xml</param>
<!--
Optional parameter to load the PIDs that can be used with the actuators loaded with the MuJoCo model.
The velocity actuator supports position mode with the PID gains, and the rest of the actuation models
support both position and velocity mode provided the corresponding PID gains. The gains should be in ROS
parameters format to be loaded by the control_toolbox::PidROS class.
-->
<param name="pids_config_file">$(find my_description)/config/pids.yaml</param>
<!--
Optional parameter to override the speed scaling parameters from the Simulate App window
and just attempt to run at whatever the desired rate is here. This allows users to run the simulation
faster than real time. For example, at 500% speed as set here. If this param is omitted or set to
a value <0, then the simulation will run using the slowdown requested from the App.
-->
<param name="sim_speed_factor">5.0</param>
<!--
Optional parameter to use the keyframe from a provided file as the starting configuration. This is mutually exclusive with
the initial_value that can be used for state interfaces. This is intended to provide an alternative method to load an entire
mujoco model state from a configuration that was saved by clicking 'Copy state' in the simulate window, and pasted into a
config file. Expected use cases are to work on a specific part of an application that involves the environment being in a
very specific starting configuration. If this parameter is an empty string, it will be ignored.
-->
<param name="override_start_position_file">$(find my_description)/config/start_positions.xml</param>
<!--
Optional parameter to update the simulated camera's color and depth image publish rates. If no
parameter is set then all cameras will publish at 5 hz. Note that all cameras in the sim currently
publish at the same intervals.
-->
<param name="camera_publish_rate">6.0</param>
<!--
Optional parameter to update the simulated lidar sensor's scan message publish rates.
All lidar sensors in the simulation will be configured to publish these scan messages at the same rate.
-->
<param name="lidar_publish_rate">10.0</param>
<!--
The parameter headless can be used to choose whether to launch the MuJoCo simulator in headless mode or not.
By default, it is set to false
-->
<param name="headless">false</param>
</hardware>
...
File truncated at 100 lines see the full file
CONTRIBUTING
Repository Summary
| Checkout URI | https://github.com/ros-controls/mujoco_ros2_control.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2025-12-21 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| mujoco_ros2_control | 0.0.0 |
README
MuJoCo ros2_control Simulation
This package contains a ros2_control system interface for the MuJoCo Simulator. It was originally written for simulating robot hardware in NASA Johnson’s iMETRO facility.
The system interface wraps MuJoCo’s Simulate App to provide included functionality. Because the app is not bundled as a library, we compile it directly from a local install of MuJoCo.
Parts of this library are also based on the MoveIt mujoco_ros2_control package.
Installation
This interface has only been tested against ROS 2 jazzy and MuJoCo 3.4.0.
It should also be compatible with kilted and rolling, but we do not actively maintain those.
We assume all required ROS dependencies have been installed either manually or with rosdep.
For configuring MuJoCo, the included CMakeLists.txt will download and install the tarfile automatically. As long as users have a good network connection there should not be an issue.
However, a local install of MuJoCo can be used to build the application by setting the following environment variables,
# The tested version
MUJOCO_VERSION=3.4.0
# Wherever it was installed and extracted on your machine
MUJOCO_INSTALL_DIR=/opt/mujoco/mujoco-3.4.0
From there the library can be compiled with colcon build ..., as normal.
URDF Model Conversion
Mujoco does not support the full feature set of xacro/URDFs in the ROS 2 ecosystem. As such, users are required to convert any existing robot description files to an MJCF format. This includes adding actuators, sensors, and cameras as needed to the MJCF XML.
We have built a *highly experimental tool to automate URDF conversion. For more information refer to the documentation.
Hardware Interface Setup
Plugin
This application is shipped as a ros2_control hardware interface, and can be configured as such. Just specify the plugin and point to a valid MJCF on launch:
<ros2_control name="MujocoSystem" type="system">
<hardware>
<plugin>mujoco_ros2_control/MujocoSystemInterface</plugin>
<param name="mujoco_model">$(find my_description)/description/scene.xml</param>
<!--
Optional parameter to load the PIDs that can be used with the actuators loaded with the MuJoCo model.
The velocity actuator supports position mode with the PID gains, and the rest of the actuation models
support both position and velocity mode provided the corresponding PID gains. The gains should be in ROS
parameters format to be loaded by the control_toolbox::PidROS class.
-->
<param name="pids_config_file">$(find my_description)/config/pids.yaml</param>
<!--
Optional parameter to override the speed scaling parameters from the Simulate App window
and just attempt to run at whatever the desired rate is here. This allows users to run the simulation
faster than real time. For example, at 500% speed as set here. If this param is omitted or set to
a value <0, then the simulation will run using the slowdown requested from the App.
-->
<param name="sim_speed_factor">5.0</param>
<!--
Optional parameter to use the keyframe from a provided file as the starting configuration. This is mutually exclusive with
the initial_value that can be used for state interfaces. This is intended to provide an alternative method to load an entire
mujoco model state from a configuration that was saved by clicking 'Copy state' in the simulate window, and pasted into a
config file. Expected use cases are to work on a specific part of an application that involves the environment being in a
very specific starting configuration. If this parameter is an empty string, it will be ignored.
-->
<param name="override_start_position_file">$(find my_description)/config/start_positions.xml</param>
<!--
Optional parameter to update the simulated camera's color and depth image publish rates. If no
parameter is set then all cameras will publish at 5 hz. Note that all cameras in the sim currently
publish at the same intervals.
-->
<param name="camera_publish_rate">6.0</param>
<!--
Optional parameter to update the simulated lidar sensor's scan message publish rates.
All lidar sensors in the simulation will be configured to publish these scan messages at the same rate.
-->
<param name="lidar_publish_rate">10.0</param>
<!--
The parameter headless can be used to choose whether to launch the MuJoCo simulator in headless mode or not.
By default, it is set to false
-->
<param name="headless">false</param>
</hardware>
...
File truncated at 100 lines see the full file
CONTRIBUTING
Repository Summary
| Checkout URI | https://github.com/ros-controls/mujoco_ros2_control.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2025-12-21 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| mujoco_ros2_control | 0.0.0 |
README
MuJoCo ros2_control Simulation
This package contains a ros2_control system interface for the MuJoCo Simulator. It was originally written for simulating robot hardware in NASA Johnson’s iMETRO facility.
The system interface wraps MuJoCo’s Simulate App to provide included functionality. Because the app is not bundled as a library, we compile it directly from a local install of MuJoCo.
Parts of this library are also based on the MoveIt mujoco_ros2_control package.
Installation
This interface has only been tested against ROS 2 jazzy and MuJoCo 3.4.0.
It should also be compatible with kilted and rolling, but we do not actively maintain those.
We assume all required ROS dependencies have been installed either manually or with rosdep.
For configuring MuJoCo, the included CMakeLists.txt will download and install the tarfile automatically. As long as users have a good network connection there should not be an issue.
However, a local install of MuJoCo can be used to build the application by setting the following environment variables,
# The tested version
MUJOCO_VERSION=3.4.0
# Wherever it was installed and extracted on your machine
MUJOCO_INSTALL_DIR=/opt/mujoco/mujoco-3.4.0
From there the library can be compiled with colcon build ..., as normal.
URDF Model Conversion
Mujoco does not support the full feature set of xacro/URDFs in the ROS 2 ecosystem. As such, users are required to convert any existing robot description files to an MJCF format. This includes adding actuators, sensors, and cameras as needed to the MJCF XML.
We have built a *highly experimental tool to automate URDF conversion. For more information refer to the documentation.
Hardware Interface Setup
Plugin
This application is shipped as a ros2_control hardware interface, and can be configured as such. Just specify the plugin and point to a valid MJCF on launch:
<ros2_control name="MujocoSystem" type="system">
<hardware>
<plugin>mujoco_ros2_control/MujocoSystemInterface</plugin>
<param name="mujoco_model">$(find my_description)/description/scene.xml</param>
<!--
Optional parameter to load the PIDs that can be used with the actuators loaded with the MuJoCo model.
The velocity actuator supports position mode with the PID gains, and the rest of the actuation models
support both position and velocity mode provided the corresponding PID gains. The gains should be in ROS
parameters format to be loaded by the control_toolbox::PidROS class.
-->
<param name="pids_config_file">$(find my_description)/config/pids.yaml</param>
<!--
Optional parameter to override the speed scaling parameters from the Simulate App window
and just attempt to run at whatever the desired rate is here. This allows users to run the simulation
faster than real time. For example, at 500% speed as set here. If this param is omitted or set to
a value <0, then the simulation will run using the slowdown requested from the App.
-->
<param name="sim_speed_factor">5.0</param>
<!--
Optional parameter to use the keyframe from a provided file as the starting configuration. This is mutually exclusive with
the initial_value that can be used for state interfaces. This is intended to provide an alternative method to load an entire
mujoco model state from a configuration that was saved by clicking 'Copy state' in the simulate window, and pasted into a
config file. Expected use cases are to work on a specific part of an application that involves the environment being in a
very specific starting configuration. If this parameter is an empty string, it will be ignored.
-->
<param name="override_start_position_file">$(find my_description)/config/start_positions.xml</param>
<!--
Optional parameter to update the simulated camera's color and depth image publish rates. If no
parameter is set then all cameras will publish at 5 hz. Note that all cameras in the sim currently
publish at the same intervals.
-->
<param name="camera_publish_rate">6.0</param>
<!--
Optional parameter to update the simulated lidar sensor's scan message publish rates.
All lidar sensors in the simulation will be configured to publish these scan messages at the same rate.
-->
<param name="lidar_publish_rate">10.0</param>
<!--
The parameter headless can be used to choose whether to launch the MuJoCo simulator in headless mode or not.
By default, it is set to false
-->
<param name="headless">false</param>
</hardware>
...
File truncated at 100 lines see the full file
CONTRIBUTING
Repository Summary
| Checkout URI | https://github.com/ros-controls/mujoco_ros2_control.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2025-12-21 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| mujoco_ros2_control | 0.0.0 |
README
MuJoCo ros2_control Simulation
This package contains a ros2_control system interface for the MuJoCo Simulator. It was originally written for simulating robot hardware in NASA Johnson’s iMETRO facility.
The system interface wraps MuJoCo’s Simulate App to provide included functionality. Because the app is not bundled as a library, we compile it directly from a local install of MuJoCo.
Parts of this library are also based on the MoveIt mujoco_ros2_control package.
Installation
This interface has only been tested against ROS 2 jazzy and MuJoCo 3.4.0.
It should also be compatible with kilted and rolling, but we do not actively maintain those.
We assume all required ROS dependencies have been installed either manually or with rosdep.
For configuring MuJoCo, the included CMakeLists.txt will download and install the tarfile automatically. As long as users have a good network connection there should not be an issue.
However, a local install of MuJoCo can be used to build the application by setting the following environment variables,
# The tested version
MUJOCO_VERSION=3.4.0
# Wherever it was installed and extracted on your machine
MUJOCO_INSTALL_DIR=/opt/mujoco/mujoco-3.4.0
From there the library can be compiled with colcon build ..., as normal.
URDF Model Conversion
Mujoco does not support the full feature set of xacro/URDFs in the ROS 2 ecosystem. As such, users are required to convert any existing robot description files to an MJCF format. This includes adding actuators, sensors, and cameras as needed to the MJCF XML.
We have built a *highly experimental tool to automate URDF conversion. For more information refer to the documentation.
Hardware Interface Setup
Plugin
This application is shipped as a ros2_control hardware interface, and can be configured as such. Just specify the plugin and point to a valid MJCF on launch:
<ros2_control name="MujocoSystem" type="system">
<hardware>
<plugin>mujoco_ros2_control/MujocoSystemInterface</plugin>
<param name="mujoco_model">$(find my_description)/description/scene.xml</param>
<!--
Optional parameter to load the PIDs that can be used with the actuators loaded with the MuJoCo model.
The velocity actuator supports position mode with the PID gains, and the rest of the actuation models
support both position and velocity mode provided the corresponding PID gains. The gains should be in ROS
parameters format to be loaded by the control_toolbox::PidROS class.
-->
<param name="pids_config_file">$(find my_description)/config/pids.yaml</param>
<!--
Optional parameter to override the speed scaling parameters from the Simulate App window
and just attempt to run at whatever the desired rate is here. This allows users to run the simulation
faster than real time. For example, at 500% speed as set here. If this param is omitted or set to
a value <0, then the simulation will run using the slowdown requested from the App.
-->
<param name="sim_speed_factor">5.0</param>
<!--
Optional parameter to use the keyframe from a provided file as the starting configuration. This is mutually exclusive with
the initial_value that can be used for state interfaces. This is intended to provide an alternative method to load an entire
mujoco model state from a configuration that was saved by clicking 'Copy state' in the simulate window, and pasted into a
config file. Expected use cases are to work on a specific part of an application that involves the environment being in a
very specific starting configuration. If this parameter is an empty string, it will be ignored.
-->
<param name="override_start_position_file">$(find my_description)/config/start_positions.xml</param>
<!--
Optional parameter to update the simulated camera's color and depth image publish rates. If no
parameter is set then all cameras will publish at 5 hz. Note that all cameras in the sim currently
publish at the same intervals.
-->
<param name="camera_publish_rate">6.0</param>
<!--
Optional parameter to update the simulated lidar sensor's scan message publish rates.
All lidar sensors in the simulation will be configured to publish these scan messages at the same rate.
-->
<param name="lidar_publish_rate">10.0</param>
<!--
The parameter headless can be used to choose whether to launch the MuJoCo simulator in headless mode or not.
By default, it is set to false
-->
<param name="headless">false</param>
</hardware>
...
File truncated at 100 lines see the full file
CONTRIBUTING
Repository Summary
| Checkout URI | https://github.com/ros-controls/mujoco_ros2_control.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2025-12-21 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| mujoco_ros2_control | 0.0.0 |
README
MuJoCo ros2_control Simulation
This package contains a ros2_control system interface for the MuJoCo Simulator. It was originally written for simulating robot hardware in NASA Johnson’s iMETRO facility.
The system interface wraps MuJoCo’s Simulate App to provide included functionality. Because the app is not bundled as a library, we compile it directly from a local install of MuJoCo.
Parts of this library are also based on the MoveIt mujoco_ros2_control package.
Installation
This interface has only been tested against ROS 2 jazzy and MuJoCo 3.4.0.
It should also be compatible with kilted and rolling, but we do not actively maintain those.
We assume all required ROS dependencies have been installed either manually or with rosdep.
For configuring MuJoCo, the included CMakeLists.txt will download and install the tarfile automatically. As long as users have a good network connection there should not be an issue.
However, a local install of MuJoCo can be used to build the application by setting the following environment variables,
# The tested version
MUJOCO_VERSION=3.4.0
# Wherever it was installed and extracted on your machine
MUJOCO_INSTALL_DIR=/opt/mujoco/mujoco-3.4.0
From there the library can be compiled with colcon build ..., as normal.
URDF Model Conversion
Mujoco does not support the full feature set of xacro/URDFs in the ROS 2 ecosystem. As such, users are required to convert any existing robot description files to an MJCF format. This includes adding actuators, sensors, and cameras as needed to the MJCF XML.
We have built a *highly experimental tool to automate URDF conversion. For more information refer to the documentation.
Hardware Interface Setup
Plugin
This application is shipped as a ros2_control hardware interface, and can be configured as such. Just specify the plugin and point to a valid MJCF on launch:
<ros2_control name="MujocoSystem" type="system">
<hardware>
<plugin>mujoco_ros2_control/MujocoSystemInterface</plugin>
<param name="mujoco_model">$(find my_description)/description/scene.xml</param>
<!--
Optional parameter to load the PIDs that can be used with the actuators loaded with the MuJoCo model.
The velocity actuator supports position mode with the PID gains, and the rest of the actuation models
support both position and velocity mode provided the corresponding PID gains. The gains should be in ROS
parameters format to be loaded by the control_toolbox::PidROS class.
-->
<param name="pids_config_file">$(find my_description)/config/pids.yaml</param>
<!--
Optional parameter to override the speed scaling parameters from the Simulate App window
and just attempt to run at whatever the desired rate is here. This allows users to run the simulation
faster than real time. For example, at 500% speed as set here. If this param is omitted or set to
a value <0, then the simulation will run using the slowdown requested from the App.
-->
<param name="sim_speed_factor">5.0</param>
<!--
Optional parameter to use the keyframe from a provided file as the starting configuration. This is mutually exclusive with
the initial_value that can be used for state interfaces. This is intended to provide an alternative method to load an entire
mujoco model state from a configuration that was saved by clicking 'Copy state' in the simulate window, and pasted into a
config file. Expected use cases are to work on a specific part of an application that involves the environment being in a
very specific starting configuration. If this parameter is an empty string, it will be ignored.
-->
<param name="override_start_position_file">$(find my_description)/config/start_positions.xml</param>
<!--
Optional parameter to update the simulated camera's color and depth image publish rates. If no
parameter is set then all cameras will publish at 5 hz. Note that all cameras in the sim currently
publish at the same intervals.
-->
<param name="camera_publish_rate">6.0</param>
<!--
Optional parameter to update the simulated lidar sensor's scan message publish rates.
All lidar sensors in the simulation will be configured to publish these scan messages at the same rate.
-->
<param name="lidar_publish_rate">10.0</param>
<!--
The parameter headless can be used to choose whether to launch the MuJoCo simulator in headless mode or not.
By default, it is set to false
-->
<param name="headless">false</param>
</hardware>
...
File truncated at 100 lines see the full file
CONTRIBUTING
Repository Summary
| Checkout URI | https://github.com/ros-controls/mujoco_ros2_control.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2025-12-21 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| mujoco_ros2_control | 0.0.0 |
README
MuJoCo ros2_control Simulation
This package contains a ros2_control system interface for the MuJoCo Simulator. It was originally written for simulating robot hardware in NASA Johnson’s iMETRO facility.
The system interface wraps MuJoCo’s Simulate App to provide included functionality. Because the app is not bundled as a library, we compile it directly from a local install of MuJoCo.
Parts of this library are also based on the MoveIt mujoco_ros2_control package.
Installation
This interface has only been tested against ROS 2 jazzy and MuJoCo 3.4.0.
It should also be compatible with kilted and rolling, but we do not actively maintain those.
We assume all required ROS dependencies have been installed either manually or with rosdep.
For configuring MuJoCo, the included CMakeLists.txt will download and install the tarfile automatically. As long as users have a good network connection there should not be an issue.
However, a local install of MuJoCo can be used to build the application by setting the following environment variables,
# The tested version
MUJOCO_VERSION=3.4.0
# Wherever it was installed and extracted on your machine
MUJOCO_INSTALL_DIR=/opt/mujoco/mujoco-3.4.0
From there the library can be compiled with colcon build ..., as normal.
URDF Model Conversion
Mujoco does not support the full feature set of xacro/URDFs in the ROS 2 ecosystem. As such, users are required to convert any existing robot description files to an MJCF format. This includes adding actuators, sensors, and cameras as needed to the MJCF XML.
We have built a *highly experimental tool to automate URDF conversion. For more information refer to the documentation.
Hardware Interface Setup
Plugin
This application is shipped as a ros2_control hardware interface, and can be configured as such. Just specify the plugin and point to a valid MJCF on launch:
<ros2_control name="MujocoSystem" type="system">
<hardware>
<plugin>mujoco_ros2_control/MujocoSystemInterface</plugin>
<param name="mujoco_model">$(find my_description)/description/scene.xml</param>
<!--
Optional parameter to load the PIDs that can be used with the actuators loaded with the MuJoCo model.
The velocity actuator supports position mode with the PID gains, and the rest of the actuation models
support both position and velocity mode provided the corresponding PID gains. The gains should be in ROS
parameters format to be loaded by the control_toolbox::PidROS class.
-->
<param name="pids_config_file">$(find my_description)/config/pids.yaml</param>
<!--
Optional parameter to override the speed scaling parameters from the Simulate App window
and just attempt to run at whatever the desired rate is here. This allows users to run the simulation
faster than real time. For example, at 500% speed as set here. If this param is omitted or set to
a value <0, then the simulation will run using the slowdown requested from the App.
-->
<param name="sim_speed_factor">5.0</param>
<!--
Optional parameter to use the keyframe from a provided file as the starting configuration. This is mutually exclusive with
the initial_value that can be used for state interfaces. This is intended to provide an alternative method to load an entire
mujoco model state from a configuration that was saved by clicking 'Copy state' in the simulate window, and pasted into a
config file. Expected use cases are to work on a specific part of an application that involves the environment being in a
very specific starting configuration. If this parameter is an empty string, it will be ignored.
-->
<param name="override_start_position_file">$(find my_description)/config/start_positions.xml</param>
<!--
Optional parameter to update the simulated camera's color and depth image publish rates. If no
parameter is set then all cameras will publish at 5 hz. Note that all cameras in the sim currently
publish at the same intervals.
-->
<param name="camera_publish_rate">6.0</param>
<!--
Optional parameter to update the simulated lidar sensor's scan message publish rates.
All lidar sensors in the simulation will be configured to publish these scan messages at the same rate.
-->
<param name="lidar_publish_rate">10.0</param>
<!--
The parameter headless can be used to choose whether to launch the MuJoCo simulator in headless mode or not.
By default, it is set to false
-->
<param name="headless">false</param>
</hardware>
...
File truncated at 100 lines see the full file
CONTRIBUTING
Repository Summary
| Checkout URI | https://github.com/ros-controls/mujoco_ros2_control.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2025-12-21 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| mujoco_ros2_control | 0.0.0 |
README
MuJoCo ros2_control Simulation
This package contains a ros2_control system interface for the MuJoCo Simulator. It was originally written for simulating robot hardware in NASA Johnson’s iMETRO facility.
The system interface wraps MuJoCo’s Simulate App to provide included functionality. Because the app is not bundled as a library, we compile it directly from a local install of MuJoCo.
Parts of this library are also based on the MoveIt mujoco_ros2_control package.
Installation
This interface has only been tested against ROS 2 jazzy and MuJoCo 3.4.0.
It should also be compatible with kilted and rolling, but we do not actively maintain those.
We assume all required ROS dependencies have been installed either manually or with rosdep.
For configuring MuJoCo, the included CMakeLists.txt will download and install the tarfile automatically. As long as users have a good network connection there should not be an issue.
However, a local install of MuJoCo can be used to build the application by setting the following environment variables,
# The tested version
MUJOCO_VERSION=3.4.0
# Wherever it was installed and extracted on your machine
MUJOCO_INSTALL_DIR=/opt/mujoco/mujoco-3.4.0
From there the library can be compiled with colcon build ..., as normal.
URDF Model Conversion
Mujoco does not support the full feature set of xacro/URDFs in the ROS 2 ecosystem. As such, users are required to convert any existing robot description files to an MJCF format. This includes adding actuators, sensors, and cameras as needed to the MJCF XML.
We have built a *highly experimental tool to automate URDF conversion. For more information refer to the documentation.
Hardware Interface Setup
Plugin
This application is shipped as a ros2_control hardware interface, and can be configured as such. Just specify the plugin and point to a valid MJCF on launch:
<ros2_control name="MujocoSystem" type="system">
<hardware>
<plugin>mujoco_ros2_control/MujocoSystemInterface</plugin>
<param name="mujoco_model">$(find my_description)/description/scene.xml</param>
<!--
Optional parameter to load the PIDs that can be used with the actuators loaded with the MuJoCo model.
The velocity actuator supports position mode with the PID gains, and the rest of the actuation models
support both position and velocity mode provided the corresponding PID gains. The gains should be in ROS
parameters format to be loaded by the control_toolbox::PidROS class.
-->
<param name="pids_config_file">$(find my_description)/config/pids.yaml</param>
<!--
Optional parameter to override the speed scaling parameters from the Simulate App window
and just attempt to run at whatever the desired rate is here. This allows users to run the simulation
faster than real time. For example, at 500% speed as set here. If this param is omitted or set to
a value <0, then the simulation will run using the slowdown requested from the App.
-->
<param name="sim_speed_factor">5.0</param>
<!--
Optional parameter to use the keyframe from a provided file as the starting configuration. This is mutually exclusive with
the initial_value that can be used for state interfaces. This is intended to provide an alternative method to load an entire
mujoco model state from a configuration that was saved by clicking 'Copy state' in the simulate window, and pasted into a
config file. Expected use cases are to work on a specific part of an application that involves the environment being in a
very specific starting configuration. If this parameter is an empty string, it will be ignored.
-->
<param name="override_start_position_file">$(find my_description)/config/start_positions.xml</param>
<!--
Optional parameter to update the simulated camera's color and depth image publish rates. If no
parameter is set then all cameras will publish at 5 hz. Note that all cameras in the sim currently
publish at the same intervals.
-->
<param name="camera_publish_rate">6.0</param>
<!--
Optional parameter to update the simulated lidar sensor's scan message publish rates.
All lidar sensors in the simulation will be configured to publish these scan messages at the same rate.
-->
<param name="lidar_publish_rate">10.0</param>
<!--
The parameter headless can be used to choose whether to launch the MuJoCo simulator in headless mode or not.
By default, it is set to false
-->
<param name="headless">false</param>
</hardware>
...
File truncated at 100 lines see the full file