将2个角度(球面旋转)转换为单个角度(四元数)

Convert 2 angles (spherical rotation) to single angle (quaternion)

我有2个角度,phi(左右旋转)和psi(上下旋转)。我想将它们转换为单个角度,这相当于四元数(=围绕单位向量的最小旋转)。

来自这个post: 我们得到球形 -> 四元数转换将给出: quat = (cos(phi/2)cos(psi/2), -sin(phi/2)sin(psi/2), cos(phi/2)sin(psi/2), sin(phi/2)cos(psi/2))

现在,来自另一个 post: 四元数的角度是

角度 = 2 * cos-1(w) = 2 * cos-1( sin(phi/2)余弦(psi/2))

但这似乎不对。我希望当

phi = 0 => angle = psi,当psi = 0 => angle = phi

时反之

但上面的公式似乎并非如此。我理解错了什么?

第一个 link 看起来像是“标量优先”约定(即 w 是第一个元素)。因此,您应该查看角度的 cos(phi/2)*cos(psi/2) 项。然后,当 phi=0 和 psi=0 时,一切都会按预期进行。

角度 = 2 * cos^-1(w) = 2 * cos^-1( cos(phi/2)cos(psi/2) )