四元数与三维旋转
在之前学习了:
之后,我们再继续探究一下“四元数与三维旋转”之间的联系。
我们之前说过“轴角式”三维旋转方式为:将一个向量V 沿着一个用单位向量所定义的旋转轴u 旋转θ 度,那么我们可以通过把向量V分为V⊥与V||的两个分量,然后可以通过对这两个分量分别进行旋转,获得旋转之后的V⊥与V||,将它们相加就是旋转后的向量V。
我们把之前所涉及到的向量定义为下述所示的纯四元数:
那么我们就能够得到:
和三维旋转中类似的,我们还是分开讨论V⊥与V||的情况。
V⊥的旋转
在三维旋转中,我们推导过,如果一个向量V⊥正交于旋转轴u,那么
我们可以很容易地将前面的V⊥和V’⊥ 替换为v⊥和v⊥ (即,向量替换为四元数)。但是后面的叉乘不能直接替换,我们之前了解过四元数Graßmann 积(四元数的定义与性质)的形式。
对于两个纯四元数:
有:
则类似的:
又因为V⊥和旋转轴u正交,所以u · v⊥ = 0,即上式可以变换为:
将上述等式及之前定义的纯四元数代入到
中,可以得到:
因为四元数的乘法遵守分配律,我们可以继续变换这个等式:
如果我们把上式左侧括号内看成是一个四元数,则就可以看成是两个四元数的乘积。假设,上式变换为:
其中,
把上式中的 q 变换为四元数
也就是说,如果旋转轴u 的坐标为:[𝑢𝑥 𝑢𝑦 𝑢𝑧]’,旋转角为θ,那么完成这一旋转所需要的四元数 q 可以构造为:
这样我们就完成了对V⊥的旋转:
对于上述描述的四元数q,还有一个性质:
所以,我们上述构造出来的 q 其实是一个单位四元数,即||q|| = 1。所以本四元数乘法的几何意义是一个纯旋转(无缩放)。
V||的旋转
对于平行于旋转轴 u 的V||,其绕着旋转轴u的旋转不会有任何变换。即:
V的旋转
综合上述两个分量的旋转,我们能够得到V’的结果:
为了进一步化简,我们证明以下几个引理:
使用Graßmann 积和一些三角恒等式:
其实上述引理的几何意义为,如果绕着同一个旋转轴u连续旋转θ 度两次,那么所做出的变换等同于直接绕着u 旋转2θ 度。
有了这个引理,我们再来回忆一下四元数逆的定义:
接着,对原本的旋转公式进行变形,引入一个变量p:
也就是:
代入v’中:
能够注意到,p和q相同,也是一个单位四元数。具有如下性质:
代入等式后:
为了进一步化简上式,我们继续证明两个引理:
利用Graßmann 积,先计算等式的左边:
接下来计算等式的右边:
第二个定理:
证明过程如下,分别计算左右两边:
现在,我们就能对之前的公式做出最后的变形了:
而式中:V⊥ + V|| = V,所以,上式继续变换为:
到此为止,我们就推导出了四元数与3D 旋转之间的关系。虽然我们之前将
𝑣 划分成了两个分量V⊥和V||,但是推导的结果其实并没有包含V⊥和 V||。最终可以总结出以下定理:
换句话说,如果我们有𝑞 = [cos(θ), sin(θ)u],那么𝑣′ = 𝑞𝑣𝑞∗ 可以将v 沿
着u 旋转2θ 度。
旋转四元数的分解
除了上述介绍的推导过程之外,我们再了解一点四元数拆分成对应旋转角度和旋转轴的过程。
首先,所有的旋转四元数的实部都只是一个角度的余弦值,假设有一个单位
四元数𝑞 = [𝑎, b]。如果我们想要提取它所对应旋转的角度,那么我们可以直
接得到:
如果想要再获得旋转轴,那么只需要将b 的每一项都除以sin(θ/2)就可以了。