Extension Configuration

The extension block declares extension instances via extension_cfg_dict. Each extension is identified by its key name.

Common Fields

FieldTypeDescription
stereotypestrExtension type: data_collect, record, replay, server, benchmark, teleop, pipeline, snapshot, task_executor, domain_randomization, ros_bridge
enableboolWhether to auto-enable at startup

data_collect

Registers observers to collect scene data (RGB, depth, joint states, poses).

record

Depends on data_collect. Async frame writing with post-processing (HDF5, video via ffmpeg/nvenc). Supports S3 storage backend.

replay

Loads trajectories from record.h5 and replays them in simulation.

server

Flask HTTP server exposing @apiclass controller methods as REST endpoints.

benchmark

Episode-based policy evaluation with goal condition checking.

teleop

Real-time teleoperation from multiple input devices (keyboard, SpaceMouse, web, GELLO, VR). Configurable control frequency and modes.

yaml
teleop:
  stereotype: teleop
  enable: true
  control_frequency: 30.0
  drivers:
    - stereotype: keyboard
      name: kb_driver
  targets:
    - driver_name: kb_driver
      robot_name: my_robot
      control_mode: ee_delta

pipeline

Batch execution of multiple config files (jobs) in a single session.

yaml
pipeline:
  stereotype: pipeline
  enable: true
  job_list_path: ./pipeline_jobs.json
  stop_on_failure: false

snapshot

Save/restore simulation state as .npz files.

yaml
snapshot:
  stereotype: snapshot
  enable: true
  snapshot_path: ./snapshots/checkpoint.npz

task_executor

Automatic task execution in controller thread with optional debugging and snapshot restore.

yaml
task_executor:
  stereotype: task_executor
  enable: true
  stop_sim_on_task_end: true
  debug: false

domain_randomization

Per-episode scene randomization (pose, lighting, texture, physics parameters).