李群李代数基础

李群李代数基础

本文档推导了表示二维空间和三维空间中转换的李群常用公式。

李群 一个拓扑群,它也是一个光滑流形,还有一些其它的良好性质。与每个李群相关的是其李代数,它是下文中我们将要讨论的一个向量空间。重要的是,一个李群和它的李代数时密切相关的,允许李群和李代数之间的映射能进行有效的计算。

本文档没有对李群进行严格的介绍,也没有讨论李群的所有数学细节。它试图提供足够的信息,表示空间变换的李群可以在机器人和计算机视觉等领域中使用。

以下是本文档涉及的李群:

描述 维度 矩阵表示
SO(2) 二维旋转 1 二维旋转矩阵
SE(2) 二维刚体变换 3 同态3维向量上的线性变换
Sim(2) 二维相似变换(刚体运动+尺度) 4 同态3维向量上的线性变换
Aff(2) 二维仿射变换 6 二维仿射变换群
SO(3) 三维旋转 3 三维旋转矩阵
SE(3) 三维刚体变换 6 同态4维向量上的线性变换
Sim(3) 三维相似变换(刚体运动+尺度) 7 同态4维向量上的线性变换
SL(3) 8 单位行列(unit-determinant)式线性变换

对于每一个这样的群,本文档描述了它们的表示形式以及和李代数之间的转换关系,并推导了它们的指数映射、对数映射和伴随关系。

符号约定

∧ \wedge : a l g alg alg 将向量映射为李代数表示的矩阵 ,向量中的关于旋转的分量有时在第二个有时在第一个!
∨ \vee : a l g − 1 alg^{-1} alg1 将李代数表示的矩阵映射为向量
exp 标量的指数映射
log 标量的对数映射
Exp 矩阵的指数映射,特别是将李代数表示的矩阵映射为李群表示的矩阵
Log 矩阵的对数映射,特别是将李群表示的矩阵映射为李代数表示的矩阵
g \mathfrak{g} g 李代数
G \mathbf{G} G 李群

1. 机器人和计算机视觉中为什么使用李群?

机器人技术和计算机视觉中的许多问题都设计到三维几何中的计算(operation)和估计。没有一个连贯和鲁棒的框架来表示和处理三维变换,这些任务既繁重又巨大。变换必须被结合,求逆,微分和内插。李群及其相关的机制解决了所有这些运算(operation)并且以有原则的方式完成,因此,一旦这样的直觉得到发展,它就能很好地被遵循。

2. 一般性质

2.1 矩阵李群

李群 G G G既是一个光滑可微流形又是一个群。本文处理的李群均为实矩阵群;群元素可以表示为 R n × n \R^{n\times n} Rn×n中的矩阵。群的乘法运算和逆运算等价于矩阵的乘法运算和逆运算。由于每个群可以由非奇异 n × n n\times n n×n矩阵的一个特定子类表示,因此其自由度小于 n 2 n^2 n2

2.2 李代数

每个李群都有一个相关的李代数,它是群在单位元附近的切空间。也就是说,李代数是一个向量空间,它是沿切线方向上的群变换在恒等元处进行微分得到的。切空间在所有群元素上都有相同的结构,每个群元素的切空间之间相互同构,因此我们可以仅仅研究单位元处的切空间。而切向量从一个切空间移动到另外一个切空间时会进行坐标变换。

考虑 R n × n \R^{n\times n} Rn×n中表示的一个具有k自由度的李群 G G G。李代数 g \mathfrak{g} g是李群G在单位元附近的微分变换的空间-切空间。这个切空间是一个k维向量空间,它的基元素是 { G 1 , ⋯   , G k } : 生 成 元 \left\{G_1,\cdots,G_k\right\}:生成元 {G1,,Gk}:。李代数 g \mathfrak{g} g的元素在中表示为矩阵,但是是在加法和标量乘法下,而不是在矩阵乘法下。李代数的基本元素称为生成元,所有切向量可以表示为生成元的线性组合。

2.3 non-commutativity

2.3.1 Adjoint representation

The Adjoint representation of G on R n \mathbb{R}^n Rn is defined as the operator A d G Ad_G AdG:
A d G ( X ) a = [ X [ a ] G ∧ X − 1 ] G ∨ , X ∈ G  and  a , b ∈ R n Ad_G(X)a=[X[a]_G^{\wedge}X^{-1}]_G^{\vee}, \text{$X\in G$ and $a,b\in\mathbb{R}^n$} AdG(X)a=[X[a]GX1]G,XG and a,bRn
The Adjoint representation of G on g \mathfrak{g} g is defined as the linear operator A d G Ad_G AdG, it captures properties related to commutation:
exp ⁡ G ( [ A d G ( X ) a ] G ∧ ) X = exp ⁡ G ( X [ a ] G ∧ X − 1 ) X = X exp ⁡ G ( [ a ] G ∧ ) , X ∈ G  and  a , b ∈ R n \exp_G([Ad_G(X)a]_G^{\wedge})X=\exp_G(X[a]_G^{\wedge}X^{-1})X=X\exp_G([a]_G^{\wedge}), \text{$X\in G$ and $a,b\in\mathbb{R}^n$} expG([AdG(X)a]G)X=expG(X[a]GX1)X=XexpG([a]G),XG and a,bRn
The Adjoint representation A d G ⊂ R n × n Ad_G\subset \mathbb{R}^{n\times n} AdGRn×n of G on R n \mathbb{R}^n Rn is defined as
exp ⁡ G ( [ a ] G ∧ ) X = X exp ⁡ G ( [ A d G ( X − 1 ) a ] G ∧ ) \exp_G([a]_G^{\wedge})X=X\exp_G([Ad_G(X^{-1})a]_G^{\wedge}) expG([a]G)X=XexpG([AdG(X1)a]G)

2.3.2 adjoint representation

The adjoint representation of G on R n \mathbb{R}^n Rn is defined as the operator a d G ad_G adG:
a d G ( a ) b = [ [ a ] G ∧ [ b ] G ∧ − [ b ] G ∧ [ a ] G ∧ ] G ∨ ad_G(a)b=[[a]_G^{\wedge}[b]_G^{\wedge}-[b]_G^{\wedge}[a]_G^{\wedge}]_G^{\vee} adG(a)b=[[a]G[b]G[b]G[a]G]G

3. SO(2)

3.1 描述及表示

SO(2)是二维平面上的旋转群。它的自由度为1:旋转角度。该群是可交换群。它的逆是它的转置:
X ∈ S O ( 2 ) ⊂ R 2 × 2 X − 1 = X T \begin{aligned} X &\in SO(2)\subset \R^{2\times 2}\\ X^{-1}&=X^T \end{aligned} XX1SO(2)R2×2=XT

3.2 李代数

李代数 s o ( 2 ) \mathfrak{so}(2) so(2)由反对称元素生成,对应于可微的旋转生成元(连续旋转):
G 1 = ( 0 − 1 1 0 ) \begin{aligned} G_1=\left(\begin{array}{cc}0&-1\\1&0\end{array}\right) \end{aligned} G1=(0110)

李代数中的元素可以由生成元乘以一个标量得到:
θ ∈ R θ G 1 ∈ s o ( 2 ) \begin{aligned} \theta \in \R\\ \theta G_1\in \mathfrak{so}(2) \end{aligned} θRθG1so(2)

3.3 指数映射和对数映射

