Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

298 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MuJoCo ros2_control

Rdev Kdev Jdev Hdev CI License Codecov

This repository provides a ros2_control system interface and supporting packages to run ROS 2 controllers against the MuJoCo physics simulator.

This project wraps MuJoCo as a hardware/system interface so you can use the ros2_control stack (controller manager, controllers, controller interfaces) against simulated robots based on MJCF or generated from URDF.

Contents

  • mujoco_ros2_control - core system interface plugin and resources
  • mujoco_ros2_control_msgs - message/service definitions used by the plugin
  • mujoco_ros2_control_plugins - optional plugins that extend simulation capabilities
  • mujoco_ros2_control_demos - demo launch files, configs and example robots
  • mujoco_ros2_control_tests - integration / launch tests and simple examples
  • docker/ - Dockerfiles and scripts to run CI/containers

Key features

  • Full ros2_control SystemInterface plugin for MuJoCo
  • MJCF/URDF conversion utilities to auto-generate MuJoCo models
  • Optional plugin system for extending simulation with custom publishers and services
  • Example demos showing basic control, PID and transmission setups

Quick start

There are two common ways to get running: build from source (recommended) or install prebuilt binaries (if available for your distribution).

  • Build from source (recommended)

    1. Install required dependencies manually or from rosdep, including the mujoco_vendor package which provides the base MuJoCo install.

    2. Build the workspace (example with a sourced ROS 2 installation):

    # from workspace root (this repository is typically inside a ROS 2 workspace)
    colcon build --symlink-install --packages-select mujoco_ros2_control* \
      --cmake-args -DCMAKE_BUILD_TYPE=Release
    1. Source the workspace and run a demo:
    source install/setup.bash
    ros2 launch mujoco_ros2_control_demos demo.launch.py
  • Install prebuilt binaries (if available)

    If your ROS 2 distribution or your OS package index provides prebuilt packages for mujoco_ros2_control, you can install those instead of compiling from source. Check your distribution's package repositories or the project's GitHub releases for available binary artifacts.

    Example (Debian/Ubuntu with ROS packages — replace <distro>):

    sudo apt update
    sudo apt install ros-<distro>-mujoco-ros2-control

    After installing binaries, source your ROS install and run a demo:

    source /opt/ros/<distro>/setup.bash
    ros2 launch mujoco_ros2_control_demos demo.launch.py

See mujoco_ros2_control/README.md for detailed usage, configuration examples and mappings between MJCF actuators/sensors and ros2_control interfaces.

Supported ROS 2 distributions

  • The project is developed and tested against multiple ROS 2 distributions. This README includes basic notes for: Humble, Kilted, Jazzy and Rolling.

Support matrix

Distribution Status
Humble Supported
Kilted Supported
Jazzy Supported
Rolling Supported (development)

Contributing

  • Contributions, bug reports and feature requests are welcome. Please follow standard ROS Controls project workflows: open issues, send PRs against the main branch and respect the repository code style using pre-commit.

License & maintainers

  • This repository is distributed under the terms of the LICENSE file (LICENSE). Maintainers and authors are listed in the Git history and package manifests (package.xml) inside each package.

About

ROS2 control package for Mujoco simulation physics simulator, including plugins for various sensors, RGB-D cameras, and lidar.

Topics

Resources

Contributing

Stars

227 stars

Watchers

10 watching

Forks

Releases

Packages

Contributors

Languages