lie theory
机器人状态估计的微李理论
Abstract
介绍李理论的最基本原理,包含一些应用示例,提供了C++库。
1.Introduction
-
流形:李群的光滑拓扑表面,其中状态表示发生变化。
-
李群:
- 拓扑学:涉及到流形的形状,并传达了与切空间和指数映射的关系的强大直觉。
-
代数学:涉及到群操作及其具体实现,允许利用代数特性来发展封闭形式的公式或简化它们。
-
几何学:将群元素与物体或参考坐标系的位置、速度、方向和/或其他变化联系起来。
-
参考文献
- Basic Lie theory(Abbaspour)
- Very basic Lie theory(Howe)
- Naive Lie theory(Stiilwell)
-
开源库:https://github.com/artivis/manif
2.Micro lie theory
2.1 李群
一个李群 G \mathcal{G} G是一个光滑流形,其元素满足群公理:
- 封闭性: X ∘ Y ∈ G \mathcal{X \circ Y}\in\mathcal{G} X∘Y∈G
- 单位元: ε ∘ X = X ∘ ε = X \mathcal{\varepsilon \circ X} = \mathcal{X \circ \varepsilon} = \mathcal{X} ε∘X=X∘ε=X
- 逆元 : X − 1 ∘ X = X ∘ X − 1 = ε \mathcal{X^{-1} \circ X} = \mathcal{X \circ X^{-1}} = \mathcal{\varepsilon} X−1∘X=X∘X−1=ε
- 结合律: ( X ∘ Y ) ∘ Z = X ∘ ( Y ∘ Z ) \mathcal{(X \circ Y)\circ Z} = \mathcal{X \circ (Y\circ Z)} (X∘Y)∘Z=X∘(Y∘Z)
群 ( G , ∘ ) \mathcal{(G,\circ)} (G,∘)是一个集合, ∘ \circ ∘为组合运算。
李群的李代数:单位元处的切空间称之为李群的李代数。
Exs.1 单位复数群 S 1 S^1 S1
复数乘法下的单位复数群 z = c o s θ + i s i n θ \mathrm{z=cos\theta}+\mathcal{i}\mathrm{sin\theta} z=cosθ+isinθ
上图 T 1 S 1 T_1S^1 T1S1为李代数, T x S 1 T_xS^1 TxS1为任意切空间,群元素 z \mathrm{z} z的作用就是把 x \mathrm{x} x在平面内旋转 θ \theta θ。
Exs.2 单位四元数群 S 3 S^3 S3
四元数乘法下的单位四元数群 q = c o s ( θ / 2 ) + u s i n ( θ / 2 ) \mathrm{q=cos(\theta/2)}+\mathcal{u}\mathrm{sin(\theta/2)} q=cos(θ/2)+usin(θ/2)
向量 x = i x + j y + k z \mathrm{x} = ix+ jy+kz x=ix+jy+kz通过双四元数乘积 x ′ = q x q ∗ \mathrm{x^{\prime}=qxq^{*}} x′=qxq∗绕 u u u旋转 θ \theta θ,其中 u u u是单位旋转轴。图中右侧两图过圆心垂直纸面向上的方向即为 u u u的方向。
中间图说的是从单位元旋转到 q \mathrm{q} q,右边是从 p \mathrm{p} p开始。
至于为什么四元数旋转格式为双四元数乘积,参见b站视频:【较难慎入】证明四元数三维旋转公式_哔哩哔哩_bilibili
2.2 群作用
李群具有将其他集合的元素进行变换的能力,可以产生旋转、平移、缩放、组合。
定义:给定李群
M
\mathcal{M}
M和集合
V
\mathcal{V}
V,用
X
⋅
v
\mathcal{X \cdot v}
X⋅v表示
X
∈
M
\mathcal{X \in M}
X∈M在
v
∈
V
\mathcal{v \in V}
v∈V上的作用,记作
⋅
:
M
×
V
→
V
;
(
X
,
v
)
↦
X
⋅
v
\cdot :\mathcal{M \times V \to V};\mathcal{(X,v) \mapsto X \cdot v}
⋅:M×V→V;(X,v)↦X⋅v
这里的点乘可以理解为一种表示方式,例如,一个旋转矩阵群,
S
O
(
n
)
SO(n)
SO(n);
x
x
x为三维空间向量;其中
R
R
R数于群
S
O
(
n
)
SO(n)
SO(n),
R
⋅
x
R·x
R⋅x的意思就是
R
x
Rx
Rx,用旋转矩阵
R
R
R左乘
x
x
x,将其旋转为另一个姿态,即被称作群元素
R
R
R对
x
x
x的作用。
S
O
(
n
)
:
旋转矩阵
R
⋅
x
≜
R
x
S
E
(
n
)
:
欧几里得矩阵
H
⋅
x
≜
R
x
+
t
SO(n):旋转矩阵 \qquad R \cdot \mathrm{x} \triangleq R \mathrm{x} \\ SE(n):欧几里得矩阵 \qquad H \cdot \mathrm{x} \triangleq R \mathrm{x} +t
SO(n):旋转矩阵R⋅x≜RxSE(n):欧几里得矩阵H⋅x≜Rx+t
2.3 切空间和李代数
举例说明 X ( t ) \mathcal{X(t)} X(t)是流形 M \mathcal{M} M上的移动点,其速度 X ˙ = ∂ X ∂ t \mathcal{\dot X} = \frac {\partial{X}} {\partial{t}} X˙=∂t∂X属于在点 X \mathcal{X} X处切于 M \mathcal{M} M的空间,表示为 T X M T_\mathcal{X}\mathcal{M} TXM。
流形上每一个点的切空间都是唯一的,且是同构的。
-
李代数 m \mathfrak{m} m:单位元处的切空间, T X M T_\mathcal{X}\mathcal{M} TXM,即 M \mathcal{M} M的李代数
m ≜ T X M \mathfrak{m} \triangleq T_\mathcal{X}\mathcal{M} m≜TXM- 李代数 m \mathfrak{m} m是一个向量空间。
- 指数映射, e x p : m → M \mathrm{exp} : \mathfrak{m} \to \mathcal{M} exp:m→M,将李代数的元素转化为群的元素。
- 伴随变换,将 X \mathcal{X} X处的切空间中的向量线性变换转化为单位元 ε \varepsilon ε处的切空间的向量。
上图中点 z \mathrm{z} z以恒定角速率运动, z ( t ) = c o s ω t + i s i n ω t \mathbf{z}(t)=\mathrm{cos}\omega t +i\mathrm{sin}\omega t z(t)=cosωt+isinωt。
绿线处的切向量(速度) z ˙ = i ω \mathbf{\dot z}=i\omega z˙=iω,李代数 1 v ∧ = i ω ^{1}\mathbf{v^{\land}}=i\omega 1v∧=iω,上式对 ω \omega ω求导,取 t = 0 t=0 t=0。
红线处的切向量(速度) z ˙ = − ω s i n ω t + i ω c o s ω t = z ⋅ i ω \mathbf{\dot z}=-\omega\mathrm{sin}\omega t+i\omega\mathrm{cos}\omega t = \mathbf{z} \cdot i\omega z˙=−ωsinωt+iωcosωt=z⋅iω,李代数 z v ∧ = i ω ^{\mathbf{z}}\mathbf{v^{\land}}=i\omega zv∧=iω,同样是求导得到。
注意到 z v ∧ = z − 1 z ˙ = z ∗ z ˙ ^{\mathbf{z}}\mathbf{v^{\land}}=\mathbf{z}^{-1} \dot {\mathbf{z}}=\mathbf{z}^{*} \dot{\mathbf{z}} zv∧=z−1z˙=z∗z˙,其中 z ∗ = c o s ω t − i s i n ω t \mathbf{z}^{*}=\mathrm{cos}\omega t -i\mathrm{sin}\omega t z∗=cosωt−isinωt , z − 1 = c o s ( − ω t ) + i s i n ( − ω t ) = c o s ω t − i s i n ω t \mathbf{z}^{-1}=\mathrm{cos}(-\omega t) +i\mathrm{sin}(-\omega t)=\mathrm{cos}\omega t -i\mathrm{sin}\omega t z−1=cos(−ωt)+isin(−ωt)=cosωt−isinωt 。
李代数的元素形式 对于一个乘法群
X
−
1
X
=
ε
\mathcal{X}^{-1}\mathcal{X}=\varepsilon
X−1X=ε,有约束
X
−
1
X
˙
+
X
˙
−
1
X
=
0
\mathcal{X}^{-1}\mathcal{\dot X}+\mathcal{\dot X}^{-1}\mathcal{X}=0
X−1X˙+X˙−1X=0,适用于在
X
\mathcal{X}
X处的切向量,因此,李代数的元素形式为
v
∧
=
X
−
1
X
˙
=
−
X
˙
−
1
X
\mathbf{v}^{\land}=\mathcal{ X}^{-1}\mathcal{\dot X}=-\mathcal{\dot X}^{-1}\mathcal{X}
v∧=X−1X˙=−X˙−1X
-
笛卡尔空间向量 R m \mathbb{R}^{m} Rm
李代数的元素可以表示为基元素 E i \mathbf{E}_i Ei的线性组合,互逆线性映射 h a t hat hat和 v e e vee vee实现了 m \mathfrak{m} m和 R m \mathbf{R}^{m} Rm之间的转换,
H a t : R m → m ; τ ↦ τ ∧ = ∑ i = 1 m τ i E i V e e : m → R m ; τ ∧ ↦ ( τ ∧ ) ∨ = ∑ i = 1 m τ i e i \mathbf{Hat}:\mathbf{R}^{m} \to \mathfrak{m}; \quad \tau \mapsto \tau^{\land}=\sum_{i=1}^m\tau_iE_i \\ \mathbf{Vee}:\mathfrak{m} \to \mathbf{R}^{m}; \quad \tau^{\land} \mapsto (\tau^{\land})^{\lor}=\sum_{i=1}^m\tau_i\mathbf{e}_i \\ Hat:Rm→m;τ↦τ∧=i=1∑mτiEiVee:m→Rm;τ∧↦(τ∧)∨=i=1∑mτiei
本文倾向于使用 R m \mathbb{R}^{m} Rm。
Exs.3 旋转群 S O ( 3 ) SO(3) SO(3)、其李代数 s o ( 3 ) \mathfrak{so}(3) so(3)和向量空间 R 3 \mathbb{R}^{3} R3
旋转矩阵
R
\mathbf{R}
R有约束(正交条件):
R
T
R
=
I
\mathbf{R}^{\mathrm{T}}\mathbf{R}=\mathbf{I}
RTR=I,求时间导数可得切空间,
R
T
R
˙
+
R
˙
T
R
=
0
R
T
R
˙
=
−
(
R
T
R
˙
)
T
\mathbf{R}^{\mathrm{T}}\mathbf{\dot R}+\mathbf{\dot R}^{\mathrm{T}}\mathbf{R}=0 \\ \mathbf{R}^{\mathrm{T}}\mathbf{\dot R}=-(\mathbf{R}^{\mathrm{T}}\mathbf{\dot R})^{\mathrm{T}}
RTR˙+R˙TR=0RTR˙=−(RTR˙)T
上面说明
R
T
R
˙
\mathbf{R}^{\mathrm{T}}\mathbf{\dot R}
RTR˙是斜对称矩阵,记作
[
ω
]
×
[\omega]_{\times}
[ω]×
[
ω
]
×
=
[
0
−
ω
z
ω
y
ω
z
0
−
ω
x
−
ω
y
ω
x
0
]
=
R
T
R
˙
[\omega]_{\times}=\begin{bmatrix} 0 & -\omega_z & \omega_y \\ \omega_z & 0 & -\omega_x \\ -\omega_y & \omega_x & 0 \end{bmatrix}=\mathbf{R}^{\mathrm{T}}\mathbf{\dot R}
[ω]×=
0ωz−ωy−ωz0ωxωy−ωx0
=RTR˙
当
R
=
I
\mathbf{R}=\mathbf{I}
R=I时,
R
˙
=
[
ω
]
×
\mathbf{\dot R}=[\omega]_{\times}
R˙=[ω]×,说明
[
ω
]
×
[\omega]_{\times}
[ω]×就是该旋转矩阵群的李代数,其自由度数为3。
李代数的元素可以用基元素 E i \mathbf{E}_i Ei(也叫生成元)的线性组合来表示,映射为向量空间的基元素 e i \mathbf{e}_i ei,李代数和向量空间 R m \mathbf{R}^{m} Rm同构,两基元的转换由 H a t \mathrm{Hat} Hat和 V e e \mathrm{Vee} Vee操作完成
Exs.5 单位四元数群 S 3 S^{3} S3
回顾例2,单位范数约束下,
q
∗
q
˙
=
1
\mathbf{q}^{*}\mathbf{\dot q}=1
q∗q˙=1,对时间求导,
q
∗
q
˙
=
−
(
q
∗
q
˙
)
∗
\mathbf{q}^{*}\mathbf{\dot q}=-(\mathbf{q}^{*}\mathbf{\dot q})^{*}
q∗q˙=−(q∗q˙)∗
q
∗
q
˙
\mathbf{q}^{*}\mathbf{\dot q}
q∗q˙是纯四元数(实部为零),纯四元数取共轭求负之后还是自身。
用
u
v
\mathbf{u}v
uv来表示一个纯四元数,展开如下
u
v
=
(
i
u
x
+
j
u
y
+
k
u
z
)
v
=
i
v
x
+
j
v
y
+
k
v
z
\mathbf{u}v=(iu_x+ju_y+ku_z)v=iv_x+jv_y+kv_z
uv=(iux+juy+kuz)v=ivx+jvy+kvz
其中
u
\mathbf{u}
u是单位纯四元数,
v
v
v是范数,相当于对
u
\mathbf{u}
u长度拉伸得到一个纯四元数,将其带入上面的式子
q
˙
=
q
u
v
∈
T
q
S
3
\mathbf{\dot q}=\mathbf{qu}v \in T_qS^{3}
q˙=quv∈TqS3
积分得到
q
=
q
0
e
x
p
(
u
v
t
)
\mathbf{q}=\mathbf{q}_0\mathrm{exp}(\mathbf{u}vt)
q=q0exp(uvt)
令
q
0
=
1
\mathbf{q}_0=1
q0=1,定义
ϕ
≜
u
ϕ
≜
u
v
t
\boldsymbol{\phi} \triangleq \mathbf{u}\phi \triangleq \mathbf{u}vt
ϕ≜uϕ≜uvt,由于
u
\mathbf{u}
u的幂有规律
1
,
u
,
−
1
,
−
u
,
1
,
.
.
.
1,\mathbf{u},-1,-\mathbf{u},1,...
1,u,−1,−u,1,...,有
q
=
e
x
p
(
u
ϕ
)
≜
∑
ϕ
k
k
!
u
k
q
=
e
x
p
(
u
ϕ
)
=
c
o
s
(
ϕ
)
+
u
s
i
n
(
ϕ
)
\mathbf{q}=\mathrm{exp}(\mathbf{u}\phi) \triangleq \sum {\frac{\phi^{k}} {k!}\mathbf{u}^{k}} \\ \mathbf{q}=\mathrm{exp}(\mathbf{u}\phi)=\mathrm{cos}(\phi)+\mathbf{u}\mathrm{sin}(\phi)
q=exp(uϕ)≜∑k!ϕkukq=exp(uϕ)=cos(ϕ)+usin(ϕ)
李代数元素
Φ
∈
s
3
\Phi \in \mathfrak{s}^{3}
Φ∈s3,可以通过
h
a
t
hat
hat和
v
e
e
vee
vee映射到
θ
∈
R
3
\boldsymbol{\theta} \in \mathbb{R}^{3}
θ∈R3
H
a
t
:
R
3
→
s
3
θ
↦
θ
∧
=
θ
/
2
V
e
e
:
s
3
→
R
3
ϕ
↦
ϕ
∨
=
2
ϕ
\mathbf{Hat}: \mathbb{R}^{3} \to \mathfrak{s}^{3} \quad \boldsymbol{\theta} \mapsto \boldsymbol{\theta}^{\land}=\boldsymbol{\theta}/2 \\ \mathbf{Vee}: \mathfrak{s}^{3} \to \mathbb{R}^{3} \quad \boldsymbol{\phi} \mapsto \boldsymbol{\phi}^{\lor}=2\boldsymbol{\phi}
Hat:R3→s3θ↦θ∧=θ/2Vee:s3→R3ϕ↦ϕ∨=2ϕ
2是为了计算旋转向量的因子,式中
θ
≜
u
θ
≜
w
t
\boldsymbol{\theta} \triangleq \mathbf{u}\theta \triangleq \boldsymbol{w}t
θ≜uθ≜wt是角-轴向量,根据
h
a
t
hat
hat和
v
e
e
vee
vee,四元数的指数形式为
q
=
E
x
p
(
u
θ
)
=
c
o
s
(
θ
/
2
)
+
u
s
i
n
(
θ
/
2
)
\mathbf{q}=\mathrm{Exp}(\mathbf{u}\theta)=\mathrm{cos}(\theta/2)+\mathbf{u}\mathrm{sin}(\theta/2)
q=Exp(uθ)=cos(θ/2)+usin(θ/2)
上式对应于例2,其指数形式同样可以参考b站视频。
2.4 指数映射
指数映射是将李代数精确的转化为群中的元素,其逆映射为
l
o
g
(
)
\mathrm{log}()
log(),指数映射及其逆映射分为小写 和大写两种,一般将小写的直接称为指数映射
e
x
p
:
m
→
M
;
τ
∧
↦
X
=
e
x
p
(
τ
∧
)
l
o
g
:
M
→
m
;
X
↦
τ
∧
=
l
o
g
(
X
)
E
x
p
:
R
m
→
M
;
τ
↦
X
=
E
x
p
(
τ
)
L
o
g
:
M
→
R
m
;
X
↦
τ
=
E
x
p
(
X
)
\mathrm{exp}: \mathfrak{m} \to \mathcal{M}; \quad \boldsymbol{\tau}^{\land} \mapsto \mathcal{X}=\mathrm{exp}(\boldsymbol{\tau}^{\land}) \\ \mathrm{log}: \mathcal{M} \to \mathfrak{m}; \quad \mathcal{X} \mapsto \boldsymbol{\tau}^{\land}=\mathrm{log}(\mathcal{X}) \\ \\ \mathrm{Exp}: \mathbb{R}^{m} \to \mathcal{M}; \quad \boldsymbol{\tau} \mapsto \mathcal{X}=\mathrm{Exp}(\boldsymbol{\tau}) \\ \mathrm{Log}: \mathcal{M} \to \mathbb{R}^{m}; \quad \mathcal{X} \mapsto \boldsymbol{\tau}=\mathrm{Exp}(\mathcal{X})
exp:m→M;τ∧↦X=exp(τ∧)log:M→m;X↦τ∧=log(X)Exp:Rm→M;τ↦X=Exp(τ)Log:M→Rm;X↦τ=Exp(X)
指数映射的关键性质
e
x
p
(
(
t
+
s
)
τ
∧
)
=
e
x
p
(
t
τ
∧
)
e
x
p
(
s
τ
∧
)
e
x
p
(
t
τ
∧
)
=
e
x
p
(
τ
∧
)
t
e
x
p
(
−
τ
∧
)
=
e
x
p
(
τ
∧
)
−
1
e
x
p
(
X
τ
∧
X
−
1
)
=
X
e
x
p
(
τ
∧
)
−
1
X
−
1
\mathrm{exp}((t+s)\boldsymbol{\tau}^{\land})=\mathrm{exp}(t\boldsymbol{\tau}^{\land})\mathrm{exp}(s\boldsymbol{\tau}^{\land}) \\ \mathrm{exp}(t\boldsymbol{\tau}^{\land})=\mathrm{exp}(\tau^{\land})^{t} \\ \mathrm{exp}(-\boldsymbol{\tau}^{\land})=\mathrm{exp}(\tau^{\land})^{-1} \\ \mathrm{exp}(\mathcal{X}\boldsymbol{\tau}^{\land}\mathcal{X}^{-1})=\mathcal{X}\mathrm{exp}(\tau^{\land})^{-1}\mathcal{X}^{-1}
exp((t+s)τ∧)=exp(tτ∧)exp(sτ∧)exp(tτ∧)=exp(τ∧)texp(−τ∧)=exp(τ∧)−1exp(Xτ∧X−1)=Xexp(τ∧)−1X−1
2.5 plus 和 minus 运算符
允许引入流形元素之间的增量,并在其切向量空间中表示。符号: ⊕ \oplus ⊕和 ⊖ \ominus ⊖
有左右两个版本:
r
i
g
h
t
−
⊕
:
Y
=
X
⊕
X
τ
≜
X
∘
E
x
p
(
X
τ
)
∈
M
r
i
g
h
t
−
⊖
:
X
τ
=
Y
⊖
X
≜
L
o
g
(
X
−
1
∘
Y
)
∈
T
X
M
\mathrm{right-\oplus}: \quad \mathcal{Y}=\mathcal{X}\oplus {^{\mathcal{X}}\boldsymbol{\tau}} \triangleq \mathcal{X} \circ \mathrm{Exp}(^{\mathcal{X}}\boldsymbol{\tau}) \in \mathcal{M} \\ \mathrm{right-\ominus}: \quad {^{\mathcal{X}}\boldsymbol{\tau}}=\mathcal{Y}\ominus\mathcal{X} \triangleq \mathrm{Log}(\mathcal{X}^{-1} \circ \mathcal{Y}) \in \mathcal{T_{\mathcal{X}}M}
right−⊕:Y=X⊕Xτ≜X∘Exp(Xτ)∈Mright−⊖:Xτ=Y⊖X≜Log(X−1∘Y)∈TXM
l
e
f
t
−
⊕
:
Y
=
ε
τ
⊕
X
≜
E
x
p
(
ε
τ
)
∘
X
∈
M
l
e
f
t
−
⊖
:
ε
τ
=
Y
⊖
X
≜
L
o
g
(
Y
∘
X
−
1
)
∈
T
X
M
\mathrm{left-\oplus}: \quad \mathcal{Y}={^{\varepsilon}\boldsymbol{\tau}}\oplus \mathcal{X} \triangleq \mathrm{Exp}(^{\varepsilon}\boldsymbol{\tau}) \circ \mathcal{X} \in \mathcal{M} \\ \mathrm{left-\ominus}: \quad {^{\varepsilon}\boldsymbol{\tau}}=\mathcal{Y}\ominus \mathcal{X} \triangleq \mathrm{Log}(\mathcal{Y} \circ \mathcal{X}^{-1}) \in \mathcal{T_{\mathcal{X}}M}
left−⊕:Y=ετ⊕X≜Exp(ετ)∘X∈Mleft−⊖:ετ=Y⊖X≜Log(Y∘X−1)∈TXM
本文默认采用右形式。
2.6伴随和伴随矩阵
利用2.5中的右和左
−
⊕
-\oplus
−⊕操作,可以得到
E
x
p
(
ε
τ
)
X
=
X
E
x
p
(
X
τ
)
\mathrm{Exp}(^{\varepsilon}\boldsymbol{\tau})\mathcal{X}=\mathcal{X}\mathrm{Exp}(^{\mathcal{X}}\boldsymbol{\tau})
Exp(ετ)X=XExp(Xτ)
从小写和大写指数映射操作及指数映射性质可以知道
e
x
p
(
ε
τ
∧
)
=
X
e
x
p
(
X
τ
∧
)
X
−
1
=
e
x
p
(
X
X
τ
∧
X
−
1
)
\mathrm{exp}(^{\varepsilon}\boldsymbol{\tau}^{\land})=\mathcal{X}\mathrm{exp}(^{\mathcal{X}}\boldsymbol{\tau}^{\land})\mathcal{X}^{-1}=\mathrm{exp}(\mathcal{X}{^{\mathcal{X}}\boldsymbol{\tau}}^{\land}\mathcal{X}^{-1})
exp(ετ∧)=Xexp(Xτ∧)X−1=exp(XXτ∧X−1)
所以可以定义在
X
\mathcal{X}
X处的伴随
A
d
X
:
m
→
m
;
τ
∧
↦
A
d
X
(
τ
∧
)
≜
X
τ
∧
X
−
1
\mathrm{Ad}_{\mathcal{X}}:\mathfrak{m} \to \mathfrak{m}; \quad \boldsymbol{\tau}^{\land} \mapsto \mathrm{Ad}_{\mathcal{X}}(\boldsymbol{\tau}^{\land}) \triangleq \mathcal{X}\boldsymbol{\tau}^{\land}\mathcal{X}^{-1}
AdX:m→m;τ∧↦AdX(τ∧)≜Xτ∧X−1
作用是将点
X
\mathcal{X}
X转移到单位元
ε
\varepsilon
ε处,
ε
τ
∧
=
A
d
X
(
X
τ
∧
)
^{\varepsilon}\boldsymbol{\tau}^{\land}=\mathrm{Ad}_{\mathcal{X}}(^{\mathcal{X}}\boldsymbol{\tau}^{\land})
ετ∧=AdX(Xτ∧)。
- 伴随性质:
线性 : A d X ( a τ ∧ + b σ ∧ ) = a A d X ( τ ∧ ) + b A d X ( σ ∧ ) 同态映射 : A d X ( A d Y ( τ ∧ ) ) = A d X Y ( τ ∧ ) 线性:\quad \mathrm{Ad}_{\mathcal{X}}(a\boldsymbol{\tau}^{\land}+b\boldsymbol{\sigma}^{\land})=a\mathrm{Ad}_{\mathcal{X}}(\boldsymbol{\tau}^{\land})+b\mathrm{Ad}_{\mathcal{X}}(\boldsymbol{\sigma}^{\land}) \\ 同态映射: \quad \mathrm{Ad}_{\mathcal{X}}(\mathrm{Ad}_{\mathcal{Y}}(\boldsymbol{\tau}^{\land}))=\mathrm{Ad}_{\mathcal{XY}}(\boldsymbol{\tau}^{\land}) 线性:AdX(aτ∧+bσ∧)=aAdX(τ∧)+bAdX(σ∧)同态映射:AdX(AdY(τ∧))=AdXY(τ∧)
A
d
X
(
)
\mathrm{Ad}_{\mathcal{X}}()
AdX()是线性的,可以找到一个等效的矩阵算子
A
d
X
\mathbf{Ad}_\mathcal{X}
AdX,作用于笛卡尔向量空间,定义伴随矩阵,
A
d
X
:
R
m
→
R
m
;
X
τ
↦
ε
τ
=
A
d
X
X
τ
A
d
X
τ
=
(
X
τ
∧
X
−
1
)
∨
\mathbf{Ad}_{\mathcal{X}}:\mathbb{R}^{m} \to \mathbb{R}^{m}; \quad {^{\mathcal{X}}\boldsymbol{\tau}} \mapsto ^\varepsilon\boldsymbol{\tau} = \mathbf{Ad}_{\mathcal{X}}{^{\mathcal{X}}\boldsymbol{\tau}} \\ \mathbf{Ad}_{\mathcal{X}}\boldsymbol{\tau}=(\mathcal{X}\boldsymbol{\tau}^{\land}\mathcal{X}^{-1})^{\lor}
AdX:Rm→Rm;Xτ↦ετ=AdXXτAdXτ=(Xτ∧X−1)∨
作用是把任一点的切向量空间的向量线性变换为原点的切向量空间的向量。
- 伴随矩阵性质:
X ⊕ τ = ( A d X τ ) ⊕ X A d X − 1 = A d X − 1 A d X Y = A d X A d Y \mathcal{X}\oplus \tau=(\mathbf{Ad}_{\mathcal{X}}\boldsymbol{\tau})\oplus \mathcal{X} \\ \mathbf{Ad}_{\mathcal{X}^{-1}} = {\mathbf{Ad}_{\mathcal{X}}}^{-1} \\ \mathbf{Ad}_{\mathcal{XY}}=\mathbf{Ad}_{\mathcal{X}}\mathbf{Ad}_{\mathcal{Y}} X⊕τ=(AdXτ)⊕XAdX−1=AdX−1AdXY=AdXAdY
2.7李群上的导数
- 向量空间上的雅可比矩阵
多变量函数
f
:
R
m
→
R
n
f:\mathbb{R}^{m}\to \mathbb{R}^{n}
f:Rm→Rn,雅可比矩阵为
n
×
m
n \times m
n×m,
J
=
∂
f
(
x
)
∂
x
≜
[
∂
f
1
∂
x
1
⋯
∂
f
1
∂
x
m
⋮
⋮
∂
f
n
∂
x
1
⋯
∂
f
n
∂
x
m
]
∈
R
n
×
m
\mathbf{J}=\frac{\partial f(\mathbf{x})}{\partial \mathbf{x}} \triangleq \begin{bmatrix}\frac{\partial f_1}{\partial x_1} & \cdots & \frac{\partial f_1}{\partial x_m} \\ \vdots & & \vdots \\ \frac{\partial f_n}{\partial x_1} & \cdots & \frac{\partial f_n}{\partial x_m} \end{bmatrix} \in\mathbb{R}^{n \times m}
J=∂x∂f(x)≜
∂x1∂f1⋮∂x1∂fn⋯⋯∂xm∂f1⋮∂xm∂fn
∈Rn×m
上式雅可比矩阵可以分块为列向量组成,这样每一列对应于,
j
=
∂
f
(
x
)
∂
x
i
≜
lim
h
→
0
f
(
x
+
h
e
i
)
−
f
(
x
)
h
∈
R
n
\mathbf{j} = \frac{\partial f(\mathbf{x})}{\partial x_i} \triangleq \lim_{h \to 0} \frac{f(\mathbf{x}+h\mathbf{e}_i)-f(\mathbf{x})}{h} \in \mathbb{R}^{n}
j=∂xi∂f(x)≜h→0limhf(x+hei)−f(x)∈Rn
分子可以表示为
v
i
(
h
)
\mathbf{v}_i(h)
vi(h),是
x
\mathbf{x}
x沿
e
i
\mathbf{e}_i
ei方向扰动时,
f
(
x
)
f(\mathbf{x})
f(x)的增量。
紧凑形式为
J
=
∂
f
(
x
)
∂
x
≜
lim
h
→
0
f
(
x
+
h
)
−
f
(
x
)
h
∈
R
n
×
m
\mathbf{J}=\frac{\partial f(\mathbf{x})}{\partial \mathbf{x}} \triangleq \lim_{\mathbf{h} \to 0} \frac{f(\mathbf{x}+\mathbf{h})-f(\mathbf{x})}{\mathbf{h}} \in \mathbb{R}^{n \times m}
J=∂x∂f(x)≜h→0limhf(x+h)−f(x)∈Rn×m
- 李群上的右雅可比矩阵
使用
r
i
g
h
t
−
⊕
,
⊖
\mathrm{right}-{\oplus},\ominus
right−⊕,⊖替代紧凑形式的
+
,
−
+,-
+,−
X
D
f
(
X
)
D
X
≜
lim
τ
→
0
f
(
X
⊕
τ
)
⊖
f
(
X
)
τ
∈
R
n
×
m
\frac{^{\mathcal{X}}Df(\mathcal{X})}{D\mathcal{X}} \triangleq \lim_{\boldsymbol{\tau} \to 0} \frac{f(\mathcal{X} \oplus \boldsymbol{\tau})\ominus f(\mathcal{X})}{\boldsymbol{\tau}} \in \mathbb{R}^{n \times m}
DXXDf(X)≜τ→0limτf(X⊕τ)⊖f(X)∈Rn×m
上式可按规则展开,同样的,
e
i
\mathbf{e}_i
ei方向扰动增量为
σ
i
(
h
)
=
f
(
X
⊕
h
e
i
)
⊖
f
(
X
)
∈
R
n
\mathbf{\sigma}_i(h)=f(\mathcal{X \oplus h\mathbf{e}_i})\ominus f(\mathcal{X}) \in \mathbb{R}^{n}
σi(h)=f(X⊕hei)⊖f(X)∈Rn,上图为流形上函数
f
:
M
→
N
f: \mathcal{M} \to \mathcal{N}
f:M→N的右雅可比矩阵,映射局部切空间
T
X
M
→
T
f
(
X
)
N
{T_\mathcal{X}\mathcal{M}} \to {T_{f(\mathcal{X})}\mathcal{N}}
TXM→Tf(X)N。
\quad
例子参考,
f
:
S
O
(
3
)
→
R
3
;
f
(
R
)
=
R
p
,
M
=
S
O
(
3
)
,
N
=
R
3
f:SO(3) \to \mathbb{R}^{3}; \quad f(\mathbf{R})=\mathbf{Rp},\mathcal{M}=SO(3),\mathcal{N}=\mathbb{R}^{3}
f:SO(3)→R3;f(R)=Rp,M=SO(3),N=R3
R
D
R
p
D
R
=
−
R
[
p
]
×
∈
R
3
×
3
\frac{^\mathbf{R}D\mathbf{Rp}}{D\mathbf{R}}=-\mathbf{R}[\mathbf{p}]_\times \in \mathbb{R}^{3 \times 3}
DRRDRp=−R[p]×∈R3×3
对于小的
τ
\boldsymbol{\tau}
τ有线性近似
f
(
X
⊕
X
τ
)
→
X
τ
→
0
f
(
X
)
⊕
X
D
f
(
X
)
D
X
X
τ
∈
N
f(\mathcal{X}\oplus {^{\mathcal{X}}\boldsymbol{\tau}}) \xrightarrow[{^{\mathcal{X}}\boldsymbol{\tau}} \to 0]{} f(\mathcal{X}) \oplus \frac{^{\mathcal{X}}Df(\mathcal{X})}{D\mathcal{X}}{^{\mathcal{X}}\boldsymbol{\tau}} \in \mathcal{N}
f(X⊕Xτ)Xτ→0f(X)⊕DXXDf(X)Xτ∈N
- 李群上的左雅可比矩阵
其导数是通过左操作来定义的,
ε
D
f
(
X
)
D
X
≜
lim
τ
→
0
f
(
τ
⊕
X
)
⊖
f
(
X
)
τ
∈
R
n
×
m
\frac{^{\mathcal{\varepsilon}}Df(\mathcal{X})}{D\mathcal{X}} \triangleq \lim_{\boldsymbol{\tau} \to 0} \frac{f(\boldsymbol{\tau} \oplus \mathcal{X})\ominus f(\mathcal{X})}{\boldsymbol{\tau}} \in \mathbb{R}^{n \times m}
DXεDf(X)≜τ→0limτf(τ⊕X)⊖f(X)∈Rn×m
映射全局切空间
T
ε
M
→
T
ε
N
T_\mathcal{\varepsilon}\mathcal{M} \to T_{\varepsilon}\mathcal{N}
TεM→TεN。这些切空间分别是
M
\mathcal{M}
M和
N
\mathcal{N}
N的李代数。
- 交叉右-左雅可比矩阵
可以使用右加和左减定义雅可比矩阵,反之亦可。它们可以将局部切线映射到全局,或反之。
通过伴随算子将它们和其他雅可比矩阵相关联。
ε
D
Y
X
D
X
=
ε
D
Y
ε
D
X
A
d
X
=
A
d
Y
Y
D
Y
X
D
X
Y
D
Y
ε
D
X
=
Y
D
Y
X
D
X
A
d
X
−
1
=
A
d
Y
−
1
ε
D
Y
ε
D
X
\frac {^{\varepsilon}D\mathcal{Y}}{^{\mathcal{X}}D\mathcal{X}}=\frac {^{\varepsilon}D\mathcal{Y}}{^{\varepsilon}D\mathcal{X}}\mathbf{Ad}_{\mathcal{X}}=\mathbf{Ad}_{\mathcal{Y}}\frac {^{\mathcal{Y}}D\mathcal{Y}}{^{\mathcal{X}}D\mathcal{X}} \\ \frac {^{\mathcal{Y}}D\mathcal{Y}}{^{\varepsilon}D\mathcal{X}}=\frac {^{\mathcal{Y}}D\mathcal{Y}}{^{\mathcal{X}}D\mathcal{X}}{\mathbf{Ad}_{\mathcal{X}}}^{-1}={\mathbf{Ad}_{\mathcal{Y}}}^{-1}\frac {^{\varepsilon}D\mathcal{Y}}{^{\varepsilon}D\mathcal{X}}
XDXεDY=εDXεDYAdX=AdYXDXYDYεDXYDY=XDXYDYAdX−1=AdY−1εDXεDY
式中,
Y
=
f
(
X
)
\mathcal{Y}=f(\mathcal{X})
Y=f(X)。
左右雅可比矩阵可以通过
M
\mathcal{M}
M和
N
\mathcal{N}
N的伴随关系相关联,
ε
D
f
(
X
)
D
X
A
d
X
=
A
d
f
(
X
)
X
D
f
(
X
)
D
X
\frac {^{\varepsilon}Df(\mathcal{X})}{D\mathcal{X}}\mathbf{Ad}_{\mathcal{X}}=\mathbf{Ad}_{f(\mathcal{X})}\frac {^{\mathcal{X}}Df(\mathcal{X})}{D\mathcal{X}}
DXεDf(X)AdX=Adf(X)DXXDf(X)
2.8流形中的不确定性,协方差传播
使用右-
⊕
\oplus
⊕和
⊖
\ominus
⊖来定义流形中某点
X
ˉ
∈
M
\mathcal{\bar X} \in \mathcal{M}
Xˉ∈M的切向量空间
T
X
ˉ
M
T_{\mathcal{\bar X}}\mathcal{M}
TXˉM中的局部扰动
τ
\boldsymbol{\tau}
τ,
X
=
X
ˉ
⊕
τ
,
τ
=
X
⊖
X
ˉ
∈
T
X
ˉ
M
\mathcal{X}=\mathcal{\bar X} \oplus \boldsymbol{\tau}, \quad \boldsymbol{\tau}=\mathcal{X} \ominus \mathcal{\bar X} \in T_{\mathcal{\bar X}}\mathcal{M}
X=Xˉ⊕τ,τ=X⊖Xˉ∈TXˉM
图中切点为 X ˉ \mathcal{\bar X} Xˉ,在微小扰动 τ \boldsymbol{\tau} τ下,偏移后的 X \mathcal{X} X的范围分别表示在流形和切空间中。
在
X
ˉ
\mathcal{\bar{X}}
Xˉ处的切向量空间定义协方差矩阵,
∑
X
≜
E
[
τ
τ
−
1
]
=
E
[
(
X
⊖
X
ˉ
)
(
X
⊖
X
ˉ
)
T
]
∈
R
m
×
m
{\scriptstyle\sum_{\mathcal{X}}} \triangleq \mathbb{E}[\boldsymbol{\tau}\boldsymbol{\tau}^{-1}]=\mathbb{E}[(\mathcal{X}\ominus\mathcal{\bar X})(\mathcal{X}\ominus\mathcal{\bar X})^{\mathrm{T}}] \in \mathbb{R}^{m \times m}
∑X≜E[ττ−1]=E[(X⊖Xˉ)(X⊖Xˉ)T]∈Rm×m
局部扰动
τ
\boldsymbol{\tau}
τ的方向是任意的,所以
X
\mathcal{X}
X也是在范围内任意(
m
m
m维有
m
m
m个随机变量),
X
ˉ
\mathcal{\bar{X}}
Xˉ可类比为该随机变量的期望。
扰动也可以全局(左-
⊕
\oplus
⊕和
⊖
\ominus
⊖)表示,就是原点切向量空间中
T
ε
M
T_{\varepsilon}\mathcal{M}
TεM,
X
=
τ
⊕
X
ˉ
τ
=
X
⊖
X
ˉ
∈
T
ε
M
\mathcal{X}=\boldsymbol{\tau}\oplus\mathcal{\bar X} \quad \boldsymbol{\tau}=\mathcal{X}\ominus\mathcal{\bar X} \in T_{\varepsilon}\mathcal{M}
X=τ⊕Xˉτ=X⊖Xˉ∈TεM
局部和全局可以通过伴随关联在一起,
ε
∑
X
=
A
d
X
X
∑
X
A
d
X
T
^{\varepsilon}{\scriptstyle\sum_{\mathcal{X}}}={\mathbf{Ad}_{\mathcal{X}}}{^{\mathcal{X}}{\scriptstyle\sum_{\mathcal{X}}}}{{\mathbf{Ad}_{\mathcal{X}}}}^{\mathrm{T}}
ε∑X=AdXX∑XAdXT
函数
f
:
M
→
N
;
X
↦
Y
=
f
(
X
)
f:\mathcal{M \to N };\mathcal{X \mapsto Y}=f(\mathcal{X})
f:M→N;X↦Y=f(X)的协方差传播使用雅可比矩阵的线性近似,
∑
Y
≈
D
f
D
X
∑
X
D
f
D
X
T
∈
R
n
×
n
{\scriptstyle\sum_{\mathcal{Y}}} \approx \frac{Df}{D\mathcal{X}}{\scriptstyle\sum_{\mathcal{X}}} {\frac{Df}{D\mathcal{X}}}^{\mathrm{T}} \in \mathbb{R}^{n \times n}
∑Y≈DXDf∑XDXDfT∈Rn×n
2.9流形上的离散积分
指数映射
X
(
t
)
=
X
0
∘
E
x
p
(
v
t
)
\mathcal{X}(t)=\mathcal{X}_0 \circ \mathrm{Exp}(\mathbf{v}t)
X(t)=X0∘Exp(vt)是连续积分,对于非恒定速度,可将其分段为恒定速度,每一段在流形的不同切空间中。定义
τ
k
=
v
k
δ
t
k
\boldsymbol{\tau}_{k}=\mathbf{v}_{k} \delta t_k
τk=vkδtk,则
X
k
=
X
0
⊕
τ
1
⊕
τ
2
⊕
⋯
⊕
τ
k
\mathcal{X}_{k}=\mathcal{X}_{0} \oplus \boldsymbol{\tau}_{1} \oplus \boldsymbol{\tau}_{2} \oplus \cdots \oplus \boldsymbol{\tau}_{k}
Xk=X0⊕τ1⊕τ2⊕⋯⊕τk
迭代形式为
X
k
=
X
k
−
1
⊕
τ
k
=
X
k
−
1
∘
E
x
p
(
τ
k
)
\mathcal{X}_{k}=\mathcal{X}_{k-1} \oplus \boldsymbol{\tau}_{k}=\mathcal{X}_{k-1} \circ \mathrm{Exp}(\boldsymbol{\tau}_{k})
Xk=Xk−1⊕τk=Xk−1∘Exp(τk)
例子,将角速度
ω
\omega
ω积分成旋转矩阵或四元数,(
m
→
M
\mathfrak{m}\to \mathcal{M}
m→M),
R
k
=
R
k
−
1
E
x
p
(
ω
k
δ
t
)
q
k
=
q
k
−
1
E
x
p
(
ω
k
δ
t
)
\mathbf{R}_k=\mathbf{R}_{k-1}\mathrm{Exp}(\boldsymbol{\omega}_{k}\delta t) \\ \mathbf{q}_k=\mathbf{q}_{k-1}\mathrm{Exp}(\boldsymbol{\omega}_{k}\delta t)
Rk=Rk−1Exp(ωkδt)qk=qk−1Exp(ωkδt)
3. Differentiation rules on manifolds
这里开发的所有雅可比矩阵都是右雅可比矩阵。使用符号 J X Y ≜ D Y D X \mathbf{J}_{\mathcal{X}}^{\mathcal{Y}} \triangleq \frac{D\mathcal{Y}}{D\mathcal{X}} JXY≜DXDY,由伴随矩阵性质, A d X − 1 {\mathbf{Ad}_{\mathcal{X}}}^{-1} AdX−1由 A d X − 1 {\mathbf{Ad}_{\mathcal{X}^{-1}}} AdX−1实现。
3.1链式法则
对于
Y
=
f
(
X
)
\mathcal{Y}=f(\mathcal{X})
Y=f(X)和
Z
=
g
(
Y
)
\mathcal{Z}=g(\mathcal{Y})
Z=g(Y),有
Z
=
g
(
f
(
X
)
)
\mathcal{Z}=g(f(\mathcal{X}))
Z=g(f(X))。链式法则陈述如下,
D
Z
D
X
=
D
Z
D
Y
D
Y
D
X
o
r
J
X
Z
=
J
Y
Z
J
X
Y
\frac{D\mathcal{Z}}{D\mathcal{X}}=\frac{D\mathcal{Z}}{D\mathcal{Y}}\frac{D\mathcal{Y}}{D\mathcal{X}} \quad or \quad \mathbf{J}_{\mathcal{X}}^{\mathcal{Z}}=\mathbf{J}_{\mathcal{Y}}^{\mathcal{Z}}\mathbf{J}_{\mathcal{X}}^{\mathcal{Y}}
DXDZ=DYDZDXDYorJXZ=JYZJXY
3.2基本雅可比矩阵块
- 求逆
用右雅可比矩阵的定义式
X
D
f
(
X
)
D
X
≜
lim
τ
→
0
f
(
X
⊕
τ
)
⊖
f
(
X
)
τ
\frac{^{\mathcal{X}}Df(\mathcal{X})}{D\mathcal{X}} \triangleq \lim_{\boldsymbol{\tau} \to 0} \frac{f(\mathcal{X} \oplus \boldsymbol{\tau})\ominus f(\mathcal{X})}{\boldsymbol{\tau}}
DXXDf(X)≜τ→0limτf(X⊕τ)⊖f(X)进行定义,然后展开可知其为伴随的负,
J
X
X
−
1
≜
X
D
X
−
1
D
X
∈
R
m
×
m
J
X
X
−
1
=
−
A
d
X
\mathbf{J}_{\mathcal{X}}^{\mathcal{X}^{-1}} \triangleq \frac{^{\mathcal{X}}D\mathcal{X}^{-1}}{D\mathcal{X}} \quad \in \mathbb{R}^{m \times m} \\ \mathbf{J}_{\mathcal{X}}^{\mathcal{X}^{-1}}=-\mathbf{Ad}_{\mathcal{X}}
JXX−1≜DXXDX−1∈Rm×mJXX−1=−AdX
- 复合
定义同上,
J
X
X
∘
Y
≜
X
D
X
∘
Y
D
X
∈
R
m
×
m
J
Y
X
∘
Y
≜
Y
D
X
∘
Y
D
Y
∈
R
m
×
m
\mathbf{J}_{\mathcal{X}}^{\mathcal{X}\circ \mathcal{Y}} \triangleq \frac{^{\mathcal{X}}D\mathcal{X}\circ \mathcal{Y}}{D\mathcal{X}} \quad \in \mathbb{R}^{m \times m} \\ \mathbf{J}_{\mathcal{Y}}^{\mathcal{X}\circ \mathcal{Y}} \triangleq \frac{^{\mathcal{Y}}D\mathcal{X}\circ \mathcal{Y}}{D\mathcal{Y}} \quad \in \mathbb{R}^{m \times m}
JXX∘Y≜DXXDX∘Y∈Rm×mJYX∘Y≜DYYDX∘Y∈Rm×m
展开并使用
e
x
p
(
X
τ
∧
X
−
1
)
=
X
e
x
p
(
τ
∧
)
−
1
X
−
1
\mathrm{exp}(\mathcal{X}\boldsymbol{\tau}^{\land}\mathcal{X}^{-1})=\mathcal{X}\mathrm{exp}(\tau^{\land})^{-1}\mathcal{X}^{-1}
exp(Xτ∧X−1)=Xexp(τ∧)−1X−1、
A
d
X
τ
=
(
X
τ
∧
X
−
1
)
∨
\mathbf{Ad}_{\mathcal{X}}\boldsymbol{\tau}=(\mathcal{X}\boldsymbol{\tau}^{\land}\mathcal{X}^{-1})^{\lor}
AdXτ=(Xτ∧X−1)∨、
A
d
X
−
1
=
A
d
X
−
1
\mathbf{Ad}_{\mathcal{X}^{-1}} = {\mathbf{Ad}_{\mathcal{X}}}^{-1}
AdX−1=AdX−1,得到
J
X
X
∘
Y
=
A
d
Y
−
1
J
Y
X
∘
Y
=
I
\mathbf{J}_{\mathcal{X}}^{\mathcal{X}\circ \mathcal{Y}}={\mathbf{Ad}_{\mathcal{Y}}}^{-1} \\ \mathbf{J}_{\mathcal{Y}}^{\mathcal{X}\circ \mathcal{Y}}=\mathbf{I}
JXX∘Y=AdY−1JYX∘Y=I
- M \mathcal{M} M的雅可比矩阵
将
M
\mathcal{M}
M的右雅可比矩阵定义为
X
=
E
x
p
(
τ
)
\mathcal{X}=\mathrm{Exp}(\boldsymbol{\tau})
X=Exp(τ)的右雅可比矩阵,对于
τ
∈
R
m
\boldsymbol{\tau} \in\mathbb{R}^{m}
τ∈Rm,
J
r
(
τ
)
≜
τ
D
E
x
p
(
τ
)
D
τ
∈
R
m
×
m
\mathbf{J}_{r}(\boldsymbol{\tau}) \triangleq \frac{^{\boldsymbol{\tau}}D\mathrm{Exp(\boldsymbol{\tau})}}{D\boldsymbol{\tau}} \in \mathbb{R}^{m \times m}
Jr(τ)≜DττDExp(τ)∈Rm×m
左雅可比矩阵定义为
J
l
(
τ
)
≜
ε
D
E
x
p
(
τ
)
D
τ
∈
R
m
×
m
\mathbf{J}_{l}(\boldsymbol{\tau}) \triangleq \frac{^{\boldsymbol{\varepsilon}}D\mathrm{Exp(\boldsymbol{\tau})}}{D\boldsymbol{\tau}} \in \mathbb{R}^{m \times m}
Jl(τ)≜DτεDExp(τ)∈Rm×m
用伴随相关联,
A
d
E
x
p
(
τ
)
=
J
l
(
τ
)
J
r
−
1
(
τ
)
\mathbf{Ad}_{\mathrm{Exp(\boldsymbol{\tau})}}=\mathbf{J}_{l}(\boldsymbol{\tau}){\mathbf{J}_{r}}^{-1}(\boldsymbol{\tau})
AdExp(τ)=Jl(τ)Jr−1(τ)
根据链式法则
J
r
(
−
τ
)
=
J
l
(
τ
)
\mathbf{J}_{r}(\boldsymbol{-\tau})=\mathbf{J}_{l}(\boldsymbol{\tau})
Jr(−τ)=Jl(τ)
- 群作用
对于
X
∈
M
;
v
∈
V
\mathcal{X} \in \mathcal{M} ;v \in \mathcal{V}
X∈M;v∈V,定义
J
X
X
⋅
v
≜
X
D
X
⋅
v
D
X
J
v
X
⋅
v
≜
v
D
X
⋅
v
D
v
\mathbf{J}_{\mathcal{X}}^{\mathcal{X}\cdot v} \triangleq \frac{^{\mathcal{X}}D\mathcal{X}\cdot v}{D\mathcal{X}} \\ \mathbf{J}_{v}^{\mathcal{X}\cdot v} \triangleq \frac{^{v}D\mathcal{X}\cdot v}{Dv}
JXX⋅v≜DXXDX⋅vJvX⋅v≜DvvDX⋅v
3.3额外推导
-
L o g \mathrm{Log} Log映射:对于 τ = L o g ( X ) \boldsymbol{\tau}=\mathrm{Log}(\mathcal{X}) τ=Log(X),有 J X L o g ( X ) = J r − 1 ( τ ) \mathbf{J}_{\mathcal{X}}^{\mathrm{Log}(\mathcal{X})}=\mathbf{J}_{r}^{-1}(\boldsymbol{\tau}) JXLog(X)=Jr−1(τ)
-
加与减:
J X X ⊕ τ = A d E x p ( τ ) − 1 J τ X ⊕ τ = J r ( τ ) \mathbf{J}_{\mathcal{X}}^{\mathcal{X}\oplus \boldsymbol{\tau}}={\mathbf{Ad}_{\mathrm{Exp(\boldsymbol{\tau})}}}^{-1} \\ \mathbf{J}_{\boldsymbol{\tau}}^{\mathcal{X}\oplus \boldsymbol{\tau}}=\mathbf{J}_{r}(\boldsymbol{\tau}) JXX⊕τ=AdExp(τ)−1JτX⊕τ=Jr(τ)
给定
Z
=
X
−
1
∘
Y
\mathcal{Z}=\mathcal{X}^{-1}\circ \mathcal{Y}
Z=X−1∘Y和
τ
=
Y
⊖
X
=
L
o
g
(
Z
)
\boldsymbol{\tau}=\mathcal{Y}\ominus\mathcal{X}=\mathrm{Log}(\mathcal{Z})
τ=Y⊖X=Log(Z),
J
X
Y
⊖
X
=
−
J
l
−
1
(
τ
)
J
Y
Y
⊖
X
=
J
r
−
1
(
τ
)
\mathbf{J}_{\mathcal{X}}^{\mathcal{Y}\ominus\mathcal{X}}=-\mathbf{J}_{l}^{-1}(\boldsymbol{\tau}) \\ \mathbf{J}_{\mathcal{Y}}^{\mathcal{Y}\ominus\mathcal{X}}=\mathbf{J}_{r}^{-1}(\boldsymbol{\tau})
JXY⊖X=−Jl−1(τ)JYY⊖X=Jr−1(τ)
4.Composite manifolds
概念
一个复合流形是 M M M个不相关的流形的串联, M = ⟨ M 1 , ⋯ , M M ⟩ \mathcal{M}=\langle \mathcal{M}_1,\cdots,\mathcal{M}_M \rangle M=⟨M1,⋯,MM⟩。
类似于单个流形:
单位元、逆元、组合
ε
⋄
≜
[
ε
1
⋮
ε
M
]
,
X
⋄
≜
[
X
−
1
⋮
X
M
−
1
]
,
X
⋄
Y
≜
[
X
∘
Y
1
⋮
X
M
∘
Y
M
]
\varepsilon_{\diamond} \triangleq \begin{bmatrix}\varepsilon_{1} \\ \vdots \\ \varepsilon_{M}\end{bmatrix} , \mathcal{X}^{\diamond} \triangleq \begin{bmatrix}\mathcal{X}^{-1} \\ \vdots \\ \mathcal{X}_{M}^{-1}\end{bmatrix} , \mathcal{X}\diamond \mathcal{Y}\triangleq \begin{bmatrix}\mathcal{X}\circ \mathcal{Y}_1 \\ \vdots \\ \mathcal{X}_M\circ \mathcal{Y}_M\end{bmatrix}
ε⋄≜
ε1⋮εM
,X⋄≜
X−1⋮XM−1
,X⋄Y≜
X∘Y1⋮XM∘YM
指数映射
E
x
p
⟨
τ
⟩
≜
[
E
x
p
(
τ
1
)
⋮
E
x
p
(
τ
M
)
]
,
L
o
g
⟨
X
⟩
≜
[
L
o
g
(
X
)
⋮
L
o
g
(
X
M
)
]
\mathrm{Exp}\langle\boldsymbol{\tau}\rangle \triangleq \begin{bmatrix}\mathrm{Exp}(\boldsymbol{\tau}_1) \\ \vdots \\ \mathrm{Exp}(\boldsymbol{\tau}_M)\end{bmatrix} , \mathrm{Log}\langle\mathcal{X}\rangle \triangleq \begin{bmatrix}\mathrm{Log}(\mathcal{X}) \\ \vdots \\ \mathrm{Log}(\mathcal{X}_M)\end{bmatrix}
Exp⟨τ⟩≜
Exp(τ1)⋮Exp(τM)
,Log⟨X⟩≜
Log(X)⋮Log(XM)
右加和减
X
(
d
i
a
m
o
n
d
p
l
u
s
)
X
τ
≜
X
⋄
E
x
p
(
τ
)
Y
(
d
i
a
m
o
n
d
m
i
n
u
s
)
X
≜
L
o
g
(
X
⋄
⋄
Y
)
\mathcal{X} \mathrm{(diamondplus)} {^{\mathcal{X}}\boldsymbol{\tau}} \triangleq \mathcal{X} \diamond \mathrm{Exp}(\boldsymbol{\tau})\\ \mathcal{Y} \mathrm{(diamondminus)} \mathcal{X} \triangleq \mathrm{Log}(\mathcal{X}^{\diamond} \diamond \mathcal{Y})
X(diamondplus)Xτ≜X⋄Exp(τ)Y(diamondminus)X≜Log(X⋄⋄Y)
这里的(diamondplus/minus)是
⋄
\diamond
⋄中间有加减符号,打不出来就用文字表示了。
右导数
D
f
(
X
)
D
X
≜
lim
τ
→
0
f
(
X
(
d
i
a
m
o
n
d
p
l
u
s
)
τ
)
(
d
i
a
m
o
n
d
m
i
n
u
s
)
f
(
X
)
τ
\frac{Df(\mathcal{X})}{D\mathcal{X}} \triangleq \lim_{\boldsymbol{\tau} \to 0} \frac{f(\boldsymbol{\mathcal{X} \mathrm{(diamondplus)} \tau})\mathrm{(diamondminus)} f(\mathcal{X})}{\boldsymbol{\tau}}
DXDf(X)≜τ→0limτf(X(diamondplus)τ)(diamondminus)f(X)
雅可比矩阵
D
f
(
X
)
D
X
=
[
D
f
1
D
X
1
⋯
D
f
1
D
X
M
⋮
⋮
D
f
N
D
X
1
⋯
D
f
N
D
X
M
]
\frac{D f(\mathcal{X})}{D \mathcal{X}} = \begin{bmatrix}\frac{D f_1}{D\mathcal{X}_1} & \cdots & \frac{D f_1}{D\mathcal{X}_M} \\ \vdots & & \vdots \\ \frac{D f_N}{D\mathcal{X}_1} & \cdots & \frac{D f_N}{D\mathcal{X}_M} \end{bmatrix}
DXDf(X)=
DX1Df1⋮DX1DfN⋯⋯DXMDf1⋮DXMDfN
每一项用右雅可比矩阵定义式计算。对于较小的
τ
\boldsymbol{\tau}
τ有线性近似,
f
(
X
(
d
i
a
m
o
n
d
p
l
u
s
)
τ
)
→
τ
→
0
f
(
X
)
(
d
i
a
m
o
n
d
p
l
u
s
)
D
f
(
X
)
D
X
τ
∈
N
f(\mathcal{X}\mathrm{(diamondplus)} \boldsymbol{\tau}) \xrightarrow[\boldsymbol{\tau} \to 0]{} f(\mathcal{X}) \mathrm{(diamondplus)} \frac{Df(\mathcal{X})}{D\mathcal{X}}{\boldsymbol{\tau}} \in \mathcal{N}
f(X(diamondplus)τ)τ→0f(X)(diamondplus)DXDf(X)τ∈N
协方差矩阵
∑
X
≜
E
[
(
X
(
d
i
a
m
o
n
d
m
i
n
u
s
)
X
ˉ
)
(
X
(
d
i
a
m
o
n
d
m
i
n
u
s
)
X
ˉ
)
T
]
∈
R
n
×
n
{\scriptstyle\sum_{\mathcal{X}}} \triangleq \mathbb{E}[(\mathcal{X}\mathrm{(diamondminus)}\mathcal{\bar X})(\mathcal{X}\mathrm{(diamondminus)}\mathcal{\bar X})^{\mathrm{T}}] \in \mathbb{R}^{n \times n}
∑X≜E[(X(diamondminus)Xˉ)(X(diamondminus)Xˉ)T]∈Rn×n
5.Landmark-based localization and mapping
提供了三个应用示例:
- 用于基于地标定位的卡尔曼滤波器
- 基于图的平滑方法,用于同时定位和建图
- 增加了传感器自校正
引例
机器人位于
S
E
(
2
)
SE(2)
SE(2)中,通过
u
∈
s
e
(
2
)
\mathbf{u} \in \mathfrak{se}(2)
u∈se(2)控制纵向速度和角速度
v
,
ω
v,\omega
v,ω,没有横向分量
X
=
[
R
t
0
1
]
∈
S
E
(
2
)
,
b
k
=
[
x
k
y
k
]
∈
R
2
\mathcal{X}= \begin{bmatrix} \mathbf{R} &\mathbf{t} \\ \mathbf{0} & \mathbf{1}\end{bmatrix} \in SE(2), \quad \mathbf{b}_k=\begin{bmatrix} x_k \\ y_k \end{bmatrix} \in \mathbb{R}^{2}
X=[R0t1]∈SE(2),bk=[xkyk]∈R2
u = [ u v u s u w ] = [ v δ t 0 ω δ t ] + w ∈ s e ( 2 ) W = [ σ v 2 δ t 0 0 0 σ s 2 δ t 0 0 0 σ ω 2 δ t ] ∈ R 3 × 3 \mathbf{u}=\begin{bmatrix} u_v \\ u_s \\ u_w \end{bmatrix} =\begin{bmatrix} v\delta t \\ 0 \\ \omega\delta t \end{bmatrix} + \mathbf{w} \quad\in\mathfrak{se}(2) \\ \mathbf{W}=\begin{bmatrix} \sigma_v^{2} \delta t & 0 & 0 \\ 0 & \sigma_s^{2} \delta t & 0 \\ 0 & 0 & \sigma_\omega^{2} \delta t\end{bmatrix} \quad\in\mathbb{R}^{3\times3} u= uvusuw = vδt0ωδt +w∈se(2)W= σv2δt000σs2δt000σω2δt ∈R3×3
其中的高斯噪声 w ∼ N ( 0 , W ) \mathbf{w} \sim \mathcal{N}(0,\mathbf{W}) w∼N(0,W)是可能的车轮横向打滑 u s u_s us, b k \mathbf{b}_k bk为信标位置。
位姿更新 X j = X i ⊕ u j ≜ X i E x p ( u j ) \mathcal{X}_j=\mathcal{X}_i\oplus \mathbf{u}_j \triangleq \mathcal{X}_i \mathrm{Exp}(\mathbf{u}_j) Xj=Xi⊕uj≜XiExp(uj)
- 流形上使用误差状态卡尔曼滤波器进行定位
待估计位姿$ \mathcal{\hat X}\in SE(2)$,估计误差,协方差,
δ
x
≜
X
⊖
X
^
∈
R
3
P
≜
E
[
(
X
⊖
X
^
)
(
(
X
⊖
X
^
)
T
]
∈
R
3
×
3
\delta \mathbf{x} \triangleq \mathcal{ X}\ominus\mathcal{\hat X}\in \mathbb{R}^{3} \\ \mathbf{P}\triangleq \mathbb{E}[(\mathcal{X}\ominus\mathcal{\hat X})((\mathcal{X}\ominus\mathcal{\hat X})^{\mathrm{T}}] \in \mathbb{R}^{3\times3}
δx≜X⊖X^∈R3P≜E[(X⊖X^)((X⊖X^)T]∈R3×3
每个机器人运动中使用ESKF预测,
X
^
j
=
X
^
i
⊕
u
j
P
j
=
F
P
i
F
T
+
G
W
j
G
T
\mathcal{\hat X}_j=\mathcal{\hat X}_i\oplus \mathbf{u}_j \\ \mathbf{P}_j=\mathbf{FP}_i\mathbf{F}^{\mathrm{T}}+\mathbf{GW}_j\mathbf{G}^{\mathrm{T}}
X^j=X^i⊕ujPj=FPiFT+GWjGT
其雅可比行列式
F
≜
J
X
i
X
j
=
J
X
^
i
X
^
j
⊕
u
j
=
A
d
E
x
p
(
u
j
)
−
1
G
≜
J
u
j
X
j
=
J
u
j
X
^
i
⊕
u
j
=
J
r
(
u
j
)
\mathbf{F}\triangleq \mathbf{J}_{\mathcal{X}_i}^{\mathcal{X}_j}=\mathbf{J}_{\mathcal{\hat X}_i}^{\mathcal{\hat X}_j\oplus\mathbf{u}_j}={\mathbf{Ad}_{\mathrm{Exp}(\mathbf{u}_j)}}^{-1} \\ \mathbf{G}\triangleq \mathbf{J}_{\mathbf{u}_j}^{\mathcal{X}_j}=\mathbf{J}_{\mathbf{u}_j}^{\mathcal{\hat X}_i\oplus\mathbf{u}_j}=\mathbf{J}_{r}(\mathbf{u}_j)
F≜JXiXj=JX^iX^j⊕uj=AdExp(uj)−1G≜JujXj=JujX^i⊕uj=Jr(uj)
在每次测量信标
y
k
\mathbf{y}_k
yk时,用ESKF校正,其雅可比行列式
H
≜
J
X
X
−
1
⋅
b
k
=
J
X
−
1
X
−
1
⋅
b
k
J
X
X
−
1
=
−
[
I
R
T
[
1
]
×
(
b
k
−
t
)
]
\mathbf{H} \triangleq \mathbf{J}_{\mathcal{X}}^{\mathcal{X}^{-1}\cdot \mathbf{b}_k}=\mathbf{J}_{\mathcal{X}^{-1}}^{\mathcal{X}^{-1}\cdot \mathbf{b}_k} \mathbf{J}_{\mathcal{X}}^{\mathcal{X}^{-1}}=-\begin{bmatrix} \mathbf{I} & \mathbf{R}^{\mathrm{T}}[1]_{\times}(\mathbf{b}_k-\mathbf{t})\end{bmatrix}
H≜JXX−1⋅bk=JX−1X−1⋅bkJXX−1=−[IRT[1]×(bk−t)]
- 使用基于图的优化进行平滑和映射
目的:估计变量是信标位置和机器人轨迹
假设轨迹由三个机器人姿态和三个信标组成复合状态,如上图
X
=
⟨
X
1
,
X
2
,
X
3
,
b
4
,
b
5
,
b
6
⟩
,
X
i
∈
S
E
(
2
)
,
b
k
∈
R
2
\mathcal{X}=\langle\mathcal{ X}_1,\mathcal{ X}_2,\mathcal{ X}_3,\mathbf{b}_4,\mathbf{b}_5,\mathbf{b}_6\rangle,\quad \mathcal{ X}_i \in SE(2),\mathbf{b}_k \in \mathbb{R}^{2}
X=⟨X1,X2,X3,b4,b5,b6⟩,Xi∈SE(2),bk∈R2
从位姿
i
i
i到
j
j
j 的运动测量,从位姿
i
i
i 到信标
k
k
k 的测量对应于
u
i
j
=
X
j
⊖
X
i
+
w
i
j
=
L
o
g
(
X
i
−
1
X
j
)
+
w
i
j
y
i
k
=
X
i
−
1
⋅
b
k
+
n
i
k
\mathbf{u}_{ij}=\mathcal{X}_j \ominus \mathcal{X}_i + \mathbf{w}_{ij}=\mathrm{Log}(\mathcal{X}_i^{-1}\mathcal{X}_j)+\mathbf{w}_{ij} \\ \mathbf{y}_{ik}=\mathcal{X}_i^{-1} \cdot \mathbf{b}_k+\mathbf{n}_{ik}
uij=Xj⊖Xi+wij=Log(Xi−1Xj)+wijyik=Xi−1⋅bk+nik
上面对应黑实线,下面对应灰实线。
- 平滑与自标定的映射
运动传感器受未知校准偏差
c
=
(
c
v
,
c
ω
)
T
\mathbf{c}=(c_v,c_{\omega})^{\mathrm{T}}
c=(cv,cω)T的影响,控制输入和复合状态改变
u
~
=
(
v
δ
t
+
c
v
,
0
,
ω
δ
t
+
c
ω
)
T
+
w
u
=
c
(
u
~
,
c
)
≜
[
u
~
v
−
c
v
u
~
s
u
~
ω
−
c
ω
]
∈
R
3
≅
s
e
(
2
)
X
=
⟨
c
,
X
1
,
X
2
,
X
3
,
b
4
,
b
5
,
b
6
⟩
,
X
i
∈
S
E
(
2
)
;
b
k
,
c
∈
R
2
\widetilde{\mathbf{u}}=(v\delta t+c_v,0,\omega\delta t+c_{\omega})^{\mathrm{T}}+\mathbf{w} \\ \mathbf{u}=c(\widetilde{\mathbf{u}},\mathbf{c}) \triangleq \begin{bmatrix} \widetilde{{u}}_v-c_v \\ \widetilde{{u}}_s \\ \widetilde{{u}}_{\omega}-c_{\omega} \end{bmatrix} \in\mathbb{R}^3 \cong \mathfrak{se}(2) \\ \mathcal{X}=\langle\mathbf{c} ,\mathcal{ X}_1,\mathcal{ X}_2,\mathcal{ X}_3,\mathbf{b}_4,\mathbf{b}_5,\mathbf{b}_6\rangle,\quad \mathcal{ X}_i \in SE(2);\mathbf{b}_k,\mathbf{c} \in \mathbb{R}^{2}
u
=(vδt+cv,0,ωδt+cω)T+wu=c(u
,c)≜
u
v−cvu
su
ω−cω
∈R3≅se(2)X=⟨c,X1,X2,X3,b4,b5,b6⟩,Xi∈SE(2);bk,c∈R2
导致运动残差改变,修改总雅可比矩阵。
4. 3D场景下的实现
定义变量在正确的空间中即可
X
∈
S
E
(
3
)
u
∈
R
6
≅
s
e
(
3
)
b
k
,
y
∈
R
3
\mathcal{X} \in SE(3) \\ \mathbf{u} \in \mathbb{R}^6 \cong \mathfrak{se}(3) \\ \mathbf{b}_k ,\mathbf{y} \in \mathbb{R}^3
X∈SE(3)u∈R6≅se(3)bk,y∈R3
6.Conclusion
- 选择尽可能避免抽象数学概念的材料。
- 选择了一种具有大量冗余的教学方法。
- 推广了便捷运算符的使用。
- 特别强调了雅可比行列式的定义、几何解释和计算。
- 在附录中介绍了机器人技术中最常见组 的广泛公式纲要。
- 提出了一些应用示例来说明李理论优雅而精确地解决机器人问题的能力。