# URDF可视化IMU姿态轴系错位，调整四元数乘法顺序修复

> 原文链接：https://robotics.hellobike.com/pitfalls/2025-01-11-robotics-se-102644
> 频道：pitfalls | 更新日期：2025-01-11 | 标签：auto, stackexchange, urdf
> 核心摘要：OAK-D相机URDF可视化时Z轴指向错误，因四元数乘法顺序导致全局/局部旋转混淆，交换乘数顺序后解决。

# URDF可视化IMU姿态轴系错位，调整四元数乘法顺序修复

::: v-pre
> 本文由 AI 根据公开内容整理，可能有误，请以原文为准：[Visualize object orientation using IMU](https://robotics.stackexchange.com/questions/102644/visualize-object-orientation-using-imu)（Robotics Stack Exchange #102644）

**状态**：已解决

## 问题

使用depthai桥接OAK-D相机IMU数据至ROS并通过Madgwick滤波后，发布footprint到base_link的TF变换时，模型姿态与真实相机存在轴系偏差（如Z轴指向前方而非上方）。尝试通过固定欧拉角旋转四元数校正时，因乘法顺序不当引发新的对齐错误，无法使URDF模型准确跟随实际相机朝向。

## 环境

OAK-D相机，ROS系统，depthai驱动，Madgwick滤波器，URDF模型含base_link与imu_link偏移定义。

## 解决办法

1. 确认姿态偏差源于四元数乘法顺序决定了旋转是作用于全局坐标系还是局部坐标系。
2. 将原本用于校正的四元数乘法表达式 `quaternion_multiply(q_rot, q_imu)` 修改为 `quaternion_multiply(q_imu, q_rot)`。
3. 确保校正旋转始终绕局部Y轴执行，而非全局IMU参考系，从而消除轴系错位并使模型正确响应实际姿态。

原问题作者：asser19；采纳答案作者：asser19。原内容依 CC BY-SA 4.0 授权，本页摘要同样依 CC BY-SA 4.0 授权。
:::

## 原始参考来源 (Sources)

- [Robotics Stack Exchange #102644：Visualize object orientation using IMU](https://robotics.stackexchange.com/questions/102644/visualize-object-orientation-using-imu)