从李代数 s o ( 2 ) \mathfrak{so}(2) so(2)到李群 S O ( 2 ) SO(2) SO(2)的指数映射是一个矩阵的指数映射,其结果是一个二维平面的旋转矩阵:
E x p ( a l g ( θ ) ) = E x p ( 0 − θ θ 0 ) = I + θ ∧ + 1 2 ! θ ∧ 2 + 1 3 ! θ ∧ 3 + ⋯ = I + ( 0 − θ θ 0 ) + 1 2 ! ( − θ 2 0 0 − θ 2 ) + 1 3 ! ( 0 θ 3 − θ 3 0 ) + ⋯ = ( cos ⁡ θ − sin ⁡ θ cos ⁡ θ cos ⁡ θ ) \begin{aligned} Exp(alg(\theta))&=Exp\left(\begin{array}{cc}0&-\theta\\\theta&0\end{array}\right)\\ &=I+\theta_\wedge+\frac{1}{2!}\theta_\wedge^2+\frac{1}{3!}\theta_\wedge^3+\cdots \\ &=I+\left(\begin{array}{cc}0&-\theta\\\theta&0\end{array}\right)+ \frac{1}{2!}\left(\begin{array}{cc}-\theta^2&0\\0&-\theta^2\end{array}\right)+ \frac{1}{3!}\left(\begin{array}{cc}0&\theta^3\\-\theta^3&0\end{array}\right)+\cdots \\ &=\left(\begin{array}{cc}\cos\theta&-\sin\theta\\\cos\theta&\cos\theta\end{array}\right) \end{aligned} Exp(alg(θ))=Exp(0θθ0)=I+θ+2!1θ2+3!1θ3+=I+(0θθ0)+2!1(θ200θ2)+3!1(0θ3θ30)+=(cosθcosθsinθcosθ)
对数映射可以很简单的通过 S O ( 2 ) SO(2) SO(2)的元素通过反三角函数得到。

3.4 伴随表示

SO(2)的伴随表示是平凡的(由于平面上的旋转是可交换的,因此SO(2)的伴随表示是恒等元):
X = ( a − b b a ) ∈ S O ( 2 ) , a 2 + b 2 = 1 A d j X ( a l g ( θ ) ) = X ⋅ a l g ( θ ) ⋅ X − 1 定义2 = ( 0 − θ θ 0 ) = a l g ( θ ) ⟹ A d j X = I \begin{aligned} X=\left(\begin{array}{cc}a&-b\\ b&a\end{array}\right)&\in SO(2),a^2+b^2=1\\ Adj_X(alg(\theta))&=X\cdot alg(\theta)\cdot X^{-1}&\text{定义2}\\ &=\left(\begin{array}{cc}0&-\theta\\\theta&0\end{array}\right)\\ &=alg(\theta)\\ \Longrightarrow Adj_X&=I \end{aligned} X=(abba)AdjX(alg(θ))AdjXSO(2),a2+b2=1=Xalg(θ)X1=(0θθ0)=alg(θ)=I定义2

如果按照定义3来计算,则 a l g ( A d j X ( θ ) ) = a l g ( θ ) → A d j X = 1 alg(Adj_X(\theta))=alg(\theta)\rightarrow Adj_X=1 alg(AdjX(θ))=alg(θ)AdjX=1

因为平面中旋转变换是可交换的,因此SO(2)的伴随作用是恒等函数(identity function)。

4. SE(2)

4.1 描述及表示

SE(2)是二维平面的刚体变换群,也是半直积 S O ( 2 ) ⋉ R 2 SO(2)\ltimes\R^2 SO(2)R2。它有三个自由度:平移对应2个自由度,旋转对应1个自由度。它的子群包括 S O ( 2 ) SO(2) SO(2)
R ∈ S O ( 2 ) t ∈ R 2 X = ( R t 0 1 × 2 1 ) ∈ S E ( 2 ) ⊂ R 3 × 3 X − 1 = ( R T − R T t 0 1 × 2 1 ) \begin{aligned} R&\in SO(2)\\ t&\in \R^2\\ X=\left(\begin{array}{cc}R&t\\0_{1\times 2}&1\end{array}\right) &\in SE(2)\subset\R^{3\times 3}\\ X^{-1}&=\left(\begin{array}{cc}R^T&-R^Tt\\0_{1\times 2}&1\end{array}\right) \end{aligned} RtX=(R01×2t1)X1SO(2)R2SE(2)R3×3=(RT01×2RTt1)

4.2 李代数

李代数 s e ( 2 ) \mathfrak{se}(2) se(2)有三个生成元
G 1 = ( 0 0 1 0 0 0 0 0 0 ) , G 2 = ( 0 0 0 0 0 1 0 0 0 ) , G 3 = ( 0 − 1 0 1 0 0 0 0 0 ) \begin{aligned} G_1=\left(\begin{array}{ccc}0&0&1\\0&0&0\\0&0&0\end{array}\right), G_2=\left(\begin{array}{ccc}0&0&0\\0&0&1\\0&0&0\end{array}\right), G_3=\left(\begin{array}{ccc}0&-1&0\\1&0&0\\0&0&0\end{array}\right) \end{aligned} G1=000000100,G2=000000010,G3=010100000

李代数中的元素可以表示成生成元的线性组合:
( u 1 , u 2 , θ ) T ∈ R 3 u 1 G 1 + u 2 G 2 + θ G 3 = ( 0 − θ u 1 θ 0 u 2 0 0 0 ) ∈ s e ( 2 ) \begin{aligned} (u_1,u_2,\theta)^T\in \R^3\\ u_1G_1+u_2G_2+\theta G_3=\left(\begin{array}{ccc}0&-\theta&u_1 \\ \theta&0&u_2\\0&0&0\end{array}\right)\in \mathfrak{se}(2) \end{aligned} (u1,u2,θ)TR3u1G1+u2G2+θG3=0θ0θ00u1u20se(2)

4.3 指数映射和对数映射

从李代数 s e ( 2 ) \mathfrak{se}(2) se(2)到李群SE(2)的指数映射有一个闭合形式:
v = ( θ x y ) ∈ R 3 R = ( cos ⁡ θ − sin ⁡ θ cos ⁡ θ cos ⁡ θ ) V = ( sin ⁡ θ θ − 1 − cos ⁡ θ θ 1 − cos ⁡ θ θ sin ⁡ θ θ ) E x p ( a l g ( v ) ) = E x p ( 0 − θ x θ 0 y 0 0 0 ) = ( R V ⋅ ( x y ) 0 1 × 2 1 ) \begin{aligned} v&=\left(\begin{array}{c}\theta\\x\\y\end{array}\right) \in \R^3 \\ R&=\left(\begin{array}{cc}\cos\theta&-\sin\theta\\\cos\theta&\cos\theta\end{array}\right)\\ V&=\left(\begin{array}{cc}\frac{\sin\theta}{\theta}&-\frac{1-\cos\theta}{\theta}\\\frac{1-\cos\theta}{\theta}&\frac{\sin\theta}{\theta}\end{array}\right)\\ Exp(alg(v))=Exp\left(\begin{array}{ccc}0&-\theta&x \\ \theta&0&y\\0&0&0\end{array}\right) &=\left(\begin{array}{cc}R& V\cdot \left(\begin{array}{c}x\\y \end{array}\right) \\0_{1\times 2}&1\end{array}\right) \end{aligned} vRVExp(alg(v))=Exp0θ0θ00xy0=θxyR3=(cosθcosθsinθcosθ)=(θsinθθ1cosθθ1cosθθsinθ)=R01×2V(xy)1
V是R的左雅克比矩阵。当 θ \theta θ是小量的时候,V的每个元素可以通过泰勒级数展开求解。

4.4 伴随表示

