李群与李代数基础
我们先来说说,欧式变换类型在优化时的困难,欧式变换如下:
T
=
[
R
t
0
T
1
]
T=\left[\begin{matrix} R & t \\ 0^T & 1\end{matrix}\right]
T=[R0Tt1]
其中旋转矩阵
R
R
R虽然有9个数,但是各个数之间是有很强的约束的,对这种带有约束的数,优化是困难的,旋转矩阵的9个数,实际自由度只有3,因此我们需要对他进行转换。
- 李群
群其实局势满足以下公式的一种集合

R
(
t
)
T
=
I
R(t)R(t)^T=I
R(t)R(t)T=I
在等式两边对时间求导,得到
R
˙
(
t
)
R
(
t
)
T
+
R
(
t
)
R
˙
(
t
)
T
=
0
\dot{R} ( t ) R ( t ) ^T + R ( t ) \dot{R} ( t )^T=0
R˙(t)R(t)T+R(t)R˙(t)T=0
整理得:
R
˙
(
t
)
R
(
t
)
T
=
−
(
R
˙
(
t
)
R
(
t
)
T
)
T
\dot{R} ( t ) R ( t )^T =- (\dot{R} ( t ) R ( t )^T)^T
R˙(t)R(t)T=−(R˙(t)R(t)T)T
我们可以根据上面的公式的得出
R
˙
(
t
)
R
(
t
)
T
\dot{R} ( t ) R ( t )^T
R˙(t)R(t)T是个反对称矩阵。那么如果我们假设一个数据操作。
a
∧
=
A
=
[
0
−
a
3
a
2
a
3
0
−
a
1
−
a
2
a
1
0
]
a^{\wedge}=A=\left[\begin{matrix} 0 & -a_3 & a_2 \\ a_3&0&-a_1 \\-a_2& a_1 &0 \end{matrix} \right]
a∧=A=⎣⎡0a3−a2−a30a1a2−a10⎦⎤
A
∨
=
a
A^{\vee}=a
A∨=a
我们设
ϕ
=
[
ϕ
1
,
ϕ
2
,
ϕ
3
]
\phi=[\phi_1,\phi_2,\phi_3]
ϕ=[ϕ1,ϕ2,ϕ3],就有以下公式
R
˙
(
t
)
R
(
t
)
T
=
ϕ
(
t
)
∧
\dot{R} ( t ) R ( t )^T =\phi(t)^{\wedge}
R˙(t)R(t)T=ϕ(t)∧
R
˙
(
t
)
=
ϕ
(
t
)
∧
R
(
t
)
=
[
0
−
ϕ
3
ϕ
2
ϕ
3
0
−
ϕ
1
−
ϕ
2
ϕ
1
0
]
R
(
t
)
\dot{R}(t)=\phi(t)^{\wedge}R(t)= \left[\begin{matrix} 0&-\phi_3& \phi_2\\ \phi_3& 0& -\phi_1\\ -\phi_2& \phi_1 &0\end{matrix}\right] R(t)
R˙(t)=ϕ(t)∧R(t)=⎣⎡0ϕ3−ϕ2−ϕ30ϕ1ϕ2−ϕ10⎦⎤R(t)
如果我们设
R
(
0
)
=
I
R(0)=I
R(0)=I那么根据以上公式就有:
R
(
t
)
=
e
x
p
(
ϕ
0
∧
t
)
R(t)=exp(\phi_0^{\wedge} t)
R(t)=exp(ϕ0∧t)
这里的时间t其实代表的是某一时刻的位置,实际上我们往往对这个时间t并不关心,因此就有如下公式:
R
=
e
x
p
(
ϕ
∧
)
R=exp(\phi^{\wedge} )
R=exp(ϕ∧)
这里的
ϕ
\phi
ϕ 就是R的李代数,它的李括号运算如下:
[
ϕ
1
,
ϕ
2
]
=
(
ϕ
1
∧
ϕ
2
∧
−
ϕ
2
∧
ϕ
1
∧
)
∨
\left[ \phi_1,\phi_2\right]=(\phi_1^{\wedge}\phi_2^{\wedge}-\phi_2^{\wedge}\phi_1^{\wedge})^{\vee}
[ϕ1,ϕ2]=(ϕ1∧ϕ2∧−ϕ2∧ϕ1∧)∨
当然我们实际上不单单只有旋转矩阵,还有位置部分t,那么我们就有欧式变换T的李代数。
ξ
=
[
ρ
,
ϕ
]
\xi=\left[\rho,\phi\right]
ξ=[ρ,ϕ]
ξ
∧
=
[
ϕ
∧
ρ
0
T
0
]
\xi^{\wedge}=\left[\begin{matrix} \phi^{\wedge} &\rho \\ 0^T &0 \end{matrix} \right]
ξ∧=[ϕ∧0Tρ0]
[
ξ
1
,
ξ
2
]
=
(
ξ
1
∧
ξ
2
∧
−
ξ
2
∧
ξ
1
∧
)
∨
\left[ \xi_1,\xi_2\right]=(\xi_1^{\wedge}\xi_2^{\wedge}-\xi_2^{\wedge}\xi_1^{\wedge})^{\vee}
[ξ1,ξ2]=(ξ1∧ξ2∧−ξ2∧ξ1∧)∨
其中
ρ
代
表
李
代
数
的
平
移
部
分
,
而
ϕ
代
表
后
面
的
旋
转
部
分
\rho代表李代数的平移部分,而\phi代表后面的旋转部分
ρ代表李代数的平移部分,而ϕ代表后面的旋转部分
李群和李代数的相互转换
这边我们就不写推导部分了,旋转矩阵R,我们称之为SO(3),他的里代数,
ϕ
\phi
ϕ其实就是旋转矩阵,
ϕ
=
θ
a
\phi=\theta a
ϕ=θa这里的
θ
\theta
θ就是旋转向量,转角幅度,
a
a
a就是他们转轴的单位方向向量,他们就有如下公式:
R
=
e
x
p
(
θ
a
∧
=
c
o
s
θ
I
+
(
1
−
c
o
s
θ
)
a
a
T
+
s
i
n
θ
a
∧
R=exp(\theta a^{\wedge}=cos\theta I+(1-cos \theta)a a^T +sin \theta a^{\wedge}
R=exp(θa∧=cosθI+(1−cosθ)aaT+sinθa∧
反向推到公式:
θ
=
a
r
c
c
o
s
t
r
(
R
)
−
1
2
\theta=arccos \frac{tr(R)-1}{2}
θ=arccos2tr(R)−1
关于转轴,表示旋转轴上的向量旋转后不发生变化
R
n
=
n
Rn=n
Rn=n
那么,n就是R特征值为1的特征向量
以上是旋转部分,整个部分的T如下表示:
R已经知道怎么转换了吧,先在关键是J如何换算:
J
=
s
i
n
θ
θ
I
+
(
1
−
s
i
n
θ
θ
)
a
a
T
+
1
−
c
o
s
θ
θ
a
∧
J=\frac{sin\theta}{\theta} I +(1-\frac{sin \theta}{\theta}) a a^T +\frac{1-cos \theta}{\theta} a^{\wedge}
J=θsinθI+(1−θsinθ)aaT+θ1−cosθa∧
t
=
J
ρ
t=J\rho
t=Jρ