外观
踩坑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 滤波器
解决办法
- 不再依赖欧拉角存储姿态,用单位四元数表示旋转;采纳答案给出四元数定义、归一化、逆、连乘等公式。
- 需要旋转向量时,直接用四元数变换公式
p' = p + 2s(v×p) + 2(v×(v×p)),或用其对应的 Rodrigues 旋转矩阵。 - 有角速度
ω时,用四元数时间导数公式qdot = 1/2(sω + ω×v, -ω·v)更新姿态,并保持四元数归一化。
原问题作者:simon;采纳答案作者:John Alexiou。原内容依 CC BY-SA 4.0 授权,本页摘要同样依 CC BY-SA 4.0 授权。
来源
本页事实对应的公开页面,以原文为准。