向量
向量点乘
\[
a \cdot b = \|a\| \|b\|cos(\theta)
\]
两个向量点乘得意义在于计算向量之间的夹角。以及一个向量在另一个向量上的投影的积。当向量为单位向量很容易计算向量之间的夹角。
向量叉乘
\[
a \times b = \left( \|a\|\|b\|sin(\theta) \right) n_0
\]
其中\(n_0\)为垂直两个向量平面的单位向量,方向满足右手定则。
反对称矩阵(Skew-symmetric Matrix)
两个三维列向量\(\boldsymbol{V}_{1} = [V_{1x} V_{1y} V_{1z}]^T\)和\(\boldsymbol{V}_{2} = [V_{2x} V_{2y} V_{2z}]^T\)之间的叉乘(外积)可用行列式计算规则表示:
\[
\boldsymbol{V}_{1} \times \boldsymbol{V}_{2}=\left|\begin{array}{ccc}
{\boldsymbol{i}} & {\boldsymbol{j}} & {\boldsymbol{k}} \\
{V_{1 x}} & {V_{1 y}} & {V_{1 z}} \\
{V_{2 x}} & {V_{2 y}} & {V_{2 z}}
\end{array}\right|=\left[\begin{array}{c}
{V_{1 y} V_{2 z}-V_{1 z} V_{2 y}} \\
{-\left(V_{1 x} V_{2 z}-V_{1 z} V_{2 x}\right)} \\
{V_{1 x} V_{2 y}-V_{1 y} V_{2 x}}
\end{array}\right] \tag{1.1.1}\label{1.1.1}
\]
其中\(i,j,k\)分别为直角坐标系三个坐标轴向的单位矢量。写成矩阵的形式:
\[
\left[\begin{array}{ccc}
{0} & {-V_{1 z}} & {V_{1 y}} \\
{V_{1 z}} & {0} & {-V_{1 x}} \\
{-V_{1 y}} & {V_{1 x}} & {0}
\end{array}\right]\left[\begin{array}{l}
{V_{2 x}} \\
{V_{2 y}} \\
{V_{2 z}}
\end{array}\right]=\left[\begin{array}{c}
{V_{1 y} V_{2 z}-V_{1 z} V_{2 y}} \\
{-\left(V_{1 x} V_{2 z}-V_{1 z} V_{2 x}\right)} \\
{V_{1 x} V_{2 y}-V_{1 y} V_{2 x}}
\end{array}\right] \tag{1.1.2}\label{1.1.2}
\]
称左边的特殊矩阵:
\[
(\boldsymbol{V} \times)=\left[\begin{array}{ccc}
{0} & {-V_{z}} & {V_{y}} \\
{V_{z}} & {0} & {-V_{x}} \\
{-V_{y}} & {V_{x}} & {0}
\end{array}\right] \tag{1.1.3}\label{1.1.3}
\]
为反对称矩阵,即满足\((\boldsymbol{V}_{\times}) = - {(\boldsymbol{V}_{\times})}^T\)。因此两向量之间叉乘运算可以等价为前一向量的反对称矩阵和后一向量之间的矩阵乘法运算:
\[
\boldsymbol{V}_1 \times \boldsymbol{V}_2 = ({\boldsymbol{V}_1}_{\times})\boldsymbol{V}_2 \tag{1.1.4}\label{1.1.4}
\]
反对称矩阵有如下常用的性质:
幂方公式
\[
\begin{aligned}
&(\boldsymbol{V} \times)^{1}=v^{0}(\boldsymbol{V} \times)\\
&(\boldsymbol{V} \times)^{2}=\boldsymbol{V} \boldsymbol{V}^{\mathrm{T}}-\boldsymbol{v}^{2} \boldsymbol{I}=\boldsymbol{v}^{0}(\boldsymbol{V} \times)^{2}\\
&(\boldsymbol{V} \times)^{3}=(\boldsymbol{V} \times)^{2}(\boldsymbol{V} \times)=\left(\boldsymbol{V} \boldsymbol{V}^{\mathrm{T}}-\boldsymbol{v}^{2} \boldsymbol{I}\right)(\boldsymbol{V} \times)=\boldsymbol{V} \boldsymbol{V}^{\mathrm{T}}(\boldsymbol{V} \times)-\boldsymbol{v}^{2}(\boldsymbol{V} \times)=\boldsymbol{V} \cdot \boldsymbol{0}_{\mathrm{IB}}-\boldsymbol{v}^{2}(\boldsymbol{V} \times)=-\boldsymbol{v}^{2}(\boldsymbol{V} \times)\\
&(\boldsymbol{V} \times)^{4}=(\boldsymbol{V} \times)^{3}(\boldsymbol{V} \times)=-v^{2}(\boldsymbol{V} \times)^{2}\\
&(\boldsymbol{V} \times)^{5}=(\boldsymbol{V} \times)^{2}(\boldsymbol{V} \times)^{3}=\left(\boldsymbol{V} \boldsymbol{V}^{\mathrm{T}}-\boldsymbol{v}^{2} \boldsymbol{I}\right)\left[-v^{2}(\boldsymbol{V} \times)\right]=v^{4}(\boldsymbol{V} \times)\\
&(\boldsymbol{V} \times)^{6}=(\boldsymbol{V} \times)^{3}(\boldsymbol{V} \times)^{3}=\left[-v^{2}(\boldsymbol{V} \times)\right]\left[-v^{2}(\boldsymbol{V} \times)\right]=v^{4}(\boldsymbol{V} \times)^{2}
\end{aligned}
\]
即:
\[
\begin{aligned}
&(\boldsymbol{V} \times)^{i}=\left\{\begin{array}{ll}
{(-1)^{(i-1) / 2} v^{i-1}(\boldsymbol{V} \times)} & {i=1,3,5, \cdots} \\
{(-1)^{(i-2) / 2} v^{i-2}(\boldsymbol{V} \times)^{2}} & {i=2,4,6, \ldots}
\end{array}\right. \\
&v=|\boldsymbol{V}|=\sqrt{V_{x}^{2}+V_{y}^{2}+V_{z}^{2}}
\end{aligned}
\tag{1.1.5}\label{1.1.5}
\]
反交换律
\[
({\boldsymbol{V}_1}_{\times})\boldsymbol{V}_2 = \boldsymbol{V}_1 \times \boldsymbol{V}_2 = -(\boldsymbol{V}_2 \times \boldsymbol{V}_1) = - ({\boldsymbol{V}_2}_{\times})\boldsymbol{V}_1 \tag{1.1.6}\label{1.1.6}
\]
三重矢积公式
\[
\boldsymbol{V}_{1} \times\left(\boldsymbol{V}_{2} \times \boldsymbol{V}_{3}\right)=\left(\boldsymbol{V}_{1} \cdot \boldsymbol{V}_{3}\right) \boldsymbol{V}_{2}-\left(\boldsymbol{V}_{1} \cdot \boldsymbol{V}_{2}\right) \boldsymbol{V}_{3}
\]
若令\(\boldsymbol{V}_{1}=\boldsymbol{V}_{2}=\boldsymbol{V}\),可得:
\[
\begin{aligned}
&\left(\boldsymbol{V} \cdot \boldsymbol{V}_{3}\right) \boldsymbol{V}=\boldsymbol{V} \times\left(\boldsymbol{V} \times \boldsymbol{V}_{3}\right)+\boldsymbol{v}^{2} \boldsymbol{V}_{3} \\
&v=|\boldsymbol{V}|=\sqrt{\boldsymbol{V}^{\mathrm{T}} \boldsymbol{V}}
\end{aligned}
\]
旋转运动

如图所示,质量快A在旋转坐标系World中,沿着\(\vec{v}\)方向匀速运动,相对于Body坐标系下,将是一个曲线运动。
设A在body坐标系下的坐标为:\(p^b = (x, y, z)^T\).忽略平移,则:
\[
p^w(t) = \mathbf{R}^w_b p^b
\]
对时间一阶求导,得:
\[
\begin{aligned}
\dot{p^w} &= \mathbf{R^w_b}\dot{p^b} + \dot{\mathbf{R^w_b}}p^b \\
&=\mathbf{R^w_b}\dot{p^b} + \mathbf{R^w_b} \left[ \omega^b \right]_{\times} p^b \\
&=\mathbf{R^w_b}\dot{p^b} + \left[ \mathbf{R^w_b} \omega^b \right]_{\times} \mathbf{R^w_b} p^b \\
&=\mathbf{R^w_b}{v^b} + \left[ \mathbf{R^w_b} \omega^b \right]_{\times} p^w \\
v &=\mathbf{R^w_b}{v^b} + \left[ \omega \right]_{\times} p^w =\mathbf{R^w_b}{v^b} + \omega {\times} p^w \\
\end{aligned}
\]
其中\(\omega = \mathbf{R}^w_b \omega^b\)表示body坐标系的角速度在World系下的表示。
对时间二阶求导,得:
\[
\begin{aligned}
\ddot{p^w} &= \mathbf{R^w_b}\dot{v^b} + \dot{\mathbf{R^w_b}}v^b + \omega \dot{p^w} + \left[ \dot{\mathbf{R^w_b}} \omega^b + \mathbf{R^w_b} \dot{\omega^b} \right]_{\times}p^w \\
&= \mathbf{R^w_b}\dot{v^b} + \dot{\mathbf{R^w_b}}v^b + \omega \times \left( v + \omega \times p^w \right) + \left[ \mathbf{R}^w_b \dot{\omega^b} \right]_{\times} p^w \\
&= \mathbf{R^w_b} a^b + 2\omega \times v + \omega \times (\omega \times p^w) + \dot{\omega} \times p^w \\
a &= a^w - \underbrace{2\omega \times v}_{科氏加速度} - \underbrace{\dot{\omega} \times p^w}_{欧拉加速度} - \underbrace{\omega \times(\omega \times p^w)}_{向心加速度} \\
\end{aligned}
\]
其中\(v = \mathbf{R}^w_b v^b\),\(a = \mathbf{R}^w_b a^b\)分别表示body坐标系。
因此质量快A收到合力影响做曲线运动。
罗德里格斯(Rodrigues)旋转公式
假设三维空间矢量\(\boldsymbol{r}\)绕另一单位矢量\(\boldsymbol{u}\)转动\(\phi \geqslant 0\)角度,得矢量\(\boldsymbol{r}^{\prime}\).

设矢量\(\boldsymbol{r}\)和单位矢量\(\boldsymbol{u}\)具有共同起始点\(O\),记\(\boldsymbol{r}\)的矢端\(A\)在\(\boldsymbol{u}\)上的投影为\(O^{\prime}\).以\(O^{\prime}\)为圆心\(O^{\prime}A\)为半径作圆,使\(\boldsymbol{r}^{\prime}\)的矢端\(A^{\prime}\)也在圆周上。在圆上取一点\(B\)使得\(O^{\prime}B \perp O^{\prime}A\)则有:
\[
\begin{aligned}
&\overrightarrow{O^{\prime} B}=\boldsymbol{u} \times \boldsymbol{r}
\end{aligned} \tag{1.2.1} \label{1.2.1}
\]
其中:
\[
\begin{aligned}
&|\overrightarrow{O^{\prime} B}|= |\boldsymbol{u}| \cdot |\boldsymbol{r}| \cdot sin(\theta) = |\overrightarrow{O^{\prime} A}|
\end{aligned}
\]
转动前的矢量\(\boldsymbol{r}\)相对于单位矢量\(\boldsymbol{u}\)可分解为平行于\(\boldsymbol{u}\)的分量\(\boldsymbol{r}_{\|}\)和垂直分量\(\boldsymbol{r}_{\perp}\).
\[
\boldsymbol{r}=\boldsymbol{r}_{\|}+\boldsymbol{r}_{\perp} \tag{1.2.2}\label{1.2.2}
\]
其中:
\[
\begin{aligned}
&{\boldsymbol{r}_{\|}=(\boldsymbol{r} \cdot \boldsymbol{u}) \boldsymbol{u}} \\
&{\boldsymbol{r}_{\perp}=\overline{O^{\prime} B} \times \boldsymbol{u}=(\boldsymbol{u} \times \boldsymbol{r}) \times \boldsymbol{u}}
\end{aligned} \tag{1.2.3}\label{1.2.3}
\]
其中:
\[
|{\boldsymbol{r}_{\|}}| = |\boldsymbol{r}| cos(\theta) =\frac{\boldsymbol{r\cdot u}}{|\boldsymbol{u}|}
\]
同理,转动后的矢量\(\boldsymbol{r}^{\prime}\)相对于\(\boldsymbol{u}\)也可以分解为平行分量和垂直分量:
\[
\boldsymbol{r}^{\prime} = \boldsymbol{r}_{\|}^{\prime}+\boldsymbol{r}_{\perp}^{\prime} \tag{1.2.4}\label{1.2.4}
\]
其中:
\[
\begin{aligned}
&r_{\|}^{\prime}=r_{\|}\\
&r_{\perp}^{\prime}=\overrightarrow{O^{\prime} A} \cos \phi+\overrightarrow{O^{\prime} B} \sin \phi=(\boldsymbol{u} \times \boldsymbol{r}) \times \boldsymbol{u} \cos \phi+\boldsymbol{u} \times \boldsymbol{r} \sin \phi
\end{aligned} \tag{1.2.5}\label{1.2.5}
\]
将1.2.3 和1.2.5 带入1.2.4得:
\[
\boldsymbol{r}^{\prime}=(\boldsymbol{r} \cdot \boldsymbol{u}) \boldsymbol{u}+(\boldsymbol{u} \times \boldsymbol{r}) \times \boldsymbol{u} \cos \phi+\boldsymbol{u} \times \boldsymbol{r} \sin \phi \tag{1.2.6}\label{1.2.6}
\]
由三重矢积公式\((\boldsymbol{V} \cdot \boldsymbol{V_3})\boldsymbol{V} = \boldsymbol{V} \times(\boldsymbol{V} \times \boldsymbol{V}_3) + v^2 \boldsymbol{V}_3\)得:
\[
(\boldsymbol{r} \cdot \boldsymbol{u}) \boldsymbol{u}=(\boldsymbol{u} \cdot \boldsymbol{r}) \boldsymbol{u}=\boldsymbol{u} \times(\boldsymbol{u} \times \boldsymbol{r})+|\boldsymbol{u}|^{2} \boldsymbol{r}=\left[\boldsymbol{I}+(\boldsymbol{u} \times)^{2}\right] \boldsymbol{r} \tag{1.2.7}\label{1.2.7}
\]
将1.2.7带入1.2.6得:
\[
\color{red}{\begin{aligned}
\boldsymbol{r}^{\prime} &=\left[\boldsymbol{I}+(\boldsymbol{u} \times)^{2}\right] \boldsymbol{r}-(\boldsymbol{u} \times)^{2} \boldsymbol{r} \cos \phi+\boldsymbol{u} \times \boldsymbol{r} \sin \phi \\
&=\left[\boldsymbol{I}+\sin \phi(\boldsymbol{u} \times)+(1-\cos \phi)(\boldsymbol{u} \times)^{2}\right] \boldsymbol{r} \\
&=\boldsymbol{D} \boldsymbol{r}
\end{aligned}} \tag{1.2.8}\label{1.2.8}
\]
记:
\[
\boldsymbol{D} = \boldsymbol{I}+\sin \phi(\boldsymbol{u} \times)+(1-\cos \phi)(\boldsymbol{u} \times)^{2} \tag{1.2.9}\label{1.2.9}
\]
称1.2.8为罗德里格斯(Rodrigues)旋转公式。它建立了旋转前后矢量\(\boldsymbol{r}\)和\(\boldsymbol{r}^{\prime}\)之间的线性变换关系,该变换是转轴\(\boldsymbol{u}\)及转角\(\phi\)的函数。
进一步,若记\(\boldsymbol{\phi} = \phi \boldsymbol{u}\)和\(\phi = |\boldsymbol{\phi}|\)则\(\boldsymbol{u} = \boldsymbol{\phi}/\phi\)带入1.2.9得
\[
\boldsymbol{D}=\boldsymbol{I}+\frac{\sin \phi}{\phi}(\boldsymbol{\phi} \times)+\frac{1-\cos \phi}{\phi^{2}}(\boldsymbol{\phi} \times)^{2} \tag{1.2.10}\label{1.2.10}
\]
其中\(\boldsymbol{\phi}\)称为等效旋转矢量(equipment rotation vector),其矢量方向表示转轴方向,而模值大小表示旋转角度大小。从转动的物理含义上看,\((\phi\pm 2k\pi)\boldsymbol{u} (k = 0,1, \cdots)\)表示的是相同的转动。
旋转矩阵
在3D空间中,旋转变换是一种线性变换,因此旋转前后保证了向量的长度以及向量之间的角度,因此旋转变化是刚体运动。
\[
r(\mathbf{v}) = \mathbf{R} \, \mathbf{v} \quad R \in \Bbb{R}^3
\]
对于任意向量\(\mathbf{v} \in \Bbb{R}^3\), 通过旋转操作\(r()\)满足以下性质:
Rotation preserves the vector norm
\[
|| r(\mathbf{v})|| = \sqrt{\langle r(\mathbf{v}), r(\mathbf{v})\rangle} = \sqrt{\langle \mathbf{v}, \mathbf{v} \rangle} = ||\mathbf{v} || \quad \mathbf{v} \in \Bbb{R}^3 \tag{1.3.1}\label{1.3.1}
\]
Rotation preserves angles between vectors
\[
\langle r(\mathbf{v}),r(\mathbf{w}) \rangle = \langle \mathbf{v}, \mathbf{w} \rangle = || \mathbf{v} || || \mathbf{w} || cos \alpha \quad \mathbf{v}, \mathbf{w} \in \Bbb{R}^3 \tag{1.3.2}\label{1.3.2}
\]
Rotation preserves the relative orientations of vectors
\[
\mathbf{u} \times \mathbf{v} = \mathbf{w} \iff r(\mathbf{u}) \times r(\mathbf{v}) = r(\mathbf{w}) \tag{1.3.3}\label{1.3.3}
\]
因此:
\[
(\mathbf{R} \mathbf{v})^T(\mathbf{R} \mathbf{v}) = \mathbf{v}^T \mathbf{R}^T\mathbf{R} \mathbf{v} = \mathbf{v}^T \mathbf{v}
\]
可得到\(\mathbf{R}\)为正交矩阵:
\[
\mathbf{R}^T\mathbf{R} = \mathbf{I} = \mathbf{R}\mathbf{R}^T
\]
对于正交矩阵每列向量\(\mathbf{R} = [\mathbf{r}_1, \mathbf{r}_2, \mathbf{r}_3]\)均为单位长度并且相互正交:
\[
\begin{aligned}
&\langle\mathbf{r}_i, \mathbf{r}_i\rangle = \mathbf{r}_i^T\mathbf{r}_i = 1 \\
&\langle \mathbf{r}_i, \mathbf{r}_j \rangle = \mathbf{r}_i^T \mathbf{r}_j = 0 \quad i \neq j
\end{aligned}
\]
因此旋转矩阵具有一下性质 :
\[
\begin{aligned}
&\mathbf{R}^{-1} = \mathbf{R}^T \\
&det(\mathbf{R}) = 1
\end{aligned}
\]
四元数(Hamilton)
四元数定义成实部+虚部的形式(scalar + vector):
\[
Q = q_w + q_x i + q_y j + q_z k = q_w + \boldsymbol{q}_v
\]
因此表示一个四元数为:
\[
\boldsymbol{q} = \left[ \begin{matrix} q_w \\ \boldsymbol{q}_v \end{matrix} \right] = \left[q_w \ q_x \ q_y \ q_w \right]^T \tag{1.4.1}\label{1.4.1}
\]
其中:
\[
\begin{aligned}
&i^2 = j^2 = k^2 = ijk = -1\\
& ij = -ji = k \\
& jk = -kj = i \\
& ki = -ik = j
\end{aligned}
\]
乘法
\[
\mathbf{p} \otimes \mathbf{q}=\left[\begin{array}{l}
{p_{w} q_{w}-p_{x} q_{x}-p_{y} q_{y}-p_{z} q_{z}} \\
{p_{w} q_{x}+p_{x} q_{w}+p_{y} q_{z}-p_{z} q_{y}} \\
{p_{w} q_{y}-p_{x} q_{z}+p_{y} q_{w}+p_{z} q_{x}} \\
{p_{w} q_{z}+p_{x} q_{y}-p_{y} q_{x}+p_{z} q_{w}}
\end{array}\right] = \left[\begin{array}{c}
{p_{w} q_{w}-\mathbf{p}_{v}^{\top} \mathbf{q}_{v}} \\
{p_{w} \mathbf{q}_{v}+q_{w} \mathbf{p}_{v}+\mathbf{p}_{v} \times \mathbf{q}_{v}}
\end{array}\right]
\tag{1.4.2}\label{1.4.2}
\]
四元数乘法不满足交换律(not commutative):
\[
\boldsymbol{p} \otimes \boldsymbol{q} \neq \boldsymbol{q} \otimes \boldsymbol{p}
\]
满足结合律(associative):
\[
(\boldsymbol{p} \otimes \boldsymbol{q}) \otimes \boldsymbol{r} = \boldsymbol{p} \otimes (\boldsymbol{q} \otimes \boldsymbol{r})
\]
满足加法分配率(distributive):
\[
\begin{aligned}
&\boldsymbol{p} \otimes(\boldsymbol{q} + \boldsymbol{r}) = \boldsymbol{p} \otimes \boldsymbol{q} + \boldsymbol{p} \otimes \boldsymbol{r} \\
& (\boldsymbol{p} + \boldsymbol{q}) \otimes \boldsymbol{r} = \boldsymbol{p} \otimes \boldsymbol{r} + \boldsymbol{q} \otimes \boldsymbol{r}
\end{aligned}
\]
对于四元数乘法可以写成矩阵的形式:
\[
\boldsymbol{q}_1 \otimes \boldsymbol{q}_2 = \left[\boldsymbol{q}_1\right]_L \boldsymbol{q}_2 \quad and \quad \boldsymbol{q}_1 \otimes \boldsymbol{q}_2 = \left[ \boldsymbol{q}_2 \right]_R \boldsymbol{q}_1 \tag{1.4.3}\label{1.4.3}
\]
其中:
\[
\begin{aligned}
& [\mathbf{q}]_{L}
=\left[\begin{array}{cccc}
{q_{w}} & {-q_{x}} & {-q_{y}} & {-q_{z}} \\
{q_{x}} & {q_{w}} & {-q_{z}} & {q_{y}} \\
{q_{y}} & {q_{z}} & {q_{w}} & {-q_{x}} \\
{q_{z}} & {-q_{y}} & {q_{x}} & {q_{w}}
\end{array}\right]
= q_{w} \mathbf{I}+\left[\begin{array}{cc}
{0} & {-\mathbf{q}_{v}^{\top}} \\
{\mathbf{q}_{v}} & {\left[\mathbf{q}_{v}\right]_{\times}}
\end{array}\right] \\
& [\mathbf{q}]_{R}
=\left[\begin{array}{cccc}
{q_{w}} & {-q_{x}} & {-q_{y}} & {-q_{z}} \\
{q_{x}} & {q_{w}} & {q_{z}} & {-q_{y}} \\
{q_{y}} & {-q_{z}} & {q_{w}} & {q_{x}} \\
{q_{z}} & {q_{y}} & {-q_{x}} & {q_{w}}
\end{array}\right]
= q_{w} \mathbf{I}+\left[\begin{array}{cc}
{0} & {-\mathbf{q}_{v}^{\top}} \\
{\mathbf{q}_{v}} & {-\left[\mathbf{q}_{v}\right]_{\times}}
\end{array}\right]
\end{aligned} \tag{1.4.4}\label{1.4.4}
\]
因此:
\[
(\mathbf{q} \otimes \mathbf{x}) \otimes \mathbf{p} = \left[ \mathbf{p} \right]_R \left[ \mathbf{q} \right]_L \mathbf{x} = \mathbf{q} \otimes (\mathbf{x} \otimes \mathbf{p}) = \left[ \mathbf{q} \right]_L \left[ \mathbf{p} \right]_R \mathbf{x} \tag{1.4.5}\label{1.4.5}
\]
四元数表示旋转
类似复数的三角表示法,四元数也可以表示为三角函数的形式:
\[
\mathbf{q} = |\mathbf{q}|(cos\theta/2 + \mathbf{u}sin\theta/2)
\]
特别的当\(|\mathbf{q}| = 1\)时,即对单位四元数:
\[
\mathbf{q} = \left[ \begin{matrix} q_w \\ \boldsymbol{q}_v \end{matrix} \right] = \left[ \begin{matrix} cos \theta/2 \\ \boldsymbol{u} sin \theta/2 \end{matrix} \right] \tag{1.4.6}\label{1.4.6}
\]
其中\(\mathbf{u}\)为单位长度三维矢量,表示旋转轴,即\(\mathbf{u}^T\mathbf{u} = 1\),\(\theta\)表示轴角。因此\(q_0^2 + \mathbf{q}^T\mathbf{q} = 1\)为单位四元数。
四元数与旋转矩阵的关系
由1.2.9,并将\(cos \theta/2 = q_w \quad \mathbf{u} sin \theta/2 = \mathbf{q}_v\)带入。得:
\[
\begin{aligned}
\mathbf{D} &= \mathbf{I}+\sin \phi(\mathbf{u} \times)+(1-\cos \phi)(\mathbf{u} \times)^{2} \\
&= \mathbf{I} + 2 sin \theta/2 \ cos \theta/2 (\mathbf{u}_\times) + 2 sin^2 \theta/2 \ (\mathbf{u}_\times)^2 \\
&= \mathbf{I} + 2 cos \theta/2 (sin \theta/2 \ \mathbf{u}_\times) + 2 (sin \theta/2 \ \mathbf{u}_\times)^2 \\
&= \mathbf{I} + 2 q_w([\mathbf{q}_v]_\times) + 2([\mathbf{q}_v]_\times)^2 \\
&= \left[\begin{matrix}
1 - 2(q^2_y + q^2_z) & 2(q_xq_y - q_wq_z) & 2(q_xq_z + q_wq_y) \\
2(q_xq_y + q_wq_z) & 1 - 2(q^2_x + q^2_z) & 2(q_yq_z - q_wq_x) \\
2(q_xq_z - q_wq_y) & 2(q_yq_z + q_wq_x) & 1 - 2(q^2_x + q^2_y)
\end{matrix}\right] \\
&= \left[\begin{matrix}
q^2_w + q^2_x - q^2_y - q^2_z & 2(q_xq_y - q_wq_z) & 2(q_xq_z + q_wq_y) \\
2(q_xq_y + q_wq_z) & q^2_w - q^2_x + q^2_y - q^2_z & 2(q_yq_z - q_wq_x) \\
2(q_xq_z - q_wq_y) & 2(q_yq_z + q_wq_x) & q^2_w - q^2_x - q^2_y + q^2_z
\end{matrix}\right]
\end{aligned}
\tag{1.4.7}\label{1.4.7}
\]
建立了单位四元数与方向余弦矩阵之间的关系。
设一个三维矢量\(\mathbf{r}\),在动坐标系(b 系)和参考坐标系(i 系)的投影坐标分别为\(\mathbf{r}^b\)和\(\mathbf{r}^i\), 先对矢量\(\mathbf{r}^b\)(零标量四元数)实施四元数乘法操作:
\[
\begin{aligned}
\mathbf{q}^i_b \otimes \mathbf{r}^b \otimes {\mathbf{q}^i_b}^{-1}
&= \mathbf{q}^i_b \otimes \mathbf{r}^b \otimes {\mathbf{q}^i_b}^{*}
= \mathbf{q}^i_b \otimes \mathbf{r}^b \otimes \mathbf{q}^b_i
= \left[ \mathbf{q}^i_b \right]_L \left[ \mathbf{q}^b_i \right]_R \left[ \begin{matrix} 0 \\ \mathbf{r}^b \end{matrix} \right]\\
&= \left[\begin{matrix}
1 & 0 & 0 & 0 \\
0 & q^2_w + q^2_x - q^2_y - q^2_z & 2(q_xq_y - q_wq_z) & 2(q_xq_z + q_wq_y) \\
0 & 2(q_xq_y + q_wq_z) & q^2_w - q^2_x + q^2_y - q^2_z & 2(q_yq_z - q_wq_x) \\
0 & 2(q_xq_z - q_wq_y) & 2(q_yq_z + q_wq_x) & q^2_w - q^2_x - q^2_y + q^2_z
\end{matrix}\right] \left[ \begin{matrix} 0 \\ {r}_x^b \\ {r}_y^b \\ {r}_z^b \end{matrix} \right] \\
&= \left[ \begin{matrix} 1 & \mathbf{0} \\ \mathbf{0} & C^i_b \end{matrix} \right] \left[ \begin{matrix} 0 \\ \mathbf{r}^b \end{matrix} \right] \\
&= \left[ \begin{matrix} 0 \\ \mathbf{r}^i \end{matrix} \right]
\end{aligned} \tag{1.4.8}\label{1.4.8}
\]
可定义四元数与三维矢量的乘法运算为坐标旋转公式。
Double Cover
四元数与3D旋转并不是一一对应的,同一个3D旋转可以使用两个四元数表示,对任意单位四元数\(q = [cons(\theta/2),sin(\theta/2)\boldsymbol{u}]\),\(q\)与\(-q\)表示的是用一个旋转,分别表示绕着旋转轴\(\boldsymbol{u}\)旋转\(\theta\)角度和绕着旋转轴\(-\boldsymbol{u}\)旋转\(2\pi - \theta\)角度:

\[
-q = [-cos(\theta/2), -sin(\theta/2)\boldsymbol{u}] = [cos(\pi - \theta/2), sin(\pi - \theta/2)(-\boldsymbol{u})]
\]
由四元数旋转公式:
\[
(-q)v(-q)^{*} = (-1)^2qvq^* = qvq^*
\]
因此两个四元数表示的旋转等价,称为双倍覆盖(double cover)。
四元数微分方程
对于连续形式下的旋转状态递推:
\[
q_{b_{k+1}}^{w}=q_{b_{k}}^{w} \otimes \int_{t \in[k, k+1]} \dot{q}_{t} d t
\]
由四元数旋转公式,当旋转一段微小时间(t),即角度趋向于0时(\(sin\theta \approx \theta \quad cos\theta \approx 1\)),得:
\[
\Delta\mathbf{q} = q^{t}_{t+\delta t} = \left[ \begin{matrix} q_w \\ \boldsymbol{q}_v \end{matrix} \right] = \left[ \begin{matrix} cos \delta\theta/2 \\ \boldsymbol{u} sin \delta\theta/2 \end{matrix} \right]
\approx \left[\begin{matrix} 1 \\ u \delta\theta/2 \end{matrix}\right]
\]
角速度:
\[
\omega = \lim\limits_{x\rightarrow0}\frac{u\delta \theta/2}{\delta t}
\]
因此四元数微分方程:
\[
\begin{aligned}
\dot{q_t} &= \lim\limits_{\delta t\rightarrow0}\frac{q_{t + \delta t} - q_t}{\delta t} \\
&= \lim\limits_{x\rightarrow0}\frac{q_t \bigotimes q_{t+\delta t}^{t} - q_t \bigotimes \left[\begin{matrix} 1 \\ 0 \end{matrix}\right] }{\delta t} \\
&= \lim\limits_{x\rightarrow0}\frac{q_t \bigotimes \left( \left[\begin{matrix} 1 \\ u \delta\theta/2 \end{matrix}\right] - \left[\begin{matrix} 1 \\ 0 \end{matrix}\right] \right)}{\delta t} \\
&= q_t \bigotimes \left[\begin{matrix} 0 \\ \omega/2 \end{matrix}\right]
\end{aligned}
\]
李群李代数伴随性质(Adjoint)
对于\(SO_3\),有:
\[
R\exp (p^{\wedge})R^T = \exp((Rp)^{\wedge})
\]
证明:
\[
a^{\wedge}v = a\times v
\]
我们可以通过使等式的RHS作用于任意向量v来证明该等式:
\[
\begin{aligned}
(Ra)^{\wedge}v &= (Ra)\times v
\\&=(Ra)\times (RR^{-1}v) &(RR^{-1}=I)
\\&=R[a \times(R^{-1}v)] &(分配律)
\\&=Ra^{\wedge}R^{-1}v &(结合律)
\end{aligned}
\]
因此得到:
\[
(Ra)^{\wedge}=Ra^{\wedge}R^{-1}
\]
而R是正交矩阵,因此:
\[
(Ra)^{\wedge}=Ra^{\wedge}R^{T}
\]
令\(\rho=\theta a\):
\[
\begin{aligned}
R\exp(\theta a^{\wedge})R^T & = R(\cos\theta I+(1-\cos\theta)aa^T+\sin\theta a^{\wedge})R^T\\
& = \cos\theta I+(1-cos\theta)Ra(Ra)^T+sin\theta Ra^{\wedge}R^T\\
&=\cos\theta I+(1-cos\theta)Ra(Ra)^T+sin\theta (Ra)^{\wedge}\\
&= \exp(\theta (Ra)^{\wedge})\\
&= \exp((R\rho)^{\wedge})
\end{aligned}
\]
常用四元数求导案例(右乘扰动方式)
-
\(f(q^w_b) = q^w_b * v^b\)
\[
\begin{aligned}
\frac{\partial f\left(q_{b}^{w}\right)}{\partial q_{b}^{w}} &= \lim _{\delta \theta_{b}^{w} \rightarrow 0} \frac{ {R}_{b}^{w} exp(\left[\delta \theta_{b}^{w}\right]_{\times}) \left( v^b \right) - {R}_{b}^{w} \left( v^b \right) }{\delta \theta_{b}^{w}} \\
&\approx \lim_{\delta \theta_{b}^{w} \rightarrow 0} \frac{ {R}_{b}^{w} (I^{3 \times 3} + \left[ \delta \theta_{b}^{w} \right]_\times) \left( v^b \right) - {R}_{b}^{w} \left( v^b \right) }{\delta \theta_{b}^{w}} (泰勒展开)\\
&= \lim _{\delta \theta_{b}^{w} \rightarrow 0} \frac{ {R}_{b}^{w} \left[ \delta \theta_{b}^{w} \right]_\times \left( v^b \right) }{\delta \theta_{b}^{w}} \\
&= \lim _{\delta \theta_{b}^{w} \rightarrow 0} \frac{ -{R}_{b}^{w} \delta \theta_{b}^{w} \left[ \left( v^b \right)\right]_\times }{\delta \theta_{b}^{w}} (叉乘性质)\\
&= -{R}_{b}^{w} \left[ \left( v^b \right)\right]_\times \\
\end{aligned}
\]
-
\(f(v^b) = q^w_b * v^b\)
\[
\begin{aligned}
\frac{\partial f\left(v^b\right)}{\partial v^b} &= \lim _{\delta v^b \rightarrow 0} \frac{\mathbf{R} (v + \delta v) - \mathbf{R}v}{\delta v} = \mathbf{R}
\end{aligned}
\]
-
\(f(q^w_b) = (q^w_b)^{-1} * v^w\)
\[
\begin{aligned}
\frac{\partial f\left(q_{b}^{w}\right)}{\partial q_{b}^{w}} &= \lim _{\delta \theta_{b}^{w} \rightarrow 0} \frac{ \left({R}_{b}^{w} exp(\left[\delta \theta_{b}^{w}\right]_{\times}) \right)^{-1} \left( v^w \right) - {R}_{b}^{w} \left( v^w \right) }{\delta \theta_{b}^{w}} \\
&= \lim _{\delta \theta_{b}^{w} \rightarrow 0} \frac{ \left( exp(\left[-\delta \theta_{b}^{w}\right]_{\times}) \left({R}_{b}^{w}\right)^{-1} \right) \left( v^w \right) - {R}_{b}^{w} \left( v^w \right) }{\delta \theta_{b}^{w}} \\
&\approx \lim_{\delta \theta_{b}^{w} \rightarrow 0} \frac{ \left( (I^{3 \times 3} - \left[ \delta \theta_{b}^{w} \right]_\times)({R}_{b}^{w})^{-1}\right) \left( v^w \right) - {R}_{b}^{w} \left( v^w \right) }{\delta \theta_{b}^{w}} \\
&= \lim _{\delta \theta_{b}^{w} \rightarrow 0} \frac{ -\left[ \delta \theta_{b}^{w} \right]_\times \left(({R}_{b}^{w})^{-1} \left( v^w \right)\right) }{\delta \theta_{b}^{w}} \\
&= \lim _{\delta \theta_{b}^{w} \rightarrow 0} \frac{ \left[({R}_{b}^{w})^{-1} \left( v^w \right)\right]_{\times} \delta \theta_{b}^{w} }{\delta \theta_{b}^{w}} \\
&= \left[({R}_{b}^{w})^{-1} \left( v^w \right)\right]_{\times} \\
\end{aligned}
\]

李群李代数
SO(3)的伴随性质
Reference
[1] <捷联惯导算法与组合导航原理讲义>
[2] <视觉SLAM十四讲>
[3] Quaternion kinematics for the error-state Kalman filter
[4] A micro Lie theory for state estimation in robotics
[5] https://opensource.docs.anymal.com/doxygen/kindr/master/cheatsheet_latest.pdf
[6] https://quaternions.online/|
[7] https://eater.net/quaternions/
[8] https://www.bilibili.com/video/av33385105
[] https://www.zhihu.com/question/23005815?sort=created
[] http://danceswithcode.net/engineeringnotes/rotations_in_3d/demo3D/rotations_in_3d_tool.html
[] Robot Dynamics Lecture Notes--Robotic Systems Lab, ETH Zurich
[] http://underactuated.csail.mit.edu/index.html
[] https://krasjet.github.io/quaternion/quaternion.pdf