protomotions.simulator package#
Physics simulator interfaces providing unified API across different engines.
Simulator (Base Class)#
- class Simulator(
- config,
- robot_config,
- terrain,
- device,
- scene_lib,
- visualization_markers,
Base class for all physics simulators.
Provides unified interface for IsaacGym, IsaacLab, Genesis, and Newton engines. Handles robot spawning, environment setup, scene management, terrain integration, and state management.
Key Responsibilities:
Environment setup and robot spawning
State management with unified RobotState format
PD control and direct torque control
Visualization markers
Data conversion between simulator orderings
- Parameters:
config – SimulatorConfig (num_envs, physics params)
robot_config – Robot morphology and control
terrain – Optional terrain for complex surfaces
device – PyTorch device
scene_lib – Optional scene library
visualization_markers – Optional markers
Key Methods:
reset()- Reset simulationstep(actions)- Step physics with actionsget_robot_state()- Get current robot stateset_robot_state(state)- Set robot state
Example:
sim = IsaacGymSimulator(config, robot_config, device=device) sim.reset() for _ in range(1000): actions = policy(sim.robot_state) sim.step(actions)
IsaacGym Simulator#
- class IsaacGymSimulator(
- config,
- robot_config,
- terrain,
- device,
- scene_lib,
- visualization_markers,
Simulator implementation using NVIDIA IsaacGym.
Provides GPU-accelerated physics simulation optimized for RL training. Fastest simulator option for parallel environment simulation.
- Parameters:
config – Simulator configuration
robot_config – Robot configuration
terrain – Optional terrain
device – PyTorch device
scene_lib – Optional scene library
visualization_markers – Optional markers
IsaacLab Simulator#
- class IsaacLabSimulator(
- config,
- robot_config,
- terrain,
- device,
- scene_lib,
- visualization_markers,
Simulator implementation using NVIDIA IsaacLab (Isaac Sim).
Provides GPU-accelerated physics with photorealistic rendering. Supports USD assets, advanced materials, and ray tracing.
- Parameters:
config – Simulator configuration
robot_config – Robot configuration
terrain – Optional terrain
device – PyTorch device
scene_lib – Optional scene library
visualization_markers – Optional markers
Features:
Photorealistic rendering
USD asset pipeline
Advanced materials and lighting
Camera sensors
Genesis Simulator#
- class GenesisSimulator(
- config,
- robot_config,
- terrain,
- device,
- scene_lib,
- visualization_markers,
Simulator implementation using Genesis physics engine.
Modern physics engine for robotics and animation.
- Parameters:
config – Simulator configuration
robot_config – Robot configuration
terrain – Optional terrain
device – PyTorch device
scene_lib – Optional scene library
visualization_markers – Optional markers
Newton Simulator#
- class NewtonSimulator(
- config,
- robot_config,
- terrain,
- device,
- scene_lib,
- visualization_markers,
Simulator implementation using Newton physics engine.
High-performance physics engine built on NVIDIA Warp for fast parallel simulation.
- Parameters:
config – Simulator configuration
robot_config – Robot configuration
terrain – Optional terrain
device – PyTorch device
scene_lib – Optional scene library
visualization_markers – Optional markers
Features:
Very fast simulation performance
Built on NVIDIA Warp for GPU acceleration
Efficient parallel environment execution
Modern Python-based architecture