Tools that combine the MuJoCo simulator with ROS. Meant to recreate a base port of gazebo_ros_pkgs for MuJoCo.
This is a ROS software Project that wraps the MuJoCo physics engine into a ROS package. It is an extension of the MuJoCo simulate program, with ROS integration and the possibility to load plugins via pluginlib.
This project is mainly built for Ubuntu Focal with ROS Noetic. But we are working on adaptations for more recent Ubuntu systems with ROS One and Humble (ROS 2).
service | Noetic / One | Humble (coming soon) |
---|---|---|
GitHub | - | |
CodeCov | - |
- Make sure MuJoCo is installed (the current build uses version 3.2.0) and runs on your machine.
- Create a new ROS workspace or include this repository into an existing workspace.
- Before building, make sure that your compiler knows where to find the MuJoCo library, e.g. by running
export MUJOCO_DIR=PATH/TO/MUJOCO/DIR
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$MUJOCO_DIR/lib
export LIBRARY_PATH=$LIBRARY_PATH:$MUJOCO_DIR/lib
where PATH/TO/MUJOCO/DIR
is ~/.mujoco/mujoco-3.2.0
if you used the recommended location to install mujoco (if downloaded as tarball). If you built MuJoCo from source and the install path is known to catkin, you can skip this step.
- Build with
catkin_build
,catkin b
orcolcon build
. - Source your workspace and try
roslaunch mujoco_ros launch_server.launch use_sim_time:=true
to test if it runs.
Warning To prevent action servers ignoring actions for a limited time after resetting the simulation, until ros/actionlib#203 is merged, you need to build the PR branch and any packages implementing action servers (like MoveIt) yourself.
As an example for extended functionality through plugins, take a look at mujoco_ros_control, mujoco_screw_plugin, mujoco_contact_surfaces or mujoco_ros_sensors.
We provide some code examples in our demo repository
We are currently working on setting up more detailed documentation including tutorials and guides. The current prototype can be found here (though note that this will migrate once its ready for an initial proper release).
Some more structural and configuration info, which is not yet included in the documentation, can be found here.
This work is licensed under the BSD 3-Clause License (see LICENSE). It is built on top of MuJoCo, which was released under an Apache 2.0 License. For the original MuJoCo and further third party licenses, see THIRD_PARTY_NOTICES.