李群、流形、李代数
参考;
为什么引入李群流形 李代数 求导 微分 四元数
机器人学——李群、李代数快速入门
一、关系
二、manifold
偏向几何拓扑
流形空间:光滑的凸表面
一个普通的vector space空间的求导
lim
δ
x
→
0
f
(
x
+
δ
x
)
−
f
(
x
)
δ
x
{\lim_{\delta x \to 0} \frac{f(x+\delta x)-f(x)}{\delta x}}
δx→0limδxf(x+δx)−f(x)
但在manifold空间,常常
x
x
x–>线性空间(切空间)
f
(
x
)
f(x)
f(x)–>manifold空间
2.1 local
f
u
n
c
t
i
o
n
(
y
1
,
y
2
)
−
>
Δ
x
function(y_1,y_2)->\Delta x
function(y1,y2)−>Δx
为什么引入李群流形 李代数 求导 微分 四元数
local操作就包含了减法的概念:减去y1然后变换到切空间。
(算出在局部坐标系的相对距离)
2.2 retract
f u n c t i o n ( y 1 , Δ x ) − > y 2 function(y_1,\Delta x)->y_2 function(y1,Δx)−>y2
2.3 流行空间上的导数
lim Δ x → 0 L o c a l ( y 1 , R e t r a c t ( y 1 , Δ x ) ) Δ x {\lim_{\Delta x \to 0} \frac{Local(y_1,Retract(y_1,\Delta x))}{\Delta x}} Δx→0limΔxLocal(y1,Retract(y1,Δx))
三、Group
封闭
幺元
逆元
结合性
3.1 操作
compose运算操作
identity幺元
inverse逆元
Between(g,h)距离操作(抽象减法)—>g.inverse()*h
四、Lie Group
继承了manifold和group的接口
切点->切空间->局部坐标系
中间层:李代数空间
必须注意的是,李代数是
R
n
的向量
R^{n}的向量
Rn的向量
4.1 Lie Group的Retract和Local操作
4.1.1 manifold的Retract和Local
R
e
t
r
a
c
t
(
g
,
v
)
Retract(g,v)
Retract(g,v)
g
g
g is manifold space
h
h
h is manifold space
v
v
v is vector space(切空间)
注意:*是compose操作
R
e
t
r
a
c
t
Retract
Retract 是已知
y
1
和
Δ
x
求
y
2
y_1和\Delta x\space求y_2
y1和Δx 求y2
L
o
c
a
l
Local
Local 是已知
y
1
和
y
2
求
Δ
x
y_1和y_2求\Delta x
y1和y2求Δx
y
1
,
y
2
y_1,y_2
y1,y2—>manifold space
Δ
x
\Delta x
Δx—>切空间
所以
R
e
t
r
a
c
t
(
g
,
v
)
=
g
∗
e
x
p
(
v
∧
)
=
h
Retract(g,v)=g*exp(v^{\wedge})=h
Retract(g,v)=g∗exp(v∧)=h
L o c a l ( g , h ) = [ l o g ( B e t w e e n ( g , h ) ) ] ∨ = v Local(g,h)=[log(Between(g,h))]^{\vee}=v Local(g,h)=[log(Between(g,h))]∨=v
4.2 继承的group的compose、identity、inverse、between操作
4.2.1 compose
广义上的*
c
o
m
p
o
s
e
(
g
,
h
)
=
g
∗
h
compose(g,h)= g*h
compose(g,h)=g∗h
4.2.2 identity
i d e n t i t y ( g ) = I identity(g)=I identity(g)=I
4.2.3 inverse
i n v e r s e ( g ) = g − 1 , b e c a u s e g − 1 ∗ g = g ∗ g − 1 = I inverse(g)=g^{-1}\space\space, \space because \space g^{-1}*g=g*g^{-1}=I inverse(g)=g−1 , because g−1∗g=g∗g−1=I
4.2.4 between
b e t w e e n ( g , h ) = g . i n v e r s e ∗ h between(g,h)=g.inverse\space*\space h between(g,h)=g.inverse ∗ h
4.3 Logmap
TangentVector Logmap(LieGroup g)
{
}
T a n g e n t V e c t o r L o g m a p ( L i e G r o u p g ) r e t u r n [ l o g ( g ) ] ∨ TangentVector\space Logmap(LieGroup\space g) \\return\space [log(g)]^{\vee} TangentVector Logmap(LieGroup g)return [log(g)]∨
4.4 Expmap
LieGroup Expmap(TangentVector v)
{
}
L i e G r o u p E x p m a p ( T a n g e n t V e c t o r v ) r e t u r n e x p ( v ∧ ) LieGroup\space Expmap(TangentVector\space v) \\return\space exp(v^{\wedge}) LieGroup Expmap(TangentVector v)return exp(v∧)