X = ( R t 0 1 × 2 1 ) = ( R ( t 1 t 2 ) 0 1 × 2 1 ) ∈ S E ( 2 ) A d j X = ( ( t 2 − t 1 ) R 1 0 1 × 2 ) \begin{aligned} X&=\left(\begin{array}{cc}R&t\\0_{1\times 2}&1\end{array}\right)=\left(\begin{array}{cc}R&\left(\begin{array}{c}t_1\\t_2 \end{array}\right)\\0_{1\times 2}&1\end{array}\right) \in SE(2)\\ Adj_X&=\left(\begin{array}{cc}\left(\begin{array}{c}t_2\\-t_1 \end{array}\right)&R\\1&0_{1\times 2}\end{array}\right) \end{aligned} XAdjX=(R01×2t1)=R01×2(t1t2)1SE(2)=(t2t1)1R01×2

如果 v = ( x y θ ) ∈ R 3 v=\left(\begin{array}{c}x\\y\\\theta\end{array}\right) \in \R^3 v=xyθR3,则 A d j X = ( R ( t 2 − t 1 ) 0 1 × 2 1 ) Adj_X=\left(\begin{array}{cc}R&\left(\begin{array}{c}t_2\\-t_1 \end{array}\right)\\0_{1\times 2}&1\end{array}\right) AdjX=R01×2(t2t1)1

5. Sim(2)

5.1 描述及表示

Sim(2)是二维平面上保持方向相似变换的群,也是半直积 S E ( 2 ) ⋊ R ∗ SE(2)\rtimes \R^* SE(2)R。它有4个自由度:平移有2个自由度,旋转有1个自由度,尺度对应1个自由度。它的子群包括: S E ( 2 ) SE(2) SE(2) R ∗ R^* R
R ∈ S O ( 2 ) t ∈ R 2 X = ( R t 0 1 × 2 s − 1 ) ∈ S i m ( 2 ) ⊂ R 3 × 3 X − 1 = ( R T − s R T t 0 1 × 2 s ) \begin{aligned} R&\in SO(2)\\ t&\in \R^2\\ X=\left(\begin{array}{cc}R&t\\0_{1\times 2}&s^{-1}\end{array}\right) &\in Sim(2)\subset\R^{3\times 3}\\ X^{-1}&=\left(\begin{array}{cc}R^T&-sR^Tt\\0_{1\times 2}&s\end{array}\right) \end{aligned} RtX=(R01×2ts1)X1SO(2)R2Sim(2)R3×3=(RT01×2sRTts)

5.2 李代数

李代数 s i m ( 2 ) \mathfrak{sim}(2) sim(2)有4个生成元:
G 1 = ( 0 0 1 0 0 0 0 0 0 ) , G 2 = ( 0 0 0 0 0 1 0 0 0 ) , G 3 = ( 0 − 1 0 1 0 0 0 0 0 ) , G 4 = ( 0 0 0 0 0 0 0 0 − 1 ) \begin{aligned} G_1=\left(\begin{array}{ccc}0&0&1\\0&0&0\\0&0&0\end{array}\right), G_2=\left(\begin{array}{ccc}0&0&0\\0&0&1\\0&0&0\end{array}\right), G_3=\left(\begin{array}{ccc}0&-1&0\\1&0&0\\0&0&0\end{array}\right), G_4=\left(\begin{array}{ccc}0&0&0\\0&0&0\\0&0&-1\end{array}\right) \end{aligned} G1=000000100,G2=000000010,G3=010100000G4=000000001

5.3 指数映射和对数映射

从李代数 s i m ( 2 ) \mathfrak{sim}(2) sim(2)到李群 S i m ( 2 ) Sim(2) Sim(2)的指数映射得到一个闭合形式结果:
v = ( x y θ λ ) ∈ R 4 R = ( cos ⁡ θ − sin ⁡ θ cos ⁡ θ cos ⁡ θ ) A = sin ⁡ θ θ B = 1 − cos ⁡ θ θ C = θ − sin ⁡ θ θ 3 α = λ 2 λ 2 + θ 2 s = e λ X = α ( 1 − s − 1 λ ) + ( 1 − α ) ( A − λ B ) Y = α ( s − 1 − 1 + λ λ 2 ) + ( 1 − α ) ( B − λ C ) V = ( X − θ Y θ Y X ) E x p ( a l g ( v ) ) = E x p ( 0 − θ x θ 0 y 0 0 − λ ) = ( R V ⋅ ( x y ) 0 1 × 2 s − 1 ) \begin{aligned} v&=\left(\begin{array}{c}x\\y\\\theta\\\lambda\end{array}\right) \in \R^4\\ \\ R&=\left(\begin{array}{cc}\cos\theta&-\sin\theta\\\cos\theta&\cos\theta\end{array}\right)\\ A&=\frac{\sin\theta}{\theta}\\ B&=\frac{1-\cos\theta}{\theta}\\ C&=\frac{\theta-\sin\theta}{\theta^3}\\ \alpha&=\frac{\lambda^2}{\lambda^2+\theta^2}\\ s&=e^\lambda\\ X&=\alpha(\frac{1-s^{-1}}{\lambda})+(1-\alpha)(A-\lambda B)\\ Y&=\alpha(\frac{s^{-1}-1+\lambda}{\lambda^2})+(1-\alpha)(B-\lambda C)\\ V&=\left(\begin{array}{cc}X &-\theta Y\\\theta Y&X\end{array}\right)\\ Exp(alg(v))=Exp\left(\begin{array}{ccc}0&-\theta&x \\ \theta&0&y\\0&0&-\lambda\end{array}\right) &=\left(\begin{array}{cc}R& V\cdot \left(\begin{array}{c}x\\y \end{array}\right) \\0_{1\times 2}&s^{-1}\end{array}\right) \end{aligned} vRABCαsXYVExp(alg(v))=Exp0θ0θ00xyλ=xyθλR4=(cosθcosθsinθcosθ)=θsinθ=θ1cosθ=θ3θsinθ=λ2+θ2λ2=eλ=α(λ1s1)+(1α)(AλB)=α(λ2s11+λ)+(1α)(BλC)=(XθYθYX)=R01×2V(xy)s1
θ \theta θ λ \lambda λ比较小的时候,V中的元素可以通过泰勒级数展开计算。

5.4 伴随表示

X = ( R t 0 1 × 2 s − 1 ) = ( R ( t 1 t 2 ) 0 1 × 2 s − 1 ) ∈ S i m ( 2 ) A d j X = ( s R s ( t 2 − t 1 − t 1 − t 2 ) 0 2 × 2 I 2 × 2 ) \begin{aligned} X&=\left(\begin{array}{cc}R&t\\0_{1\times 2}&s^{-1}\end{array}\right)=\left(\begin{array}{cc}R&\left(\begin{array}{c}t_1\\t_2 \end{array}\right)\\0_{1\times 2}&s^{-1}\end{array}\right) \in Sim(2)\\ Adj_X&=\left(\begin{array}{cc}sR&s\left(\begin{array}{cc}t_2&-t_1\\-t_1&-t_2 \end{array}\right)\\0_{2\times2}&I_{2\times2}\end{array}\right) \end{aligned} XAdjX=(R01×2ts1)=R01×2(t1t2)s1Sim(2)=sR02×2s(t2t1t1t2)I2×2

6. A f f ( 2 ) Aff(2) Aff(2)

6.1 描述及表示、

