# Unitree G1 rl_lab速度策略外部评测0%得分系模型低速死区所致

> 原文链接：https://robotics.hellobike.com/pitfalls/2026-10-11-unitree-rl-lab-145
> 频道：pitfalls | 更新日期：2026-10-11 | 标签：auto, github-issue, unitree_rl_lab
> 核心摘要：G1 rl_lab v0策略在外部基准测试中得分为0，经排查确认Isaac-to-MuJoCo映射正确，故障原因为策略本身存在低速指令死区及抗扰动能力不足。

# Unitree G1 rl_lab速度策略外部评测0%得分系模型低速死区所致

::: v-pre
> 本文由 AI 根据公开内容整理，可能有误，请以原文为准：[unitree_rl_lab velocity policy scored 0/0 % in an external G1 benchmark - probably my Isaac-to-MuJoCo mapping](https://github.com/unitreerobotics/unitree_rl_lab/issues/145)（GitHub unitreerobotics/unitree_rl_lab #145）

**状态**：已解决

## 问题

在外部C++基准测试（60秒12航点巡回、50Hz控制、随机600N冲击）中，`unitree_rl_lab`导出的`policy.onnx`得分为0%，位置误差78cm，偏航误差73°且无任务完成记录。提问者怀疑是Isaac与MuJoCo间的关节索引映射错误或观测历史布局（term-major vs frame-major）配置不当导致策略失效。

## 环境

机型：Unitree G1 (29-DOF)；软件：unitree_rl_lab (commit 4960b84), Isaac Sim 5.1.0, Isaac Lab 2.3.0, MuJoCo；

## 解决办法

1. 验证观测历史布局：确认导出模型的观测为term-major格式（即先排布所有帧的同一特征项），且首步所有历史槽位均填充当前帧数据，这与`policies/rl_lab/policy.cpp`实现一致。
2. 核对关节映射与增益：确认29关节置换矩阵与`deploy.yaml`中`joint_ids_map`完全匹配；注意`KPS`/`KDS`需按电机SDK顺序索引而非Isaac训练顺序。
3. 诊断策略本体特性：通过独立运行器验证发现该策略存在显著低速死区，前向速度&lt;0.20m/s或横向&lt;0.25m/s时保持静止，原地转向响应极弱（0.2rad/s指令仅产生0.02rad/s响应），且无法承受300-600N冲击，这解释了航点任务失败原因。
4. 跨仿真器交叉验证：在Isaac Lab原生环境中复现了相同的低速死区与跌倒现象，排除外部部署Harness的代码错误。
5. 修正部署增益配置：发现`UNITREE_G1_29DOF_CFG`中手臂阻尼(1.0)与`deploy.yaml…

讨论原作者：@adamrhoyn 等，版权归原作者所有。
:::

## 原始参考来源 (Sources)

- [GitHub unitreerobotics/unitree_rl_lab #145：unitree_rl_lab velocity policy scored 0/0 % in an external G1 benchmark - probably my Isaac-to-MuJoCo mapping](https://github.com/unitreerobotics/unitree_rl_lab/issues/145)