Skip to main content

Configuration Overview

Teleopit uses Hydra for composable configuration. Most entry points start from a top-level YAML and allow command-line overrides.

Runtime assembly is centralized in teleopit/runtime/. Scripts, TeleopPipeline, and the sim2real state machine all share the same path resolution, default propagation, and dimension validation logic.

Top-Level Configs

ConfigUse Case
teleopit/configs/default.yamlOffline sim2sim (BVH playback)
teleopit/configs/pico4_sim.yamlPico 4 VR sim2sim
teleopit/configs/sim2real.yamlBVH sim2real on Unitree G1
teleopit/configs/pico4_sim2real.yamlPico 4 VR sim2real on Unitree G1
teleopit/configs/onboard_sim2real.yamlOnboard NX sim2real (ZMQ + Pico 4)

These compose sub-configs:

  • teleopit/configs/robot/g1.yaml
  • teleopit/configs/controller/rl_policy.yaml
  • teleopit/configs/input/bvh.yaml — offline BVH input
  • teleopit/configs/input/pico4.yaml — Pico 4 direct input
  • teleopit/configs/input/zmq_pico4.yaml — Pico 4 via ZMQ (onboard)

Override Examples

Basic Sim2Sim

python scripts/run/run_sim.py \
controller.policy_path=policy.onnx \
input.bvh_file=data/sample_bvh/aiming1_subject1.bvh \
policy_hz=50 \
pd_hz=200

Change Viewers

python scripts/run/run_sim.py controller.policy_path=policy.onnx viewers=all
python scripts/run/run_sim.py controller.policy_path=policy.onnx viewers=none
python scripts/run/run_sim.py controller.policy_path=policy.onnx 'viewers=[retarget,sim2sim]'

Enable Keyboard Playback

python scripts/run/run_sim.py \
controller.policy_path=policy.onnx \
input.bvh_file=data/sample_bvh/aiming1_subject1.bvh \
playback.keyboard.enabled=true

Change Network Interface (sim2real)

python scripts/run/run_sim2real.py \
controller.policy_path=policy.onnx \
real_robot.network_interface=enp3s0

Design Principle: Fail-Fast

Teleopit does not silently fix misconfigurations:

  • Wrong policy dimensions -> error
  • Observation definition mismatch -> error
  • Missing required paths -> error
  • Using deprecated config key viewer -> error
  • No auto-padding/trimming of observations

When you encounter a configuration error, look for which two components have inconsistent definitions.

For the complete field reference, see Config Reference.