Environment:ARISE Initiative Robomimic Robosuite Simulation Backend
| Knowledge Sources | |
|---|---|
| Domains | Infrastructure, Robot_Learning, Simulation |
| Last Updated | 2026-02-15 07:30 GMT |
Overview
Robosuite v1.2+ simulation environment with MuJoCo physics backend, EGL GPU rendering, and optional MimicGen/RoboCasa environment extensions.
Description
Robosuite is the primary simulation backend for robomimic. It provides standardized robotic manipulation environments built on the MuJoCo physics engine. The robomimic wrapper (`EnvRobosuite`) supports multiple robosuite versions with version-specific code paths: v0.3 (legacy), v1.2-v1.4, and v1.5+ (latest). For offscreen rendering (required for image observations), the `egl_probe` package detects available GPU devices and assigns the correct `render_gpu_device_id`. Optional extensions include MimicGen (procedural task generation), RoboCasa (kitchen environments), and MimicLabs.
Usage
Use this environment for training with robosuite tasks, extracting observations from simulation states, and evaluating trained policies via rollouts. Required whenever the dataset `env_type` is `ROBOSUITE_TYPE`. Not needed for D4RL or Gym-based experiments.
System Requirements
| Category | Requirement | Notes |
|---|---|---|
| OS | Mac OS X or Linux | Linux recommended for GPU rendering |
| Physics | MuJoCo (bundled with robosuite) | No separate MuJoCo license needed for v2.0+ |
| Hardware | NVIDIA GPU for offscreen rendering | EGL rendering requires GPU; CPU rendering available but slow |
| Disk | 5GB+ | Robosuite models and assets |
Dependencies
System Packages
- `egl_probe` >= 1.0.1 (GPU device detection for offscreen rendering)
Python Packages
- `robosuite` >= 1.2 (v1.5.1 recommended for reproducing paper experiments)
- `egl_probe` >= 1.0.1
- `numpy` >= 1.13.3
Optional Extensions
- `mimicgen` — MimicGen task environments
- `mimicgen_envs` — Deprecated MimicGen package
- `robocasa` — RoboCasa kitchen environments
- `mimiclabs` — MimicLabs environments
- `mujoco_py` — Legacy MuJoCo Python bindings (for robosuite v0.3)
Credentials
No credentials required for the simulation backend.
Quick Install
# Install robosuite from source (recommended)
git clone https://github.com/ARISE-Initiative/robosuite.git
cd robosuite
pip install -r requirements.txt
# For reproducing paper experiments, use v1.5.1
git checkout v1.5.1
# Or install via pip
pip install robosuite
Code Evidence
Version assertion from `robomimic/envs/env_robosuite.py:80-82`:
self._is_v1 = (robosuite.__version__.split(".")[0] == "1")
if self._is_v1:
assert (int(robosuite.__version__.split(".")[1]) >= 2), "only support robosuite v0.3 and v1.2+"
EGL GPU device selection from `robomimic/envs/env_robosuite.py:99-106`:
if self._is_v1:
if kwargs["has_offscreen_renderer"]:
# NOTE: this package should be installed from this link (https://github.com/StanfordVL/egl_probe)
import egl_probe
valid_gpu_devices = egl_probe.get_available_devices()
if len(valid_gpu_devices) > 0:
kwargs["render_gpu_device_id"] = valid_gpu_devices[0]
Optional extension imports from `robomimic/envs/env_robosuite.py:12-31`:
try:
import mimicgen
except ImportError:
pass
try:
import robocasa
except ImportError:
pass
try:
from mimiclabs.mimiclabs.envs import *
except ImportError:
pass
try:
import mujoco_py
MUJOCO_EXCEPTIONS = [mujoco_py.builder.MujocoException]
except ImportError:
MUJOCO_EXCEPTIONS = []
Version-specific behavior from `robomimic/envs/env_robosuite.py:189-195`:
robosuite_version_id = int(robosuite.__version__.split(".")[1])
if robosuite_version_id <= 3:
from robosuite.utils.mjcf_utils import postprocess_model_xml
xml = postprocess_model_xml(state["model"])
else:
# v1.4 and above use the class-based edit_model_xml function
xml = self.env.edit_model_xml(state["model"])
Common Errors
| Error Message | Cause | Solution |
|---|---|---|
| `AssertionError: only support robosuite v0.3 and v1.2+` | Robosuite version between v1.0 and v1.1 | Upgrade to robosuite >= 1.2 |
| `ImportError: No module named 'egl_probe'` | egl_probe not installed | `pip install egl_probe>=1.0.1` |
| `ImportError: No module named 'robosuite'` | Robosuite not installed | Install robosuite via pip or from source |
| Offscreen rendering produces black images | EGL device not detected | Ensure NVIDIA drivers installed and `egl_probe.get_available_devices()` returns devices |
Compatibility Notes
- Robosuite v0.3: Legacy support. Uses `postprocess_model_xml` for XML handling. Single camera only. Uses `mujoco_py` backend.
- Robosuite v1.2-v1.4: Supported. Multi-camera support. Uses `edit_model_xml` class method. Observable-based API.
- Robosuite v1.5+: Full support with `ep_meta` (episode metadata), `set_ep_meta`/`unset_ep_meta` features for RoboCasa-style environments.
- Multiprocessing: The `dataset_states_to_obs_mp.py` script distributes GPU IDs across processes via `CUDA_VISIBLE_DEVICES` and `MUJOCO_EGL_DEVICE_ID` environment variables.