Skip to content

踩坑Robotics Stack Exchange2022-04-01

欧拉角俯仰接近90°时万向节锁如何避免 ​

本文由 AI 根据公开内容整理,可能有误,请以原文为准:How to avoid gimbal with Quaternions(Robotics Stack Exchange #22349)

状态:已解决

问题 ​

使用 Kalman filter 时欧拉角出现疑似万向节锁:pitch 接近 90° 时 roll 跳变,pitch 像被限制在 90° 附近;computeAngles 转回欧拉角后仍有问题。

环境 ​

状态估计 / EKF 滤波器

解决办法 ​

  1. 不再依赖欧拉角存储姿态,用单位四元数表示旋转;采纳答案给出四元数定义、归一化、逆、连乘等公式。
  2. 需要旋转向量时,直接用四元数变换公式 p' = p + 2s(v×p) + 2(v×(v×p)),或用其对应的 Rodrigues 旋转矩阵。
  3. 有角速度 ω 时,用四元数时间导数公式 qdot = 1/2(sω + ω×v, -ω·v) 更新姿态,并保持四元数归一化。

原问题作者:simon;采纳答案作者:John Alexiou。原内容依 CC BY-SA 4.0 授权,本页摘要同样依 CC BY-SA 4.0 授权。

来源

本页事实对应的公开页面,以原文为准。

  1. Robotics Stack Exchange #22349:How to avoid gimbal with Quaternions访问 2026-10-22