A f f ( 2 ) Aff(2) Aff(2)是二维平面上的一个仿射变换群。它有6个自由度:平移对应2个自由度,旋转对应1个自由度,缩放(尺度,scale)对应1个自由度,拉伸(stretch)对应1个自由度,剪切(shear)对应1个自由度。它的子群包括 S i m ( 2 ) Sim(2) Sim(2)
X = ( A t 0 1 × 2 1 ) ∈ A f f ( 2 ) ⊂ R 3 × 3 X − 1 = ( A T − A T t 0 1 × 2 1 ) \begin{aligned} X=\left(\begin{array}{cc}A&t\\0_{1\times 2}&1\end{array}\right) &\in Aff(2)\subset\R^{3\times 3}\\ X^{-1}&=\left(\begin{array}{cc}A^T&-A^Tt\\0_{1\times 2}&1\end{array}\right) \end{aligned} X=(A01×2t1)X1Aff(2)R3×3=(AT01×2ATt1)

6.2 李代数

李代数 a f f ( 2 ) \mathfrak{aff}(2) aff(2)有6个生成元:
G 1 = ( 0 0 1 0 0 0 0 0 0 ) , G 2 = ( 0 0 0 0 0 1 0 0 0 ) , G 3 = ( 0 − 1 0 1 0 0 0 0 0 ) , G 4 = ( 1 0 0 0 1 0 0 0 0 ) , G 5 = ( 1 0 0 0 − 1 0 0 0 0 ) , G 6 = ( 0 1 0 1 0 0 0 0 0 ) \begin{aligned} G_1=\left(\begin{array}{ccc}0&0&1\\0&0&0\\0&0&0\end{array}\right), G_2=\left(\begin{array}{ccc}0&0&0\\0&0&1\\0&0&0\end{array}\right), G_3=\left(\begin{array}{ccc}0&-1&0\\1&0&0\\0&0&0\end{array}\right),\\ G_4=\left(\begin{array}{ccc}1&0&0\\0&1&0\\0&0&0\end{array}\right), G_5=\left(\begin{array}{ccc}1&0&0\\0&-1&0\\0&0&0\end{array}\right), G_6=\left(\begin{array}{ccc}0&1&0\\1&0&0\\0&0&0\end{array}\right) \end{aligned} G1=000000100,G2=000000010,G3=010100000G4=100010000,G5=100010000,G6=010100000

6.3 指数映射和对数映射

从李代数 a f f ( 2 ) \mathfrak{aff}(2) aff(2)到李群 A f f ( 2 ) Aff(2) Aff(2)的指数映射没有闭合形式。它可以用任何一般的矩阵指数例程计算。对数映射也是一样的。

6.4 伴随表示


X = ( A t 0 1 × 2 1 ) = ( a b x c d y 0 0 1 ) ∈ A f f ( 2 ) ⊂ R 3 × 3 E = ( A t 0 1 × 2 1 ) \begin{aligned} X=\left(\begin{array}{cc}A&t\\0_{1\times 2}&1\end{array}\right)=\left(\begin{array}{ccc}a&b&x\\c&d&y\\0&0&1\end{array}\right) &\in Aff(2)\subset\R^{3\times 3}\\ E&=\left(\begin{array}{cc}A&t\\0_{1\times 2}&1\end{array}\right) \end{aligned} X=(A01×2t1)=ac0bd0xy1EAff(2)R3×3=(A01×2t1)

A d j X = E T ( A − T ⋅ C 0 2 × 4 C ) E \begin{aligned} Adj_X&=E^T\left(\begin{array}{cc}A&-T\cdot C\\0_{2\times4}&C\end{array}\right)E \end{aligned} AdjX=ET(A02×4TCC)E
明确写出乘积就是:
A d j X = ( a b f y ( a 2 + b 2 ) − f x ( a c + b d ) − x f y ( 2 a b ) − f x ( a d + b c ) f x ( a c − b d ) − f y ( a 2 − b 2 ) c d f y ( a c + b d ) − f x ( c 2 + d 2 ) − y f y ( a d + b c ) − f x ( 2 c d ) f x ( c 2 − d 2 ) − f y ( a c − b d ) 0 0 f 2 ( s 2 + b 2 + c 2 + d 2 ) 0 f ( a b + c d ) f 2 ( − a 2 + b 2 − c 2 + d 2 ) 0 0 0 1 0 0 0 0 f ( a c + b d ) 0 f ( a d + b c ) f ( b d − a c ) 0 0 f 2 ( − a 2 − b 2 + c 2 + d 2 ) 0 f ( c d − a b ) f 2 ( a 2 − b 2 − c 2 + d 2 ) ) \begin{aligned} Adj_X&=\left(\begin{array}{cccccc}a&b& fy(a^2+b^2)-fx(ac+bd)&-x&fy(2ab)-fx(ad+bc)&fx(ac-bd)-fy(a^2-b^2)\\ c&d&fy(ac+bd)-fx(c^2+d^2)&-y&fy(ad+bc)-fx(2cd)&fx(c^2-d^2)-fy(ac-bd)\\ 0&0&\frac{f}{2}(s^2+b^2+c^2+d^2)&0&f(ab+cd)&\frac{f}{2}(-a^2+b^2-c^2+d^2)\\ 0&0&0&1&0&0\\ 0&0&f(ac+bd)&0&f(ad+bc)&f(bd-ac)\\ 0&0&\frac{f}{2}(-a^2-b^2+c^2+d^2)&0&f(cd-ab)&\frac{f}{2}(a^2-b^2-c^2+d^2) \end{array}\right) \end{aligned} AdjX=ac0000bd0000fy(a2+b2)fx(ac+bd)fy(ac+bd)fx(c2+d2)2f(s2+b2+c2+d2)0f(ac+bd)2f(a2b2+c2+d2)xy0100fy(2ab)fx(ad+bc)fy(ad+bc)fx(2cd)f(ab+cd)0f(ad+bc)f(cdab)fx(acbd)fy(a2b2)fx(c2d2)fy(acbd)2f(a2+b2c2+d2)0f(bdac)2f(a2b2c2+d2)

7. SO(3)

7.1 描述及表示

三维旋转群的每个元素 S O ( 3 ) SO(3) SO(3)可以由行列式等于1的三维旋转矩阵表示。它的自由度为3:每个旋转轴对应1个自由度。群元素的组合和逆对应于矩阵的乘法和逆运算。因为旋转矩阵是正交的,所以它的逆等于它的转置。
R ∈ S O ( 3 ) ⊂ R 3 × 3 R − 1 = R T invSO3 det ⁡ ( R ) = 1 \begin{aligned} R &\in SO(3)\subset \R^{3\times 3}\\ R^{-1}&=R^T&\text{invSO3}\\ \det (R)&=1 \end{aligned} RR1det(R)SO(3)R3×3=RT=1invSO3

7.2 李代数

李代数 s o ( 3 ) \mathfrak{so}(3) so(3)是所有 3 × 3 3\times3 3×3反对称矩阵的集合,它由各轴的微分旋转产生:
G 1 = ( 0 0 0 0 0 − 1 0 1 0 ) , G 2 = ( 0 0 1 0 0 0 − 1 0 0 ) , G 3 = ( 0 − 1 0 1 0 0 0 0 0 ) \begin{aligned} G_1=\left(\begin{array}{ccc}0&0&0\\0&0&-1\\0&1&0\end{array}\right), G_2=\left(\begin{array}{ccc}0&0&1\\0&0&0\\-1&0&0\end{array}\right), G_3=\left(\begin{array}{ccc}0&-1&0\\1&0&0\\0&0&0\end{array}\right) \end{aligned} G1=000001010,G2=001000100,G3=010100000
李代数 s o ( 3 ) \mathfrak{so}(3) so(3)的所有元素可以写成生成元的线性组合:
w ∈ R 3 w 1 G 1 + w 2 G 2 + w 3 G 3 ∈ s o ( 3 ) \begin{aligned} w&\in \R^3\\ w_1G_1+w_2G_2+w_3G_3&\in \mathfrak{so}(3) \end{aligned} ww1G1+w2G2+w3G3R3so(3)
映射 a l g : R 3 → s o ( 3 ) alg:\R^3\rightarrow \mathfrak{so}(3) alg:R3so(3)将三维向量映射为反对称矩阵:
w = ( a b c ) a l g ( w ) = w ∧ HatSO3 = ( 0 − c b b 0 − a − b a 0 ) \begin{aligned} w&=\left(\begin{array}{c}a\\b\\c\end{array}\right)\\ alg(w)&=w_\wedge&\text{HatSO3}\\ &=\left(\begin{array}{ccc}0&-c&b\\b&0&-a\\-b&a&0\end{array}\right) \end{aligned} walg(w)=abc=w=0bbc0aba0HatSO3

