Replay & Render¶
Stage 2 of the decoupled whole-body control data pipeline: photorealistic replay and Isaac Sim rendering.
Once raw trajectories have been captured with
Teleoperation, pass them into the replay_decoupled_wbc
suite. With --sim-mode=mujoco_isaac the recorded actions are replayed in
MuJoCo while Isaac Sim is driven simultaneously as a synchronized rendering
engine. This turns the raw stream into a standard dataset in LeRobot format.
Example usage¶
# Ensure $TASK_NAME matches the task used during teleoperation
python -m simple.cli.replay_decoupled_wbc \
simple/$TASK_NAME \
--data-dir=data/teleop_decoupled_wbc/simple/$TASK_NAME/level-0/ \
--sim-mode=mujoco_isaac \
--no-headless \
--render-hz=50 \
--save-dir=data/replay_decoupled_wbc_output \
--record \
--resume \
--success-criteria=0.2
The replay-decoupled-wbc entry point runs the same command.
💡 Tip: If the replay success rate is low, try lowering
--success-criteriafirst.
Post-processing¶
To make the rendered data compatible with the Psi-0
training pipeline, run postprocess_psi0_sonic.py. It accepts wildcards (*)
so several replay sessions can be merged into one dataset.
python scripts/postprocess_psi0_sonic.py \
--sim-root="data/replay_decoupled_wbc_output*/simple/G1WholebodyPushOfficeChairTeleop-v0/level-0/" \
--out-dir=data/processed_psi0/G1WholebodyPushOfficeChairTeleop-v0 \
--skip=0 \
--total_episodes=100
Key arguments
--sim-root— input directory holding the generated dataset. Quote the value when using wildcards so the shell does not expand them early.--out-dir— output directory for the Psi-0 compatible dataset.--skip— number of initial frames to skip (useful to bypass static setup frames).--total_episodes— cap on the number of valid episodes to merge.