Implementation:ARISE Initiative Robosuite Make
Metadata
| Property | Value |
|---|---|
| Sources | robosuite |
| Domains | Robotics_Simulation, Software_Architecture |
| Last Updated | 2026-02-15 12:00 GMT |
Overview
Concrete factory function for instantiating robosuite simulation environments by name provided by the robosuite environments module.
Description
The robosuite.make() function creates simulation environments by looking up env_name in REGISTERED_ENVS and instantiating the matched class. Supports all MujocoEnv keyword arguments including robot selection, controller configuration, rendering options, and simulation parameters.
Usage
Import and call as the primary way to create any robosuite environment. Accepts environment name plus configuration kwargs.
Code Reference
| Property | Value |
|---|---|
| Source | robosuite |
| File | robosuite/environments/base.py |
| Lines | L23-42 (re-exported at robosuite/__init__.py) |
| Import | import robosuite then robosuite.make(...) or from robosuite import make
|
Signature
def make(env_name, *args, **kwargs):
"""
Instantiates a robosuite environment.
Args:
env_name (str): Name of the robosuite environment to initialize
*args: Additional arguments
**kwargs: Additional keyword arguments
Returns:
MujocoEnv: Desired robosuite environment
Raises:
Exception: [Invalid environment name]
"""
I/O Contract
Inputs
| Parameter | Type | Required | Description |
|---|---|---|---|
| env_name | str | Yes | Registered environment name (e.g., "Lift", "Stack", "NutAssembly") |
| robots | str or list | No | Robot name(s) to use (e.g., "Panda", ["Panda", "Sawyer"]) |
| controller_configs | dict | No | Controller configuration from load_composite_controller_config |
| has_renderer | bool | No | Enable on-screen rendering (default: False) |
| has_offscreen_renderer | bool | No | Enable off-screen rendering (default: True) |
| use_camera_obs | bool | No | Include camera images in observations (default: False) |
| control_freq | int | No | Controller frequency in Hz (default: 20) |
| horizon | int | No | Maximum episode steps (default: 1000) |
| hard_reset | bool | No | Full model reload on reset (default: True) |
| reward_shaping | bool | No | Use dense rewards instead of sparse (default: False) |
Outputs
| Return Value | Type | Description |
|---|---|---|
| Environment instance | MujocoEnv | Task-specific subclass instance (e.g., Lift, Stack, NutAssembly) |
Usage Examples
Basic Example
Creating a basic Lift environment with a Panda robot:
import robosuite as suite
# Create environment with default settings
env = suite.make(
env_name="Lift",
robots="Panda",
has_renderer=True,
has_offscreen_renderer=False,
use_camera_obs=False,
)
# Reset environment
obs = env.reset()
# Execute actions
for i in range(1000):
action = env.action_spec[0].sample()
obs, reward, done, info = env.step(action)
env.render()
if done:
obs = env.reset()
env.close()
Advanced Example
Creating an environment with full configuration including custom controller:
import robosuite as suite
from robosuite.controllers import load_composite_controller_config
# Load controller configuration
controller_config = load_composite_controller_config(
controller="OSC_POSE",
robot="Panda"
)
# Create environment with advanced settings
env = suite.make(
env_name="Stack",
robots=["Panda", "Sawyer"], # Multi-robot setup
controller_configs=controller_config, # Custom controller
has_renderer=True, # On-screen rendering
has_offscreen_renderer=True, # Off-screen rendering
use_camera_obs=True, # Include camera observations
camera_names=["agentview", "robot0_eye_in_hand"],
camera_heights=256,
camera_widths=256,
control_freq=20, # 20 Hz control
horizon=1000, # 1000 steps per episode
reward_shaping=True, # Dense rewards
hard_reset=False, # Faster resets
)
# Reset and get observation
obs = env.reset()
# Observation dictionary contains:
# - Robot joint positions and velocities
# - Object positions and orientations
# - Camera images (if use_camera_obs=True)
print("Observation keys:", obs.keys())
# Step through environment
action = env.action_space.sample()
obs, reward, done, info = env.step(action)
env.close()
Querying Available Environments
from robosuite import ALL_ENVIRONMENTS
# List all registered environments
print("Available environments:")
for env_name in ALL_ENVIRONMENTS:
print(f" - {env_name}")
# Output:
# - Lift
# - Stack
# - NutAssembly
# - PickPlace
# - Door
# - Wipe
# - TwoArmLift
# - ...