dualHatSO3: w_hat * x = x_dual_hat * w x_dual_hat= − H a t S O 3 ( x ) -HatSO3(x) HatSO3(x)

李代数到向量的映射VecSO3为: w = ( w ∧ ( 3 , 2 ) ; w ∧ ( 1 , 3 ) ; w ∧ ( 2 , 1 ) ) w=(w_{\wedge}(3,2);w_{\wedge}(1,3);w_{\wedge}(2,1)) w=(w(3,2);w(1,3);w(2,1))

normalizeSO3: [ u , s , v ] = s v d ( R ) ; R n o r m = v ∗ v ’ [u,s,v]=svd(R); Rnorm=v*v’ [u,s,v]=svd(R);Rnorm=vv

PhiSO3:
P h i w = I 3 × 3 + 1 2 ∣ ∣ w ∣ ∣ 2 ( 4 − ∣ ∣ w ∣ ∣ sin ⁡ ( ∣ ∣ w ∣ ∣ ) − 4 cos ⁡ ( ∣ ∣ w ∣ ∣ ) ) ∗ a d S O 3 ( w ) + 1 2 ∣ ∣ w ∣ ∣ 3 ( 4 ∣ ∣ w ∣ ∣ − 5 sin ⁡ ( ∣ ∣ w ∣ ∣ ) + ∣ ∣ w ∣ ∣ cos ⁡ ( ∣ ∣ w ∣ ∣ ) ) ∗ a d S O 3 ( w ) 2 + 1 2 ∣ ∣ w ∣ ∣ 4 ( 2 − ∣ ∣ w ∣ ∣ sin ⁡ ( ∣ ∣ w ∣ ∣ ) − 2 cos ⁡ ( ∣ ∣ w ∣ ∣ ) ) ∗ a d S O 3 ( w ) 3 + 1 2 ∣ ∣ w ∣ ∣ 5 ( 2 ∣ ∣ w ∣ ∣ − 3 sin ⁡ ( ∣ ∣ w ∣ ∣ ) + ∣ ∣ w ∣ ∣ cos ⁡ ( ∣ ∣ w ∣ ∣ ) ) ∗ a d S O 3 ( w ) 4 Phiw=I_{3\times 3}+\frac{1}{2||w||^2}(4-||w||\sin(||w||)-4\cos(||w||))*ad_{SO3}(w)\\ +\frac{1}{2||w||^3}(4||w||-5\sin(||w||)+||w||\cos(||w||))*ad_{SO3}(w)^2\\ +\frac{1}{2||w||^4}(2-||w||\sin(||w||)-2\cos(||w||))*ad_{SO3}(w)^3\\ +\frac{1}{2||w||^5}(2||w||-3\sin(||w||)+||w||\cos(||w||))*ad_{SO3}(w)^4\\ Phiw=I3×3+2w21(4wsin(w)4cos(w))adSO3(w)+2w31(4w5sin(w)+wcos(w))adSO3(w)2+2w41(2wsin(w)2cos(w))adSO3(w)3+2w51(2w3sin(w)+wcos(w))adSO3(w)4

7.3 指数映射和对数映射

从李代数到李群的指数映射有闭合形式,该闭合形式也称为罗德里格斯公式。切向量w可以解释为旋转的轴角表示:它的指数是围绕轴 w ∣ ∣ w ∣ ∣ \frac{w}{||w||} ww旋转 ∣ ∣ w ∣ ∣ ||w|| w弧度:
w ∈ R 3 θ = w T w = ∣ ∣ w ∣ ∣ w ∧ 3 = − θ 2 w ∧ E x p ( a l g ( w ) ) = E x p ( w ∧ ) = I + w ∧ + 1 2 ! w ∧ 2 + 1 3 ! w ∧ 3 + ⋯ = I + ( sin ⁡ θ θ ) w ∧ + ( 1 − cos ⁡ θ θ 2 ) w ∧ 2 \begin{aligned} w&\in\R^3\\ \theta&=\sqrt{w^Tw}=||w||\\ w_\wedge^3&=-\theta^2w_\wedge\\ Exp(alg(w))&=Exp(w_\wedge)\\ &=I+w_\wedge+\frac{1}{2!}w_\wedge^2+\frac{1}{3!}w_\wedge^3+\cdots\\ &=I+(\frac{\sin \theta}{\theta})w_\wedge+(\frac{1-\cos\theta}{\theta^2})w_\wedge^2 \end{aligned} wθw3Exp(alg(w))R3=wTw =w=θ2w=Exp(w)=I+w+2!1w2+3!1w3+=I+(θsinθ)w+(θ21cosθ)w2
θ \theta θ较小时,R的系数可以由泰勒级数计算。

从李群SO(3)到李代数 s o ( 3 ) \mathfrak{so}(3) so(3)的对数映射可以计算如下:给定一个旋转矩阵 R ∈ S O ( 3 ) R\in SO(3) RSO(3),对数映射可以先确定 cos ⁡ θ = 1 2 ( t r ( R ) − 1 ) \cos\theta=\frac{1}{2}(tr(R)-1) cosθ=21(tr(R)1),然后计算 w w w,w可以从 L o g ( R ) Log(R) Log(R)中的非对角线元素中取下来合成该向量。
R ∈ S O ( 3 ) θ = arccos ⁡ ( t r ( R ) − 1 2 ) L o g ( R ) = θ 2 sin ⁡ θ ⋅ ( R − R T ) \begin{aligned} R&\in SO(3)\\ \theta &=\arccos (\frac{tr(R)-1}{2})\\ Log(R)&=\frac{\theta}{2\sin\theta}\cdot(R-R^T) \end{aligned} RθLog(R)SO(3)=arccos(2tr(R)1)=2sinθθ(RRT)
θ \theta θ较小时, θ 2 sin ⁡ θ \frac{\theta}{2\sin\theta} 2sinθθ的系数可以由泰勒级数展开计算。

7.4 伴随表示

