An Unreal Engine 5 plugin that runs MuJoCo physics inside the editor and runtime, pairing accurate contact dynamics with Unreal's rendering.
hello-robot/stretch_mujoco
A MuJoCo-based simulation stack for the Hello Robot Stretch mobile manipulator, with joint and base control, camera and lidar data.
- Stars
- 70
- Forks
- 29
- Open issues
- 19
- Last commit
- 30 days ago
What is it?
stretch_mujoco is a Python simulation stack for the Stretch mobile manipulator from Hello Robot, built on the MuJoCo physics engine. It supports position control for the arm, head, and gripper joints, velocity control for the mobile base, calibrated RGB and depth camera imagery, and 2D spinning lidar scans. A visualizer with user interaction is available, along with a headless mode for more efficient runs.
The library exposes a StretchMujocoSimulator class for starting the simulation, commanding joints and base, and reading joint states and camera frames. Advanced users can access the underlying MuJoCo model and data directly. A ROS2 package built on the library works with Nav2 and web teleoperation, and the project includes keyboard and gamepad teleop examples.
The repository also includes a generator for Robocasa kitchen environments, which lets Stretch be spawned into many kitchen layouts and styles.
Key features
- 01Position control for arm, head, and gripper joints.
- 02Velocity control for the mobile base.
- 03Calibrated RGB and depth camera imagery plus 2D lidar scans.
- 04Interactive visualizer and a headless mode.
- 05ROS2 package integration with Nav2 and web teleop.
- 06Robocasa kitchen scene generation.
Use cases
- Developing and testing navigation or manipulation code before running on a physical Stretch.
- Training or evaluating perception pipelines with simulated RGB, depth, and lidar data.
- Prototyping teleoperation interfaces with keyboard or gamepad control.
- Running robot tasks in procedurally generated kitchen environments.
Quick start
- 1
Install uv, the package manager used to run the project
- 2
Clone the repo with submodules
git clone https://github.com/hello-robot/stretch_mujoco --recurse-submodules - 3
Enter the project directory
cd stretch_mujoco - 4
Run the simulation
uv run launch_sim
Things to know
- Requires the MuJoCo viewer setup, and macOS users may need extra library symlink steps for mjpython.
- Robocasa kitchen scenes need an additional setup and asset download step.
In collections
Topics
FAQ
- What is stretch_mujoco?
- A MuJoCo-based simulation stack for the Hello Robot Stretch mobile manipulator, with joint and base control, camera and lidar data. stretch_mujoco is a Python simulation stack for the Stretch mobile manipulator from Hello Robot, built on the MuJoCo physics engine. It supports position control for the arm, head, and gripper joints, velocity control for the mobile base, calibrated RGB and depth camera imagery, and 2D spinning lidar scans. A visualizer with user interaction is available, along with a headless mode for more efficient runs.
- Is stretch_mujoco free to use? What license does it have?
- stretch_mujoco is open source under the BSD-3-Clause-Clear license. Check the license terms before using it in commercial products.
- Is stretch_mujoco still maintained?
- Actively maintained. The last commit to stretch_mujoco was on Oct 7, 2026.
- What can I use stretch_mujoco for?
- Developing and testing navigation or manipulation code before running on a physical Stretch. Training or evaluating perception pipelines with simulated RGB, depth, and lidar data. Prototyping teleoperation interfaces with keyboard or gamepad control. Running robot tasks in procedurally generated kitchen environments.
- How do I install stretch_mujoco?
- Install uv, the package manager used to run the project Clone the repo with submodules: git clone https://github.com/hello-robot/stretch_mujoco --recurse-submodules Enter the project directory: cd stretch_mujoco Run the simulation: uv run launch_sim
- Where can I get stretch_mujoco?
- The source code and installation instructions are on GitHub: https://github.com/hello-robot/stretch_mujoco
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
A ROS 2 Humble integration for the Franka Emika Panda arm that runs the same ros2_control controllers on real robots and in MuJoCo simulation.
A 2D mobile robot simulator in Python for prototyping robot behaviors, with an optional ROS 2 interface.
A general-purpose physics engine for fast, accurate simulation of articulated bodies in contact, widely used in robotics and machine learning research.
Open-source robot simulator for modeling, programming and simulating robots, vehicles and mechanical systems.
An open-source, engine-independent simulator for drones, fixed-wing aircraft and ground vehicles, with optional Unreal Engine 5 rendering.