Run External Policies
sim2real 的模块化设计允许同一套 runtime 执行不同的 tracking policy,只要这个
policy 提供兼容的 deploy YAML 和 ONNX model。我们已经把几个外部工作转换成了这个
格式,所以多数情况下可以保持正常部署命令不变,只把 --policy-config 换成对应
policy YAML。
已转换 Checkpoints
先下载共享的
sim2real artifacts
目录,然后把下面任意 checkpoint 路径作为 --policy-config 使用。
| Policy | Checkpoint YAML | Notes |
|---|---|---|
| MimicLite-ROA | checkpoints/mimic-lite/roa/policy.yaml | 最新 16x16384 PPO-ROA student release。 |
| MimicLite-PPO | checkpoints/mimic-lite/ppo/policy.yaml | 最新 16x16384 Huge PPO release。 |
| HEFT PMG | checkpoints/heft/pmg/policy.yaml | 正常 G1 motion stream。 |
| HEFT Compliance | checkpoints/heft/compliance/policy.yaml | 正常 G1 motion stream;observation 里 compliance flag 固定为 off。 |
| HoloMotion v1.4.0 | checkpoints/holomotion/v1_4_0/policy.yaml | 需要官方 1.64 GB ONNX artifact。 |
| SONIC release G1 | checkpoints/sonic/release/g1/policy.yaml | 正常 G1 motion stream。 |
| SONIC release SMPL | checkpoints/sonic/release/smpl/policy.yaml | 使用 motion_backend: smpl_zmq 和 SMPL publisher。 |
| SONIC low-latency G1 | checkpoints/sonic/low_latency/g1/policy.yaml | 使用低延迟 checkpoint 的正常 G1 motion stream。 |
| SONIC low-latency SMPL | checkpoints/sonic/low_latency/smpl/policy.yaml | 使用四帧 SMPL 输入窗口。 |
| SONIC v1.1 G1 | checkpoints/sonic/v1_1/g1/policy.yaml | 使用 heading-normalized reference orientation 的 G1 motion stream。 |
| GRIT v0.0.1 | checkpoints/grit/v0_0_1/policy.yaml | 九帧参考上下文和十帧本体感知历史。 |
| ScaleBFM XL | checkpoints/scalebfm/humanoid_transformer_xl/policy.yaml | 正常 G1 motion stream。 |
| ScaleBFM M | checkpoints/scalebfm/humanoid_transformer_m/policy.yaml | 正常 G1 motion stream。 |
| BFM-Zero | checkpoints/bfm-zero/exp_lafan40-100style_update_z10/policy.yaml | ZMQ publisher 需要传 checkpoint 对应的 MJCF override。 |
| TeleopIT | checkpoints/teleopit/policy.yaml | 正常 G1 motion stream。 |
| Humanoid-GPT | checkpoints/humanoid-gpt/policy.yaml | 正常 G1 motion stream。 |
| TWIST2 | checkpoints/twist2/policy.yaml | 正常 G1 motion stream。 |
uv run sim2real/rl_policy/tracking.py \
--robot-io inline \
--motion-backend zmq \
--controller pico \
--policy-config checkpoints/heft/pmg/policy.yaml
这适用于普通 G1 tracking policy,也就是消费正常 G1 motion stream 的 policy, 例如 HEFT、TeleopIT、Humanoid-GPT、ScaleBFM、HoloMotion,以及普通 any4hdmi / SONIC G1 motion policy。
Policy 特殊运行条件
少数 adapted policy 需要不同的 motion source 或额外 runtime asset。
HoloMotion v1.4.0
直接下载官方 ONNX,不要修改文件:
mkdir -p checkpoints/holomotion/v1_4_0
wget -O checkpoints/holomotion/v1_4_0/policy.onnx \
https://huggingface.co/HorizonRobotics/HoloMotion_models/resolve/main/HoloMotion_motion_tracking_model_v1.4.0/exported/model_14000.onnx
预期 SHA-256 为
859174937272747e762075db482e2b8d05d40dacb3a09884fc9d7d42086bbffe。
BFM-Zero
BFM-Zero 的 motion observation 里用 MuJoCo FK,所以需要使用它 checkpoint 对应的 MJCF。direct NPZ playback 时,这个路径写在 policy YAML 里;如果通过 ZMQ publisher 发 motion,就把同一个 MJCF override 传给 publisher。
BFM-Zero 计算量较大。CUDA ONNX Runtime 可用时,policy 推理建议使用
--inference_backend onnx-gpu。只有目标机器没有可用 GPU provider 时,才使用
onnx-cpu 作为兼容 fallback。
uv run sim2real/rl_policy/tracking.py \
--policy_config checkpoints/bfm-zero/exp_lafan40-100style_update_z10/policy.yaml \
--inference_backend onnx-gpu
uv run sim2real/teleop/npz_pub.py \
--motion_path ../any4hdmi/output/g1/lafan/motions/walk1_subject1.npz \
--mjcf-path checkpoints/bfm-zero/exp_lafan40-100style_update_z10/mjcf/g1_for_reward_inference.xml
uv run --project venv/pico sim2real/teleop/pico_retarget_pub.py \
--mjcf-path checkpoints/bfm-zero/exp_lafan40-100style_update_z10/mjcf/g1_for_reward_inference.xml
SONIC SMPL Mode
SONIC SMPL mode 不是普通的 G1 motion_backend=zmq stream。使用 SONIC SMPL
policy config,保留它的 motion_backend: smpl_zmq 设置;或者启动 policy 时显式传
--motion-backend smpl_zmq。这条链路需要 SMPL/XRobot publisher。
最简单的 sim2sim Pico 测试:
uv run --project venv/pico sim2real/teleop/pico_retarget_pub.py --publish-smpl
uv run sim2real/sim_env/base_sim.py --robot g1
uv run sim2real/rl_policy/tracking.py \
--robot g1 \
--policy-config checkpoints/sonic/release/smpl/policy.yaml \
--inference-backend onnx-cpu \
--robot-io zmq \
--controller pico
数据 contract 见 SONIC SMPL Input。
真机测试记录
当前 G1 真机测试记录:
- BFM-Zero 可以正常跑,但需要注意传 MJCF override。
- TeleopIT 走路表现不错,但观察到关节会有剧烈响动,双膝跪地目前不可靠;这块先按 deploy infra / policy compatibility 问题处理。
- HEFT 有轻微响动,但整体 tracking 表现很好。