1. 四元数的定义和性质
1.1 四元数的定义
Cayley-Dickson construction 给出了一种非常吸引人的四元数定义:如果有两个复数
A
=
a
+
b
i
A=a+bi
A=a+bi 和
C
=
c
+
d
i
C=c+di
C=c+di,构造一个新的数
Q
=
A
+
C
j
Q=A+Cj
Q=A+Cj 并且定义
k
≜
i
j
k\triangleq ij
k≜ij,就产生了一个在四元数空间
H
\Bbb{H}
H 内的数字:
Q
=
a
+
b
i
+
c
j
+
d
k
∈
H
(1)
Q=a+bi+cj+dk \in \Bbb{H} \tag{1}
Q=a+bi+cj+dk∈H(1)
其中
{
a
,
b
,
c
,
d
}
∈
R
\{a,b,c,d\}\in R
{a,b,c,d}∈R,
{
i
,
j
,
k
}
\{ i,j,k \}
{i,j,k} 是三个单位虚数,有如下定义:
i
2
=
j
2
=
k
2
=
i
j
k
=
−
1
(2a)
i^2 = j^2 = k^2 = ijk = -1 \tag{2a}
i2=j2=k2=ijk=−1(2a)
从中可以推导出:
i
j
=
−
j
i
=
k
,
j
k
=
−
k
j
=
i
,
k
i
=
−
i
k
=
j
(2b)
ij = -ji = k, jk = -kj = i, ki = -ik = j \tag{2b}
ij=−ji=k,jk=−kj=i,ki=−ik=j(2b)
从公式(1)可以看出,实数、虚数、复数的概念都嵌入在四元数的定义当中,这意味着,实数、虚数、复数都是一种四元数,如下表示
Q
=
a
∈
R
⊂
H
,
Q
=
i
∈
I
⊂
H
,
Q
=
a
+
b
i
∈
Z
⊂
H
(3)
Q=a \in \Bbb{R} \subset \Bbb{H}, Q=i \in \Bbb{I} \subset \Bbb{H}, Q=a+bi \in \Bbb{Z} \subset \Bbb{H} \tag{3}
Q=a∈R⊂H,Q=i∈I⊂H,Q=a+bi∈Z⊂H(3)
类似的,在四元数空间中也可以定义
H
\Bbb{H}
H的三维纯虚子空间,将其中的数字称作纯四元数,表示为
H
p
=
I
m
(
H
)
\Bbb{H}_p=\rm Im (\Bbb{H})
Hp=Im(H),
Q
=
b
i
+
c
j
+
d
k
∈
H
p
⊂
H
(4)
Q=bi+cj+dk \in \Bbb{H}_p \subset \Bbb{H} \tag{4}
Q=bi+cj+dk∈Hp⊂H(4)
值得注意的是,单位长度的正规复数
z
=
e
i
θ
\bf z = \it e^{ i \theta}
z=eiθ ,通过一个复数乘积
x
′
=
z
⋅
x
\bf x' = z \sdot x
x′=z⋅x可以表达二维空间内的旋转,而单位长度四元数,或者说是扩展复数
q
=
e
(
u
x
i
+
u
y
j
+
u
z
k
)
θ
/
2
\bf q = \it e^{(u_xi+u_yj+u_zk)\theta /2}
q=e(uxi+uyj+uzk)θ/2,同样可以通过四元数成法
x
′
=
q
⊗
x
⊗
q
∗
\bf x' = q \otimes x \otimes q^*
x′=q⊗x⊗q∗来表示三维空间内的旋转,在后面章节展示
注意:并不是所有的四元数的表达都是一样的,有一些作者将乘积 b i bi bi 写作 i b ib ib,这会导致他们获得的性质是 k = j i = − i j k=ji=-ij k=ji=−ij,以及 i j k = 1 ijk=1 ijk=1,这是一类左手四元数(left-handed quaternion)。有的作者习惯将实部放在虚部的后面,写作 Q = a i + b j + c k + d Q=ai+bj+ck+d Q=ai+bj+ck+d,这个写法对理解上没有实质影响,但是会导致许多问题的答案写法完全不同,后面会在第三章讨论
注意:还有一些额外的规则会使得四元数相关的运算看起来不同,比如我们对于旋转运算的“解释”。我们可以解释成“旋转一个向量”或者“旋转一个矩阵”,这会导致两种不同的写法。同样会在第三章进行讨论
注意:本文使用Hamilton形式,也就是公式(2)中定义的样子
1.1.1 四元数的其他表达形式
四元数实部+虚部的表达形式
{
1
,
i
,
j
,
k
}
\{1,i,j,k\}
{1,i,j,k}有时候用起来并不是很方便。在满足(2)式运算的条件下,也可以用标量+向量的形式表示:
Q
=
q
w
+
q
x
i
+
q
y
j
+
q
z
k
⇔
Q
=
q
w
+
q
v
Q=q_w+q_xi+q_yj+q_zk \xLeftrightarrow{} Q=q_w + \bold{q}_v
Q=qw+qxi+qyj+qzk
Q=qw+qv
其中
q
w
q_w
qw是实数部分或者叫标量部分,
q
v
=
q
x
i
+
q
y
j
+
q
z
k
=
(
q
x
,
q
y
,
q
z
)
\bold{q}_v=q_xi+q_yj+q_zk=(q_x,q_y,q_z)
qv=qxi+qyj+qzk=(qx,qy,qz)是虚数部分或者叫向量部分,也可以用下面这种标量/向量对儿的形式表示:
Q
=
⟨
q
w
,
q
v
⟩
(6)
Q=\lang q_w, \bold{q}_v \rang \tag{6}
Q=⟨qw,qv⟩(6)
最常用的一种表示是将四元数写成一个4维向量:
q
≜
[
q
w
q
v
]
=
[
q
w
q
x
q
y
q
z
]
(7)
\bf q \triangleq \begin{bmatrix} q_w \\ \bold{q}_v \end{bmatrix} = \begin{bmatrix} q_w \\ q_x \\ q_y \\ q_z \end{bmatrix} \tag{7}
q≜[qwqv]=⎣⎢⎢⎡qwqxqyqz⎦⎥⎥⎤(7)
利用上面这种表示方法可以在某些情况对四元数进行矩阵运算。在某些情况下,我们希望“=”有不同的含义,比如在表达实四元数和纯四元数的时候
general
:
q
=
q
w
+
q
v
=
[
q
w
q
v
]
∈
H
,
real
:
q
w
=
[
q
w
0
v
]
∈
R
,
pure
:
q
v
=
[
0
q
v
]
∈
H
p
(8)
\text{general}: \bold{q} =q_w+ \bold{q}_v= \begin{bmatrix} q_w \\ \bold{q}_v \end{bmatrix} \in \Bbb{H}, \text{real}: q_w= \begin{bmatrix} q_w \\ \bold{0}_v \end{bmatrix} \in \Bbb{R}, \text{pure}: \bold{q}_v= \begin{bmatrix} 0 \\ \bold{q}_v \end{bmatrix} \in \Bbb{H}_p \tag{8}
general:q=qw+qv=[qwqv]∈H,real:qw=[qw0v]∈R,pure:qv=[0qv]∈Hp(8)
1.2 四元数性质
1.2.1 Sum
四元数的和差计算如下:
p
±
q
=
[
p
w
p
v
]
±
[
q
w
q
v
]
[
p
w
±
q
w
p
v
±
q
v
]
(9)
\bold{p} \pm \bold{q} = \begin{bmatrix} p_w \\ \bold{p}_v \end{bmatrix} \pm \begin{bmatrix} q_w \\ \bold{q}_v \end{bmatrix} \begin{bmatrix} p_w \pm q_w \\ \bold{p}_v \pm \bold{q}_v \tag{9} \end{bmatrix}
p±q=[pwpv]±[qwqv][pw±qwpv±qv](9)
四元数的和差计算有交换律和结合律
p
+
q
=
q
+
p
(10)
\bold{p} + \bold{q} = \bold{q} + \bold{p} \tag{10}
p+q=q+p(10)
p
+
(
q
+
r
)
=
(
p
+
q
)
+
r
(11)
\bold{p} + (\bold{q} + \bold{r}) = (\bold{p}+\bold{q})+\bold{r}\tag{11}
p+(q+r)=(p+q)+r(11)
1.2.2 乘积
四元数乘积运算用
⊗
\otimes
⊗表示,利用公式(1)(2),将乘积结果写作向量形式有:
p
⊗
q
=
[
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
]
(12)
\bold{p} \otimes \bold{q} = \begin{bmatrix} p_wq_w-p_xq_x-p_yq_y-p_zq_z \\ p_wq_x + p_xq_w + p_yq_z-p_zq_y \\ p_wq_y - p_xq_z + p_yq_w + p_zq_x \\ p_wq_z + p_xq_y - p_yq_x + p_zq_w \end{bmatrix} \tag{12}
p⊗q=⎣⎢⎢⎡pwqw−pxqx−pyqy−pzqzpwqx+pxqw+pyqz−pzqypwqy−pxqz+pyqw+pzqxpwqz+pxqy−pyqx+pzqw⎦⎥⎥⎤(12)
也可以将乘积结果写作标量向量形式:
p
⊗
q
=
[
p
w
q
w
−
p
v
⊺
q
v
p
w
q
v
+
q
w
p
v
+
p
v
×
q
v
]
(13)
\bold{p} \otimes \bold{q} = \begin{bmatrix} p_wq_w - \bold{p}^{\intercal}_v \bold{q}_v \\ p_w \bold{q}_v+q_w \bold{p}_v + \bold{p}_v \times \bold{q}_v \end{bmatrix} \tag{13}
p⊗q=[pwqw−pv⊺qvpwqv+qwpv+pv×qv](13)
上式中的叉积项的存在说明四元数乘法不满足一般意义下的交换律:
p
×
q
≠
q
×
p
(14)
\bold{p} \times \bold{q} \neq \bold{q} \times \bold{p} \tag{14}
p×q=q×p(14)
只有当
p
v
×
q
v
=
0
\bold{p}_v \times \bold{q}_v = 0
pv×qv=0时,才满足交换律,具体来说就是两种情况,一是四元数本身是个实数;二是四元数的向量部分是平行的。
四元数的乘积是具有结合律的
(
p
⊗
q
)
⊗
r
=
p
⊗
(
q
⊗
r
)
(15)
(\bold{p} \otimes \bold{q}) \otimes \bold{r} = \bold{p} \otimes (\bold{q} \otimes \bold{r}) \tag{15}
(p⊗q)⊗r=p⊗(q⊗r)(15)
四元数乘积可以对求和运算保持分配律:
p
⊗
(
q
+
r
)
=
p
⊗
q
+
p
⊗
r
(
p
+
q
)
⊗
r
=
p
⊗
r
+
q
⊗
r
(16)
\bold{p} \otimes (\bold{q} + \bold{r})=\bold{p} \otimes \bold{q} + \bold{p} \otimes \bold{r} \\ (\bold{p}+\bold{q}) \otimes \bold{r} = \bold{p} \otimes \bold{r} + \bold{q} \otimes \bold{r} \tag{16}
p⊗(q+r)=p⊗q+p⊗r(p+q)⊗r=p⊗r+q⊗r(16)
两个四元数的乘积是“bi-linear”的,可以表达成矩阵乘积的形式:
q
1
⊗
q
2
=
[
q
1
]
L
q
2
q
1
⊗
q
2
=
[
q
2
]
R
q
1
(17)
\bold{q}_1 \otimes \bold{q}_2 = [\bold{q}_1]_L \bold{q}_2 \\ \bold{q}_1 \otimes \bold{q}_2 = [\bold{q}_2]_R \bold{q}_1 \tag{17}
q1⊗q2=[q1]Lq2q1⊗q2=[q2]Rq1(17)
其中
[
q
]
L
[\bold{q}]_L
[q]L和
[
q
]
R
[\bold{q}]_R
[q]R分别是四元数乘积矩阵的左乘和右乘形式,可以通过公式(12)(17)进行推导
[
q
]
L
=
[
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
]
,
[
q
]
R
=
[
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
]
(18)
[\bold{q}]_L= \begin{bmatrix} 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 & -qy & q_x & q_w \end{bmatrix} , [\bold{q}]_R= \begin{bmatrix} 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{bmatrix} \tag{18}
[q]L=⎣⎢⎢⎡qwqxqyqz−qxqwqz−qy−qy−qzqwqx−qzqy−qxqw⎦⎥⎥⎤,[q]R=⎣⎢⎢⎡qwqxqyqz−qxqw−qzqy−qyqzqw−qx−qz−qyqxqw⎦⎥⎥⎤(18)
或者根据公式(13)(17)写成更紧凑的形式:
[
q
]
L
=
q
w
I
+
[
0
−
q
v
⊺
q
v
[
q
v
]
×
]
,
[
q
]
R
=
q
w
I
+
[
0
−
q
v
⊺
q
v
−
[
q
v
]
×
]
(19)
[\bold{q}]_L= q_w \bold{I} + \begin{bmatrix} 0 & - \bold{q}^{\intercal}_v \\ \bold{q}_v & [\bold{q}_v]_{\times} \end{bmatrix}, [\bold{q}]_R=q_w \bold{I} + \begin{bmatrix} 0 & - \bold{q}^{\intercal}_v \\ \bold{q}_v & -[\bold{q}_v]_{\times} \end{bmatrix} \tag{19}
[q]L=qwI+[0qv−qv⊺[qv]×],[q]R=qwI+[0qv−qv⊺−[qv]×](19)
这里的skew operator
[
∙
]
×
[\bullet]_{\times}
[∙]×,表示叉乘矩阵:
[
a
]
×
≜
[
0
−
a
z
a
y
a
z
0
−
a
x
−
a
y
a
x
0
]
(20)
[\bold{a}]_{\times} \triangleq \begin{bmatrix} 0 & -a_z & a_y \\ a_z & 0 & -a_x \\ -a_y & a_x & 0 \end{bmatrix} \tag{20}
[a]×≜⎣⎡0az−ay−az0axay−ax0⎦⎤(20)
这个skew operator是反对称的,即
[
a
]
×
⊺
=
−
[
a
]
×
[\bold{a}]^{\intercal}_{\times} = -[\bold{a}]_{\times}
[a]×⊺=−[a]×,和叉乘运算的关系是:
[
a
]
×
b
=
a
×
b
,
∀
a
,
b
∈
R
3
(21)
[\bold{a}]_{\times} \bold{b} = \bold{a} \times \bold{b}, \forall \bold{a}, \bold{b} \in \Bbb{R}^3 \tag{21}
[a]×b=a×b,∀a,b∈R3(21)
最后,由于
(
q
⊗
x
)
⊗
p
=
[
p
]
R
[
q
]
L
x
and
q
⊗
(
x
⊗
p
)
=
[
q
]
L
[
p
]
R
x
(22)
(\bold{q} \otimes \bold{x}) \otimes \bold{p} = [\bold{p}]_R [\bold{q}]_L \bold{x} \ \text{ and } \ \bold{q} \otimes (\bold{x} \otimes \bold{p})=[\bold{q}]_L [\bold{p}]_R \bold{x} \tag{22}
(q⊗x)⊗p=[p]R[q]Lx and q⊗(x⊗p)=[q]L[p]Rx(22)
可以得到等式:
[
p
]
R
[
q
]
L
=
[
q
]
L
[
p
]
R
(23)
[\bold{p}]_R [\bold{q}]_L = [\bold{q}]_L [\bold{p}]_R \tag{23}
[p]R[q]L=[q]L[p]R(23)
这说明四元数乘积矩阵可以左右交换,这个矩阵的其他性质将在2.8节讲解。
四元数的乘积操作
⊗
\otimes
⊗来自于一个非交换群。这个群的单位元素,
q
1
=
1
\bold{q}_1 = 1
q1=1和逆元素
q
−
1
\bold{q}^{-1}
q−1,如下所示。
1.2.3 单位元
和乘积运算相关的单位元,满足性质
q
1
⊗
q
=
q
⊗
q
1
=
q
\bold{q_1} \otimes \bold{q} = \bold{q} \otimes \bold{q_1} = \bold{q}
q1⊗q=q⊗q1=q。四元数单位元就是将‘1’表达成四元数的形式
q
1
=
1
=
[
1
0
v
]
\bold{q_1} = 1 = \begin{bmatrix} 1 \\ \bold{0}_v \end{bmatrix}
q1=1=[10v]
1.2.4 共轭
四元数的共轭定义如下:
q
∗
≜
q
w
−
q
v
=
[
q
w
−
q
v
]
(24)
\bold{q}^* \triangleq q_w - \bold{q}_v = \begin{bmatrix} q_w \\ -\bold{q}_v \end{bmatrix} \tag{24}
q∗≜qw−qv=[qw−qv](24)
共轭满足如下性质:
q
⊗
q
∗
=
q
∗
⊗
q
=
q
w
2
+
q
x
2
+
q
y
2
+
q
z
2
=
[
q
w
2
+
q
x
2
+
q
y
2
+
q
z
2
0
v
]
(25)
\bold{q} \otimes \bold{q}^*=\bold{q}^* \otimes \bold{q} = q^2_w+q^2_x+q_y^2+q_z^2= \begin{bmatrix} q^2_w+q^2_x+q_y^2+q_z^2 \\ \bold{0}_v \end{bmatrix} \tag{25}
q⊗q∗=q∗⊗q=qw2+qx2+qy2+qz2=[qw2+qx2+qy2+qz20v](25)
并且有:
(
p
⊗
q
)
∗
=
q
∗
⊗
p
∗
(26)
(\bold{p} \otimes \bold{q})^* = \bold{q}^* \otimes \bold{p}^* \tag{26}
(p⊗q)∗=q∗⊗p∗(26)
1.2.5 模(Norm)
四元数的模定义:
∣
∣
q
∣
∣
≜
q
⊗
q
∗
=
q
∗
⊗
q
=
q
w
2
+
q
x
2
+
q
y
2
+
q
z
2
∈
R
(27)
||\bold{q}|| \triangleq \sqrt{\bold{q} \otimes \bold{q}^*} = \sqrt{\bold{q}^* \otimes \bold{q}}=\sqrt{q^2_w+q^2_x+q_y^2+q_z^2} \in \Bbb{R} \tag{27}
∣∣q∣∣≜q⊗q∗=q∗⊗q=qw2+qx2+qy2+qz2∈R(27)
模的性质:
∣
∣
p
⊗
q
∣
∣
=
∣
∣
q
⊗
p
∣
∣
=
∣
∣
p
∣
∣
∣
∣
q
∣
∣
(28)
||\bold{p} \otimes \bold{q}||=||\bold{q} \otimes \bold{p}||=||\bold{p}||||\bold{q}|| \tag{28}
∣∣p⊗q∣∣=∣∣q⊗p∣∣=∣∣p∣∣∣∣q∣∣(28)
1.2.6 逆(inverse)
一个四元数的逆
q
−
1
\bold{q}^{-1}
q−1和四元数本身相乘得到identity
q
⊗
q
−
1
=
q
−
1
⊗
q
=
q
1
(29)
\bold{q} \otimes \bold{q}^{-1} = \bold{q}^{-1} \otimes \bold{q} = \bold{q_1} \tag{29}
q⊗q−1=q−1⊗q=q1(29)
四元数的逆可以通过共轭来计算
q
−
1
=
q
∗
/
∣
∣
q
∣
∣
2
(30)
\bold{q}^{-1} = \bold{q}^* / ||\bold{q}||^2 \tag{30}
q−1=q∗/∣∣q∣∣2(30)
1.2.7 单位或者标准四元数(unit or normalized quaternion)
对于标准四元数,
∣
∣
q
∣
∣
=
1
||\bold{q}||=1
∣∣q∣∣=1,因此有:
q
−
1
=
q
∗
(31)
\bold{q}^{-1} = \bold{q}^* \tag{31}
q−1=q∗(31)
当用标准四元数表示旋转相关含义,或者作为旋转运算符时,上述性质表明,反向旋转可以简单的用一个共轭四元数表示。一个标准四元数总可以写成如下形式:
q
=
[
cos
θ
u
sin
θ
]
(32)
\bold{q} = \begin{bmatrix} \cos \theta \\ \bold{u} \sin \theta \end{bmatrix} \tag{32}
q=[cosθusinθ](32)
其中,
u
=
u
x
i
+
u
y
j
+
u
z
k
\bold{u} = u_x i + u_y j + u_z k
u=uxi+uyj+uzk ,是一个单位向量
θ
\theta
θ是一个标量。
从式(28),标准四元数的
⊗
\otimes
⊗运算构成一个非交换群,在这个群中,四元数的逆和共轭是同一个四元数
1.3 其他属性
1.3.1 四元数换向器(commutator)
四元数换向器定义为
[
p
,
q
]
≜
p
⊗
q
−
q
⊗
p
[\bold{p}, \bold{q}] \triangleq \bold{p} \otimes \bold{q} - \bold{q} \otimes \bold{p}
[p,q]≜p⊗q−q⊗p, 从式(13)可得:
p
⊗
q
−
q
⊗
p
=
2
p
v
×
q
v
(33)
\bold{p} \otimes \bold{q} - \bold{q} \otimes \bold{p}=2\bold{p}_v \times \bold{q}_v \tag{33}
p⊗q−q⊗p=2pv×qv(33)
可以得到一个结论:
p
v
⊗
q
v
−
q
v
⊗
p
v
=
2
p
v
×
q
v
(34)
\bold{p}_v \otimes \bold{q}_v - \bold{q}_v \otimes \bold{p}_v=2 \bold{p}_v \times \bold{q}_v \tag{34}
pv⊗qv−qv⊗pv=2pv×qv(34)
后面会用到这个结论。
1.3.2 纯四元数的乘积
纯四元数是指没有实部的四元数,
Q
=
q
v
or
q
=
[
0
,
q
v
]
Q = \bold{q}_v \text{ or } \bold{q}=[0,\bold{q}_v]
Q=qv or q=[0,qv]。利用式(13),可得:
p
v
⊗
q
v
=
p
v
⊺
q
v
+
p
v
×
q
v
=
[
−
p
v
⊺
q
v
p
v
×
q
v
]
(35)
\bold{p}_v \otimes \bold{q}_v = \bold{p}_v^{\intercal} \bold{q}_v + \bold{p}_v \times \bold{q}_v = \begin{bmatrix} -\bold{p}_v^{\intercal} \bold{q}_v \\ \bold{p}_v \times \bold{q}_v \end{bmatrix} \tag{35}
pv⊗qv=pv⊺qv+pv×qv=[−pv⊺qvpv×qv](35)
这意味着:
q
v
×
q
v
=
−
q
v
⊺
q
v
=
−
∣
∣
q
v
∣
∣
2
(36)
\bold{q}_v \times \bold{q}_v = -\bold{q}_v^{\intercal} \bold{q}_v = -||\bold{q}_v||^2 \tag{36}
qv×qv=−qv⊺qv=−∣∣qv∣∣2(36)
对于标准纯四元数
u
∈
H
p
\bold{u} \in \Bbb{H}_p
u∈Hp,
∣
∣
u
∣
∣
=
1
||\bold{u}||=1
∣∣u∣∣=1,
u
⊗
u
=
−
1
(37)
\bold{u} \otimes \bold{u} = -1 \tag{37}
u⊗u=−1(37)
这个和标准的虚部相乘有点像,
i
i
=
−
1
i i =-1
ii=−1
1.3.3 纯四元数的自然幂natural powers of pure quaternion
定义
q
n
,
n
∈
N
\bold{q}^n, n \in \Bbb{N}
qn,n∈N,是
q
\bold{q}
q 利用
⊗
\otimes
⊗的n次乘积,如果给定一个纯四元数
v
=
u
θ
\bold{v} = \bold{u} \theta
v=uθ,其中
θ
=
∣
∣
v
∣
∣
∈
R
\theta = ||\bold{v}|| \in \Bbb{R}
θ=∣∣v∣∣∈R,
u
\bold{u}
u是一个单位向量,利用公式(36),可以得到如下的循环模式:
v
2
=
−
θ
2
,
v
3
=
−
u
θ
3
,
v
4
=
θ
4
,
v
5
=
u
θ
5
,
v
6
=
−
θ
6
,
…
(38)
\bold{v}^2=-\theta^2,\bold{v}^3=-\bold{u}\theta^3, \bold{v}^4=\theta^4,\bold{v}^5=\bold{u}\theta^5,\bold{v}^6=-\theta^6, \dotsc \tag{38}
v2=−θ2,v3=−uθ3,v4=θ4,v5=uθ5,v6=−θ6,…(38)
1.3.4 纯四元数的指数形式
和普通的指数函数差不多,四元数的指数形式,由绝对收敛的序列构成:
e
q
≜
∑
k
=
0
∞
1
k
!
q
k
∈
H
(39)
e^{\bold{q}} \triangleq \displaystyle\sum_{k=0}^{\infty} \frac{1}{k!} \bold{q}^k \in \Bbb{H} \tag{39}
eq≜k=0∑∞k!1qk∈H(39)
可以看出四元数的指数形式定义和常规的指数函数是一致的。
特别的,纯四元数
v
=
v
x
i
+
v
y
j
+
v
z
k
\bold{v}=v_x i+v_y j+v_z k
v=vxi+vyj+vzk的指数形式:
e
v
≜
∑
k
=
0
∞
1
k
!
v
k
∈
H
(40)
e^{\bold{v}} \triangleq \displaystyle\sum_{k=0}^{\infty} \frac{1}{k!} \bold{v}^k \in \Bbb{H} \tag{40}
ev≜k=0∑∞k!1vk∈H(40)
令
v
=
u
θ
\bold{v}=\bold{u}\theta
v=uθ, 其中
θ
=
∣
∣
v
∣
∣
∈
R
\theta = ||\bold{v}|| \in \Bbb{R}
θ=∣∣v∣∣∈R,
u
\bold{u}
u是单位向量,利用公式(38),展开:
e
u
θ
=
(
1
−
θ
2
2
!
+
θ
4
4
!
+
.
.
.
)
+
(
u
θ
−
u
θ
3
3
!
+
u
θ
5
5
!
+
.
.
.
)
(41)
e^{\bold{u} \theta}=\big( 1-\frac{\theta^2}{2!}+ \frac{\theta^4}{4!} + ... \big)+ \big(\bold{u} \theta - \frac{\bold{u} \theta^3}{3!}+\frac{\bold{u} \theta^5}{5!}+... \big) \tag{41}
euθ=(1−2!θ2+4!θ4+...)+(uθ−3!uθ3+5!uθ5+...)(41)
可以看出,右侧的两项分别是
cos
θ
and
sin
θ
\cos \theta \text{ and } \sin \theta
cosθ and sinθ。表达成:
e
v
=
e
u
θ
+
cos
θ
+
u
sin
θ
=
[
cos
θ
u
sin
θ
]
(42)
e^{\bold{v}} = e ^{\bold{u} \theta} + \cos \theta + \bold{u} \sin \theta = \begin{bmatrix} \cos \theta \\ \bold{u} \sin \theta \end{bmatrix} \tag{42}
ev=euθ+cosθ+usinθ=[cosθusinθ](42)
上式是对欧拉公式
e
i
θ
=
cos
θ
+
i
sin
θ
e^{i \theta} = \cos \theta + i \sin \theta
eiθ=cosθ+isinθ的拓展。注意到由于
∣
∣
e
v
∣
∣
2
=
cos
2
θ
+
sin
2
θ
=
1
||e^{v}||^2=\cos^2 \theta + \sin^2 \theta = 1
∣∣ev∣∣2=cos2θ+sin2θ=1,因此,纯四元数的指数形式是一个标准四元数,并且有性质
e
−
v
=
(
e
v
)
∗
(43)
e^{-\bold{v}} = (e^{\bold{v}})^* \tag{43}
e−v=(ev)∗(43)
对于小角度四元数,为了避免除零问题
u
=
v
/
∣
∣
v
∣
∣
\bold{u} = \bold{v} / ||\bold{v}||
u=v/∣∣v∣∣,可以通过泰勒展开进行截断求解,得到不同精确度的近似
e
v
≈
[
1
−
θ
2
/
2
v
(
1
−
θ
2
/
6
)
]
≈
[
1
v
]
→
θ
→
0
[
1
0
]
(44)
e^{\bold{v}}\approx \begin{bmatrix} 1-\theta^2/2 \\ \bold{v}(1-\theta^2/6) \end{bmatrix} \approx \begin{bmatrix} 1 \\ \bold{v} \end{bmatrix} \xrightarrow[ \theta \rarr 0]{} \begin{bmatrix} 1 \\ \bold{0} \end{bmatrix} \tag{44}
ev≈[1−θ2/2v(1−θ2/6)]≈[1v]θ→0[10](44)
1.3.5 一般化的四元数指数形式
由于四元数乘积的非交换特性,我们无法直接写出
e
p
+
q
=
e
p
e
q
e^{\bold{p}+\bold{q}}=e^{\bold{p}}e^{\bold{q}}
ep+q=epeq,但是如果其中一项是标量就可以写出:
e
q
=
e
q
e
+
q
v
=
e
q
w
e
q
v
(45)
e^{\bold{q}}=e^{q_e+\bold{q}_v}=e^{q_w}e^{\bold{q}_v} \tag{45}
eq=eqe+qv=eqweqv(45)
利用公式(42)
u
θ
=
q
v
\bold{u} \theta = \bold{q}_v
uθ=qv:
e
q
=
e
q
w
[
cos
∣
∣
q
v
∣
∣
q
v
∣
∣
q
v
∣
∣
sin
∣
∣
q
v
∣
∣
]
(46)
e^{\bold{q}} = e^{q_w} \begin{bmatrix} \cos ||\bold{q}_v|| \\ \frac{\bold{q}_v}{||\bold{q}_v||} \sin ||\bold{q}_v|| \end{bmatrix} \tag{46}
eq=eqw[cos∣∣qv∣∣∣∣qv∣∣qvsin∣∣qv∣∣](46)
1.3.6 单位四元数的Log运算
如果
∣
∣
q
∣
∣
=
1
||\bold{q}||=1
∣∣q∣∣=1
log
q
=
log
(
cos
θ
+
u
sin
θ
)
=
log
(
e
u
θ
)
=
u
θ
=
[
0
u
θ
]
(47)
\log \bold{q}=\log (\cos \theta+\bold{u} \sin \theta)=\log (e^{\bold{u} \theta})=\bold{u} \theta = \begin{bmatrix} 0 \\ \bold{u} \theta \end{bmatrix} \tag{47}
logq=log(cosθ+usinθ)=log(euθ)=uθ=[0uθ](47)
标准四元数的log运算结果是纯四元数,轴角数值可以通过如下运算获得:
u
=
q
v
/
∣
∣
q
v
∣
∣
(48)
\bold{u} = \bold{q}_v / ||\bold{q}_v|| \tag{48}
u=qv/∣∣qv∣∣(48)
θ
=
arctan
(
∣
∣
q
v
∣
∣
,
q
w
)
(49)
\theta = \arctan (||\bold{q}_v||,q_w) \tag{49}
θ=arctan(∣∣qv∣∣,qw)(49)
对于小角度四元数,为了避免出现除零的情况,同样利用泰勒展开,并截断,得到一定精度的近似值:
log
(
q
)
=
u
θ
=
q
v
arctan
(
∣
∣
q
v
∣
∣
,
q
w
)
∣
∣
q
v
∣
∣
≈
q
v
q
w
(
1
−
∣
∣
q
v
∣
∣
2
3
q
w
2
)
≈
q
v
→
θ
→
0
0
(50)
\log (\bold{q})=\bold{u} \theta=\bold{q}_v \frac{\arctan (||\bold{q}_v||,q_w)}{||\bold{q}_v||} \approx \frac{\bold{q}_v}{q_w}(1-\frac{||\bold{q}_v||^2}{3q^2_w}) \approx \bold{q}_v \xrightarrow[ \theta \rarr 0]{} \bold{0} \tag{50}
log(q)=uθ=qv∣∣qv∣∣arctan(∣∣qv∣∣,qw)≈qwqv(1−3qw2∣∣qv∣∣2)≈qvθ→00(50)
1.3.7 一般四元数的log运算
如果
q
\bold{q}
q 是一个一般形式的四元数,则有:
log
q
=
log
(
∣
∣
q
∣
∣
q
∣
∣
q
∣
∣
)
=
log
∣
∣
q
∣
∣
+
log
q
∣
∣
q
∣
∣
=
log
∣
∣
q
∣
∣
+
u
θ
=
[
log
∣
∣
q
∣
∣
u
θ
]
(51)
\log \bold{q}= \log (||\bold{q}|| \frac{\bold{q}}{||\bold{q}||})=\log||\bold{q}||+\log \frac{\bold{q}}{||\bold{q}||}=\log ||\bold{q}|| + \bold{u} \theta = \begin{bmatrix} \log ||\bold{q}|| \\ \bold{u} \theta \end{bmatrix} \tag{51}
logq=log(∣∣q∣∣∣∣q∣∣q)=log∣∣q∣∣+log∣∣q∣∣q=log∣∣q∣∣+uθ=[log∣∣q∣∣uθ](51)
1.3.8 q t \bold{q}^t qt的指数形式
如果有
q
∈
H
and
t
∈
R
\bold{q} \in \Bbb{H} \text{ and } t \in \Bbb{R}
q∈H and t∈R,则
q
t
=
exp
(
log
(
q
t
)
)
=
exp
(
t
log
(
q
)
)
(52)
\bold{q}^t=\exp(\log(\bold{q}^t)) = \exp(t \log(\bold{q})) \tag{52}
qt=exp(log(qt))=exp(tlog(q))(52)
如果
∣
∣
q
∣
∣
=
1
||\bold{q}|| = 1
∣∣q∣∣=1,可以写作
q
=
[
cos
θ
,
u
sin
θ
]
\bold{q}=[\cos \theta, \bold{u} \sin \theta]
q=[cosθ,usinθ], 因此有
log
(
q
)
=
u
θ
\log(\bold{q})=\bold{u} \theta
log(q)=uθ,进而有
q
t
=
exp
(
t
u
θ
)
=
[
cos
t
θ
u
sin
t
θ
]
(53)
\bold{q}^t = \exp (t \bold{u} \theta)= \begin{bmatrix} \cos t \theta \\ \bold{u} \sin t \theta \end{bmatrix}\tag{53}
qt=exp(tuθ)=[costθusintθ](53)
指数t最终变成了一个线性的乘子,我们在后面会继续讨论。
旋转和交叉关系?cross-relations
2.1 3D向量的旋转公式
图1展示了一个右手规则的旋转,旋转一个向量
x
\bold{x}
x,旋转轴是一个单位向量
u
\bold{u}
u,旋转角度为
ϕ
\phi
ϕ,这个旋转过程通过将向量
x
\bold{x}
x分解为平行于转轴
u
\bold{u}
u的
x
∥
\bold{x}_{\|}
x∥部分,和垂直于旋转轴
u
\bold{u}
u的
x
⊥
\bold{x}_{\perp}
x⊥部分:
x
=
x
∥
+
x
⊥
\bold{x} = \bold{x}_{\|} + \bold{x}_{\perp}
x=x∥+x⊥
分解后的部分计算如下,
x
∥
=
u
(
∣
∣
x
cos
α
)
=
u
u
⊺
x
x
⊥
=
x
−
x
∥
=
x
−
u
u
⊺
x
\bold{x}_{\|} = \bold{u}(|| \bold{x} \cos \alpha) = \bold{u} \bold{u}^{\intercal}\bold{x} \\ \bold{x}_{\perp}=\bold{x} - \bold{x}_\| = \bold{x}- \bold{u} \bold{u}^{\intercal}\bold{x}
x∥=u(∣∣xcosα)=uu⊺xx⊥=x−x∥=x−uu⊺x
在旋转的过程中,和旋转轴平行的部分不会发生变化,因此:
x
∥
′
=
x
∥
\bold{x}_\|' = \bold{x}_\|
x∥′=x∥
和转轴垂直的部分,经历了一个平面旋转,我们构造一个平面内的正交基
{
e
1
,
e
2
}
\{ \bold{e}_1, \bold{e}_2\}
{e1,e2}
e
1
=
x
⊥
e
2
=
u
×
x
⊥
=
u
×
x
\bold{e}_1 = \bold{x}_\perp \\ \bold{e}_2 = \bold{u} \times \bold{x}_\perp = \bold{u} \times \bold{x}
e1=x⊥e2=u×x⊥=u×x
满足
∣
∣
e
1
∣
∣
=
∣
∣
e
2
∣
∣
||\bold{e}_1|| = ||\bold{e}_2||
∣∣e1∣∣=∣∣e2∣∣,有
x
⊥
=
e
1
⋅
1
+
e
2
⋅
0
\bold{x}_\perp=\bold{e}_1 \cdot 1 + \bold{e}_2 \cdot 0
x⊥=e1⋅1+e2⋅0。在平面内旋转
ϕ
\phi
ϕ弧度后,可以得到
x
⊥
′
=
e
1
cos
ϕ
+
e
2
sin
ϕ
\bold{x}_\perp '= \bold{e}_1 \cos \phi + \bold{e}_2 \sin \phi
x⊥′=e1cosϕ+e2sinϕ
进而可得:
x
⊥
′
=
x
⊥
cos
ϕ
+
(
u
×
x
)
sin
ϕ
\bold{x}_\perp' = \bold{x}_\perp \cos \phi + (\bold{u} \times \bold{x}) \sin \phi
x⊥′=x⊥cosϕ+(u×x)sinϕ
再添加上平行旋转轴的部分,就得到了向量旋转公式
x
′
=
x
∥
+
x
⊥
cos
ϕ
+
(
u
×
x
)
sin
ϕ
(54)
\bold{x}'=\bold{x}_\|+\bold{x}_\perp\cos \phi + (\bold{u} \times \bold{x}) \sin \phi \tag{54}
x′=x∥+x⊥cosϕ+(u×x)sinϕ(54)
2.2 旋转群 S O ( 3 ) SO(3) SO(3)
在 R 3 \Bbb{R}^3 R3中能通过组合运算,围绕原点旋转组成的群就是旋转群 S O ( 3 ) SO(3) SO(3),旋转过程能保持向量的长度以及向量之间相对的角度。在机器人学方向旋转群非常重要,它被用来描述刚体在三维空间的运动。一个“刚体运动过程”要求在刚体内部,“距离,角度,以及相对方向”不发生变化。如果刚体内部的长度,角度,和相对方向发生了变化,那这就不再是一个“刚体”。
通过一个满足特定性质的函数
r
r
r来定义旋转,
r
:
R
3
→
R
3
;
v
↦
r
(
v
)
r: \Bbb{R}^3 \rarr \Bbb{R}^3 ; \bold{v} \mapsto r(\bold{v})
r:R3→R3;v↦r(v),作用于一个向量
v
∈
R
3
v \in \Bbb{R}^3
v∈R3 , 通过存在点积和叉积的欧式空间测度来定义。
(1) 旋转运动保持向量长度不变
∣
∣
r
(
v
)
∣
∣
=
⟨
r
(
v
)
,
r
(
v
)
⟩
=
⟨
v
,
v
⟩
≜
∣
∣
v
∣
∣
,
∀
v
∈
R
3
(55a)
||r(\bold{v})||=\sqrt{\lang r(\bold{v}),r(\bold{v}) \rang} = \sqrt{\lang \bold{v} , \bold{v} \rang} \triangleq ||\bold{v}||, \forall \bold{v} \in \Bbb{R}^3 \tag{55a}
∣∣r(v)∣∣=⟨r(v),r(v)⟩=⟨v,v⟩≜∣∣v∣∣,∀v∈R3(55a)
(2) 旋转保持向量之间的角度不变
⟨
r
(
v
)
,
r
(
w
)
⟩
=
⟨
v
,
w
⟩
=
∣
∣
v
∣
∣
∣
∣
w
∣
∣
cos
α
,
∀
v
,
w
∈
R
3
(55b)
\lang r(\bold{v}), r(\bold{w}) \rang = \lang \bold{v}, \bold{w} \rang = ||\bold{v}|| ||\bold{w}|| \cos \alpha, \forall \bold{v}, \bold{w} \in \Bbb{R}^3 \tag{55b}
⟨r(v),r(w)⟩=⟨v,w⟩=∣∣v∣∣∣∣w∣∣cosα,∀v,w∈R3(55b)
(3) 旋转保持向量之间的相对方向
u
×
v
=
w
⇔
r
(
u
)
×
r
(
v
)
=
r
(
w
)
\bold{u} \times \bold{v} = \bold{w} \Leftrightarrow r(\bold{u}) \times r(\bold{v}) = r(\bold{w})
u×v=w⇔r(u)×r(v)=r(w)
可以很容易证明前两个条件等价。可以定义旋转群
S
O
(
3
)
SO(3)
SO(3) 如下:
S
O
(
3
)
:
{
r
:
R
3
→
R
3
/
∀
v
,
w
∈
R
3
,
∣
∣
r
(
v
)
∣
∣
=
∣
∣
v
∣
∣
,
r
(
v
)
×
r
(
w
)
=
r
(
v
×
w
)
}
(57)
SO(3):\{ r:\Bbb{R}^3 \rarr \Bbb{R}^3 / \forall \bold{v}, \bold{w} \in \Bbb{R}^3 ,||r(\bold{v})|| = ||\bold{v}|| , r(\bold{v}) \times r(\bold{w}) = r(\bold{v} \times \bold{w}) \} \tag{57}
SO(3):{r:R3→R3/∀v,w∈R3,∣∣r(v)∣∣=∣∣v∣∣,r(v)×r(w)=r(v×w)}(57)
旋转群通常用旋转矩阵来表示。但是四元数也是一种很好的表示方法。这一章的一个目的是说明两种表示方法是等价的。他们在概念和几何上展现出了大量的相似性。最主要的区别在与四元数是
S
O
(
3
)
SO(3)
SO(3)的一个double cover,因此事实上并不是
S
O
(
3
)
SO(3)
SO(3)本身。但对于我们的应用来说这一点并不致命。
2.3 旋转群和旋转矩阵
函数
r
(
)
r()
r()是用标量和向量乘积进行定义的,因此是线性的。所以可利用一个矩阵
R
∈
R
3
×
3
\bold{R} \in \Bbb{R}^{3\times 3}
R∈R3×3来表示。对向量
v
\bold{v}
v的旋转可以用一个矩阵乘积表示,如下:
r
(
v
)
=
R
v
(58)
r(\bold{v}) = \bold{Rv} \tag{58}
r(v)=Rv(58)
代入到公式(55a),利用点乘表达
⟨
a
,
b
⟩
=
a
⊺
b
\lang \bold{a}, \bold{b} \rang= \bold{a}^{\intercal}\bold{b}
⟨a,b⟩=a⊺b,可得对于所有的
v
\bold{v}
v
(
R
v
)
⊺
(
R
v
)
=
v
⊺
R
⊺
R
v
=
v
⊺
v
(59)
(\bold{Rv})^{\intercal}(\bold{Rv})=\bold{v^\intercal R^\intercal R v}= \bold{v^\intercal v} \tag{59}
(Rv)⊺(Rv)=v⊺R⊺Rv=v⊺v(59)
可以得到
R
\bold{R}
R需要满足的一个正交条件
R
⊺
R
=
I
=
R
R
⊺
(60)
\bold{R^\intercal R} = \bold{I} = \bold{RR^\intercal} \tag{60}
R⊺R=I=RR⊺(60)
上述条件是描述正交特性的,如果令
R
=
[
r
1
,
r
2
,
r
3
]
\bold{R}=[\bold{r_1,r_2,r_3}]
R=[r1,r2,r3],代入上式,可得,
R
\bold{R}
R的列向量
r
i
\bold{r_i}
ri是单位向量,并且互相垂直:
⟨
r
i
,
r
i
⟩
=
r
i
⊺
r
i
=
1
⟨
r
i
,
r
j
⟩
=
r
i
⊺
r
j
=
0
,
if
i
≠
j
\lang \bold{r_i, r_i} \rang = \bold{r_i^\intercal r_i}=1 \\ \lang \bold{r_i, r_j} \rang = \bold{r_i^\intercal r_j}=0, \text{if } i \neq j
⟨ri,ri⟩=ri⊺ri=1⟨ri,rj⟩=ri⊺rj=0,if i=j
能保持向量长度和角度的匀速组成的群是正交群
O
(
3
)
O(3)
O(3)。正交群包含了旋转和反射,旋转是刚性变换,反射不是刚性变换。群的含义是两个正交的矩阵的乘积依然是一个正交的矩阵。每一个正交矩阵都有一个逆,公式(60)表明,正交矩阵的逆就是它自身的转置
R
−
1
=
R
⊺
(61)
\bold{R}^{-1} = \bold{R}^\intercal \tag{61}
R−1=R⊺(61)
在加上相对方向条件,公式(56)确保变换是刚性的,可得到另一个约束
det
(
R
)
=
1
\det (\bold{R}) = 1
det(R)=1
正交矩阵中,有单位行列式值的矩阵称为“特殊的”。他们是特殊正交矩阵,是正交群的子群,叫做特殊正交群
S
O
(
3
)
SO(3)
SO(3)。任意两个旋转矩阵的乘积仍然是一个旋转矩阵。
2.3.1 指数映射
指数映射是一个非常有用的数学工具,能让我们轻松并且严密的处理3维旋转。它是在旋转空间中进行微积分的起始点。它让我们可以定义微分、扰动和速度并处理它们。因此在处理旋转和方向的估计问题时,要先了解一下
旋转运动是刚性的。这意味着我们可以在 S O ( 3 ) SO(3) SO(3)中定义一个光滑的轨迹 r ( t ) r(t) r(t),这个轨迹可以将一个刚体平滑的从 r ( 0 ) r(0) r(0)变换至 r ( t ) r(t) r(t)。由于是连续光滑的,因此可以进行对时间的求导。利用公式(60)和(62)进行。
首先,要注意到只要能一直满足公式(60),我们就可以避免出现对公式(62)的违反。因为运动是连续的,只要是连续运动就不会出现旋转矩阵行列式值的跳变(从1到-1)。
将公式(60)对时间求导:
d
d
t
(
R
⊺
R
)
=
R
˙
⊺
R
+
R
⊺
R
˙
=
0
(63)
\frac{d}{dt}(\bold{R^\intercal R})=\dot{\bold{R}}^\intercal \bold{R} + \bold{R}^\intercal \bold{\dot{R}} = 0 \tag{63}
dtd(R⊺R)=R˙⊺R+R⊺R˙=0(63)
移项:
R
˙
⊺
R
=
−
R
⊺
R
˙
=
−
(
R
˙
⊺
R
)
⊺
(64)
\dot{\bold{R}}^\intercal \bold{R} = -\bold{R}^\intercal \bold{\dot{R}} = -(\dot{\bold{R}}^\intercal \bold{R})^\intercal \tag{64}
R˙⊺R=−R⊺R˙=−(R˙⊺R)⊺(64)
说明矩阵
R
˙
⊺
R
\dot{\bold{R}}^\intercal \bold{R}
R˙⊺R是反对称的,反对称的
3
×
3
3\times 3
3×3矩阵记为
s
o
(
3
)
\frak{so}(3)
so(3),这个是
S
O
(
3
)
SO(3)
SO(3)的李代数。反对称的
3
×
3
3\times 3
3×3矩阵有如下形式:
[
ω
]
×
≜
[
0
−
ω
z
ω
y
ω
z
0
−
ω
x
−
ω
y
ω
x
0
]
(65)
[\omega]_\times \triangleq \begin{bmatrix} 0 & -\omega_z & \omega_y \\ \omega_z & 0 & -\omega_x \\ -\omega_y & \omega_x & 0 \end{bmatrix} \tag{65}
[ω]×≜⎣⎡0ωz−ωy−ωz0ωxωy−ωx0⎦⎤(65)
反对称矩阵有3个自由度,和叉乘运算相关,如公式(20),这个建立了从向量到李代数的一一映射
ω
∈
R
3
↔
[
ω
]
×
∈
s
o
(
3
)
\omega \in \Bbb{R}^3 \leftrightarrow [\omega]_\times \in \frak{so}(3)
ω∈R3↔[ω]×∈so(3)。取一个向量
ω
=
(
ω
x
,
ω
y
,
ω
z
)
∈
R
3
\omega=(\omega_x,\omega_y,\omega_z)\in \bold{R}^3
ω=(ωx,ωy,ωz)∈R3,将上式写作:
R
⊺
R
˙
=
[
ω
]
×
(66)
\bold{R}^\intercal \dot{\bold{R}} = [\omega]_\times \tag{66}
R⊺R˙=[ω]×(66)
这是一个普通微分方程(ODE):
R
˙
=
R
[
ω
]
×
(67)
\bold{\dot{R}} = \bold{R}[\omega]_\times \tag{67}
R˙=R[ω]×(67)
在原点附近有
R
=
I
\bold{R=I}
R=I,上式可以化简为
R
˙
=
[
ω
]
×
\bold{\dot{R}}=[\omega]_\times
R˙=[ω]×,可见,可以将李代数
s
o
(
3
)
\frak{so}(3)
so(3)看做
r
(
t
)
r(t)
r(t)在原点附近的微分空间,它组成了
S
O
(
3
)
SO(3)
SO(3)的正切空间或者叫速度空间,由此可以将
ω
\omega
ω看做是瞬时角速度向量
如果
ω
\omega
ω是常数,上述的微分方程求解可得:
R
(
t
)
=
R
(
0
)
e
[
ω
]
×
t
=
R
(
0
)
e
[
ω
t
]
×
(68)
\bold{R}(t) = \bold{R}(0)e^{[\omega]_\times t} = \bold{R}(0)e^{[\omega t]_\times} \tag{68}
R(t)=R(0)e[ω]×t=R(0)e[ωt]×(68)
其中指数项
e
[
x
]
×
e^{[x]_\times}
e[x]×是通过泰勒级数进行定义的,后面会讨论。由于
R
(
0
)
,
R
(
t
)
\bold{R}(0), \bold{R}(t)
R(0),R(t)是旋转矩阵,因此
e
[
ω
t
]
×
e^{[\omega t]_\times}
e[ωt]×是旋转矩阵。定义向量
ϕ
≜
ω
Δ
t
\phi \triangleq \omega \Delta t
ϕ≜ωΔt 为在时间段
Δ
t
\Delta t
Δt内,整体的旋转,可得:
R
=
e
[
ϕ
]
×
(69)
\bold{R} = e^{[\phi]_\times} \tag{69}
R=e[ϕ]×(69)
这个就是指数映射,从
s
o
(
3
)
\frak{so}(3)
so(3)到
S
O
(
3
)
SO(3)
SO(3):
exp
:
s
o
(
3
)
→
S
O
(
3
)
;
[
ϕ
]
×
↦
exp
(
[
ϕ
]
×
)
=
e
[
ϕ
]
×
(70)
\exp : \frak{so}(3) \rarr SO(3); [\phi]_\times \mapsto \exp ([\phi]_\times)=e^{[\phi]_\times} \tag{70}
exp:so(3)→SO(3);[ϕ]×↦exp([ϕ]×)=e[ϕ]×(70)
2.3.2 大写指数映射
上面的指数映射表达形式经常被滥用,和
ϕ
∈
R
3
\phi \in \R^3
ϕ∈R3以及
[
ϕ
]
×
∈
s
o
(
3
)
[\phi]_\times \in \frak{so}(3)
[ϕ]×∈so(3)混淆,为了避免歧义,使用一个大写的Exp运算,来作为映射
R
3
→
S
O
(
3
)
\R^3 \rarr SO(3)
R3→SO(3):
Exp
:
R
3
→
S
O
(
3
)
;
ϕ
↦
Exp
(
ϕ
)
=
e
[
ϕ
]
×
(71)
\text{Exp}:\R^3 \rarr SO(3); \phi \mapsto \text{Exp}(\phi) = e^{[\phi]_\times} \tag{71}
Exp:R3→SO(3);ϕ↦Exp(ϕ)=e[ϕ]×(71)
大小写指数映射之间的关系:
Exp
(
ϕ
)
≜
exp
(
[
ϕ
]
×
)
(72)
\text{Exp}(\phi) \triangleq \exp([\phi]_\times) \tag{72}
Exp(ϕ)≜exp([ϕ]×)(72)
在后面的章节中,会看到,将向量
ϕ
\phi
ϕ称作旋转向量,或者轴角向量,
ϕ
=
ω
Δ
t
=
ϕ
u
\phi=\omega \Delta t = \phi \bold{u}
ϕ=ωΔt=ϕu,其中
ϕ
\phi
ϕ是角度,
u
\bold{u}
u是旋转轴。