对于三维空间中的旋转群 S O ( 3 ) SO(3) SO(3)以及李代数 w ∧ w_\wedge w,考虑伴随表示的计算公式
R ∈ S O ( 3 ) a l g ( w ) ∈ s o ( 3 ) E x p [ a l g ( A d j R ⋅ w ) ] = R ⋅ E x p [ a l g ( w ) ] ⋅ R − 1 a l g ( A d j R ⋅ w ) = R ⋅ a l g ( w ) ⋅ R − 1 \begin{aligned} R&\in SO(3)\\ alg(w) &\in \mathfrak{so}(3)\\ Exp[alg(Adj_R \cdot w)]&=R\cdot Exp[alg(w)]\cdot R^{-1}\\ alg(Adj_R \cdot w)&=R\cdot alg(w)\cdot R^{-1} \end{aligned} Ralg(w)Exp[alg(AdjRw)]alg(AdjRw)SO(3)so(3)=RExp[alg(w)]R1=Ralg(w)R1
由于叉积的性质,SO(3)的伴随表示实际上与旋转矩阵表示相同:
R ∈ S O ( 3 ) a , b , c ∈ R 3 a = b × c ⟺ ( R a ) = ( R b ) × ( R c ) ⟺ a = R − 1 ( R b ) × ( R c ) ⟺ R − 1 ( R b ) × R = b × ⟹ R b ∧ R T = ( R b ) ∧ a l g ( b ) ∈ s o ( 3 ) E x p [ a l g ( A d j R ( b ) ) ] = R ⋅ E x p [ a l g ( b ) ] ⋅ R − 1 定义3 a l g ( A d j R ( b ) ) = R ⋅ a l g ( b ) ⋅ R − 1 = R ⋅ ( ∑ i = 1 3 b i G i ) ⋅ R − 1 = a l g ( R b ) A d j R ( b ) = R b A d j R = R \begin{aligned} R&\in SO(3)\\ a,b,c &\in \R^3\\ a=b\times c&\Longleftrightarrow (Ra)=(Rb)\times (Rc)\\ &\Longleftrightarrow a=R^{-1}(Rb)\times (Rc)\\ &\Longleftrightarrow R^{-1}(Rb)\times R=b\times\\ &\Longrightarrow R b_\wedge R^T=(R b)_\wedge \\ alg(b)&\in \mathfrak{so}(3)\\ Exp[alg(Adj_R(b))]&=R \cdot Exp[alg(b)]\cdot R^{-1}&\text{定义3}\\ alg(Adj_R(b))&=R \cdot alg(b)\cdot R^{-1}=R \cdot (\sum_{i=1}^3b_iG_i)\cdot R^{-1}=alg(Rb)\\ Adj_R(b)&=Rb\\ Adj_R&=R \end{aligned} Ra,b,ca=b×calg(b)Exp[alg(AdjR(b))]alg(AdjR(b))AdjR(b)AdjRSO(3)R3(Ra)=(Rb)×(Rc)a=R1(Rb)×(Rc)R1(Rb)×R=b×RbRT=(Rb)so(3)=RExp[alg(b)]R1=Ralg(b)R1=R(i=13biGi)R1=alg(Rb)=Rb=R定义3

ad表示: a d = a d S 0 ( 3 ) ( w ) = H a t S O 3 ( w ) ad=ad_{S0(3)}(w)=HatSO3(w) ad=adS0(3)(w)=HatSO3(w)

Ad表示: A d = A d S O ( 3 ) ( R ) = R Ad=Ad_{SO(3)}(R)=R Ad=AdSO(3)(R)=R

7.5 雅克比

7.5.1 李群 S O ( 3 ) SO(3) SO(3)作用于空间 R 3 \R^3 R3的微分

考虑李群中的一个元素 R ∈ S O ( 3 ) R\in SO(3) RSO(3),同时 x ∈ R 3 x\in \R^3 xR3。通过旋转矩阵R来旋转向量x,结果为向量左乘旋转矩阵:
y = f ( R , x ) = R x y=f(R,x)=Rx y=f(R,x)=Rx
对向量的微分很简单,因为f在x中是线性的:
∂ y ∂ x = R \frac{\partial y}{\partial x}=R xy=R
对旋转参数的微分是通过隐式左乘旋转切向量的指数并在零附近扰动表达式进行微分实现的。这等价于生成元左边乘以y得到的:
∂ y ∂ R = ∂ ∂ w ∣ w = 0 ( e x p ( w ) ⋅ R ) ⋅ x = ∂ ∂ w ∣ w = 0 e x p ( w ) ⋅ ( R ⋅ x ) = ∂ ∂ w ∣ w = 0 e x p ( w ) ⋅ y = ( G 1 y ∣ G 2 y ∣ G 3 y ) = − y ∧ \begin{aligned} \frac{\partial y}{\partial R}&=\frac{\partial }{\partial w}|_{w=0}(exp(w)\cdot R)\cdot x\\ &=\frac{\partial }{\partial w}|_{w=0}exp(w)\cdot (R\cdot x)\\ &=\frac{\partial }{\partial w}|_{w=0}exp(w)\cdot y\\ &=(G_1 y|G_2 y|G_3 y)\\ &=-y_\wedge \end{aligned} Ry=ww=0(exp(w)R)x=ww=0exp(w)(Rx)=ww=0exp(w)y=(G1yG2yG3y)=y

7.5.2 通过群中的一个参数对群-值函数微分

考虑一个群G和群上的一个映射 f : G → G f:G\rightarrow G f:GG。由于定义域和值域都不是向量空间,通过切空间扰动在输入变量端引入参数,在结果端也可以引入参数,然后我们通过微分记号可以得到从输入扰动到输出扰动的一个映射关系:
exp ⁡ ( ϵ ) ⋅ f ( g ) = f ( exp ⁡ ( δ ) ⋅ g ) ∂ f ∂ g ≡ ∂ ϵ ∂ δ ∣ δ = 0 \begin{aligned} \exp(\epsilon)\cdot f(g)&=f(\exp(\delta)\cdot g)\\ \frac{\partial f}{\partial g}&\equiv\frac{\partial \epsilon}{\partial \delta}|_{\delta=0} \end{aligned} exp(ϵ)f(g)gf=f(exp(δ)g)δϵδ=0
求解 ϵ \epsilon ϵ并且微分得到输入扰动 δ \delta δ对输出扰动 ϵ \epsilon ϵ微分的显示表达式:
ϵ = log ⁡ ( f ( exp ⁡ ( δ ) ⋅ g ) ⋅ f ( g ) − 1 ) ∂ f ∂ g ≡ ∂ log ⁡ ( f ( exp ⁡ ( δ ) ⋅ g ) ⋅ f ( g ) − 1 ) ∂ δ ∣ δ = 0 \begin{aligned} \epsilon&=\log(f(\exp(\delta)\cdot g)\cdot f(g)^{-1})\\ \frac{\partial f}{\partial g}&\equiv\frac{\partial \log(f(\exp(\delta)\cdot g)\cdot f(g)^{-1})}{\partial \delta}|_{\delta=0} \end{aligned} ϵgf=log(f(exp(δ)g)f(g)1)δlog(f(exp(δ)g)f(g)1)δ=0
上式产生了一个从参数的左切空间扰动到结果的左切空间扰动的映射。正如所料,如果将这个微分简写应用于恒等函数 f ( g ) = g f(g)=g f(g)=g,就得到了单位矩阵。

