【转】四元数的推导过程
来自:https://blog.youkuaiyun.com/qq_28773183/article/details/80083607
四元数旋转推导过程
1.基本概念
(1) 四元数的一般形式如下:q=q0+q1i+q2j+q3kq=q0+q1i+q2j+q3k
(2) 单位四元数:满足四元数的模为1,即q02+q12+q22+q32=1q02+q12+q22+q32=1
(3) 四元数的三角形式:q=cosθ2+u⃗ sinθ2q=cosθ2+u→sinθ2
(4)共轭四元数:q∗=q0−q1i−q2j−q3kq∗=q0−q1i−q2j−q3k
(5) 纯四元数:q=q1i+q2j+q3kq=q1i+q2j+q3k
(6)四元数与空间旋转:
其中:
qq:单位四元数
q−1q−1:四元数的逆,对于单位四元数,q∗=q−1q∗=q−1
pp:纯四元数
Rq(p):也是一个纯四元数Rq(p):也是一个纯四元数
2. 欧拉角的万向锁问题
先看一个简单的欧拉旋转,如下图所示:欧拉旋转需要先确定旋转顺序,我们可以定义X-Y-Z的顺序(总共有12种旋转顺序),那么什么是万向锁呢,我们可以用手机在桌子上进行旋转,以手机的正面为xy平面,以手机的厚度的方向作为z轴,我们先绕x转一个角度,然后再绕y轴旋转90度,我们会发现一个问题,当我们再绕z轴旋转一个角度,效果等同于我开始绕x轴旋转另外一个角度,再绕y轴旋转90度就行了.
我们的欧拉旋转只能表示二维空间了,这是解我们的微分方程会出现退化现象,造成我们的微分方程无法解的情况。这样说似乎还是比较模糊,那么我们举一个例子:
如图所示:XwYwZwXwYwZw是世界坐标系,XiYiZiXiYiZi是机体坐标系,我们先绕XiXi轴旋转30∘30∘,再绕YiYi旋转90∘90∘,如下图所示:
此时我们的XwXw和ZiZi在同一直线上,最后我们再绕ZiZi旋转40∘40∘,如下图所示: