# G1实机部署剧烈动作断电：误用base_lin_vel观测致脏数据输入

> 原文链接：https://robotics.hellobike.com/pitfalls/2026-04-20-unitree-rl-mjlab-33
> 频道：pitfalls | 更新日期：2026-04-20 | 标签：auto, github-issue, unitree_rl_mjlab
> 核心摘要：G1实机部署抽搐断电系Actor误含真机不可测的base_lin_vel所致，需改用unitree_rl_mjlab默认配置并修正deploy.yaml参数。

# G1实机部署剧烈动作断电：误用base_lin_vel观测致脏数据输入

::: v-pre
> 本文由 AI 根据公开内容整理，可能有误，请以原文为准：[g1的Veloity任务实机部署问题](https://github.com/unitreerobotics/unitree_rl_mjlab/issues/33)（GitHub unitreerobotics/unitree_rl_mjlab #33）

**状态**：有绕过办法

## 问题

使用最新版mjlab训练的G1行走策略在仿真play正常，但实机部署后机器人出现剧烈动作并断电保护。用户发现新版mjlab Actor观测包含`base_lin_vel`，而`unitree_rl_mjlab`将其置于Critic中，怀疑真机无法读取该传感器导致异常。此外`deploy.yaml`中`lin_vel_y`和`ang_vel_z`被置0导致无法转向。

## 环境

机型：Unitree G1；软件：unitree_rl_mjlab、mjlab最新版、unitree_mujoco；部署文件：policy.onnx、deploy.yaml、agent.yaml、env.yaml。

## 解决办法

1. 确认训练框架差异：最新版mjlab Actor观测含`base_lin_vel`及`motion_anchor_pos_b`，这些状态估计量在真机无法获取，`deploy`不支持此类模型，会导致脏数据输入引发抽搐，严禁直接使用mjlab自带任务部署。
2. 切换至`unitree_rl_mjlab`默认配置：该项目Velocity任务Actor观测不含`base_lin_vel`，仅在有状态估计的动作模仿任务中使用，实机部署必须以`unitree_rl_mjlab`代码为准。
3. 检查`deploy.yaml`配置：确保`lin_vel_y`和`ang_vel_z`等关键观测映射正确且非零，避免因参数屏蔽导致控制失效。
4. 强制仿真验证流程：实机部署前必须在`unitree_mujoco`或`simulate`环境中完整测试`policy.onnx`输出，确认观测维度与顺序与训练一致。
5. 提供完整日志排查：若问题持续，需提供`logs`目录下`agent.yaml`、`en…

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

## 原始参考来源 (Sources)

- [GitHub unitreerobotics/unitree_rl_mjlab #33：g1的Veloity任务实机部署问题](https://github.com/unitreerobotics/unitree_rl_mjlab/issues/33)