1 李群与李代数的转换关系
本文主要对特殊正交矩阵SO(3) 和特殊欧式群SE(3) 以及其对应的李代数进行讨论。
1.1 已知条件
假设已知李群与李代数之间的指数映射关系:
SO(3)和so(3)
R
=
e
x
p
(
ϕ
∧
)
R = exp(\phi^{\wedge})
R=exp(ϕ∧)
其中
R
R
R为李群(3阶矩阵),在此处的物理意义可以表示为旋转矩阵;
ϕ
\phi
ϕ为李代数(3维向量),此处的物理意义可以表示为旋转向量。
SE(3)和se(3)
T
=
e
x
p
(
ξ
∧
)
其
中
ξ
=
[
ρ
,
ϕ
]
T
=
[
R
t
0
T
1
]
=
[
e
x
p
(
ϕ
∧
)
J
ρ
0
T
1
]
T = exp(\xi^{\wedge})其中\xi = [\rho,\phi]\\T = \begin{bmatrix} R&t\\ 0^T&1 \end{bmatrix}= \begin{bmatrix} exp(\phi ^{\wedge})& J\rho\\ 0^T&1 \end{bmatrix}
T=exp(ξ∧)其中ξ=[ρ,ϕ]T=[R0Tt1]=[exp(ϕ∧)0TJρ1]
其中,T为李群,在此处表示为变换矩阵(4阶矩阵);
ξ
\xi
ξ为李代数(6维向量),它由表示平移部分的
ρ
\rho
ρ(3维向量)和表示旋转的
ϕ
\phi
ϕ(3维向量)组成,
ϕ
\phi
ϕ可以分解为
θ
\theta
θ和
a
\bf{a}
a,其中
θ
\theta
θ为旋转角度,
a
\bf{a}
a为单位向量,表示旋转轴。同时,
R
和
T
R和T
R和T在李群上的关系如上所示,变换矩阵
T
T
T由旋转矩阵
R
R
R和平移向量
t
t
t组成。
1.2 李群对数映射到李代数
SO(3) ⇒ \Rightarrow ⇒so(3)
已知条件:
R
R
R
求解参数:
ϕ
\phi
ϕ(
θ
和
a
\theta和\bf{a}
θ和a)
R
⇓
θ
=
a
r
c
c
o
s
(
T
r
(
R
)
−
1
2
)
R
a
=
a
⇓
ϕ
=
θ
a
R\\ \Downarrow\\ \theta = arccos(\frac{Tr(R)-1}{2})\\ {R\bf{a} = \bf{a}} \\ \Downarrow\\ \phi = \theta \bf{a}
R⇓θ=arccos(2Tr(R)−1)Ra=a⇓ϕ=θa
SE(3) ⇒ \Rightarrow ⇒se(3)
已知条件:
T
(
R
和
t
)
T(R和t)
T(R和t)
求解参数:
ξ
(
ρ
和
ϕ
)
\xi(\rho和\phi)
ξ(ρ和ϕ)
R
,
t
⇓
θ
=
a
r
c
c
o
s
(
T
r
(
R
)
−
1
2
)
R
a
=
a
⇓
ϕ
=
θ
a
J
=
s
i
n
θ
θ
I
+
(
1
−
s
i
n
θ
θ
)
a
a
T
+
1
−
c
o
s
θ
θ
a
∧
ρ
=
J
−
1
t
R,t\\ \Downarrow \\ \theta = arccos(\frac{Tr(R)-1}{2})\\ {R\bf{a} = \bf{a}} \\ \Downarrow\\ {\phi = \theta \bf{a}}\\ {J = \frac{sin\theta}{\theta}I +(1-\frac{sin\theta}{\theta})\bf{a}\bf{a}^T+\frac{1-cos\theta}{\theta}{\bf{a}}^{\wedge}}\\ \rho = J^{-1}t
R,t⇓θ=arccos(2Tr(R)−1)Ra=a⇓ϕ=θaJ=θsinθI+(1−θsinθ)aaT+θ1−cosθa∧ρ=J−1t
1.3 李代数指数映射到李群
so(3) ⇒ \Rightarrow ⇒SO(3)
已知条件:
ϕ
\phi
ϕ(
θ
和
a
\theta和\bf{a}
θ和a)
求解参数:
R
R
R
ϕ
(
θ
和
a
)
⇓
R
=
e
x
p
(
ϕ
∧
)
=
e
x
p
(
θ
a
∧
)
=
c
o
s
θ
I
+
(
1
−
c
o
s
θ
)
a
a
T
+
s
i
n
θ
a
∧
{\phi(\theta和\bf{a})}\\ \Downarrow\\ R = exp(\phi^{\wedge})= exp(\theta \bf{a}^{\wedge})=cos\theta I+(1-cos\theta)\bf{a}\bf{a}^T+sin\theta \bf{a}^{\wedge}
ϕ(θ和a)⇓R=exp(ϕ∧)=exp(θa∧)=cosθI+(1−cosθ)aaT+sinθa∧
se(3) ⇒ \Rightarrow ⇒SE(3)
已知条件:
ξ
(
ρ
和
ϕ
)
\xi(\rho和\phi)
ξ(ρ和ϕ)
求解参数:
R
和
T
R和T
R和T
ϕ
(
θ
和
a
)
⇓
R
=
e
x
p
(
ϕ
∧
)
=
e
x
p
(
θ
a
∧
)
=
c
o
s
θ
I
+
(
1
−
c
o
s
θ
)
a
a
T
+
s
i
n
θ
a
∧
J
=
s
i
n
θ
θ
I
+
(
1
−
s
i
n
θ
θ
)
a
a
T
+
1
−
c
o
s
θ
θ
a
∧
t
=
J
ρ
⇓
T
=
=
[
R
t
0
T
1
]
{\phi(\theta和\bf{a})}\\ \Downarrow\\ {R = exp(\phi^{\wedge})= exp(\theta \bf{a}^{\wedge})=cos\theta I+(1-cos\theta)\bf{a}\bf{a}^T+sin\theta \bf{a}^{\wedge}}\\ {J = \frac{sin\theta}{\theta}I +(1-\frac{sin\theta}{\theta})\bf{a}\bf{a}^T+\frac{1-cos\theta}{\theta}{\bf{a}}^{\wedge}}\\ t = J\rho\\ \Downarrow\\ T== \begin{bmatrix} R&t\\ 0^T&1 \end{bmatrix}
ϕ(θ和a)⇓R=exp(ϕ∧)=exp(θa∧)=cosθI+(1−cosθ)aaT+sinθa∧J=θsinθI+(1−θsinθ)aaT+θ1−cosθa∧t=Jρ⇓T==[R0Tt1]
2 李群乘法与李代数加法的关系
由于旋转矩阵所在的李群,虽然定义了良好的乘法操作,但是没有加法的定义,因此很难对旋转矩阵取极限和求导。根据李群与李代数之间的指数和对数映射关系,能否将SO(3)上的乘法对应到so(3)上的加法。由于映射的元素为矩阵,假设:
R
1
=
e
x
p
(
ϕ
1
∧
)
R
2
=
e
x
p
(
ϕ
2
∧
)
R
1
R
2
≠
e
x
p
(
(
ϕ
1
+
ϕ
2
)
∧
)
R_1 = exp(\phi _1^{\wedge})\\R_2 = exp(\phi _2^{\wedge})\\ R_1 R_2 \neq exp((\phi _1 + \phi _2)^{\wedge})
R1=exp(ϕ1∧)R2=exp(ϕ2∧)R1R2=exp((ϕ1+ϕ2)∧)
但是根据BCH(Baker-Campbell-Hausdorff)公式可以推断出,李群乘法与李代数加法之间的关系:
假定对某个旋转
R
R
R,对应李代数为
ϕ
\phi
ϕ。此时在
R
R
R的基础上左乘一个微小的旋转
Δ
R
\Delta R
ΔR,对应在李代数上为:
Δ
ϕ
\Delta \phi
Δϕ。
在李群上,结果为
Δ
R
.
R
\Delta R .R
ΔR.R
在李代数上的结果为:
J
l
(
ϕ
)
Δ
ϕ
+
ϕ
J_l(\phi)\Delta\phi + \phi
Jl(ϕ)Δϕ+ϕ 而不是
Δ
ϕ
+
ϕ
\Delta\phi + \phi
Δϕ+ϕ
其中:
J
l
(
ϕ
)
=
J
l
(
θ
,
a
)
=
s
i
n
θ
θ
I
+
(
1
−
s
i
n
θ
θ
)
a
a
T
+
1
−
c
o
s
θ
θ
a
∧
{J_l(\phi) =J_l(\theta,\bf{a})= \frac{sin\theta}{\theta}I +(1-\frac{sin\theta}{\theta})\bf{a}\bf{a}^T+\frac{1-cos\theta}{\theta}{\bf{a}}^{\wedge}}
Jl(ϕ)=Jl(θ,a)=θsinθI+(1−θsinθ)aaT+θ1−cosθa∧
同理,若在李代数上进行加法操作的结果:
Δ
ϕ
+
ϕ
\Delta\phi + \phi
Δϕ+ϕ
则对应到李群上的操作的结果为:
e
x
p
(
(
J
l
Δ
ϕ
)
∧
)
.
e
x
p
(
ϕ
∧
)
exp((J_l \Delta\phi)^{\wedge}).exp(\phi^{\wedge})
exp((JlΔϕ)∧).exp(ϕ∧)或者
e
x
p
(
ϕ
∧
)
.
e
x
p
(
(
J
r
Δ
ϕ
)
∧
)
exp(\phi^{\wedge}).exp((J_r \Delta\phi)^{\wedge})
exp(ϕ∧).exp((JrΔϕ)∧)
其中
J
r
(
θ
)
=
J
l
(
−
θ
)
J_r(\theta) =J_l(-\theta)
Jr(θ)=Jl(−θ)
3 对旋转矩阵或者变换矩阵求导的物理意义
在视觉SLAM中,只要获得相机的位姿(位置和姿态),以及对应每个位姿时相机中场景的深度图,即可对场景进行拼接,完成场景的恢复即地图构建。因此如何准确获得相机在任意时刻的位姿,即定位 变得十分重要。
相机的位姿由**SO(3)上的旋转矩阵或SE(3)**上的变换矩阵描述,假设某个时刻相机的位姿为
T
T
T,通过观察现实世界中的点
p
p
p获得在图像上的观测数据
z
z
z。由坐标变换关系可知:
z
=
T
p
+
w
z = Tp+w
z=Tp+w
其中,
w
w
w为随机噪声。由于它的存在,使得
z
≠
T
p
z \neq Tp
z=Tp
假设理想的观测值与实际数据之间的误差为:
e
=
z
−
T
p
e = z-Tp
e=z−Tp
假设此刻
T
T
T对应的相机视图中,有
N
N
N个路标点和
N
N
N次观测,即得到
N
N
N个观测数据,因此就拥有了
N
N
N个误差值。
为了求得此刻相机最有位姿
T
T
T,使得整体误差最小化:
T
∗
=
a
r
g
m
i
n
T
J
(
T
)
=
a
r
g
m
i
n
T
(
∑
i
=
1
N
∣
∣
z
i
−
T
p
i
∣
∣
2
2
)
T^{*} = argmin_TJ(T) = argmin_T(\sum_{i=1}^N {||z_i-Tp_i||_2}^2)
T∗=argminTJ(T)=argminT(i=1∑N∣∣zi−Tpi∣∣22)
为了求解这个最小二乘问题,需要计算目标函数
J
J
J关于变换矩阵
T
T
T的导数。
由于李群 S O ( 3 ) 和 S E ( 3 ) SO(3)和SE(3) SO(3)和SE(3)是特殊的群,它们没有定义良好的加法操作,并且矩阵收到约束。如旋转矩阵 R R R必须是正交矩阵。而李代数作为向量,并且定义了良好的加法操作。因此,可以通过李代数解决求导问题,并且可以分为两种思路:
- 用李代数表示位姿,然后根据李代数加法对李代数求导;
- 对李群左乘或右乘微小扰动,然后对该扰动求导,称为左扰动模型或者右扰动模型。
证明过程略
结论: 相比于直接对李代数求导,利用扰动模型可以省去一个雅克比矩阵的计算,因此更加实用。
扰动模型计算结果
假设只考虑
S
O
(
3
)
SO(3)
SO(3)对原坐标点
p
p
p进行影响,原坐标点
p
p
p在旋转矩阵
R
R
R的作用下,得到旋转后的坐标点为
R
p
Rp
Rp。计算旋转后的点
R
p
Rp
Rp相对于旋转矩阵
R
R
R的导数。对
R
R
R进行一次扰动
Δ
R
\Delta R
ΔR,扰动对应的李代数为
φ
\varphi
φ,对
φ
\varphi
φ进行求导即等价与直接对旋转矩阵
R
R
R求导。
∂
(
R
p
)
∂
φ
=
l
i
m
Δ
R
→
0
Δ
R
.
R
p
−
R
p
Δ
R
=
l
i
m
φ
→
0
e
x
p
(
φ
∧
)
e
x
p
(
ϕ
∧
)
p
−
e
x
p
(
ϕ
∧
)
p
φ
=
−
(
R
p
)
∧
\frac{\partial(Rp)}{\partial \varphi} = lim_{\Delta R \to 0}\frac{\Delta R.Rp - Rp}{\Delta R}=\\lim_{\varphi \to 0}\frac{exp(\varphi^{\wedge})exp(\phi^{\wedge})p-{exp(\phi^{\wedge})p}}{\varphi}=-(Rp)^{\wedge}
∂φ∂(Rp)=limΔR→0ΔRΔR.Rp−Rp=limφ→0φexp(φ∧)exp(ϕ∧)p−exp(ϕ∧)p=−(Rp)∧
同理考虑
S
E
(
3
)
SE(3)
SE(3)对坐标点
p
p
p的影响,变换的坐标点
T
p
Tp
Tp对
T
T
T求导
可以根据扰动模型,求得导数为:
[
I
−
(
R
p
+
t
)
∧
0
T
0
T
]
\begin{bmatrix} I&-(Rp+t)^{\wedge}\\ 0^T&0^T \end{bmatrix}
[I0T−(Rp+t)∧0T]
该求导结果为:
4
×
6
4\times 6
4×6矩阵。