独立站立测试
在接入完整 sim2real 控制之前,如果正在调试新机器人、网络配置或 policy,先运行此测试。 它不使用 Pico、BVH 回放、retargeting,也不走完整 mocap pipeline,只验证 G1 bridge 和 sim2real 使用的同一条 RL standing 路径。
G1 LowState -> standing observation -> RL policy -> G1 LowCmd targets
何时使用
适合在以下场景使用 standalone 测试:
- 正在设置新的 wired 或 onboard G1 部署
run_sim2real.py涉及的组件太多,不适合一次性排查- 需要先验证
g1_bridge_sdk、网络接口选择和 policy 推理,再启用 mocap
安装运行时依赖
pip install -e '.[sim2real]'
git submodule update --init --recursive
bash scripts/setup/setup_g1_bridge.sh
Dry Run
先使用 --dry-run 做不发送电机命令的时序检查:
python scripts/run/standalone_standing.py \
--policy track.onnx \
--network-interface enp130s0 \
--dry-run
真机站立测试
确认网络接口后,运行 standing controller:
python scripts/run/standalone_standing.py \
--policy track.onnx \
--network-interface enp130s0
对于 onboard 部署,接口通常是 eth0:
python scripts/run/standalone_standing.py \
--policy track.onnx \
--network-interface eth0
standalone standing 复用 sim2real standing 组件:UnitreeG1Robot、
Sim2RealSafetyManager、RLPolicyController、VelCmdObservationBuilder 和
Sim2RealReferenceProcessor。锁住当前关节后发送 policy target,同时在 2 秒内把 Kp
从 10% 逐步升到配置的增益。可以这样调整启动行为:
python scripts/run/standalone_standing.py \
--policy track.onnx \
--network-interface eth0 \
--kp-ramp-duration 2.0 \
--kp-ramp-floor-ratio 0.1
它会检查什么
g1_bridge_sdk能正确导入。- 能从机器人收到 LowState。
- dual-input ONNX policy 能运行 standing observation 路径。
- 能通过 C++ bridge 发布 low-level position targets。
- observation 构建、action scale、默认站姿、Kp ramp 和 joint-limit clipping 与 sim2real standing runtime 保持一致。