两个四元数之间的“距离”(或角度大小)?

Clo*_*kex 5 distance rotation quaternions

我想找到两个四元数之间的“距离”。“距离”是指单个浮点数或整数,而不是另一个四元数(这就是差值,即inverse(q1)*q2)。我猜你可以称呼我想要的“角度大小”。

我需要向物理对象施加更大的扭矩,使其从原始角度旋转得越远。

我不了解四元数中涉及的数学,因此基于代码的示例将非常有帮助。我已经看过其他几个问题,但是我不相信任何问题,或者至少不能以我理解的方式回答。

min*_*gic 7

求差四元数 qd = inverse(q1)*q2)。

然后通过angle = 2 * atan2(qd.vec().length(), qd.w()) 找到q1 和q2 之间的角度// 注意:有符号

这里的“角度”是最短弧从 q1 到 q2 的旋转角度。


Fir*_*wer 5

您也可以使用来自pyquaternion. Quaternion.absolute_distance(q0, q1)