# Unitree Isaac Lab G1 IMU四元数映射错误致Yaw角±128.75°截断

> 原文链接：https://robotics.hellobike.com/pitfalls/2026-02-25-unitree-sim-isaaclab-105
> 频道：pitfalls | 更新日期：2026-02-25 | 标签：auto, github-issue, unitree_sim_isaaclab
> 核心摘要：G1仿真中IMU Yaw角在±128.75°异常截断，系四元数顺序假设错误，修改状态脚本参数后解决。

# Unitree Isaac Lab G1 IMU四元数映射错误致Yaw角±128.75°截断

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

**状态**：已解决

## 问题

在Unitree Isaac Lab仿真wrapper中读取LowState IMU数据时，计算出的Yaw角无法平滑旋转±180°，而是在±128.75°（±2.25 rad）处发生截断与回绕。尽管代码注释标明四元数格式为[x, y, z, w]，但使用scipy或手动公式转换均复现该异常，仅在该阈值内数值与真值一致，怀疑存在内部IMU映射不匹配。

## 环境

Unitree G1机器人，unitree_sim_isaaclab仿真环境，g1_29dof_state.py状态接口脚本。

## 解决办法

1. 打开 `g1_29dof_state.py` 文件并定位 `get_robot_imu_data` 函数。
2. 将四元数处理代码修改为 `quat_wxyz = ensure_quat_w_first(quat, assume_w_first=True)`，强制指定输入四元数为w-first格式以修正解析逻辑。
3. 保存文件并重新运行仿真验证，确认Yaw角旋转数据恢复正常且无截断现象。

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

## 原始参考来源 (Sources)

- [GitHub unitreerobotics/unitree_sim_isaaclab #105：LowState IMU Quaternion mapping issue](https://github.com/unitreerobotics/unitree_sim_isaaclab/issues/105)