跳到主要内容

Run External Policies

sim2real 的模块化设计允许同一套 runtime 执行不同的 tracking policy,只要这个 policy 提供兼容的 deploy YAML 和 ONNX model。我们已经把几个外部工作转换成了这个 格式,所以多数情况下可以保持正常部署命令不变,只把 --policy-config 换成对应 policy YAML。

已转换 Checkpoints

先下载共享的 sim2real artifacts 目录,然后把下面任意 checkpoint 路径作为 --policy-config 使用。

PolicyCheckpoint YAMLNotes
MimicLite-ROAcheckpoints/mimic-lite/roa/policy.yaml最新 16x16384 PPO-ROA student release。
MimicLite-PPOcheckpoints/mimic-lite/ppo/policy.yaml最新 16x16384 Huge PPO release。
HEFT PMGcheckpoints/heft/pmg/policy.yaml正常 G1 motion stream。
HEFT Compliancecheckpoints/heft/compliance/policy.yaml正常 G1 motion stream;observation 里 compliance flag 固定为 off。
HoloMotion v1.4.0checkpoints/holomotion/v1_4_0/policy.yaml需要官方 1.64 GB ONNX artifact。
SONIC release G1checkpoints/sonic/release/g1/policy.yaml正常 G1 motion stream。
SONIC release SMPLcheckpoints/sonic/release/smpl/policy.yaml使用 motion_backend: smpl_zmq 和 SMPL publisher。
SONIC low-latency G1checkpoints/sonic/low_latency/g1/policy.yaml使用低延迟 checkpoint 的正常 G1 motion stream。
SONIC low-latency SMPLcheckpoints/sonic/low_latency/smpl/policy.yaml使用四帧 SMPL 输入窗口。
SONIC v1.1 G1checkpoints/sonic/v1_1/g1/policy.yaml使用 heading-normalized reference orientation 的 G1 motion stream。
GRIT v0.0.1checkpoints/grit/v0_0_1/policy.yaml九帧参考上下文和十帧本体感知历史。
ScaleBFM XLcheckpoints/scalebfm/humanoid_transformer_xl/policy.yaml正常 G1 motion stream。
ScaleBFM Mcheckpoints/scalebfm/humanoid_transformer_m/policy.yaml正常 G1 motion stream。
BFM-Zerocheckpoints/bfm-zero/exp_lafan40-100style_update_z10/policy.yamlZMQ publisher 需要传 checkpoint 对应的 MJCF override。
TeleopITcheckpoints/teleopit/policy.yaml正常 G1 motion stream。
Humanoid-GPTcheckpoints/humanoid-gpt/policy.yaml正常 G1 motion stream。
TWIST2checkpoints/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 表现很好。