Motion Recording
This tutorial records the retargeted G1 motion stream published by sim2real/teleop/pico_retarget_pub.py and saves it as an any4hdmi qpos motion clip.
1. Start the live publisher
uv --project venv/teleop run sim2real/teleop/pico_retarget_pub.py \
--bind tcp://*:28701 \
--publish_hz 50 \
--actual_human_height 1.80
2. Record the motion stream
uv --project venv/teleop run sim2real/teleop/record_motion.py \
--connect tcp://127.0.0.1:28701
Press Ctrl-C to stop recording and write the dataset.
Output
By default, the recorder creates a timestamped directory such as g1_motion_YYYYMMDD_HHMMSS/ and writes:
motion.npz- the single-motion dataset payload
- the generated manifest
The terminal prints the final output directory, frame count, invalid frame count, and inferred FPS.
3. Optional: replay the saved motion in the realtime viewer
uv --project venv/teleop run sim2real/teleop/realtime_viewer.py \
--motion_backend npz \
--motion_path g1_motion_YYYYMMDD_HHMMSS/motion.npz