我们在上一篇姿态运动博客中介绍了旋转矩阵的一些基本性质,参考文献[1]中的做法,主要是引入了 R ( n ^ , θ ) \boldsymbol{R}(\hat{\mathbf{n}},\theta) R(n^,θ),关于 R ( n ^ , θ ) \boldsymbol{R}(\hat{\mathbf{n}},\theta) R(n^,θ)可以这么理解,将 n ^ \hat{\mathbf{n}} n^类比为 z ^ \hat{\mathbf{z}} z^轴,任意矢量 v \mathbf{v} v沿着 n ^ \hat{\mathbf{n}} n^方向的投影为 v ∥ = ( n ^ ⋅ v ) n ^ \mathbf{v}_\parallel= (\hat{\mathbf{n}}\cdot \mathbf{v})\hat{\mathbf{n}} v∥=(n^⋅v)n^,在与 n ^ \hat{\mathbf{n}} n^垂直平面上的投影为 v ⊥ = − n ^ × ( n ^ × v ) \mathbf{v}_\perp= -\hat{\mathbf{n}}\times(\hat{\mathbf{n}}\times \mathbf{v}) v⊥=−n^×(n^×v),如图1所示。
![](https://i-blog.csdnimg.cn/blog_migrate/529e92b9981d991a9ee06ac165a3bfe1.png)
由图1可见
v
∥
\mathbf{v}_\parallel
v∥沿着
z
^
\hat{\mathbf{z}}
z^轴方向,而
v
⊥
\mathbf{v}_\perp
v⊥沿着
x
^
\hat{\mathbf{x}}
x^轴方向,因此类比于上一篇姿态运动博客中的式(22),有
R
(
n
^
,
θ
)
v
=
R
(
n
^
,
θ
)
v
∥
+
R
(
n
^
,
θ
)
v
⊥
=
v
∥
+
cos
(
θ
)
v
⊥
−
sin
(
θ
)
n
^
×
v
⊥
=
v
∥
+
cos
(
θ
)
v
⊥
+
sin
(
θ
)
[
[
n
^
]
]
v
⊥
(1)
\begin{aligned} \boldsymbol{R}(\hat{\mathbf{n}},\theta)\mathbf{v}&=\boldsymbol{R}(\hat{\mathbf{n}},\theta)\mathbf{v}_\parallel+\boldsymbol{R}(\hat{\mathbf{n}},\theta)\mathbf{v}_\perp\\ &=\mathbf{v}_\parallel+\cos(\theta)\mathbf{v}_\perp-\sin(\theta)\hat{\mathbf{n}}\times\mathbf{v}_\perp\\ &=\mathbf{v}_\parallel+\cos(\theta)\mathbf{v}_\perp+\sin(\theta)[[\hat{\mathbf{n}}]]\mathbf{v}_\perp \end{aligned}\tag{1}
R(n^,θ)v=R(n^,θ)v∥+R(n^,θ)v⊥=v∥+cos(θ)v⊥−sin(θ)n^×v⊥=v∥+cos(θ)v⊥+sin(θ)[[n^]]v⊥(1)
式(1)与上一篇姿态运动博客是一致的。设从 s \mathrm{s} s系出发,绕 s \mathrm{s} s系中的 n ^ \hat{\mathbf{n}} n^轴旋转 θ \theta θ角得到 b \mathrm{b} b系,则从 s \mathrm{s} s系到 b \mathrm{b} b系的旋转矩阵 C s b = R ( n ^ , θ ) \boldsymbol{C}_\mathrm{s}^\mathrm{b}=\boldsymbol{R}(\hat{\mathbf{n}},\theta) Csb=R(n^,θ),从 b \mathrm{b} b系到 s \mathrm{s} s系的旋转矩阵则满足
C b s = R T ( n ^ , θ ) = I − sin ( θ ) [ [ n ^ ] ] + ( 1 − cos ( θ ) ) [ [ n ^ ] ] 2 (2) \boldsymbol{C}_\mathrm{b}^\mathrm{s}=\boldsymbol{R}^\mathrm{T}(\hat{\mathbf{n}},\theta)=I-\sin(\theta)[[\hat{\mathbf{n}}]]+(1-\cos(\theta))[[\hat{\mathbf{n}}]]^2\tag{2} Cbs=RT(n^,θ)=I−sin(θ)[[n^]]+(1−cos(θ))[[n^]]2(2)
这同文献[2]中的推导是一致的(注意这里反对称阵的定义)。到目前为止,我们对旋转矩阵是通过同一矢量在不同坐标系的下表示进行描述的。另一方面,我们在线性代数课程中了解到,矩阵可以看作线性空间上的算子,将一个矢量映射到另一个矢量,那么旋转矩阵也是矩阵,自然也存在类似的映射关系,具体来说,旋转矩阵
C
b
s
\boldsymbol{C}_\mathrm{b}^\mathrm{s}
Cbs将与
b
\mathrm{b}
b系固联的矢量
r
\boldsymbol{r}
r映射到
r
′
\boldsymbol{r}'
r′(
r
\boldsymbol{r}
r和
r
′
\boldsymbol{r}'
r′均在与
s
\mathrm{s}
s系下进行表示),即有
r
′
s
=
C
b
s
r
s
(3)
\boldsymbol{r}'^\mathrm{s}=\boldsymbol{C}_\mathrm{b}^\mathrm{s}\boldsymbol{r}^\mathrm{s}\tag{3}
r′s=Cbsrs(3)
式(3)可以这么理解,设旋转前
b
\mathrm{b}
b系与
s
\mathrm{s}
s系重合(此时
b
\mathrm{b}
b系的三个坐标轴分别为
x
^
b
0
,
y
^
b
0
,
z
^
b
0
\hat{\mathbf{x}}_{\mathrm{b}0},\hat{\mathbf{y}}_{\mathrm{b}0},\hat{\mathbf{z}}_{\mathrm{b}0}
x^b0,y^b0,z^b0),已知
r
\boldsymbol{r}
r和
r
′
\boldsymbol{r}'
r′在
b
\mathrm{b}
b系下为同一矢量,即有
r
=
r
1
b
x
^
b
0
+
r
2
b
y
^
b
0
+
r
3
b
z
^
b
0
=
r
1
b
x
^
s
+
r
2
b
y
^
s
+
r
3
b
z
^
s
(4)
\boldsymbol{r}=r_{1\mathrm{b}}\hat{\mathbf{x}}_{\mathrm{b}0}+r_{2\mathrm{b}}\hat{\mathbf{y}}_{\mathrm{b}0}+r_{3\mathrm{b}}\hat{\mathbf{z}}_{\mathrm{b}0}=r_{1\mathrm{b}}\hat{\mathbf{x}}_\mathrm{s}+r_{2\mathrm{b}}\hat{\mathbf{y}}_\mathrm{s}+r_{3\mathrm{b}}\hat{\mathbf{z}}_\mathrm{s}\tag{4}
r=r1bx^b0+r2by^b0+r3bz^b0=r1bx^s+r2by^s+r3bz^s(4)
r ′ = r 1 b x ^ b + r 2 b y ^ b + r 3 b z ^ b (5) \boldsymbol{r}'=r_{1\mathrm{b}}\hat{\mathbf{x}}_\mathrm{b}+r_{2\mathrm{b}}\hat{\mathbf{y}}_\mathrm{b}+r_{3\mathrm{b}}\hat{\mathbf{z}}_\mathrm{b}\tag{5} r′=r1bx^b+r2by^b+r3bz^b(5)
因此
r
s
=
[
r
1
b
r
2
b
r
3
b
]
T
\boldsymbol{r}^\mathrm{s}=[r_{1\mathrm{b}}~r_{2\mathrm{b}}~r_{3\mathrm{b}}]^\mathrm{T}
rs=[r1b r2b r3b]T。考虑到
x
^
b
,
y
^
b
,
z
^
b
\hat{\mathbf{x}}_\mathrm{b},\hat{\mathbf{y}}_\mathrm{b},\hat{\mathbf{z}}_\mathrm{b}
x^b,y^b,z^b可利用
x
^
s
,
y
^
s
,
z
^
s
\hat{\mathbf{x}}_\mathrm{s},\hat{\mathbf{y}}_\mathrm{s},\hat{\mathbf{z}}_\mathrm{s}
x^s,y^s,z^s进行表示,即
{
x
^
b
=
l
1
x
^
s
+
m
1
y
^
s
+
n
1
z
^
s
y
^
b
=
l
2
x
^
s
+
m
2
y
^
s
+
n
2
z
^
s
z
^
b
=
l
3
x
^
s
+
m
3
y
^
s
+
n
3
z
^
s
(6)
\left\{ \begin{array}{ll} \hat{\mathbf{x}}_\mathrm{b}=l_1\hat{\mathbf{x}}_\mathrm{s}+m_1\hat{\mathbf{y}}_\mathrm{s}+n_1\hat{\mathbf{z}}_\mathrm{s}\\ \hat{\mathbf{y}}_\mathrm{b}=l_2\hat{\mathbf{x}}_\mathrm{s}+m_2\hat{\mathbf{y}}_\mathrm{s}+n_2\hat{\mathbf{z}}_\mathrm{s}\\ \hat{\mathbf{z}}_\mathrm{b}=l_3\hat{\mathbf{x}}_\mathrm{s}+m_3\hat{\mathbf{y}}_\mathrm{s}+n_3\hat{\mathbf{z}}_\mathrm{s} \end{array} \right.\tag{6}
⎩⎨⎧x^b=l1x^s+m1y^s+n1z^sy^b=l2x^s+m2y^s+n2z^sz^b=l3x^s+m3y^s+n3z^s(6)
因此有
r
′
=
r
1
b
x
^
b
+
r
2
b
y
^
b
+
r
3
b
z
^
b
=
r
1
b
(
l
1
x
^
s
+
m
1
y
^
s
+
n
1
z
^
s
)
+
r
2
b
(
l
2
x
^
s
+
m
2
y
^
s
+
n
2
z
^
s
)
+
r
3
b
(
l
3
x
^
s
+
m
3
y
^
s
+
n
3
z
^
s
)
=
(
r
1
b
l
1
+
r
2
b
l
2
+
r
3
b
l
3
)
x
^
s
+
(
r
1
b
m
1
+
r
2
b
m
2
+
r
3
b
m
3
)
y
^
s
+
(
r
1
b
n
1
+
r
2
b
n
2
+
r
3
b
n
3
)
z
^
s
(7)
\begin{aligned} \boldsymbol{r}'=&r_{1\mathrm{b}}\hat{\mathbf{x}}_\mathrm{b}+r_{2\mathrm{b}}\hat{\mathbf{y}}_\mathrm{b}+r_{3\mathrm{b}}\hat{\mathbf{z}}_\mathrm{b}\\ =&r_{1\mathrm{b}}(l_1\hat{\mathbf{x}}_\mathrm{s}+m_1\hat{\mathbf{y}}_\mathrm{s}+n_1\hat{\mathbf{z}}_\mathrm{s})+r_{2\mathrm{b}}(l_2\hat{\mathbf{x}}_\mathrm{s}+m_2\hat{\mathbf{y}}_\mathrm{s}+n_2\hat{\mathbf{z}}_\mathrm{s})\\ &+r_{3\mathrm{b}}(l_3\hat{\mathbf{x}}_\mathrm{s}+m_3\hat{\mathbf{y}}_\mathrm{s}+n_3\hat{\mathbf{z}}_\mathrm{s})\\ =&(r_{1\mathrm{b}}l_1+r_{2\mathrm{b}}l_2+r_{3\mathrm{b}}l_3)\hat{\mathbf{x}}_\mathrm{s}+ (r_{1\mathrm{b}}m_1+r_{2\mathrm{b}}m_2+r_{3\mathrm{b}}m_3)\hat{\mathbf{y}}_\mathrm{s}\\ &+(r_{1\mathrm{b}}n_1+r_{2\mathrm{b}}n_2+r_{3\mathrm{b}}n_3)\hat{\mathbf{z}}_\mathrm{s} \end{aligned}\tag{7}
r′===r1bx^b+r2by^b+r3bz^br1b(l1x^s+m1y^s+n1z^s)+r2b(l2x^s+m2y^s+n2z^s)+r3b(l3x^s+m3y^s+n3z^s)(r1bl1+r2bl2+r3bl3)x^s+(r1bm1+r2bm2+r3bm3)y^s+(r1bn1+r2bn2+r3bn3)z^s(7)
即
r
′
s
=
[
r
1
b
l
1
+
r
2
b
l
2
+
r
3
b
l
3
r
1
b
m
1
+
r
2
b
m
2
+
r
3
b
m
3
r
1
b
n
1
+
r
2
b
n
2
+
r
3
b
n
3
]
=
[
l
1
l
2
l
3
m
1
m
2
m
3
n
1
n
2
n
3
]
[
r
1
b
r
2
b
r
3
b
]
=
C
b
s
r
s
(8)
\boldsymbol{r}'^\mathrm{s}=\begin{bmatrix} r_{1\mathrm{b}}l_1+r_{2\mathrm{b}}l_2+r_{3\mathrm{b}}l_3\\ r_{1\mathrm{b}}m_1+r_{2\mathrm{b}}m_2+r_{3\mathrm{b}}m_3\\ r_{1\mathrm{b}}n_1+r_{2\mathrm{b}}n_2+r_{3\mathrm{b}}n_3 \end{bmatrix}=\begin{bmatrix} l_1 & l_2 & l_3\\ m_1 & m_2 & m_3\\ n_1 & n_2 & n_3 \end{bmatrix}\begin{bmatrix} r_{1\mathrm{b}}\\ r_{2\mathrm{b}}\\ r_{3\mathrm{b}} \end{bmatrix}=\boldsymbol{C}_\mathrm{b}^\mathrm{s}\boldsymbol{r}^\mathrm{s}\tag{8}
r′s=⎣⎡r1bl1+r2bl2+r3bl3r1bm1+r2bm2+r3bm3r1bn1+r2bn2+r3bn3⎦⎤=⎣⎡l1m1n1l2m2n2l3m3n3⎦⎤⎣⎡r1br2br3b⎦⎤=Cbsrs(8)
这样就得到了式(3)。旋转矩阵可以用来描述同一个矢量在不同坐标系下的投影,也可以用来描述不同矢量在同一坐标系下的投影,考虑到 n ^ \hat{\mathbf{n}} n^为单位矢量,因此 R ( n ^ , θ ) \boldsymbol{R}(\hat{\mathbf{n}},\theta) R(n^,θ)有3个自由度,即 n ^ \hat{\mathbf{n}} n^的2个加上 θ \theta θ的1个。也就是说,用3个独立的量就足够刻画旋转矩阵或者姿态了,除 n ^ , θ \hat{\mathbf{n}},\theta n^,θ外,常用的还有欧拉角、四元数(四元数是4个量,但用来表示姿态时必须满足范数为1的约束)、罗德里格参数等,下面进一步介绍欧拉角和四元数的一些性质。
一、欧拉角
我们知道欧拉角是从基准坐标系到体坐标系三次旋转中间过程的描述,设三次旋转的轴依次为
n
^
1
,
n
^
2
,
n
^
3
\hat{\mathbf{n}}_1,\hat{\mathbf{n}}_2,\hat{\mathbf{n}}_3
n^1,n^2,n^3,旋转的角度依次为
θ
1
,
θ
2
,
θ
3
\theta_1,\theta_2,\theta_3
θ1,θ2,θ3,则从基准坐标系到体坐标系的旋转矩阵满足
R
(
n
^
,
θ
)
=
R
(
n
^
3
,
θ
3
)
R
(
n
^
2
,
θ
2
)
R
(
n
^
1
,
θ
1
)
(9)
\boldsymbol{R}(\hat{\mathbf{n}},\theta)=\boldsymbol{R}(\hat{\mathbf{n}}_3,\theta_3)\boldsymbol{R}(\hat{\mathbf{n}}_2,\theta_2)\boldsymbol{R}(\hat{\mathbf{n}}_1,\theta_1)\tag{9}
R(n^,θ)=R(n^3,θ3)R(n^2,θ2)R(n^1,θ1)(9)
当 n ^ 1 , n ^ 2 , n ^ 3 \hat{\mathbf{n}}_1,\hat{\mathbf{n}}_2,\hat{\mathbf{n}}_3 n^1,n^2,n^3取为 x ^ , y ^ , z ^ \hat{\mathbf{x}},\hat{\mathbf{y}},\hat{\mathbf{z}} x^,y^,z^(这里的 x ^ , y ^ , z ^ \hat{\mathbf{x}},\hat{\mathbf{y}},\hat{\mathbf{z}} x^,y^,z^表示旋转之前的坐标系对应的轴向)中的某一个时,相应的三次旋转角 θ 1 , θ 2 , θ 3 \theta_1,\theta_2,\theta_3 θ1,θ2,θ3即称为欧拉角,并通常用 φ , ϑ , ψ \varphi,\vartheta,\psi φ,ϑ,ψ表示,为保证欧拉角三个自由度,需要满足 n ^ 1 ≠ n ^ 2 \hat{\mathbf{n}}_1\neq\hat{\mathbf{n}}_2 n^1=n^2和 n ^ 2 ≠ n ^ 3 \hat{\mathbf{n}}_2\neq\hat{\mathbf{n}}_3 n^2=n^3,因此欧拉角有 3 × 3 × 3 − 3 × 3 − 3 × 2 = 12 3\times 3\times3-3\times3-3\times2=12 3×3×3−3×3−3×2=12种可能的组合(常用的滚转角、俯仰角、偏航角只是诸多欧拉角组合中的一种),具体为6个对称的和6个非对称的,即有
n ^ 1 − n ^ 2 − n ^ 3 \hat{\mathbf{n}}_1-\hat{\mathbf{n}}_2-\hat{\mathbf{n}}_3 n^1−n^2−n^3 | |
---|---|
对称 | 非对称 |
1 − 2 − 1 ( x ^ − y ^ − x ^ ) 1-2-1(\hat{\mathbf{x}}-\hat{\mathbf{y}}-\hat{\mathbf{x}}) 1−2−1(x^−y^−x^) | 1 − 2 − 3 ( x ^ − y ^ − z ^ ) 1-2-3(\hat{\mathbf{x}}-\hat{\mathbf{y}}-\hat{\mathbf{z}}) 1−2−3(x^−y^−z^) |
1 − 3 − 1 ( x ^ − z ^ − x ^ ) 1-3-1(\hat{\mathbf{x}}-\hat{\mathbf{z}}-\hat{\mathbf{x}}) 1−3−1(x^−z^−x^) | 1 − 3 − 2 ( x ^ − z ^ − y ^ ) 1-3-2(\hat{\mathbf{x}}-\hat{\mathbf{z}}-\hat{\mathbf{y}}) 1−3−2(x^−z^−y^) |
2 − 3 − 2 ( y ^ − z ^ − y ^ ) 2-3-2(\hat{\mathbf{y}}-\hat{\mathbf{z}}-\hat{\mathbf{y}}) 2−3−2(y^−z^−y^) | 2 − 3 − 1 ( y ^ − z ^ − x ^ ) 2-3-1(\hat{\mathbf{y}}-\hat{\mathbf{z}}-\hat{\mathbf{x}}) 2−3−1(y^−z^−x^) |
2 − 1 − 2 ( y ^ − x ^ − y ^ ) 2-1-2(\hat{\mathbf{y}}-\hat{\mathbf{x}}-\hat{\mathbf{y}}) 2−1−2(y^−x^−y^) | 2 − 1 − 3 ( y ^ − x ^ − z ^ ) 2-1-3(\hat{\mathbf{y}}-\hat{\mathbf{x}}-\hat{\mathbf{z}}) 2−1−3(y^−x^−z^) |
3 − 1 − 3 ( z ^ − x ^ − z ^ ) 3-1-3(\hat{\mathbf{z}}-\hat{\mathbf{x}}-\hat{\mathbf{z}}) 3−1−3(z^−x^−z^) | 3 − 1 − 2 ( z ^ − x ^ − y ^ ) 3-1-2(\hat{\mathbf{z}}-\hat{\mathbf{x}}-\hat{\mathbf{y}}) 3−1−2(z^−x^−y^) |
3 − 2 − 3 ( z ^ − y ^ − z ^ ) 3-2-3(\hat{\mathbf{z}}-\hat{\mathbf{y}}-\hat{\mathbf{z}}) 3−2−3(z^−y^−z^) | 3 − 2 − 1 ( z ^ − y ^ − x ^ ) 3-2-1(\hat{\mathbf{z}}-\hat{\mathbf{y}}-\hat{\mathbf{x}}) 3−2−1(z^−y^−x^) |
例如,对于 3 − 1 − 3 3-1-3 3−1−3,相应的旋转矩阵为
R 313 ( φ , ϑ , ψ ) = [ cos ψ sin ψ 0 − sin ψ cos ψ 0 0 0 1 ] [ 1 0 0 0 cos ϑ sin ϑ 0 − sin ϑ cos ϑ ] [ cos φ sin φ 0 − sin φ cos φ 0 0 0 1 ] = [ c ψ c φ − s ψ c ϑ s φ c ψ s φ + s ψ c ϑ c φ s ψ s ϑ − s ψ c φ − c ψ c ϑ s φ − s ψ s φ + c ψ c ϑ c φ c ψ s ϑ s ϑ s φ − s ϑ c φ c ϑ ] (10) \begin{aligned} \boldsymbol{R}_{313}(\varphi,\vartheta,\psi)&=\begin{bmatrix} \cos\psi & \sin\psi & 0\\ -\sin\psi & \cos\psi & 0\\ 0 & 0 & 1 \end{bmatrix}\begin{bmatrix} 1 & 0 & 0\\ 0 & \cos\vartheta & \sin\vartheta\\ 0 & -\sin\vartheta & \cos\vartheta \end{bmatrix}\begin{bmatrix} \cos\varphi & \sin\varphi & 0\\ -\sin\varphi & \cos\varphi & 0\\ 0 & 0 & 1 \end{bmatrix}\\ &=\begin{bmatrix} c\psi c\varphi-s\psi c\vartheta s\varphi & c\psi s\varphi+s\psi c\vartheta c\varphi & s\psi s\vartheta\\ -s\psi c\varphi-c\psi c\vartheta s\varphi & -s\psi s\varphi+c\psi c\vartheta c\varphi & c\psi s\vartheta\\ s\vartheta s\varphi & -s\vartheta c\varphi & c\vartheta \end{bmatrix} \end{aligned}\tag{10} R313(φ,ϑ,ψ)=⎣⎡cosψ−sinψ0sinψcosψ0001⎦⎤⎣⎡1000cosϑ−sinϑ0sinϑcosϑ⎦⎤⎣⎡cosφ−sinφ0sinφcosφ0001⎦⎤=⎣⎡cψcφ−sψcϑsφ−sψcφ−cψcϑsφsϑsφcψsφ+sψcϑcφ−sψsφ+cψcϑcφ−sϑcφsψsϑcψsϑcϑ⎦⎤(10)
其中 s ψ s\psi sψ表示 sin ψ \sin\psi sinψ, c ψ c\psi cψ表示 cos ψ \cos\psi cosψ,对于其他组合也可用类似方式计算旋转矩阵。由于根据旋转矩阵计算欧拉角会涉及到反三角函数运算,对于欧拉角的象限范围需要仔细考虑。欧拉角最大的好处在于相对直观,能够让人大致想象出来运动体的姿态是什么样子,但是对于姿态计算和控制则不一定很方便,毕竟计算机只知道根据公式进行计算,它才不管什么欧拉角,一般来说,在姿态运动范围不大是可以利用旋转矩阵和欧拉角进行相互计算,但当姿态运动范围较大时欧拉角可能会出现奇异,此时需要利用四元数等其他的姿态表示方式。
二、四元数
对于旋转矩阵
R
(
n
^
,
θ
)
\boldsymbol{R}(\hat{\mathbf{n}},\theta)
R(n^,θ),我们在上一篇姿态运动博客中已经知道其表达式可写为
R
(
n
^
,
θ
)
=
cos
θ
I
+
(
1
−
cos
θ
)
n
^
n
^
T
+
sin
θ
[
[
n
^
]
]
(11)
\boldsymbol{R}(\hat{\mathbf{n}},\theta)=\cos\theta I+(1-\cos\theta)\hat{\mathbf{n}}\hat{\mathbf{n}}^\mathrm{T}+\sin\theta[[\hat{\mathbf{n}}]]\tag{11}
R(n^,θ)=cosθI+(1−cosθ)n^n^T+sinθ[[n^]](11)
其中 n 1 , n 2 , n 3 n_1,n_2,n_3 n1,n2,n3为 n ^ \hat{\mathbf{n}} n^在基准坐标系下的3个分量。我们定义如下4个量:
η = [ η 1 , η 2 , η 3 , η 4 ] T , η 1 = n 1 sin θ 2 , η 2 = n 2 sin θ 2 , η 3 = n 3 sin θ 2 , η 4 = cos θ 2 (12) \boldsymbol{\eta}=[\eta_1,\eta_2,\eta_3,\eta_4]^\mathrm{T},\eta_1=n_1\sin\frac{\theta}{2},\eta_2=n_2\sin\frac{\theta}{2},\eta_3=n_3\sin\frac{\theta}{2},\eta_4=\cos\frac{\theta}{2}\tag{12} η=[η1,η2,η3,η4]T,η1=n1sin2θ,η2=n2sin2θ,η3=n3sin2θ,η4=cos2θ(12)
则有
η
T
η
=
η
1
2
+
η
2
2
+
η
3
2
+
η
4
2
=
1
\boldsymbol{\eta}^\mathrm{T}\boldsymbol{\eta}=\eta_1^2+\eta_2^2+\eta_3^2+\eta_4^2=1
ηTη=η12+η22+η32+η42=1,即
η
\boldsymbol{\eta}
η的范数始终为1,我们在后面会看到这样定义4个量的意义,由于存在范数约束,因此
η
\boldsymbol{\eta}
η本质上还是3个独立分量。令
η
v
=
[
η
1
,
η
2
,
η
3
]
T
=
n
^
sin
(
θ
/
2
)
\boldsymbol{\eta}_\mathrm{v}=[\eta_1,\eta_2,\eta_3]^\mathrm{T}=\hat{\mathbf{n}}\sin(\theta/2)
ηv=[η1,η2,η3]T=n^sin(θ/2)表示
η
\boldsymbol{\eta}
η的矢量部分(相应地,
η
4
\eta_4
η4称为
η
\boldsymbol{\eta}
η的标量部分),比较式(11)和(12)可知
R
(
n
^
,
θ
)
=
(
2
η
4
2
−
1
)
I
+
2
sin
2
(
θ
/
2
)
n
^
n
^
T
+
2
sin
(
θ
/
2
)
cos
(
θ
/
2
)
[
[
n
^
]
]
=
(
η
4
2
−
η
v
T
η
v
)
I
+
2
η
v
η
v
T
+
2
η
4
[
[
η
v
]
]
(13)
\begin{aligned} \boldsymbol{R}(\hat{\mathbf{n}},\theta)&=(2\eta_4^2-1)I+2\sin^2(\theta/2)\hat{\mathbf{n}}\hat{\mathbf{n}}^\mathrm{T}+2\sin(\theta/2)\cos(\theta/2)[[\hat{\mathbf{n}}]]\\ &=(\eta_4^2-\boldsymbol{\eta}_\mathrm{v}^\mathrm{T}\boldsymbol{\eta}_\mathrm{v})I+2\boldsymbol{\eta}_\mathrm{v}\boldsymbol{\eta}_\mathrm{v}^\mathrm{T}+2\eta_4[[\boldsymbol{\eta}_\mathrm{v}]] \end{aligned}\tag{13}
R(n^,θ)=(2η42−1)I+2sin2(θ/2)n^n^T+2sin(θ/2)cos(θ/2)[[n^]]=(η42−ηvTηv)I+2ηvηvT+2η4[[ηv]](13)
具体来说,有
R
(
n
^
,
θ
)
=
[
cos
(
θ
)
+
n
1
2
(
1
−
cos
(
θ
)
)
n
1
n
2
(
1
−
cos
(
θ
)
)
+
n
3
sin
(
θ
)
n
1
n
3
(
1
−
cos
(
θ
)
)
−
n
2
sin
(
θ
)
n
2
n
1
(
1
−
cos
(
θ
)
)
−
n
3
sin
(
θ
)
cos
(
θ
)
+
n
2
2
(
1
−
cos
(
θ
)
)
n
2
n
3
(
1
−
cos
(
θ
)
)
+
n
1
sin
(
θ
)
n
3
n
1
(
1
−
cos
(
θ
)
)
+
n
2
sin
(
θ
)
n
3
n
2
(
1
−
cos
(
θ
)
)
−
n
1
sin
(
θ
)
cos
(
θ
)
+
n
3
2
(
1
−
cos
(
θ
)
)
]
=
[
η
1
2
−
η
2
2
−
η
3
2
+
η
4
2
2
(
η
1
η
2
+
η
4
η
3
)
2
(
η
1
η
3
−
η
4
η
2
)
2
(
η
2
η
1
−
η
4
η
3
)
−
η
1
2
+
η
2
2
−
η
3
2
+
η
4
2
2
(
η
2
η
3
+
η
4
η
1
)
2
(
η
3
η
1
+
η
4
η
2
)
2
(
η
3
η
2
−
η
4
η
1
)
−
η
1
2
−
η
2
2
+
η
3
2
+
η
4
2
]
=
R
(
η
)
(
14
)
\begin{aligned} &\boldsymbol{R}(\hat{\mathbf{n}},\theta)\\ =&\begin{bmatrix} \cos(\theta)+n_1^2(1-\cos(\theta)) & n_1n_2(1-\cos(\theta))+n_3\sin(\theta) & n_1n_3(1-\cos(\theta))-n_2\sin(\theta)\\ n_2n_1(1-\cos(\theta))-n_3\sin(\theta) & \cos(\theta)+n_2^2(1-\cos(\theta)) & n_2n_3(1-\cos(\theta))+n_1\sin(\theta)\\ n_3n_1(1-\cos(\theta))+n_2\sin(\theta) & n_3n_2(1-\cos(\theta))-n_1\sin(\theta) & \cos(\theta)+n_3^2(1-\cos(\theta)) \end{bmatrix}\\ =&\begin{bmatrix} \eta_1^2-\eta_2^2-\eta_3^2+\eta_4^2 & 2(\eta_1\eta_2+\eta_4\eta_3) & 2(\eta_1\eta_3-\eta_4\eta_2)\\ 2(\eta_2\eta_1-\eta_4\eta_3) & -\eta_1^2+\eta_2^2-\eta_3^2+\eta_4^2 & 2(\eta_2\eta_3+\eta_4\eta_1)\\ 2(\eta_3\eta_1+\eta_4\eta_2) & 2(\eta_3\eta_2-\eta_4\eta_1) & -\eta_1^2-\eta_2^2+\eta_3^2+\eta_4^2 \end{bmatrix}=\boldsymbol{R}(\boldsymbol{\eta})~~(14) \end{aligned}
==R(n^,θ)⎣⎡cos(θ)+n12(1−cos(θ))n2n1(1−cos(θ))−n3sin(θ)n3n1(1−cos(θ))+n2sin(θ)n1n2(1−cos(θ))+n3sin(θ)cos(θ)+n22(1−cos(θ))n3n2(1−cos(θ))−n1sin(θ)n1n3(1−cos(θ))−n2sin(θ)n2n3(1−cos(θ))+n1sin(θ)cos(θ)+n32(1−cos(θ))⎦⎤⎣⎡η12−η22−η32+η422(η2η1−η4η3)2(η3η1+η4η2)2(η1η2+η4η3)−η12+η22−η32+η422(η3η2−η4η1)2(η1η3−η4η2)2(η2η3+η4η1)−η12−η22+η32+η42⎦⎤=R(η) (14)
我们可以看到,对于 η \boldsymbol{\eta} η和 − η -\boldsymbol{\eta} −η,相应的旋转矩阵是一样的(绕 n ^ \hat{\mathbf{n}} n^轴旋转 θ \theta θ角等效于绕 − n ^ -\hat{\mathbf{n}} −n^轴旋转 − θ -\theta −θ角),因此由旋转矩阵不能唯一地确定 η \boldsymbol{\eta} η,考虑这一特性,也有文献研究设计姿态控制时如何避免姿态的中间过程本来应该是绕 n ^ \hat{\mathbf{n}} n^轴旋转 θ \theta θ角,结果却是绕 − n ^ -\hat{\mathbf{n}} −n^轴旋转 − θ -\theta −θ角的情形。一般来说,姿态机动前先确定好 θ \theta θ角的范围,比如不超过 π \pi π,那么可以令初始姿态中 η 4 \eta_4 η4符号为正,此后 η 4 \eta_4 η4一直为正即可避免此类问题,对于大角度机动,则可分解为几个阶段进行分析。
我们接下来看一下四元数的定义,四元数一般用四个元构成,即
q
=
q
1
i
+
q
2
j
+
q
3
k
+
q
4
\boldsymbol{q}=q_1\boldsymbol{i}+q_2\boldsymbol{j}+q_3\boldsymbol{k}+q_4
q=q1i+q2j+q3k+q4,也可记为
q
=
[
q
1
,
q
2
,
q
3
,
q
4
]
T
\boldsymbol{q}=[q_1,q_2,q_3,q_4]^\mathrm{T}
q=[q1,q2,q3,q4]T,其中
i
,
j
,
k
\boldsymbol{i},\boldsymbol{j},\boldsymbol{k}
i,j,k既是互相正交的单位向量(类似于左手坐标系,也有文献定义为右手坐标系,具体采用哪种定义看个人习惯,在阅读四元数相关文献时务必注意其对乘法的定义),又是虚单位
−
1
\sqrt{-1}
−1,用
⊗
\otimes
⊗表示四元数乘法,则有
i
⊗
i
=
−
1
,
j
⊗
j
=
−
1
,
k
⊗
k
=
−
1
i
⊗
j
=
−
k
,
j
⊗
k
=
−
i
,
k
⊗
i
=
−
j
j
⊗
i
=
k
,
k
⊗
j
=
i
,
i
⊗
k
=
j
(15)
\begin{aligned} &\boldsymbol{i}\otimes\boldsymbol{i}=-1,~\boldsymbol{j}\otimes\boldsymbol{j}=-1,~\boldsymbol{k}\otimes\boldsymbol{k}=-1\\ &\boldsymbol{i}\otimes\boldsymbol{j}=-\boldsymbol{k},~\boldsymbol{j}\otimes\boldsymbol{k}=-\boldsymbol{i},~\boldsymbol{k}\otimes\boldsymbol{i}=-\boldsymbol{j}\\ &\boldsymbol{j}\otimes\boldsymbol{i}=\boldsymbol{k},~\boldsymbol{k}\otimes\boldsymbol{j}=\boldsymbol{i},~\boldsymbol{i}\otimes\boldsymbol{k}=\boldsymbol{j} \end{aligned}\tag{15}
i⊗i=−1, j⊗j=−1, k⊗k=−1i⊗j=−k, j⊗k=−i, k⊗i=−jj⊗i=k, k⊗j=i, i⊗k=j(15)
那么两个四元数
q
1
\boldsymbol{q}_1
q1和
q
2
\boldsymbol{q}_2
q2相乘的表达式可写为
q
1
⊗
q
2
=
(
q
11
i
+
q
12
j
+
q
13
k
+
q
14
)
⊗
(
q
21
i
+
q
22
j
+
q
23
k
+
q
24
)
=
q
11
i
⊗
(
q
21
i
+
q
22
j
+
q
23
k
+
q
24
)
+
q
12
j
⊗
(
q
21
i
+
q
22
j
+
q
23
k
+
q
24
)
+
q
13
k
⊗
(
q
21
i
+
q
22
j
+
q
23
k
+
q
24
)
+
q
14
⊗
(
q
21
i
+
q
22
j
+
q
23
k
+
q
24
)
=
−
q
11
q
21
−
q
11
q
22
k
+
q
11
q
23
j
+
q
11
q
24
i
+
q
12
q
21
k
−
q
12
q
22
−
q
12
q
23
i
+
q
12
q
24
j
−
q
13
q
21
j
+
q
13
q
22
i
−
q
13
q
23
+
q
13
q
24
k
+
q
14
(
q
21
i
+
q
22
j
+
q
23
k
)
+
q
14
q
24
(16)
\begin{aligned} \boldsymbol{q}_1\otimes\boldsymbol{q}_2=&(q_{11}\boldsymbol{i}+q_{12}\boldsymbol{j}+q_{13}\boldsymbol{k}+q_{14})\otimes(q_{21}\boldsymbol{i}+q_{22}\boldsymbol{j}+q_{23}\boldsymbol{k}+q_{24})\\ =&q_{11}\boldsymbol{i}\otimes(q_{21}\boldsymbol{i}+q_{22}\boldsymbol{j}+q_{23}\boldsymbol{k}+q_{24})+q_{12}\boldsymbol{j}\otimes(q_{21}\boldsymbol{i}+q_{22}\boldsymbol{j}+q_{23}\boldsymbol{k}+q_{24})\\ &+q_{13}\boldsymbol{k}\otimes(q_{21}\boldsymbol{i}+q_{22}\boldsymbol{j}+q_{23}\boldsymbol{k}+q_{24})+q_{14}\otimes(q_{21}\boldsymbol{i}+q_{22}\boldsymbol{j}+q_{23}\boldsymbol{k}+q_{24})\\ =&-q_{11}q_{21}-q_{11}q_{22}\boldsymbol{k}+q_{11}q_{23}\boldsymbol{j}+q_{11}q_{24}\boldsymbol{i}+q_{12}q_{21}\boldsymbol{k}-q_{12}q_{22}-q_{12}q_{23}\boldsymbol{i}+q_{12}q_{24}\boldsymbol{j}\\ &-q_{13}q_{21}\boldsymbol{j}+q_{13}q_{22}\boldsymbol{i}-q_{13}q_{23}+q_{13}q_{24}\boldsymbol{k}+q_{14}(q_{21}\boldsymbol{i}+q_{22}\boldsymbol{j}+q_{23}\boldsymbol{k})+q_{14}q_{24} \end{aligned}\tag{16}
q1⊗q2===(q11i+q12j+q13k+q14)⊗(q21i+q22j+q23k+q24)q11i⊗(q21i+q22j+q23k+q24)+q12j⊗(q21i+q22j+q23k+q24)+q13k⊗(q21i+q22j+q23k+q24)+q14⊗(q21i+q22j+q23k+q24)−q11q21−q11q22k+q11q23j+q11q24i+q12q21k−q12q22−q12q23i+q12q24j−q13q21j+q13q22i−q13q23+q13q24k+q14(q21i+q22j+q23k)+q14q24(16)
令
q
3
=
q
1
⊗
q
2
=
q
31
i
+
q
32
j
+
q
33
k
+
q
34
\boldsymbol{q}_3=\boldsymbol{q}_1\otimes\boldsymbol{q}_2=q_{31}\boldsymbol{i}+q_{32}\boldsymbol{j}+q_{33}\boldsymbol{k}+q_{34}
q3=q1⊗q2=q31i+q32j+q33k+q34,进一步对式(16)进行整理可得
q
31
=
q
11
q
24
−
q
12
q
23
+
q
13
q
22
+
q
14
q
21
=
q
14
q
21
+
q
24
q
11
−
(
q
12
q
23
−
q
13
q
22
)
q
32
=
q
11
q
23
+
q
12
q
24
−
q
13
q
21
+
q
14
q
22
=
q
14
q
22
+
q
24
q
12
−
(
q
13
q
21
−
q
11
q
23
)
q
33
=
−
q
11
q
22
+
q
12
q
21
+
q
13
q
24
+
q
14
q
23
=
q
14
q
23
+
q
24
q
13
−
(
q
11
q
22
−
q
12
q
21
)
q
34
=
−
q
11
q
21
−
q
12
q
22
−
q
13
q
23
+
q
14
q
24
(17)
\begin{aligned} q_{31}&=q_{11}q_{24}-q_{12}q_{23}+q_{13}q_{22}+q_{14}q_{21}=q_{14}q_{21}+q_{24}q_{11}-(q_{12}q_{23}-q_{13}q_{22})\\ q_{32}&=q_{11}q_{23}+q_{12}q_{24}-q_{13}q_{21}+q_{14}q_{22}=q_{14}q_{22}+q_{24}q_{12}-(q_{13}q_{21}-q_{11}q_{23})\\ q_{33}&=-q_{11}q_{22}+q_{12}q_{21}+q_{13}q_{24}+q_{14}q_{23}=q_{14}q_{23}+q_{24}q_{13}-(q_{11}q_{22}-q_{12}q_{21})\\ q_{34}&=-q_{11}q_{21}-q_{12}q_{22}-q_{13}q_{23}+q_{14}q_{24} \end{aligned}\tag{17}
q31q32q33q34=q11q24−q12q23+q13q22+q14q21=q14q21+q24q11−(q12q23−q13q22)=q11q23+q12q24−q13q21+q14q22=q14q22+q24q12−(q13q21−q11q23)=−q11q22+q12q21+q13q24+q14q23=q14q23+q24q13−(q11q22−q12q21)=−q11q21−q12q22−q13q23+q14q24(17)
令
q
v
=
[
q
1
,
q
2
,
q
3
]
T
\boldsymbol{q}_\mathrm{v}=[q_1,q_2,q_3]^\mathrm{T}
qv=[q1,q2,q3]T表示四元数
q
\boldsymbol{q}
q的矢量部分(相应地,
q
4
q_4
q4称为
q
\boldsymbol{q}
q的标量部分),考虑到
q
1
v
×
q
2
v
=
∣
i
j
k
q
11
q
12
q
13
q
21
q
22
q
23
∣
=
(
q
12
q
23
−
q
13
q
22
)
i
+
(
q
13
q
21
−
q
11
q
23
)
j
+
(
q
11
q
22
−
q
12
q
21
)
k
(18)
\begin{aligned} \boldsymbol{q}_\mathrm{1v}\times\boldsymbol{q}_\mathrm{2v}&=\left\vert\begin{matrix} \boldsymbol{i} & \boldsymbol{j} & \boldsymbol{k} \\ q_{11} & q_{12} & q_{13}\\ q_{21} & q_{22} & q_{23} \end{matrix} \right\vert\\ &=(q_{12}q_{23}-q_{13}q_{22})\boldsymbol{i}+(q_{13}q_{21}-q_{11}q_{23})\boldsymbol{j}+(q_{11}q_{22}-q_{12}q_{21})\boldsymbol{k} \end{aligned}\tag{18}
q1v×q2v=∣∣∣∣∣∣iq11q21jq12q22kq13q23∣∣∣∣∣∣=(q12q23−q13q22)i+(q13q21−q11q23)j+(q11q22−q12q21)k(18)
结合式(17)和(18)可知
q
3
=
q
1
⊗
q
2
=
[
q
14
q
2
v
+
q
24
q
1
v
−
q
1
v
×
q
2
v
q
14
q
24
−
q
1
v
⋅
q
2
v
]
=
{
q
1
}
L
q
2
=
{
q
2
}
R
q
1
(19)
\boldsymbol{q}_3=\boldsymbol{q}_1\otimes\boldsymbol{q}_2=\begin{bmatrix} q_{14}\boldsymbol{q}_{2\mathrm{v}}+q_{24}\boldsymbol{q}_{1\mathrm{v}}-\boldsymbol{q}_{1\mathrm{v}}\times\boldsymbol{q}_{2\mathrm{v}}\\ q_{14}q_{24}-\boldsymbol{q}_{1\mathrm{v}}\cdot\boldsymbol{q}_{2\mathrm{v}} \end{bmatrix}=\{\boldsymbol{q}_1\}_L\boldsymbol{q}_2=\{\boldsymbol{q}_2\}_R\boldsymbol{q}_1\tag{19}
q3=q1⊗q2=[q14q2v+q24q1v−q1v×q2vq14q24−q1v⋅q2v]={q1}Lq2={q2}Rq1(19)
其中
{
q
}
L
=
q
4
I
4
×
4
+
[
[
[
q
v
]
]
q
v
−
q
v
T
0
]
,
{
q
}
R
=
q
4
I
4
×
4
+
[
−
[
[
q
v
]
]
q
v
−
q
v
T
0
]
(20)
\{\boldsymbol{q}\}_L=q_4I_{4\times4}+\begin{bmatrix} [[\boldsymbol{q}_\mathrm{v}]] & \boldsymbol{q}_\mathrm{v}\\ -\boldsymbol{q}_\mathrm{v}^\mathrm{T} & 0 \end{bmatrix},~\{\boldsymbol{q}\}_R=q_4I_{4\times4}+\begin{bmatrix} -[[\boldsymbol{q}_\mathrm{v}]] & \boldsymbol{q}_\mathrm{v}\\ -\boldsymbol{q}_\mathrm{v}^\mathrm{T} & 0 \end{bmatrix}\tag{20}
{q}L=q4I4×4+[[[qv]]−qvTqv0], {q}R=q4I4×4+[−[[qv]]−qvTqv0](20)
如果
q
1
⊗
q
2
=
1
\boldsymbol{q}_1\otimes\boldsymbol{q}_2=1
q1⊗q2=1(严格来说是
0
i
+
0
j
+
0
k
+
1
0\boldsymbol{i}+0\boldsymbol{j}+0\boldsymbol{k}+1
0i+0j+0k+1),则称
q
2
\boldsymbol{q}_2
q2为
q
1
\boldsymbol{q}_1
q1的逆,记为
q
2
=
q
1
−
1
\boldsymbol{q}_2=\boldsymbol{q}_1^{-1}
q2=q1−1,另一方面,我们称
q
∗
=
−
q
1
i
−
q
2
j
−
q
3
k
+
q
4
\boldsymbol{q}^*=-q_1\boldsymbol{i}-q_2\boldsymbol{j}-q_3\boldsymbol{k}+q_4
q∗=−q1i−q2j−q3k+q4为
q
\boldsymbol{q}
q的共轭,且有
q
⊗
q
∗
=
[
−
q
4
q
v
+
q
4
q
v
−
q
v
×
q
v
q
4
2
+
q
v
⋅
q
v
]
=
[
0
∥
q
∥
2
2
]
(21)
\boldsymbol{q}\otimes\boldsymbol{q}^*=\begin{bmatrix} -q_4\boldsymbol{q}_\mathrm{v}+q_4\boldsymbol{q}_\mathrm{v}-\boldsymbol{q}_\mathrm{v}\times\boldsymbol{q}_\mathrm{v}\\ q_4^2+\boldsymbol{q}_\mathrm{v}\cdot\boldsymbol{q}_\mathrm{v} \end{bmatrix}= \begin{bmatrix} 0\\ \Vert\boldsymbol{q}\Vert_2^2 \end{bmatrix}\tag{21}
q⊗q∗=[−q4qv+q4qv−qv×qvq42+qv⋅qv]=[0∥q∥22](21)
因此四元数 q \boldsymbol{q} q的逆为 q ∗ ∥ q ∥ 2 2 \frac{\boldsymbol{q}^*}{\Vert\boldsymbol{q}\Vert_2^2} ∥q∥22q∗。
根据上述四元数的基本性质,如果我们将式(12)定义的
η
\boldsymbol{\eta}
η也视为四元数,那么会发生什么呢?首先,由于
η
\boldsymbol{\eta}
η的范数为1,因此其逆为
η
∗
\boldsymbol{\eta}^*
η∗,注意四元数的乘法满足分配律和结合律,对于任意矢量
v
\mathbf{v}
v,考虑如下运算(将
v
\mathbf{v}
v视为四元数
[
v
0
]
T
[\mathbf{v}~0]^\mathrm{T}
[v 0]T)
η
⊗
v
⊗
η
∗
=
(
η
v
+
η
4
)
⊗
v
⊗
(
−
η
v
+
η
4
)
=
(
n
^
sin
θ
2
+
cos
θ
2
)
⊗
v
⊗
(
−
n
^
sin
θ
2
+
cos
θ
2
)
=
(
v
cos
θ
2
−
n
^
×
v
sin
θ
2
−
n
^
⋅
v
sin
θ
2
)
⊗
(
−
n
^
sin
θ
2
+
cos
θ
2
)
=
(
−
n
^
⋅
v
sin
θ
2
)
(
−
n
^
sin
θ
2
)
+
(
v
cos
θ
2
−
n
^
×
v
sin
θ
2
)
cos
θ
2
−
(
v
cos
θ
2
−
n
^
×
v
sin
θ
2
)
×
(
−
n
^
sin
θ
2
)
+
(
−
n
^
⋅
v
sin
θ
2
)
cos
θ
2
−
(
v
cos
θ
2
−
n
^
×
v
sin
θ
2
)
⋅
(
−
n
^
sin
θ
2
)
(22)
\begin{aligned} &\boldsymbol{\eta}\otimes\mathbf{v}\otimes\boldsymbol{\eta}^*\\ =&(\boldsymbol{\eta}_\mathrm{v}+\eta_4)\otimes\mathbf{v}\otimes(-\boldsymbol{\eta}_\mathrm{v}+\eta_4)\\ =&(\hat{\mathbf{n}}\sin\frac{\theta}{2}+\cos\frac{\theta}{2})\otimes\mathbf{v}\otimes(-\hat{\mathbf{n}}\sin\frac{\theta}{2}+\cos\frac{\theta}{2})\\ =&(\mathbf{v}\cos\frac{\theta}{2}-\hat{\mathbf{n}}\times\mathbf{v}\sin\frac{\theta}{2}-\hat{\mathbf{n}}\cdot\mathbf{v}\sin\frac{\theta}{2})\otimes(-\hat{\mathbf{n}}\sin\frac{\theta}{2}+\cos\frac{\theta}{2})\\ =&(-\hat{\mathbf{n}}\cdot\mathbf{v}\sin\frac{\theta}{2})(-\hat{\mathbf{n}}\sin\frac{\theta}{2})+(\mathbf{v}\cos\frac{\theta}{2}-\hat{\mathbf{n}}\times\mathbf{v}\sin\frac{\theta}{2})\cos\frac{\theta}{2}\\ &-(\mathbf{v}\cos\frac{\theta}{2}-\hat{\mathbf{n}}\times\mathbf{v}\sin\frac{\theta}{2})\times(-\hat{\mathbf{n}}\sin\frac{\theta}{2})+(-\hat{\mathbf{n}}\cdot\mathbf{v}\sin\frac{\theta}{2})\cos\frac{\theta}{2}\\ &-(\mathbf{v}\cos\frac{\theta}{2}-\hat{\mathbf{n}}\times\mathbf{v}\sin\frac{\theta}{2})\cdot(-\hat{\mathbf{n}}\sin\frac{\theta}{2}) \end{aligned}\tag{22}
====η⊗v⊗η∗(ηv+η4)⊗v⊗(−ηv+η4)(n^sin2θ+cos2θ)⊗v⊗(−n^sin2θ+cos2θ)(vcos2θ−n^×vsin2θ−n^⋅vsin2θ)⊗(−n^sin2θ+cos2θ)(−n^⋅vsin2θ)(−n^sin2θ)+(vcos2θ−n^×vsin2θ)cos2θ−(vcos2θ−n^×vsin2θ)×(−n^sin2θ)+(−n^⋅vsin2θ)cos2θ−(vcos2θ−n^×vsin2θ)⋅(−n^sin2θ)(22)
进一步对式(22)进行整理可得
η
⊗
v
⊗
η
∗
=
(
n
^
⋅
v
)
n
^
sin
2
θ
2
+
v
cos
2
θ
2
−
n
^
×
v
sin
θ
−
(
n
^
×
v
)
×
n
^
sin
2
θ
2
=
v
∥
sin
2
θ
2
+
v
∥
cos
2
θ
2
+
v
⊥
cos
2
θ
2
−
n
^
×
v
⊥
sin
θ
−
v
⊥
sin
2
θ
2
=
v
∥
+
cos
(
θ
)
v
⊥
−
sin
(
θ
)
n
^
×
v
⊥
(23)
\begin{aligned} &\boldsymbol{\eta}\otimes\mathbf{v}\otimes\boldsymbol{\eta}^*\\ =&(\hat{\mathbf{n}}\cdot\mathbf{v})\hat{\mathbf{n}}\sin^2\frac{\theta}{2}+\mathbf{v}\cos^2\frac{\theta}{2}-\hat{\mathbf{n}}\times\mathbf{v}\sin\theta- (\hat{\mathbf{n}}\times\mathbf{v})\times\hat{\mathbf{n}}\sin^2\frac{\theta}{2}\\ =&\mathbf{v}_\parallel\sin^2\frac{\theta}{2}+\mathbf{v}_\parallel\cos^2\frac{\theta}{2}+\mathbf{v}_\perp\cos^2\frac{\theta}{2}-\hat{\mathbf{n}}\times\mathbf{v}_\perp\sin\theta-\mathbf{v}_\perp\sin^2\frac{\theta}{2}\\ =&\mathbf{v}_\parallel+\cos(\theta)\mathbf{v}_\perp-\sin(\theta)\hat{\mathbf{n}}\times\mathbf{v}_\perp \end{aligned}\tag{23}
===η⊗v⊗η∗(n^⋅v)n^sin22θ+vcos22θ−n^×vsinθ−(n^×v)×n^sin22θv∥sin22θ+v∥cos22θ+v⊥cos22θ−n^×v⊥sinθ−v⊥sin22θv∥+cos(θ)v⊥−sin(θ)n^×v⊥(23)
对比式(1)和(23)可知 η ⊗ v ⊗ η ∗ \boldsymbol{\eta}\otimes\mathbf{v}\otimes\boldsymbol{\eta}^* η⊗v⊗η∗与 R ( n ^ , θ ) v \boldsymbol{R}(\hat{\mathbf{n}},\theta)\mathbf{v} R(n^,θ)v的作用相同,都是进行坐标变换。
若设
R
(
η
1
)
\boldsymbol{R}(\boldsymbol{\eta}_1)
R(η1)和
R
(
η
2
)
\boldsymbol{R}(\boldsymbol{\eta}_2)
R(η2)分别为从
s
\mathrm{s}
s系到
b
1
\mathrm{b}_1
b1系和从
b
1
\mathrm{b}_1
b1系到
b
2
b_2
b2系的旋转矩阵,
R
(
η
3
)
\boldsymbol{R}(\boldsymbol{\eta}_3)
R(η3)表示从
s
\mathrm{s}
s系到
b
2
\mathrm{b}_2
b2系的旋转矩阵,则有
R
(
η
3
)
=
R
(
η
2
)
R
(
η
1
)
⇒
R
(
η
3
)
v
=
R
(
η
2
)
R
(
η
1
)
v
=
R
(
η
2
)
(
R
(
η
1
)
v
)
(24)
\boldsymbol{R}(\boldsymbol{\eta}_3)=\boldsymbol{R}(\boldsymbol{\eta}_2)\boldsymbol{R}(\boldsymbol{\eta}_1)\Rightarrow\boldsymbol{R}(\boldsymbol{\eta}_3)\mathbf{v}=\boldsymbol{R}(\boldsymbol{\eta}_2)\boldsymbol{R}(\boldsymbol{\eta}_1)\mathbf{v}=\boldsymbol{R}(\boldsymbol{\eta}_2)(\boldsymbol{R}(\boldsymbol{\eta}_1)\mathbf{v})\tag{24}
R(η3)=R(η2)R(η1)⇒R(η3)v=R(η2)R(η1)v=R(η2)(R(η1)v)(24)
则有
η
3
⊗
v
⊗
η
3
∗
=
η
2
⊗
(
η
1
⊗
v
⊗
η
1
∗
)
⊗
η
2
∗
=
(
η
2
⊗
η
1
)
⊗
v
(
η
2
⊗
η
1
)
∗
⇒
η
3
=
η
2
⊗
η
1
(25)
\begin{aligned} \boldsymbol{\eta}_3\otimes\mathbf{v}\otimes\boldsymbol{\eta}_3^*&=\boldsymbol{\eta}_2\otimes(\boldsymbol{\eta}_1\otimes\mathbf{v}\otimes\boldsymbol{\eta}_1^*)\otimes\boldsymbol{\eta}_2^*\\ &=(\boldsymbol{\eta}_2\otimes\boldsymbol{\eta}_1)\otimes\mathbf{v}(\boldsymbol{\eta}_2\otimes\boldsymbol{\eta}_1)^*\Rightarrow\boldsymbol{\eta}_3=\boldsymbol{\eta}_2\otimes\boldsymbol{\eta}_1 \end{aligned}\tag{25}
η3⊗v⊗η3∗=η2⊗(η1⊗v⊗η1∗)⊗η2∗=(η2⊗η1)⊗v(η2⊗η1)∗⇒η3=η2⊗η1(25)
由式(24)和(25)可知,式(15)定义的四元数乘法可以保证在姿态运动中,两个四元数相乘的顺序和姿态矩阵相乘的顺序是一致的。原则上来说,直接根据两个姿态矩阵相乘和等效姿态矩阵的关系,Baker–Campbell–Hausdorff 公式,以及四元数和姿态矩阵的关系,也可推导出四元数的乘法定义,只是没有一开始设定四元数乘法规则,然后验证和姿态矩阵相乘的关系那样直接一些。最后再强调一下,四元数本身没有范数限制,但是用来表示姿态时需要加上范数为1的约束。
三、欧拉角和四元数的转换
欧拉角和四元数可以互相转换,从欧拉角可以直接获得四元数,而从四元数获得欧拉角则可通过旋转矩阵进行,且整个过程中的运算与欧拉角定义的三次转动顺序有关,这里介绍从欧拉角到四元数的运算。有了四元数的乘法定义后,我们可以将每一次旋转都和一个四元数进行对应,然后通过四元数乘法获得最终的四元数,具体来说,有
η
(
1
^
,
θ
)
=
[
sin
(
θ
/
2
)
0
0
cos
(
θ
/
2
)
]
η
(
2
^
,
θ
)
=
[
0
sin
(
θ
/
2
)
0
cos
(
θ
/
2
)
]
η
(
3
^
,
θ
)
=
[
0
0
sin
(
θ
/
2
)
cos
(
θ
/
2
)
]
(26)
\begin{aligned} &\boldsymbol{\eta}(\hat{\boldsymbol{1}},\theta)=[\sin(\theta/2)~0~0~\cos(\theta/2)]\\ &\boldsymbol{\eta}(\hat{\boldsymbol{2}},\theta)=[0~\sin(\theta/2)~0~\cos(\theta/2)]\\ &\boldsymbol{\eta}(\hat{\boldsymbol{3}},\theta)=[0~0~\sin(\theta/2)~\cos(\theta/2)] \end{aligned}\tag{26}
η(1^,θ)=[sin(θ/2) 0 0 cos(θ/2)]η(2^,θ)=[0 sin(θ/2) 0 cos(θ/2)]η(3^,θ)=[0 0 sin(θ/2) cos(θ/2)](26)
对于
3
−
1
−
3
3-1-3
3−1−3的旋转顺序,有
η
313
(
φ
,
ϑ
,
ψ
)
=
η
(
3
^
,
ψ
)
⊗
η
(
1
^
,
ϑ
)
η
(
3
^
,
φ
)
=
[
sin
(
ϑ
/
2
)
cos
(
φ
/
2
−
ψ
/
2
)
sin
(
ϑ
/
2
)
sin
(
φ
/
2
−
ψ
/
2
)
cos
(
ϑ
/
2
)
sin
(
φ
/
2
+
ψ
/
2
)
cos
(
ϑ
/
2
)
cos
(
φ
/
2
+
ψ
/
2
)
]
(27)
\boldsymbol{\eta}_{313}(\varphi,\vartheta,\psi)=\boldsymbol{\eta}(\hat{\boldsymbol{3}},\psi)\otimes\boldsymbol{\eta}(\hat{\boldsymbol{1}},\vartheta)\boldsymbol{\eta}(\hat{\boldsymbol{3}},\varphi)=\begin{bmatrix} \sin(\vartheta/2)\cos(\varphi/2-\psi/2)\\ \sin(\vartheta/2)\sin(\varphi/2-\psi/2)\\ \cos(\vartheta/2)\sin(\varphi/2+\psi/2)\\ \cos(\vartheta/2)\cos(\varphi/2+\psi/2) \end{bmatrix}\tag{27}
η313(φ,ϑ,ψ)=η(3^,ψ)⊗η(1^,ϑ)η(3^,φ)=⎣⎢⎢⎡sin(ϑ/2)cos(φ/2−ψ/2)sin(ϑ/2)sin(φ/2−ψ/2)cos(ϑ/2)sin(φ/2+ψ/2)cos(ϑ/2)cos(φ/2+ψ/2)⎦⎥⎥⎤(27)
对于其他旋转顺序的计算过程则类似。
参考文献
[1]Shuster MD. A survey of attitude representations. Navigation. 1993;8(9):439-517.
[2]秦永元. 惯性导航(第二版). 科学出版社, 2014.