从Quaternion转换为Roll Pitch Yaw时如何避免万向节锁定

时间:2017-03-14 04:42:13

标签: labview quaternions euler-angles

我有一个IMU传感器,可以让我根据四元数进行定位,我想将其改为可读的RPY角度。

我找到了从Wiki

本质上转换它们的公式

表示四元数q = qr + qi + qj + qk

roll=atan2(2(qr*qi+qj*qk),1-2(qi^2+qj^2))
pitch=arcsin(2(qr*qj-qk*qi))
yaw=atan2(2(qr*qk+qi*qj),1-2(qj^2+qk^2))

我知道在RPY中代表时会出现万向节锁问题。当音高接近+/- 90度

时,我怎么能避免这种情况

P.S。我在LabVIEW中编码

1 个答案:

答案 0 :(得分:2)

Nekomatic是对的,万向节锁是欧拉角的一个基本问题。要么坚持使用Quaternions(我建议),可以在这里找到免费下载的LabView库:https://www.winemantech.com/blog/quaternions-for-rotations-in-native-labview,labview robotics工具箱也支持四元数但是付费。

否则跟踪你何时接近奇点(万向节锁)。在奇点角度可能会瞬间从90度翻转到-90度,因为在现实世界中你知道这不可能发生,你可以围绕它进行编码。有关如何执行此操作的示例,请访问:http://www.euclideanspace.com/maths/geometry/rotations/conversions/quaternionToEuler/