# unitree_rl_mjlab自定义动作训练后Deploy效果差及deploy.yaml配置不一致

> 原文链接：https://robotics.hellobike.com/pitfalls/2026-05-01-unitree-rl-mjlab-36
> 频道：pitfalls | 更新日期：2026-05-01 | 标签：auto, github-issue, unitree_rl_mjlab
> 核心摘要：自定义动作策略部署失败系因deploy.yaml与训练配置中default_joint_pos和offset不一致，需通过Issue #23自动导出正确配置解决。

# unitree_rl_mjlab自定义动作训练后Deploy效果差及deploy.yaml配置不一致

::: v-pre
> 本文由 AI 根据公开内容整理，可能有误，请以原文为准：[lafan1](https://github.com/unitreerobotics/unitree_rl_mjlab/issues/36)（GitHub unitreerobotics/unitree_rl_mjlab #36）

**状态**：已解决

## 问题

使用unitree_rl_mjlab训练LaFAN1数据集自定义动作（如舞蹈、跌倒站立）时，仿真Play正常但真机Deploy效果极差。根本原因是示例`dance1_subject2`目录下的`deploy.yaml`不能直接使用，其`default_joint_pos`和`offset`参数与训练代码`env_cfgs.py`中调用的`get_g1_robot_cfg`配置不一致，导致Sim-to-Real迁移失败。

## 环境

Unitree G1机器人，unitree_rl_mjlab框架，LaFAN1数据集，涉及`src/tasks/tracking/config/g1/env_cfgs.py`与`src/assets/robots/unitree_g1/g1_constants.py`配置文件。

## 解决办法

1. 参考GitHub Issue #23 引入自动导出`deploy.yaml`的逻辑，确保部署配置文件由训练环境参数自动生成，避免手动复制导致的`default_joint_pos`和`offset`偏差。
2. 检查训练配置`env_cfgs.py`中`get_g1_robot_cfg`返回的`init_state`，确认其与生成的`deploy.yaml`完全对齐，消除`mjlab.asset_zoo.robots`与`g1_constants.py`之间的定义差异。
3. 忽略非训练生成的`policy.onnx.data`文件，直接将训练产出的`policy.onnx`放置于部署文件夹即可运行。
4. 在配置对齐基础上，进一步优化奖励函数与课程学习策略以提升自定义动作的鲁棒性。

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

## 原始参考来源 (Sources)

- [GitHub unitreerobotics/unitree_rl_mjlab #36：lafan1](https://github.com/unitreerobotics/unitree_rl_mjlab/issues/36)