四元数

亡梦爱人 提交于 2019-12-28 11:35:27

##1.1-1四元数的定义与运算法则

四元数分为两个定义方式:Hamilton四元数和JPL四元数,其根本的不同在于虚数运算$$ij=k$$或者$$ij=-k$$的区别。以下所推导的四元数都是标量在前,矢量在后;JPL的四元数的推导为个人手工推导,如有谬误,请指出;

两种四元数的定义规范都满足加法、减法,并且都满足交换律和结合律;

Hamilton四元数的乘法:
$$
\overline{p}\otimes\overline{q}=(p_0+p_1i+p_2j+p_3k)(q_0+q_1i+q_2j+q_3k) \\=(p_0q_0-p_1q_1-p_2q_2-p_3q_3)\\+(p_0q_1+p_1q_0+p_2q_3-p_3q_2)i\\+(p_0q_2+p_2q_0-p_1q_3+p_3q_1)j\\+(p_0q_3+p_3q_0+p_1q_2-p_2q_1)k
$$
写成矩阵的形式则有:
$$
\overline{p}\otimes\overline{q}=\begin{bmatrix}p_0&-p_1&-p_2&-p_3\\p_1&p_0&-p_3&p_2\\p_2&p_3&p_0&-p_1\\p_3&-p_2&p_1&p_0\end{bmatrix}\begin{bmatrix}q_0\\q_1\\q_2\\q_3\end{bmatrix}
$$
JPL四元数的乘法:
$$
\overline{p}\otimes\overline{q}=(p_0+p_1i+p_2j+p_3k)(q_0+q_1i+q_2j+q_3k) \\=(p_0q_0-p_1q_1-p_2q_2-p_3q_3)\\+(p_0q_1+p_1q_0-p_2q_3+p_3q_2)j\\+(p_0q_2+p_2q_0+p_1q_3-p_3q_1)j\\+(p_0q_3+p_3q_0-p_1q_2+p_2q_1)k
$$
写成矩阵的形式则有:
$$
\overline{p}\otimes\overline{q}=\begin{bmatrix}p_0&-p_1&-p_2&-p_3\\p_1&p_0&p_3&-p_2\\p_2&-p_3&p_0&p_1\\p_3&p_2&-p_1&p_0\end{bmatrix}\begin{bmatrix}q_0\\q_1\\q_2\\q_3\end{bmatrix}
$$
举个例子说明:

假设一个坐标系先绕着z轴瞬时转90 再绕着x瞬时转90

Hamilton四元数:

绕z轴旋转:$$\begin{bmatrix}\sqrt{2}/2&0&0&-\sqrt{2}/2\end{bmatrix}$$

绕x轴旋转:$$\begin{bmatrix}\sqrt{2}/2&-\sqrt{2}/2&0&0\end{bmatrix}$$

最后得到的四元数:

$$\begin{bmatrix}1/2&-1/2&1/2&-1/2\end{bmatrix}$$

JPL四元数:

绕z轴旋转:$$\begin{bmatrix}\sqrt{2}/2&0&0&\sqrt{2}/2\end{bmatrix}$$

绕x轴旋转:$$\begin{bmatrix}\sqrt{2}/2&-\sqrt{2}/2&0&0\end{bmatrix}$$

最后得到的四元数:

$$\begin{bmatrix}1/2&-1/2&1/2&1/2\end{bmatrix}$$

按照四元数的表示方法同一个旋转,只有Z轴的符号有差异结论得证。

四元数的乘法满足结合律和分配律:
$$
(p\otimes q)\otimes r=p\otimes(q\otimes r)
$$

$$
p\otimes(q+r)=p\otimes q +p\otimes r
$$

另外四元数相乘表示成矩阵的形式有:
$$
p\otimes q=[p]_Lq=[q]_Rp
$$
特别需要注意的是Hamilton 四元数的矩阵形式与JPL的矩阵形式恰好相反。

四元数的共轭与求逆的运算规律与矩阵的运算规律保持一致的。

#### 1.1-2四元数与运动、坐标旋转的关系

***JPL、Hamilton四元数以及旋转之间相互的关系推导及说明***

个人认为Hamilton四元数与JPL四元数之前的关系完全由坐标系决定。尤其是四元数$i,j,k$所确定的坐标系关系。以陀螺仪为例,旋转矢量的三个分解轴在陀螺仪的三个轴,同时也是$i,j,k$所确定的坐标系的轴。

如下例子假设Hamilton四元数的初始坐标系是东北天,而对应的JPL四元数的初始坐标系为西南地:

Hamilton四元数:

假设物体由$b_k$时刻参考坐标系转到$bk+1$时刻,如果用向量${\omega}$表示这种运动,则会有如下的坐标旋转关系:
$$
r^{b_k}=Q^{b_k}_{b_k+1}*r^{b_k+1}*(Q^{b_k}_{b_k+1})^{-1}
$$
由此可见,$\omega$表示${\omega}^{b_k}_{b_k+1}$,即$b_{k+1}$时刻相对于$b_k$时刻的运动,由$\omega$组成的四元数为$Q^{bk}_{bk+1}$ 

假设物体由$$b_k$$时刻参考坐标系转到$$bk+1$$时刻,运动对应的坐标旋转矩阵是$$C_{bk}^{bk+1}$$

  ***四元数微分方程及求解***

Hamliton四元数连续形式下的旋转状态推导如下:
$$
q_{b_{k+1}}^w =q_{b_k}^w\otimes\int_{t\in[k,k+1]}\dot{q_t}dt
$$
注意以上的形式是右乘,$$\dot{q_t}$$(四元数的导数)如下:
$$
\dot{q_t}=\lim_{\delta t \to0}\frac1 {\delta t}(q_{t+\delta t}-q_t)\\=\lim_{\delta t \to0}\frac1 {\delta t}(q_t\otimes q_{t+\delta t}^t-q_t\otimes\left[\begin{matrix} 0\\1\end{matrix}\right])\\=\lim_{\delta t \to0}\frac1 {\delta t}(q_t\otimes \left[\begin{matrix} \hat ksin\frac\theta 2\\cos\frac\theta 2\end{matrix}\right]-q_t\otimes\left[\begin{matrix} 0\\1\end{matrix}\right])\\=\lim_{\delta t \to0}\frac1 {\delta t}(q_t\otimes \left[\begin{matrix} \hat k\frac\theta 2\\1\end{matrix}\right]-q_t\otimes\left[\begin{matrix} 0\\1\end{matrix}\right])
$$
将上述公式写成矩阵的形式:

[图片上传失败...(image-31d988-1561011332789)]

JPL四元数:

根据物体的相对关系,得到:
$$
r^{b_k+1}= Q_{b_k}^{b_k+1}\otimes r^{b_k} \otimes Q_{b_k+1}^{b_k}
$$
四元数的导数
$$
\dot{Q}_b^i =1/2*Q_b^i*\omega_{ib}^b
$$

$$
\dot{Q}_b^i=1/2*\omega_{ib}^i*Q_b^i
$$

$$
\dot{Q}_i^b=1/2*Q_i^b*\omega_{bi}^i
$$

四元数的指数形式
$$
e^q=e^{qw+qv}=e^{qw}e^{qv}=e^{qw}[||cos(qv)||\quad qv/||qv||sin|||qv|]
$$
四元数的对数形式
$$
log(q)=log(||q||*  q/||q||)=log||q||+u\theta=[log||q||\quad u\theta]
$$

## 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!