目录
1. 定义
欧拉旋转定理(Euler’s rotation theorem)表明,刚体(可视为直角坐标系)从一个角位置到另一个角位置的任意转动总能够等效于绕一固定轴的一次转动,当这一固定轴方向用单位矢量
u
u
u表示时,转角
ϕ
\phi
ϕ与
u
u
u的乘机
Φ
=
ϕ
u
\Phi=\phi u
Φ=ϕu即为等效旋转矢量,并且有
ϕ
=
∣
Φ
∣
\phi=\left |\Phi \right |
ϕ=∣Φ∣和
u
=
Φ
/
ϕ
u=\Phi /\phi
u=Φ/ϕ。
四元数就是由四个元素构成的一种数,一般形式为
Q
=
q
0
+
q
v
=
q
0
+
q
1
i
+
q
2
j
+
q
3
k
Q=q_{0}+\bm{q_{v}}=q_{0}+q_{1}\bm{i}+q_{2}\bm{j}+q_{3}\bm{k}
Q=q0+qv=q0+q1i+q2j+q3k
其中,
q
0
,
q
1
,
q
2
,
q
3
q_{0},q_{1},q_{2},q_{3}
q0,q1,q2,q3都是实数,
q
0
q_{0}
q0称为实部,
q
v
=
q
1
i
+
q
2
j
+
q
3
k
\bm{q_{v}}=q_{1}\bm{i}+q_{2}\bm{j}+q_{3}\bm{k}
qv=q1i+q2j+q3k称为虚部。可以观察到,当
q
2
,
q
3
q_{2},q_{3}
q2,q3为0时,四元数退化为我们熟悉的复数,因此四元数也可视为复数的扩展,可称之为超复数。因四元数的虚部单位矢量满足叉乘运算特点,例如
i
∘
j
=
k
(
\bm{i} \circ \bm{j}=\bm{k}(
i∘j=k(其中
∘
\circ
∘表示四元数乘法),故可将四元数的叙述部分看成在三维空间的映像,反之,一个三维矢量可以看作是零标量的四元数(此处的转化很关键)。
2. 推导
推导部分需要介绍等效旋转矢量如何用来表示旋转,还会介绍罗德里格公式中的转化矩阵与方向余弦矩阵的关系,最后会介绍等效旋转矢量和四元数的关系。
2.1. 等效旋转矢量表示旋转——罗德里格公式
虽然严老师和秦老师推导罗德里格公式时都用了相似的图,过程也比较简洁,但不太好理解。于是我找来网上的图,看起来更直观些。
如图所示,矢量
V
V
V绕着单位矢量
k
k
k旋转了
θ
\theta
θ角,得到新的矢量
V
r
o
t
V_{rot}
Vrot。容易知道,旋转后矢量
v
v
v的模值保持不变,即
∥
V
r
o
t
∥
=
∥
V
∥
\left \| V_{rot}\right\|=\left \| V\right\|
∥Vrot∥=∥V∥。并且平行于矢量
k
k
k的分量不变
V
∥
r
o
t
=
V
∥
V_{\parallel rot}=V_{\parallel}
V∥rot=V∥,只是垂直于矢量
k
k
k的分量
V
⊥
V_{\perp}
V⊥发生了旋转。
(1) 图中的三个公式比较容易得到,看图即可得到。值得一提的是,矢量
k
k
k,
V
V
V和
V
⊥
V_{\perp}
V⊥都在同一平面内。并且根据矢量叉乘的定义以及
k
k
k为单位矢量,容易证明有
∥
V
⊥
∥
=
∥
V
⊥
r
o
t
∥
=
∥
k
×
V
∥
=
∥
k
×
(
k
×
V
)
∥
\left\| V_{\perp} \right\|=\left\| V_{\perp rot} \right \|=\left\| k\times V\right \|=\left\| k\times (k\times V) \right \|
∥V⊥∥=∥V⊥rot∥=∥k×V∥=∥k×(k×V)∥,即下面的圈是个圆。
(2) 将
V
⊥
r
o
t
V_{\perp rot}
V⊥rot投影到
V
⊥
V_{\perp}
V⊥和
k
×
v
k\times v
k×v两个方向,结合前面几个模值相等的矢量,有
V
⊥
r
o
t
=
V
⊥
c
o
s
θ
+
(
k
×
v
)
s
i
n
θ
(1)
V_{\perp rot}=V_{\perp}cos\theta+(k\times v) sin\theta\tag{1}
V⊥rot=V⊥cosθ+(k×v)sinθ(1)
(3) 因此有
V
r
o
t
=
V
∥
r
o
t
+
V
⊥
r
o
t
=
V
∥
+
V
⊥
c
o
s
θ
+
(
k
×
V
)
s
i
n
θ
=
k
(
k
⋅
V
)
+
(
V
−
k
(
k
⋅
V
)
)
c
o
s
θ
+
k
×
V
s
i
n
θ
=
V
c
o
s
θ
+
(
1
−
c
o
s
θ
)
k
(
k
⋅
V
)
+
k
×
V
s
i
n
θ
=
(
c
o
s
θ
⋅
I
+
s
i
n
θ
⋅
k
×
)
V
+
(
1
−
c
o
s
θ
)
k
(
k
⋅
V
)
(2)
\begin{aligned} V_{rot}&=V_{\parallel rot}+V_{\perp rot}\\ &=V_{\parallel}+V_{\perp}cos\theta+(k\times V) sin\theta\\ &=k(k\cdot V)+(V-k(k\cdot V))cos\theta +k \times V sin\theta\\ &=Vcos\theta+(1-cos\theta)k(k\cdot V)+k \times V sin\theta\\ &=(cos\theta \cdot I+sin\theta \cdot k\times)V+(1-cos\theta)k(k\cdot V) \end{aligned}\tag{2}
Vrot=V∥rot+V⊥rot=V∥+V⊥cosθ+(k×V)sinθ=k(k⋅V)+(V−k(k⋅V))cosθ+k×Vsinθ=Vcosθ+(1−cosθ)k(k⋅V)+k×Vsinθ=(cosθ⋅I+sinθ⋅k×)V+(1−cosθ)k(k⋅V)(2)
(4) 根据三重矢量叉积公式
V
1
×
(
V
2
×
V
3
)
=
V
2
(
V
1
⋅
V
3
)
−
V
3
(
V
1
⋅
V
2
)
V_{1}\times(V_{2}\times V_{3})=V_{2}(V_{1}\cdot V_{3})-V_{3}(V_{1}\cdot V_{2})
V1×(V2×V3)=V2(V1⋅V3)−V3(V1⋅V2),
令
V
1
=
V
2
=
k
V_{1}=V_{2}=k
V1=V2=k,
V
3
=
V
V_{3}=V
V3=V,将其代入叉积公式 有
k
(
k
⋅
V
)
=
[
I
+
(
k
×
)
2
]
V
(3)
k(k \cdot V)=[I+(k\times )^2]V\tag{3}
k(k⋅V)=[I+(k×)2]V(3)
其中,
k
×
k\times
k×表示矢量k构造的反对称阵。
(5) 将式
(
3
)
(3)
(3)代入式
(
2
)
(2)
(2)得
V
r
o
t
=
V
∥
r
o
t
+
V
⊥
r
o
t
=
(
c
o
s
θ
⋅
I
+
s
i
n
θ
⋅
k
×
)
V
+
(
1
−
c
o
s
θ
)
k
(
k
⋅
V
)
=
(
c
o
s
θ
⋅
I
+
s
i
n
θ
⋅
k
×
)
V
+
(
1
−
c
o
s
θ
)
[
I
+
(
k
×
)
2
]
V
=
[
I
+
s
i
n
θ
(
k
×
)
+
(
1
−
c
o
s
θ
)
(
k
×
)
2
]
V
(4)
\begin{aligned} V_{rot}&=V_{\parallel rot}+V_{\perp rot}\\ &=(cos\theta \cdot I+sin\theta \cdot k\times)V+(1-cos\theta)k(k\cdot V)\\ &=(cos\theta \cdot I+sin\theta \cdot k\times)V+(1-cos\theta)[I+(k\times )^2]V\\ &=[I+sin\theta( k\times) +(1-cos\theta)(k\times )^2]V \end{aligned}\tag{4}
Vrot=V∥rot+V⊥rot=(cosθ⋅I+sinθ⋅k×)V+(1−cosθ)k(k⋅V)=(cosθ⋅I+sinθ⋅k×)V+(1−cosθ)[I+(k×)2]V=[I+sinθ(k×)+(1−cosθ)(k×)2]V(4)
将上式中
[
I
+
s
i
n
θ
(
k
×
)
+
(
1
−
c
o
s
θ
)
(
k
×
)
2
]
[I+sin\theta( k\times) +(1-cos\theta)(k\times )^2]
[I+sinθ(k×)+(1−cosθ)(k×)2]记为
D
D
D,则式
(
4
)
(4)
(4)可写为
V
r
o
t
=
D
V
(5)
\begin{aligned} V_{rot}&=DV \end{aligned}\tag{5}
Vrot=DV(5)
如此便证明了罗德里格公式,通过此公式可以利用一个单位矢量表示旋转方向,加上旋转角度就能描述空间中的刚体(直角坐标系)旋转。
等效旋转矢量与方向余弦矩阵有什么关系呢?
2.2. 等效旋转矢量与方向余弦矩阵的关系
方向余弦矩阵的定义中对旋转的描述是静态描述,描述的是旋转后的结果吗,即旋转后两个坐标系的相对角位置。而等效旋转矢量对旋转的描述是动态描述,即绕着什么方向转,转了多少度,可以描述过程。
下面来证明两种方法的相通性,其桥梁为罗德里格公式。
假设旋转前,有一参考坐标系R在空间中保持不动,而动坐标系b与矢量
V
V
V固联,随之转动。将式(5)投影到R系下有,
V
r
o
t
R
=
D
V
R
(6)
\begin{aligned} V_{rot}^{R}&=DV^{R} \end{aligned}\tag{6}
VrotR=DVR(6)
旋转之初,参考坐标系与动坐标系重合,记此时动坐标系为
b
0
b_{0}
b0,则有
V
b
0
=
V
R
(7)
V^{b_{0}}=V^{R}\tag{7}
Vb0=VR(7)
在旋转过程中,动坐标系b与矢量
V
r
o
t
V_{rot}
Vrot固联,因此有
V
r
o
t
b
=
V
b
0
(8)
V^{b}_{rot}=V^{b_{0}}\tag{8}
Vrotb=Vb0(8)
将式(7)、(8)代入式(6),有
V
r
o
t
R
=
D
V
r
o
t
b
(9)
\begin{aligned} V_{rot}^{R}&=DV^{b}_{rot} \end{aligned}\tag{9}
VrotR=DVrotb(9)
由此可知,矩阵D即为矢量在坐标系旋转前后的坐标变换阵,即为方向余弦矩阵,有
D
=
C
b
n
(10)
D=C_{b}^{n}\tag{10}
D=Cbn(10)
从此可见,方向余弦矩阵也包含旋转的过程信息,由于旋转的周期性,当转角在区间
[
0
,
2
π
)
[0,2\pi)
[0,2π)时,等效旋转矢量与方向余弦矩阵存在一一对应关系。从这点来看,又可将方向余弦矩阵称为转动矩阵。后面在定义欧拉角时我们再推导初等转动矩阵。
2.3. 等效旋转矢量与规范四元数的关系
模值为1的四元数称为规范四元数,规范四元数的三角表达式为
Q
=
c
o
s
ϕ
2
+
u
s
i
n
ϕ
2
(11)
Q=cos\frac {\phi}2 +\bm{u}sin\frac {\phi}2\tag{11}
Q=cos2ϕ+usin2ϕ(11)
所代表的几何含义可以用等效旋转矢量来解释,其中的
θ
\theta
θ即为等效旋转矢量的旋转角度,
u
u
u即为其旋转轴的单位矢量。由此可见,规范四元数包含了等效旋转矢量的所有信息。
2.4. 规范四元数与方向余弦矩阵的关系
为了避免与四元数的表示冲突,将公式(4)作稍稍改写,将旋转轴单位矢量
k
k
k改写为
u
u
u,旋转角度
θ
\theta
θ改为
ϕ
\phi
ϕ,则式(4)中的方向余弦阵变为
C
b
n
=
I
+
s
i
n
ϕ
(
u
×
)
+
(
1
−
c
o
s
ϕ
)
(
u
×
)
2
(12)
\begin{aligned} C_{b}^n &=I+sin\phi( u\times) +(1-cos\phi)(u\times )^2 \end{aligned}\tag{12}
Cbn=I+sinϕ(u×)+(1−cosϕ)(u×)2(12)
根据三角函数关系,有
C
b
n
=
I
+
2
s
i
n
ϕ
2
c
o
s
ϕ
2
(
u
×
)
+
2
s
i
n
2
ϕ
2
(
u
×
)
2
(13)
\begin{aligned} C_{b}^n &=I+2sin\frac {\phi}2cos\frac {\phi}2( u\times) +2sin^2\frac {\phi}2(u\times )^2 \end{aligned}\tag{13}
Cbn=I+2sin2ϕcos2ϕ(u×)+2sin22ϕ(u×)2(13)
结合式(11)定义的规范四元数三角表达式,将
c
o
s
ϕ
2
=
q
0
cos\frac {\phi}2=q_{0}
cos2ϕ=q0,
u
s
i
n
ϕ
2
=
q
v
\bm{u}sin\frac {\phi}2=\bm{q_{v}}
usin2ϕ=qv带入式(13),有
C
b
n
=
I
+
2
q
0
(
q
v
×
)
+
2
(
q
v
×
)
2
(14)
\begin{aligned} C_{b}^n &=I+2q_{0}( \bm{q_{v} }\times) +2( \bm{q_{v} }\times )^2 \end{aligned}\tag{14}
Cbn=I+2q0(qv×)+2(qv×)2(14)
将
q
v
=
q
1
i
+
q
2
j
+
q
3
k
\bm{q_{v}}=q_{1}\bm{i}+q_{2}\bm{j}+q_{3}\bm{k}
qv=q1i+q2j+q3k带入上式进一步展开可以得到四元数表示的方向余弦矩阵,在此不再展开,仅给出最后结果:
3. 总结
本文主要对秦永元《惯性导航》和严恭敏《捷联惯导算法与组合导航原理》中有关等效旋转矢量和四元数的部分进行了整理,每个知识点都选取了两者中比较容易理解的方式,在推导罗德里格公式时用了自己喜欢的方式。
4. 参考文献
【1】秦永元《惯性导航》第二版P248-249
【2】严恭敏《捷联惯导算法与组合导航原理》P10-P11,P20