最近在学高翔大神的SLAM,工作之余才能有空拜读,本文内的东西大都是摘录自大神的《视觉SLAM十四讲》,本文仅仅是作为学习笔记,增加记忆。
首先上一下群的定义,群(Group)是一种集合加上一种运算的代数结构,将其中的集合称作 A A A,运算为 ⋅ \cdot ⋅,所以群就可以记做 G = ( A , ⋅ ) G=(A,\cdot) G=(A,⋅)。群的相关运算需要满足以下性质:
从上面几个群的相关性质,不难发现,旋转矩阵和矩阵的乘法可以构成群,同样的,变换矩阵和矩阵乘法也可以构成群。另外,常见的群有,整数和加法构成的群,去掉0后的有理数和乘法(0不存在幺元)构成的群等。
上面的八股文还是要理解一下的,下面结合之前看过的四元素以及坐标变换,理解一下群是什么东西。
接下来说点非八股文的东西,坐标转换时,会从一个坐标系
O
A
O_{A}
OA转换到另一个坐标系
O
B
O_{B}
OB,需要经常用到连续的旋转矩阵相乘,或者变换矩阵的连续相乘,经过变换后,旋转矩阵仍然是旋转矩阵,变换矩阵也仍然是变换矩阵。旋转矩阵相乘和转移矩阵相乘完全符合群的定义以及各个条件,故,三维旋转矩阵构成了特殊正交群
S
O
(
3
)
SO(3)
SO(3),变换矩阵构成了特殊欧式群
S
E
(
3
)
SE(3)
SE(3)。
S
O
(
3
)
=
{
R
∈
R
3
×
3
∣
R
R
T
=
I
,
d
e
t
R
=
1
}
(1)
SO(3)=
S
E
(
3
)
=
{
T
=
[
R
t
0
T
1
]
∈
R
4
×
4
∣
R
∈
S
O
(
3
)
,
t
∈
R
3
}
(2)
SE(3)=
旋转矩阵
S
O
(
3
)
SO(3)
SO(3)和转移矩阵
S
E
(
3
)
SE(3)
SE(3)对于加法是不封闭的,只关于乘法封闭,
R
1
R
2
∈
S
O
(
3
)
,
T
1
T
2
∈
S
E
(
3
)
(3)
R_{1}R_{2}\in SO(3),\enspace T_{1}T_{2}\in SE(3) \tag{3}
R1R2∈SO(3),T1T2∈SE(3)(3)
好,对于旋转矩阵和转移矩阵这种相乘仍然是旋转矩阵和转移矩阵,这种只有一种运算的集合,就是群。
矩阵中常见的群有:
李群则是指具有连续性质的群,刚体在空间中的运动都是连续的,所以 S O ( 2 ) , S O ( 3 ) , S E ( 2 ) , S E ( 3 ) SO(2),SO(3),SE(2),SE(3) SO(2),SO(3),SE(2),SE(3)都是李群。每个李群都会有一个对应的李代数,下面来说一下李代数。
对于任意传感器的旋转矩阵
R
R
R,会随着时间t连续的变化,有
R
(
t
)
R
T
(
t
)
=
I
(4)
R(t)R^{T}(t)=I \tag{4}
R(t)RT(t)=I(4)
再对等式两边求导,则有
R
˙
(
t
)
R
(
t
)
T
+
R
(
t
)
R
˙
(
t
)
T
=
0
(5)
\dot{R}(t)R(t)^{T}+R(t)\dot{R}(t)^{T}=0 \tag{5}
R˙(t)R(t)T+R(t)R˙(t)T=0(5)
整理后,有
R
˙
(
t
)
R
(
t
)
T
=
−
(
R
˙
(
t
)
R
(
t
)
T
)
T
(6)
\dot{R}(t)R(t)^{T}=-(\dot{R}(t)R(t)^{T})^{T} \tag{6}
R˙(t)R(t)T=−(R˙(t)R(t)T)T(6)
可以看得出, R ˙ ( t ) R ( t ) T \dot{R}(t)R(t)^{T} R˙(t)R(t)T是一个反对称矩阵。
反对成矩阵可以转换成一个向量,任一反对称矩阵都可以找出一个与其对应的向量,由这个向量转到反对称矩阵用符号
∧
\land
∧表示,由反对称矩阵变换到其对应的向量用符号
∨
\lor
∨表示:
a
∧
=
A
=
[
0
−
a
3
a
2
a
3
0
−
a
1
−
a
2
a
1
0
]
,
A
∨
=
a
=
{
a
1
,
a
2
,
a
3
}
T
(7)
a^{\land}=A=
因此,反对称矩阵
R
˙
(
t
)
R
(
t
)
T
\dot{R}(t)R(t)^{T}
R˙(t)R(t)T也可以化为一个对应的三维向量
ϕ
(
t
)
∈
R
\phi(t) \in R
ϕ(t)∈R,如下
R
˙
(
t
)
R
(
t
)
T
=
ϕ
(
t
)
∧
(8)
\dot{R}(t)R(t)^{T}=\phi(t)^{\land} \tag{8}
R˙(t)R(t)T=ϕ(t)∧(8)
等式两边同时右乘
R
(
t
)
R(t)
R(t),由于
R
(
t
)
R(t)
R(t)为正交阵,有
R
˙
(
t
)
=
ϕ
(
t
)
∧
R
(
t
)
=
[
0
−
ϕ
3
ϕ
2
ϕ
3
0
−
ϕ
1
−
ϕ
2
ϕ
1
0
]
R
(
t
)
(9)
\dot{R}(t)=\phi(t)^{\land}R(t)=
由上式,可以看出旋转矩阵 R ( t ) R(t) R(t)求一次导数,就是只需要左乘一个 ϕ ( t ) ∧ \phi(t)^{\land} ϕ(t)∧即可。
取
t
0
=
0
t_{0}=0
t0=0,并且设此时旋转矩阵为
R
(
0
)
=
I
R(0)=I
R(0)=I,按照导数定义,将
R
(
t
)
R(t)
R(t)在0附近进行一阶泰勒展开,则有,
R
(
t
)
≈
R
(
t
0
)
+
R
˙
(
t
0
)
(
t
−
t
0
)
=
I
+
ϕ
(
t
0
)
∧
t
(10)
R(t) \approx R(t_{0})+\dot{R}(t_0)(t-t_{0})=I+\phi(t_{0})^{\land}t \tag{10}
R(t)≈R(t0)+R˙(t0)(t−t0)=I+ϕ(t0)∧t(10)
从上式可以看出, ϕ \phi ϕ反映了 R R R的导数性质,因此 ϕ \phi ϕ被称为 S O ( 3 ) SO(3) SO(3)原点附近的正切空间上。
同时在
t
0
t_0
t0附近,设
ϕ
\phi
ϕ保持为常数
ϕ
(
t
0
)
=
ϕ
0
\phi(t_{0})=\phi_{0}
ϕ(t0)=ϕ0,那么根据式(9),有
R
˙
(
t
)
=
ϕ
(
t
0
)
∧
R
(
t
)
=
ϕ
0
∧
R
(
t
)
(11)
\dot{R}(t)=\phi(t_{0})^{\land}R(t)=\phi_{0}^{\land}R(t) \tag{11}
R˙(t)=ϕ(t0)∧R(t)=ϕ0∧R(t)(11)
求解上述微分方程,并且因为初始值
R
(
0
)
=
I
R(0)=I
R(0)=I,求解后,有
R
(
t
)
=
e
x
p
(
ϕ
0
∧
t
)
(12)
R(t)=exp(\phi_{0}^{\land}t) \tag{12}
R(t)=exp(ϕ0∧t)(12)
到此可以看出,旋转矩阵 R R R与另一个反对称矩阵 ϕ 0 ∧ \phi_{0}^{\land} ϕ0∧的指数运算有了联系。
书中上述的这一番推导十分精彩,有空可以细细琢磨一下。
下面,自己做一些补充,其实 ϕ \phi ϕ就是旋转矩阵 R R R对应的李群 S O ( 3 ) SO(3) SO(3)上的李代数 s o ( 3 ) \frak{so}(3) so(3)。
另外矩阵的指数计算,如下,
e
x
p
(
A
t
)
=
I
+
A
t
+
1
2
!
A
2
t
2
+
…
=
∑
k
=
0
∞
1
k
!
A
k
t
k
(13)
exp(At)=I+At+\frac{1}{2!}A^{2}t^{2}+\ldots=\displaystyle\sum_{k=0}^{\infty}\frac{1}{k!}A^{k}t^{k} \tag{13}
exp(At)=I+At+2!1A2t2+…=k=0∑∞k!1Aktk(13)
下面就介绍下李代数的概念,
每个李群都有一个对应的李代数,李代数的定义:李代数由一个集合
V
\Bbb{V}
V,一个数域
F
\Bbb{F}
F和一个二元运算
[
,
]
[,]
[,]组成,另外,还必须满足以下几条性质:
则称 [ V , F , [ , ] ] [\Bbb{V},\Bbb{F},[,]] [V,F,[,]]为一个李代数,记为 g \frak{g} g。举个例子,三维向量 R 3 \Bbb{R}^{3} R3上定义的叉积 × \times ×是一种李括号,因此, g = ( R 3 , R , × ) \frak{g}=(\Bbb{R}^{3},\Bbb{R},\times) g=(R3,R,×)构成了一个李代数。
结合之前的推导,每个
ϕ
\phi
ϕ可以生成一个反对称矩阵
Φ
=
ϕ
∧
=
[
0
−
ϕ
3
ϕ
2
ϕ
3
0
−
ϕ
1
−
ϕ
2
ϕ
1
0
]
∈
R
3
×
3
(14)
\Phi=\phi^{\land}=
在此定义下,两个向量
ϕ
1
,
ϕ
2
\phi_{1},\phi_{2}
ϕ1,ϕ2 的李括号为
[
ϕ
1
,
ϕ
2
]
=
(
Φ
1
Φ
2
−
Φ
2
Φ
1
)
∨
(15)
[\phi_{1},\phi_{2}]=(\Phi_{1}\Phi_{2}-\Phi_{2}\Phi_{1})^{\lor} \tag{15}
[ϕ1,ϕ2]=(Φ1Φ2−Φ2Φ1)∨(15)
s
o
(
3
)
\frak{so}(3)
so(3)是一个三维向量,或者一个三维反对称矩阵
s
o
(
3
)
=
{
ϕ
∈
R
3
,
Φ
=
ϕ
∧
R
3
×
3
}
(16)
\frak{so}(3)=
李代数
s
o
(
3
)
\frak{so}(3)
so(3)与李群
S
O
(
3
)
SO(3)
SO(3)的关系,可以由指数映射给定,参考式(12)。
而李群
S
E
(
3
)
SE(3)
SE(3)也有对应的李代数
s
e
(
3
)
\frak{se}(3)
se(3),
s
e
(
3
)
=
{
ξ
=
[
ρ
ϕ
]
∈
R
6
,
ρ
∈
R
3
,
ϕ
∈
s
o
(
3
)
,
ξ
∧
=
[
ϕ
∧
ρ
0
T
0
]
∈
R
4
×
4
}
(17)
\frak{se}(3)=
每个李代数
s
e
(
3
)
\frak{se}(3)
se(3)元素记做
ξ
\xi
ξ,是一个六维向量,上面的三维为平移向量,记做
ρ
\rho
ρ,注意与变换矩阵
T
T
T中的平移向量
t
t
t不同,不是同一个东西;下面三维为李群
s
o
(
3
)
\frak{so}(3)
so(3)。注意,这里的
∧
{\land}
∧与之前的不同,在这同样使用
∧
\land
∧,将一个六维向量转换为一个四维矩阵,但是在此处不再表示反对称。
同样,李代数
s
e
(
3
)
\frak{se}(3)
se(3)也有相应的李括号
[
ξ
1
,
ξ
2
]
=
(
ξ
1
∧
ξ
2
∧
−
ξ
2
∧
ξ
1
∧
)
∨
(18)
[\xi_{1},\xi_{2}]=(\xi_{1}^{\land}\xi_{2}^{\land}-\xi_{2}^{\land}\xi_{1}^{\land})^{\lor} \tag{18}
[ξ1,ξ2]=(ξ1∧ξ2∧−ξ2∧ξ1∧)∨(18)
上面说过矩阵指数的求解,在李群和李代数中,称为指数映射。
矩阵的指数映射可以写成一个泰勒展开,但是只有在收敛的情况下会有结果,类似式(13)
e
x
p
(
A
)
=
I
+
A
+
1
2
!
A
2
+
…
=
∑
k
=
0
∞
1
k
!
A
k
(19)
exp(A)=I+A+\frac{1}{2!}A^{2}+\ldots=\displaystyle\sum_{k=0}^{\infty}\frac{1}{k!}A^{k} \tag{19}
exp(A)=I+A+2!1A2+…=k=0∑∞k!1Ak(19)
对
s
o
(
3
)
\frak{so}(3)
so(3)中的任意元素
ϕ
\phi
ϕ,它的指数映射同样为
e
x
p
(
ϕ
∧
)
=
∑
k
=
0
∞
1
k
!
A
k
(20)
exp(\phi^{\land})=\displaystyle\sum_{k=0}^{\infty}\frac{1}{k!}A^{k} \tag{20}
exp(ϕ∧)=k=0∑∞k!1Ak(20)
由于
ϕ
\phi
ϕ是一个三维向量,定义它的模长为
θ
\theta
θ,方向为向量
a
\bold{a}
a,于是有
ϕ
=
θ
a
\phi=\theta \bold{a}
ϕ=θa,这里的方向向量
a
\bold{a}
a为长度为1的单位向量。然后,对于
a
∧
\bold{a}^{\land}
a∧,有以下两条性质,
a
∧
a
∧
=
a
a
T
−
I
a
∧
a
∧
a
∧
=
−
a
∧
(21)
\bold{a}^{\land} \bold{a}^{\land}=\bold{a} \bold{a}^{T}-I \\ \bold{a}^{\land} \bold{a}^{\land} \bold{a}^{\land} = -\bold{a}^{\land} \tag{21}
a∧a∧=aaT−Ia∧a∧a∧=−a∧(21)
再结合式(20),有
e
x
p
(
ϕ
∧
)
=
e
x
p
(
θ
a
∧
)
=
∑
k
=
0
∞
1
k
!
(
θ
a
∧
)
k
=
I
+
θ
a
∧
+
1
2
!
θ
2
a
∧
a
∧
+
1
3
!
θ
3
a
∧
a
∧
a
∧
+
1
4
!
θ
4
(
a
∧
)
4
+
…
=
a
a
T
−
a
∧
a
∧
+
θ
a
∧
+
1
2
!
θ
2
a
∧
a
∧
−
1
3
!
θ
3
a
∧
−
1
4
!
θ
4
(
a
∧
)
2
+
…
=
a
a
T
+
(
θ
−
1
3
!
θ
3
+
1
5
!
θ
5
−
…
)
a
∧
−
(
1
−
1
2
!
θ
2
+
1
4
!
θ
4
−
…
)
a
∧
a
∧
=
a
∧
a
∧
+
I
+
sin
θ
a
∧
−
cos
θ
a
∧
a
∧
=
(
1
−
cos
θ
)
a
∧
a
∧
+
I
+
sin
θ
a
∧
=
cos
θ
I
+
(
1
−
cos
θ
)
a
a
T
+
sin
θ
a
∧
最终,得到下面这个公式
e
x
p
(
ϕ
∧
)
=
e
x
p
(
θ
a
∧
)
=
cos
θ
I
+
(
1
−
cos
θ
)
a
a
T
+
sin
θ
a
∧
(22)
exp(\phi^{\land})=exp(\theta \bold{a}^{\land})=\cos \theta I + (1-\cos \theta)\bold{a}\bold{a}^{T}+\sin \theta \bold{a}^{\land} \tag{22}
exp(ϕ∧)=exp(θa∧)=cosθI+(1−cosθ)aaT+sinθa∧(22)
再看下罗德里格斯公式
R
=
cos
θ
I
+
(
1
−
cos
θ
)
n
n
T
+
sin
θ
n
∧
R=\cos\theta I+(1-\cos\theta)\bold{n}\bold{n}^{T}+\sin \theta \bold{n}^{\land}
R=cosθI+(1−cosθ)nnT+sinθn∧
两者一致,由此可知,李代数
s
o
(
3
)
\frak{so}(3)
so(3)就是由旋转向量组成的空间,而指数映射即罗德里格斯公式。通过此公式,可以把
s
o
(
3
)
\frak{so}(3)
so(3)中的任一向量对应到
S
O
(
3
)
SO(3)
SO(3)中的旋转矩阵。反之,也可以通过对数映射将
S
O
(
3
)
SO(3)
SO(3)中的旋转矩阵对应到相应的
s
o
(
3
)
\frak{so}(3)
so(3)中的一个向量
ϕ
=
ln
(
R
∨
)
=
[
∑
n
=
0
∞
(
−
1
)
n
n
+
1
(
R
−
I
)
n
+
1
]
∨
\phi=\ln(R^{\lor})=[\displaystyle\sum_{n=0}^{\infty}\frac{(-1)^{n}}{n+1}(R-I)^{n+1}]^{\lor}
ϕ=ln(R∨)=[n=0∑∞n+1(−1)n(R−I)n+1]∨
不过,按照泰勒展开去计算对数映射,计算量太大了,也很麻烦,一般都是用下面的方式进行计算
{
θ
=
arccos
t
r
(
R
)
−
1
2
R
n
=
n
(23)
式中,
t
r
(
R
)
tr(R)
tr(R)为旋转矩阵
R
R
R的迹,
n
n
n为旋转矩阵
R
R
R特征值为1对应的特征向量,就是求解式(23)下面的公式,再归一化。
s
e
(
3
)
\frak{se}(3)
se(3)上的指数映射,形式如下,
e
x
p
(
ξ
∧
)
=
[
∑
n
=
0
∞
1
n
!
(
ϕ
∧
)
n
∑
n
=
0
∞
1
(
n
+
1
)
!
(
ϕ
∧
)
n
ρ
0
T
1
]
=
[
R
J
ρ
0
T
1
]
=
T
(24)
exp(\xi^{\land})=
从上式中可以看出,
ξ
=
[
ρ
,
ϕ
]
T
\xi=[ \rho,\phi ] ^{T}
ξ=[ρ,ϕ]T的指数映射左上角的
R
R
R就是
S
O
(
3
)
SO(3)
SO(3)中的元素,与
s
e
(
3
)
\frak{se}(3)
se(3)当中旋转部分
ϕ
\phi
ϕ对应;
右上角的
J
J
J可以整理为
J
=
sin
θ
θ
I
+
(
1
−
sin
θ
θ
)
a
a
T
+
1
−
cos
θ
θ
a
∧
(25)
J=\frac{\sin\theta}{\theta}I+(1-\frac{\sin\theta}{\theta})\bold{a}\bold{a}^{T}+\frac{1-\cos\theta}{\theta}\bold{a}^{\land} \tag{25}
J=θsinθI+(1−θsinθ)aaT+θ1−cosθa∧(25)
其中,
ϕ
=
θ
a
\phi=\theta \bold{a}
ϕ=θa;
ρ
\rho
ρ是平移部分,这里再次提醒下,与变换矩阵
T
T
T中的平移向量
t
t
t不同,
ρ
\rho
ρ与
t
t
t之间的关系为
t
=
J
ρ
(26)
t=J\rho \tag{26}
t=Jρ(26)
好了,到此为止,可知
这里是我的理解,李群和李代数之间的互相转换,第一步就需要找到旋转轴和旋转角度,可以通过旋转矩阵得到,有了这两个量之后,在进行其他相关量的计算就可以了。
引入李群李代数的主要目的就是为了进行优化,在进行优化过程中,不可避免的就要进行求导。
上文说了李群
S
O
(
3
)
SO(3)
SO(3)的指数映射,和
S
E
(
3
)
SE(3)
SE(3)的对数映射,如果在
s
o
(
3
)
\frak{so}(3)
so(3)上做加法运算时,正好对应
S
O
(
3
)
SO(3)
SO(3)上的两个矩阵的乘积,
exp
(
ϕ
1
∧
)
exp
(
ϕ
2
∧
)
=
exp
(
(
ϕ
1
+
ϕ
2
)
∧
)
(27)
\exp(\phi^{\land}_{1})\exp(\phi^{\land}_{2})=\exp((\phi_{1}+\phi_{2}) ^{\land}) \tag{27}
exp(ϕ1∧)exp(ϕ2∧)=exp((ϕ1+ϕ2)∧)(27)
不难发现,如果是标量,式(27)一定成立,但是现在计算的是矩阵,上式不应适用于矩阵的情形。
两个李代数指数映射乘积的完整形式,由Baker-Campbell-Hausdorff公式给出,简称BCH公式,由于其完成行驶很复杂,只给出其展开式的前几项,
ln
(
exp
(
A
)
exp
(
B
)
)
=
A
+
B
+
1
2
[
A
,
B
]
+
1
12
[
A
,
[
A
,
B
]
]
−
1
12
[
B
,
[
A
,
B
]
]
+
…
(28)
\ln (\exp(A)\exp(B))=A+B+\frac{1}{2}[A,B]+\frac{1}{12}[A,[A,B]]-\frac{1}{12}[B,[A,B]]+\ldots \tag{28}
ln(exp(A)exp(B))=A+B+21[A,B]+121[A,[A,B]]−121[B,[A,B]]+…(28)
其中, [ ] [] []为李括号。不难看出,当处理两个矩阵指数之积时,会产生一些由李括号组成的余项。
考虑
S
O
(
3
)
SO(3)
SO(3)上的李代数
ln
(
exp
(
ϕ
1
∧
)
exp
(
ϕ
2
∧
)
)
∨
\ln (\exp(\phi^{\land}_{1})\exp(\phi^{\land}_{2}))^{\lor}
ln(exp(ϕ1∧)exp(ϕ2∧))∨,当
ϕ
1
\phi_{1}
ϕ1或
ϕ
2
\phi_{2}
ϕ2为小量时,小量二次以上的项可以忽略掉,BCH线性近似可以表达为
ln
(
exp
(
ϕ
1
∧
)
exp
(
ϕ
2
∧
)
)
∨
≈
{
J
l
(
ϕ
2
)
−
1
(
ϕ
1
)
+
ϕ
2
当
ϕ
1
为
小
量
时
J
r
(
ϕ
1
)
−
1
(
ϕ
2
)
+
ϕ
1
当
ϕ
2
为
小
量
时
(29)
\ln (\exp(\phi^{\land}_{1})\exp(\phi^{\land}_{2}))^{\lor} \approx
从上式(29)可以看出,当对一个旋转矩阵 R 2 R_{2} R2(李代数为 ϕ 2 \phi_{2} ϕ2)左乘一个微小的旋转矩阵 R 1 R_{1} R1(李代数为 ϕ 1 \phi_{1} ϕ1)时,可以近似等于,在原有李代数 ϕ 2 \phi_{2} ϕ2的基础上加了一项 J l ( ϕ 2 ) − 1 ( ϕ 1 ) J_{l}(\phi_{2})^{-1}(\phi_{1}) Jl(ϕ2)−1(ϕ1);同理,当对一个旋转矩阵 R 1 R_{1} R1(李代数为 ϕ 1 \phi_{1} ϕ1)右乘一个微小的旋转矩阵 R 2 R_{2} R2(李代数为 ϕ 2 \phi_{2} ϕ2)时,可以近似等于,在原有李代数 ϕ 1 \phi_{1} ϕ1的基础上加了一项 J l ( ϕ 1 ) − 1 ( ϕ 2 ) J_{l}(\phi_{1})^{-1}(\phi_{2}) Jl(ϕ1)−1(ϕ2)。实际使用时,需要注意使用的是左乘模型还是右乘模型。
上式中,左乘BCH近似雅克比
J
l
J_{l}
Jl为
J
l
=
J
=
sin
θ
θ
I
+
(
1
−
sin
θ
θ
)
a
a
T
+
1
−
cos
θ
θ
a
∧
(30)
J_{l}=J=\frac{\sin\theta}{\theta}I+(1-\frac{\sin\theta}{\theta})\bold{a}\bold{a}^{T}+\frac{1-\cos\theta}{\theta}\bold{a}^{\land} \tag{30}
Jl=J=θsinθI+(1−θsinθ)aaT+θ1−cosθa∧(30)
其逆为
J
l
−
1
=
θ
2
cot
θ
2
I
+
(
1
−
θ
2
cot
θ
2
)
−
θ
2
a
∧
(31)
J_{l}^{-1}=\frac{\theta}{2}\cot\frac{\theta}{2} I+(1-\frac{\theta}{2}\cot\frac{\theta}{2})-\frac{\theta}{2}\bold{a}^{\land} \tag{31}
Jl−1=2θcot2θI+(1−2θcot2θ)−2θa∧(31)
而右乘雅克比仅需要对自变量取负号即可,
J
r
(
ϕ
)
=
J
l
(
−
ϕ
)
(32)
J_{r}(\phi)=J_{l}(-\phi) \tag{32}
Jr(ϕ)=Jl(−ϕ)(32)
为了便于理解,这里总结一下,如果现有一个旋转矩阵
R
R
R(对应李代数为
ϕ
\phi
ϕ),然后再加上一个微小旋转
Δ
R
\Delta R
ΔR(对应的李代数为
Δ
ϕ
\Delta \phi
Δϕ)。在李群上得到的
Δ
R
⋅
R
\Delta R \cdot R
ΔR⋅R,在李代数上,根据BCH近似有
J
l
−
1
(
ϕ
)
Δ
ϕ
+
ϕ
J_{l}^{-1}(\phi)\Delta \phi + \phi
Jl−1(ϕ)Δϕ+ϕ,写成公式则为,
exp
(
Δ
ϕ
∧
)
exp
(
ϕ
∧
)
=
exp
(
(
ϕ
+
J
l
−
1
(
ϕ
)
Δ
ϕ
)
∧
)
(33)
\exp(\Delta \phi ^{\land}) \exp(\phi ^{\land}) = \exp((\phi+J_{l}^{-1}(\phi)\Delta \phi)^{\land}) \tag{33}
exp(Δϕ∧)exp(ϕ∧)=exp((ϕ+Jl−1(ϕ)Δϕ)∧)(33)
反之,在李代数上进行加法运算,让
ϕ
\phi
ϕ加上
Δ
ϕ
\Delta \phi
Δϕ,则可以近似为李群上带左右雅克比的乘法
exp
(
(
ϕ
+
Δ
ϕ
)
∧
)
=
exp
(
(
J
l
Δ
ϕ
)
∧
)
exp
(
ϕ
∧
)
=
exp
(
ϕ
∧
)
exp
(
(
J
r
Δ
ϕ
)
∧
)
(34)
\exp((\phi+\Delta \phi)^{\land})=\exp((J_{l}\Delta \phi)^{\land})\exp(\phi^{\land})=\exp(\phi^{\land})\exp((J_{r}\Delta \phi)^{\land}) \tag{34}
exp((ϕ+Δϕ)∧)=exp((JlΔϕ)∧)exp(ϕ∧)=exp(ϕ∧)exp((JrΔϕ)∧)(34)
这是后面李代数做微积分的理论基础。
至于
S
E
(
3
)
SE(3)
SE(3),也有类似的BCH近似公式:
exp
(
Δ
ξ
∧
)
exp
(
ξ
∧
)
≈
exp
(
(
J
l
∧
Δ
ξ
+
ξ
)
∧
)
exp
(
ξ
∧
)
exp
(
Δ
ξ
∧
)
≈
exp
(
(
J
r
∧
Δ
ξ
+
ξ
)
∧
)
(35)
\exp(\Delta \xi ^{\land}) \exp(\xi ^{\land}) \approx \exp((\mathcal{J}_{l}^{\land}\Delta \xi+\xi)^{\land}) \\ \exp(\xi ^{\land}) \exp(\Delta \xi ^{\land}) \approx \exp((\mathcal{J}_{r}^{\land}\Delta \xi+\xi)^{\land}) \tag{35}
exp(Δξ∧)exp(ξ∧)≈exp((Jl∧Δξ+ξ)∧)exp(ξ∧)exp(Δξ∧)≈exp((Jr∧Δξ+ξ)∧)(35)
这里的 J l \mathcal{J}_{l} Jl和 J r \mathcal{J}_{r} Jr为一个 6 × 6 6\times 6 6×6矩阵,这里就不详细描述了。