# MuJoCo Apollo模型stand关键帧ctrl值超出actuator范围致仿真初始状态异常

> 原文链接：https://robotics.hellobike.com/pitfalls/2026-06-13-mujoco-menagerie-287
> 频道：pitfalls | 更新日期：2026-06-13 | 标签：auto, github-issue, mujoco_menagerie
> 核心摘要：Apptronik Apollo模型stand关键帧中4个执行器ctrl值超出ctrlrange，MuJoCo静默钳位导致初始状态偏差，需手动修正XML。

# MuJoCo Apollo模型stand关键帧ctrl值超出actuator范围致仿真初始状态异常

::: v-pre
> 本文由 AI 根据公开内容整理，可能有误，请以原文为准：[[Bug Report] Apptronik Apollo stand keyframe contains position controls outside actuator ctrlrange](https://github.com/google-deepmind/mujoco_menagerie/issues/287)（GitHub google-deepmind/mujoco_menagerie #287）

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

## 问题

在MuJoCo 3.8.0中加载apptronik_apollo.xml时，stand关键帧内l_elbow_fe、r_shoulder_ie、r_shoulder_fe、l_hip_aa四个执行器的ctrl值超出声明的ctrlrange（最大超限0.858）。MuJoCo未报错但静默钳位控制信号，导致仿真初始姿态与关键帧定义不一致。

## 环境

MuJoCo 3.8.0，仓库google-deepmind/mujoco_menagerie，commit affef0836947b64cc06c4ab1cbf0152835693374，文件apptronik_apollo.xml与scene.xml。

## 解决办法

1. 使用提供的Python脚本遍历model.nkey与model.nu，检查model.key_ctrl是否满足actuator_ctrlrange约束并定位违规项。
2. 打开apptronik_apollo.xml，找到&lt;keyframe&gt;标签下name为stand的关键帧定义。
3. 将l_elbow_fe的ctrl值从1.033修正至[-2.61799, 0.174533]范围内。
4. 将r_shoulder_ie的ctrl值从-0.477修正至[-0.471239, 0.471239]范围内。
5. 将r_shoulder_fe的ctrl值从1.033修正至[-2.18166, 0.610865]范围内。
6. 将l_hip_aa的ctrl值从-0.4修正至[-0.218166, 0.741765]范围内。
7. 保存XML后重新加载模型，验证stand关键帧初始状态是否符合预期且无静默钳位。

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

## 原始参考来源 (Sources)

- [GitHub google-deepmind/mujoco_menagerie #287：[Bug Report] Apptronik Apollo stand keyframe contains position controls outside actuator ctrlrange](https://github.com/google-deepmind/mujoco_menagerie/issues/287)