对于此过程的一个重要示例应用,考虑群 G = S O ( 3 ) G=SO(3) G=SO(3)中的元素与第二个因子 R 0 R_0 R0相乘:
R 2 = f ( R 0 ) ≡ R 1 ⋅ R 0 \begin{aligned} R_2=f(R_0)\equiv R_1\cdot R_0 \end{aligned} R2=f(R0)R1R0
首先,切空间so(3)中的输入扰动和输出扰动都是明确的:
exp ⁡ ( ϵ ) ⋅ R 2 = R 1 ⋅ exp ⁡ ( w ) ⋅ R 0 \begin{aligned} \exp(\epsilon)\cdot R_2= R_1\cdot\exp(w)\cdot R_0\end{aligned} exp(ϵ)R2=R1exp(w)R0
输入扰动w对 ϵ \epsilon ϵ的微分是在 w = 0 w=0 w=0附近进行的。伴随映射将切向量移动到表达式的左边。表达式的其余部分抵消,结果很简单。
∂ R 2 ∂ R 0 ≡ ∂ log ⁡ ( ( R 1 ⋅ exp ⁡ ( w ) ⋅ R 0 ) ⋅ ( R 1 ⋅ R 0 ) − 1 ) ∂ w ∣ w = 0 = ∂ ∂ w ∣ w = 0 log ⁡ ( exp ⁡ ( A d j R 1 ⋅ w ⋅ R 1 ⋅ R 0 ) ⋅ ( R 1 ⋅ R 0 ) − 1 ) = ∂ ∂ w ∣ w = 0 [ log ⁡ ( exp ⁡ ( A d j R 1 ⋅ w ) ) ] = ∂ ∂ w ∣ w = 0 [ A d j R 1 ⋅ w ] = A d j R 1 = R 1 \begin{aligned} \frac{\partial R_2}{\partial R_0}&\equiv\frac{\partial \log((R_1\cdot \exp(w)\cdot R_0)\cdot (R_1\cdot R_0)^{-1})}{\partial w}|_{w=0}\\ &=\frac{\partial }{\partial w}|_{w=0}\log(\exp(Adj_{R_1}\cdot w\cdot R_1\cdot R_0)\cdot (R_1\cdot R_0)^{-1})\\ &=\frac{\partial }{\partial w}|_{w=0}[\log(\exp(Adj_{R_1}\cdot w))]\\ &=\frac{\partial }{\partial w}|_{w=0}[Adj_{R_1}\cdot w]=Adj_{R_1}=R_1 \end{aligned} R0R2wlog((R1exp(w)R0)(R1R0)1)w=0=ww=0log(exp(AdjR1wR1R0)(R1R0)1)=ww=0[log(exp(AdjR1w))]=ww=0[AdjR1w]=AdjR1=R1

7.6 SO(3)上的高斯分布

7.6.1 采样

我们可以对三维旋转的高斯分布进行规定:用SO(3)中的元素表示均值,用so(3)中的一个切向量的二次形式表示协方差。更精确的说,考虑高斯分布的均值 R ∈ S O ( 3 ) R\in SO(3) RSO(3),协方差为 Σ ∈ R 3 × 3 \Sigma \in \R^{3\times 3} ΣR3×3。我们可以通过在切空间中对零均值分布采样,然后用它左乘均值,从而从分布中采样得到一个旋转S:
ϵ ∈ N ( 0 , Σ ) S = exp ⁡ ( ϵ ) ⋅ R \epsilon \in N(0,\Sigma)\\ S=\exp(\epsilon)\cdot R ϵN(0,Σ)S=exp(ϵ)R

7.6.2 不确定旋转的合成

给定了旋转上的两个高斯分布,利用伴随变换可以构造出两个不确定变换。记其中一个零均值方程对为 ( R 0 , Σ 0 ) (R_0,\Sigma_0) (R0,Σ0),另外一个记为 R 1 , Σ 1 R_1,\Sigma_1 R1,Σ1。那么先经过 R 0 R_0 R0变换,再经过 R 1 R_1 R1旋转得到的旋转的分布可以记为:
( R 1 , Σ 1 ) ∘ ( R 0 , Σ 0 ) = ( R 1 ⋅ R 0 , Σ 1 + R 1 ⋅ Σ 0 ⋅ R 1 T ) (R_1,\Sigma_1)\circ (R_0,\Sigma_0)=(R_1\cdot R_0,\Sigma_1+R_1\cdot \Sigma_0\cdot R_1^T) (R1,Σ1)(R0,Σ0)=(R1R0,Σ1+R1Σ0R1T)

7.6.3 旋转估计的贝叶斯组合

这两个高斯分布的信息矩阵 ( R c , Σ c ) (R_c,\Sigma_c) (Rc,Σc)可以通过贝叶斯方法组合得到:首先找出切空间中两个向量之间的偏差,然后对两个向量的估计通过信息矩阵进行加权。信息矩阵(也即协方差矩阵的逆)可以像往常一样计算:
Σ = ( Σ 0 − 1 + Σ 1 − 1 ) − 1 = Σ 0 − Σ 0 ( Σ 0 + Σ 1 ) − 1 Σ 0 协方差更新 v = R 1 ⊖ R 0 = L o g ( R 1 ⋅ R 0 − 1 ) 新息 R c = E x p ( Σ c ⋅ Σ 1 − 1 ⋅ v ) ⋅ R 0 均值更新 \begin{aligned} \Sigma&=(\Sigma_0^{-1}+\Sigma_1^{-1})^{-1}=\Sigma_0-\Sigma_0(\Sigma_0+\Sigma_1)^{-1}\Sigma_0&\text{协方差更新}\\ v&=R_1\ominus R_0=Log(R_1\cdot R_0^{-1})&\text{新息}\\ R_c&=Exp(\Sigma_c\cdot \Sigma_1^{-1}\cdot v)\cdot R_0&\text{均值更新} \end{aligned} ΣvRc=(Σ01+Σ11)1=Σ0Σ0(Σ0+Σ1)1Σ0=R1R0=Log(R1R01)=Exp(ΣcΣ11v)R0协方差更新新息均值更新

7.7 SO(3)上的EKF

两个不确定旋转的组合可以看作EKF的动力学更新过程,其中 ( R 0 , Σ 0 ) (R_0,\Sigma_0) (R0,Σ0)看作是状态的先验信息, ( R 1 , Σ 1 ) (R_1,\Sigma_1) (R1,Σ1)是系统的动力学模型。

旋转估计的贝叶斯组合可以看作是EKF的量测过程中的均值更新(假设量测更新雅克比矩阵是单位矩阵,量测矩阵为单位矩阵)和协方差更新。而切向量v是EKF量测更新过程中的新息。

如果量测矩阵为单位矩阵,则EKF的卡尔曼滤波增益K计算如下:
K = Σ 0 ( Σ 0 + Σ 1 ) − 1 K=\Sigma_0(\Sigma_0+\Sigma_1)^{-1} K=Σ0(Σ0+Σ1)1
所以卡尔曼更新可以写成如下标准形式:
Σ = ( I − k ) Σ 0 协方差更新 R c = R o ⊕ ( K ⋅ v ) = E x p ( K ⋅ v ) ⋅ R 0 均值更新 \begin{aligned}\Sigma&=(I-k)\Sigma_0&\text{协方差更新}\\R_c&=R_o\oplus (K\cdot v)= Exp(K\cdot v)\cdot R_0&\text{均值更新}\end{aligned} ΣRc=(Ik)Σ0=Ro(Kv)=Exp(Kv)R0协方差更新均值更新
j将上述方程记为标准EKF框架,给出的状态协方差为 Σ 0 \Sigma_0 Σ0,量测噪声为 Σ 1 \Sigma_1 Σ1

如果雅克比矩阵是一个非平凡的测量,则需要对所给的方程做一个简单的修改。

8. SE(3)

8.1 描述及表示

SE(3)是三维空间中的刚体变换群,同时也是半直积: S O ( 3 ) ⋉ R 3 SO(3)\ltimes \R^3 SO(3)R3。它有6个自由度:三维空间平移对应3个自由度,三维空间旋转对应3个自由度。它的子群包括: S E ( 2 ) SE(2) SE(2) S O ( 3 ) SO(3) SO(3)
R ∈ S O ( 3 ) t ∈ R 3 X = ( R t 0 1 × 3 1 ) ∈ S E ( 3 ) ⊂ R 4 × 4 HatSE3 X 1 , X 2 ∈ S E ( 3 ) X 1 ⋅ X 2 = ( R 1 t 1 0 1 × 3 1 ) ( R 2 t 2 0 1 × 3 1 ) = ( R 1 R 2 R 1 t 2 + t 1 0 1 × 3 1 ) X − 1 = ( R T − R T t 0 1 × 3 1 ) invSE3 \begin{aligned} R&\in SO(3)\\ t&\in \R^3\\ X=\left(\begin{array}{cc}R&t\\0_{1\times 3}&1\end{array}\right) &\in SE(3)\subset\R^{4\times 4}&\text{HatSE3}\\ X_1,X_2\in SE(3)\\ X_1\cdot X_2= \left(\begin{array}{cc}R_1&t_1\\0_{1\times 3}&1\end{array}\right) \left(\begin{array}{cc}R_2&t_2\\0_{1\times 3}&1\end{array}\right) &=\left(\begin{array}{cc}R_1R_2&R_1t_2+t_1\\0_{1\times 3}&1\end{array}\right)\\ X^{-1}&=\left(\begin{array}{cc}R^T&-R^Tt\\0_{1\times 3}&1\end{array}\right)&\text{invSE3} \end{aligned} RtX=(R01×3t1)X1,X2SE(3)X1X2=(R101×3t11)(R201×3t21)X1SO(3)R3SE(3)R4×4=(R1R201×3R1t2+t11)=(RT01×3RTt1)HatSE3invSE3

8.2 李代数

李代数 s e ( 3 ) \mathfrak{se}(3) se(3)有6个生成元:
G 1 = ( 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 ) , G 2 = ( 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 ) , G 3 = ( 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 ) , G 4 = ( 0 0 0 0 0 0 1 0 0 − 1 0 0 0 0 0 0 ) , G 5 = ( 0 0 − 1 0 0 0 0 0 1 0 0 0 0 0 0 0 ) , G 6 = ( 0 1 0 0 − 1 0 0 0 0 0 0 0 0 0 0 0 ) \begin{aligned} G_1=\left(\begin{array}{cccc}0&0&0&1\\0&0&0&0\\0&0&0&0\\0&0&0&0\end{array}\right), G_2=\left(\begin{array}{cccc}0&0&0&0\\0&0&0&1\\0&0&0&0\\0&0&0&0\end{array}\right), G_3=\left(\begin{array}{cccc}0&0&0&0\\0&0&0&0\\0&0&0&1\\0&0&0&0\end{array}\right),\\ G_4=\left(\begin{array}{cccc}0&0&0&0\\0&0&1&0\\0&-1&0&0\\0&0&0&0\end{array}\right), G_5=\left(\begin{array}{cccc}0&0&-1&0\\0&0&0&0\\1&0&0&0\\0&0&0&0\end{array}\right), G_6=\left(\begin{array}{cccc}0&1&0&0\\-1&0&0&0\\0&0&0&0\\0&0&0&0\end{array}\right) \end{aligned} G1=0000000000001000,G2=0000000000000100,G3=0000000000000010G4=0000001001000000,G5=0010000010000000,G6=0100100000000000
因此映射 a l g : R 3 → s e ( 3 ) alg:\R^3\rightarrow \mathfrak{se}(3) alg:R3se(3)
u , w ∈ R 3 u 1 G 1 + u 2 G 2 + u 3 G 3 + w 1 G 4 + w 2 G 5 + w 3 G 6 ∈ s e ( 3 ) a l g ( u w ) = ( w ∧ u 0 1 × 3 0 ) \begin{aligned} u,w&\in \R^3\\ u_1G_1+u_2G_2+u_3G_3+w_1G_4+w_2G_5+w_3G_6 &\in \mathfrak{se}(3)\\ alg\left(\begin{array}{c}u\\w\end{array}\right)&=\left(\begin{array}{cc}w_\wedge&u\\0_{1\times 3}&0\end{array}\right) \end{aligned} u,wu1G1+u2G2+u3G3+w1G4+w2G5+w3G6alg(uw)R3se(3)=(w01×3u0)

李代数映射为向量 V e c S E 3 VecSE3 VecSE3为: m ( 4 : 6 ) = m h a t ( 1 : 3 , 4 ) ; m ( 1 : 3 ) = V e c S O 3 ( m h a t ( 1 : 3 , 1 : 3 ) ) ; m(4:6) = m_{hat}(1:3,4);m(1:3) = VecSO3(m_{hat}(1:3,1:3)); m(4:6)=mhat(1:3,4);m(1:3)=VecSO3(mhat(1:3,1:3));

8.3 指数映射和对数映射

李代数 s e ( 3 ) \mathfrak{se}(3) se(3)到李群SE(3)的指数映射有一个闭合形式:
w , u ∈ R 3 θ = w T w = ∣ ∣ w ∣ ∣ w ∧ 3 = − θ 2 w ∧ E x p ( a l g ( u w ) ) = E x p ( w ∧ u 0 1 × 3 0 ) = I + ( w ∧ u 0 1 × 3 0 ) + 1 2 ! ( w ∧ 2 w ∧ u 0 1 × 3 0 ) + 1 3 ! ( w ∧ 3 w ∧ 2 u 0 1 × 3 0 ) + ⋯ = ( E x p ( w ∧ ) V ⋅ u 0 1 × 3 1 ) expSE3 V = I + 1 2 ! w ∧ + 1 3 ! w ∧ 2 + ⋯ = I + ( 1 2 ! − θ 2 4 ! + θ 4 6 ! + ⋯   ) w ∧ + ( 1 3 ! − θ 2 5 ! + θ 4 7 ! + ⋯   ) w ∧ 2 = I + ( 1 − cos ⁡ θ θ 2 ) w ∧ + ( θ − sin ⁡ θ θ 3 ) w ∧ 2 \begin{aligned} w,u&\in\R^3\\ \theta&=\sqrt{w^Tw}=||w||\\ w_\wedge^3&=-\theta^2w_\wedge\\ Exp(alg\left(\begin{array}{c}u\\w\end{array}\right))&=Exp\left(\begin{array}{cc}w_\wedge&u\\0_{1\times 3}&0\end{array}\right)\\ &=I+\left(\begin{array}{cc}w_\wedge&u\\0_{1\times 3}&0\end{array}\right)+ \frac{1}{2!}\left(\begin{array}{cc}w_\wedge^2&w_\wedge u\\0_{1\times 3}&0\end{array}\right)+ \frac{1}{3!}\left(\begin{array}{cc}w_\wedge^3&w_\wedge^2 u\\0_{1\times 3}&0\end{array}\right)+\cdots\\ &=\left(\begin{array}{cc}Exp(w_\wedge)&V\cdot u\\0_{1\times 3}&1\end{array}\right)&\text{expSE3}\\ V&=I+\frac{1}{2!}w_\wedge+\frac{1}{3!}w_\wedge^2+\cdots\\ &=I+(\frac{1}{2!}-\frac{\theta^2}{4!}+\frac{\theta^4}{6!}+\cdots)w_\wedge+(\frac{1}{3!}-\frac{\theta^2}{5!}+\frac{\theta^4}{7!}+\cdots)w_\wedge^2\\ &=I+(\frac{1-\cos\theta}{\theta^2})w_\wedge+(\frac{\theta-\sin\theta}{\theta^3})w_\wedge^2 \end{aligned} w,uθw3Exp(alg(uw))VR3=wTw =w=θ2w=Exp(w01×3u0)=I+(w01×3u0)+2!1(w201×3wu0)+3!1(w301×3w2u0)+=(Exp(w)01×3Vu1)=I+2!1w+3!1w2+=I+(2!14!θ2+6!θ4+)w+(3!15!θ2+7!θ4+)w2=I+(θ21cosθ)w+(θ3θsinθ)w2expSE3
θ \theta

你可能感兴趣的:(李群李代数,SLAM)