视觉SLAM学习打卡【3】-李群和李代数

  • 为了求得符合当前观测数据的最佳相机位姿(计算目标误差函数对变换矩阵/旋转矩阵的导数,即位姿估计问题),而旋转矩阵因为正交性产生的约束(加法不封闭,无法直接求导)使优化变得困难,特引出李群和李代数的概念。
  • 书中本节公式推导较多,涉及到解微分方程、泰勒展开、叉积的反对称矩阵表示等基础数学知识,以及Baker-Campbell-Hausdorff公式(BCH公式)& Rodrigues’s Formula(罗德里格斯公式)。

一、基础概念

1.

  • 群=集合+一种运算,运算满足以下几条(注:此处运算不一定是乘法):“凤姐咬你”
    1.  封闭性:  ∀ a 1 , a 2 ∈ A , a 1 ⋅ a 2 ∈ A . 2. 结合律:  ∀ a 1 , a 2 , a 3 ∈ A , ( a 1 ⋅ a 2 ) ⋅ a 3 = a 1 ⋅ ( a 2 ⋅ a 3 ) 3. 幺元:  ∃ a 0   ∈ A ,   s . t .   ∀ a ∈ A , a 0   ⋅ a = a ⋅ a 0   = a 4. 逆:  ∀ a ∈ A , ∃ a − 1 ∈ A , a ⋅ a − 1 = a − 1 ⋅ a = a 0 \begin{aligned} &1.\text{ 封闭性: }\forall\mathrm{a}_1,\mathrm{a}_2\in\mathrm{A},\quad\mathrm{a}_1\cdot\mathrm{a}_2\in\mathrm{A}. \\ &\text{2. 结合律: }\forall\mathrm{a}_{1},\mathrm{a}_{2},\mathrm{a}_{3}\in\mathrm{A},\quad\left(\mathrm{a}_{1}\cdot\mathrm{a}_{2}\right)\cdot\mathrm{a}_{3}=\mathrm{a}_{1}\cdot\left(\mathrm{a}_{2}\cdot\mathrm{a}_{3}\right) \\ &\text{3. 幺元: }\exists\mathrm{a_0~\in A,~s.t.~}\quad\forall\mathrm{a\in A},\quad\mathrm{a_0~\cdot a=a\cdot a_0~=a} \\ &\text{4. 逆: }\forall\mathrm{a}\in\mathrm{A},\quad\exists\mathrm{a}^{-1}\in\mathrm{A},\quad\mathrm{a}\cdot\mathrm{a}^{-1}=\mathrm{a}^{-1}\cdot\mathrm{a}=\mathrm{a}_0 \end{aligned} 1. 封闭性a1,a2A,a1a2A.2. 结合律a1,a2,a3A,(a1a2)a3=a1(a2a3)3. 幺元a0 A, s.t. aA,a0 a=aa0 =a4. aA,a1A,aa1=a1a=a0
  • n*n的可逆矩阵+矩阵乘法=一般线性群GL(n)——是群但不是李群

2.李群

  • 李群:具有连续(光滑)性质的群
  • 旋转矩阵集合+矩阵乘法=特殊正交群SO(n)
    变换矩阵集合+矩阵乘法=特殊欧式群SE(n)

3.李代数

  • 李代数=集合V+数域F+二元运算
  • 每个李群对应一个李代数,反应李群局部性质。
  • 李代数有种“曲线救国”的感觉:李群类似一个无法定义加法的曲面,李代数类似曲面的切面,在切线附近具有和原曲面相近的性质。我们想对李群求导(用到加法-导数定义中需要加一微小的量),可以通过李代数实现。
  • 相信仅凭文字,读者可能对李代数的定位仍不清晰。无妨,直接上图:
    在这里插入图片描述
  • 李代数满足运算:“饱经风霜,独自优雅”
    1. 封闭性 ∀ X , Y ∈ V , [ X , Y ] ∈ V . 2.双线性 ∀ X , Y , Z ∈ V , a , b ∈ F , 有: [ a X + b Y , Z ] = a [ X , Z ] + b [ Y , Z ] , [ Z , a X + b Y ] = a [ Z , X ] + b [ Z , Y ] 3.自反性 ∀ X ∈ V , [ X , X ] = 0 4. 雅可比性 ∀ X , Y , Z ∈ V , [ X , [ Y , Z ] ] + [ Z , [ X , Y ] ] + [ Y , [ Z , X ] ] = 0.   \begin{aligned} &1.\text{封闭性}\quad\forall X,Y\in\mathbb{V},[X,Y]\in\mathbb{V}. \\ &\text{2.双线性}\quad\forall X,Y,Z\in\mathbb{V},a,b\in\mathbb{F},\text{有:}[aX+bY,Z]=a[X,Z]+b[Y,Z],[Z,aX+bY]=a[Z,X]+b[Z,Y] \\ &\text{3.自反性}\quad\forall X\in\mathbb{V},[X,X]=0 \\ &4.\text{雅可比性}\forall X,Y,Z\in\mathbb{V},[X,[Y,Z]]+[Z,[X,Y]]+[Y,[Z,X]]=0.\ \end{aligned} 1.封闭性X,YV,[X,Y]V.2.双线性X,Y,ZV,a,bF,:[aX+bY,Z]=a[X,Z]+b[Y,Z],[Z,aX+bY]=a[Z,X]+b[Z,Y]3.自反性XV,[X,X]=04.雅可比性X,Y,ZV,[X,[Y,Z]]+[Z,[X,Y]]+[Y,[Z,X]]=0. 
    其中,二元运算[ , ]称为李括号,表达了两个元素的差异(eg:自反性——自己和自己的差异为0)

二、两个重要的李代数

1.李群SO(3)对应的李代数so(3)

在这里插入图片描述
两个向量的 ϕ 1 , ϕ 2 \phi_1,\phi_2 ϕ1,ϕ2的李括号为:
[ ϕ 1 , ϕ 2 ] = ( Φ 1 Φ 2 − Φ 2 Φ 1 ) ∨ [\phi_1,\phi_2]=(\Phi_1\Phi_2-\Phi_2\Phi_1)^\vee [ϕ1,ϕ2]=(Φ1Φ2Φ2Φ1)
注:一般情况下,李代数so(3)既可以是3维向量 ϕ \phi ϕ,也可以是3*3反对称矩阵 Φ \Phi Φ,不加区分。

2.李群SE(3)对应的李代数se(3)

在这里插入图片描述
两个向量的 ξ 1 , ξ 2 \xi_1,\xi_2 ξ1,ξ2的李括号为:
[ ξ 1 , ξ 2 ] = ( ξ 1 ∧ ξ 2 ∧ − ξ 2 ∧ ξ 1 ∧ ) ∨ [\xi_1,\xi_2]=(\xi_1^{\wedge}\xi_2^{\wedge}-\xi_2^{\wedge}\xi_1^{\wedge})^{\vee} [ξ1,ξ2]=(ξ1ξ2ξ2ξ1)
注:此处的 ξ ∧ \xi^{\wedge} ξ虽然不是反对称矩阵,但为和so(3)统一,仍作此表示。

三、指数与对数映射

  • 李代数李群 :指数映射
  • 李群李代数 :对数映射

相互映射的推导主要用到指数、正弦,余弦的泰勒展开,具体过程略去,直接给结论。
在这里插入图片描述
注:

  • 看过上一节视觉SLAM学习打卡【二】,细心的友友们可能会发现:李代数se(3)到李群SO(3)的指数映射=旋转向量到旋转矩阵的转换公式=罗德里格斯公式。
  • 李群SO(3)(旋转矩阵组成)对应的李代数so(3)就是旋转向量组成的空间。

四、李代数求导

  • 引入李代数的一大动机就是方便求导优化
  • 使用李代数解决求导问题的思路分为两种:
    a.用李代数表示姿态,然后根据李代数加法来对李代数求导。
    b.对李群左乘或者右乘微小扰动,然后对扰动求导,称为左扰动和右扰动模型

1.Baker-Campbell-Hausdorff公式(BCH公式)

  • 由于是矩阵的指数,而不是标量的指数,故李群乘积和李代数加法并不等价。 即 R 1 R 2 = exp ⁡ ( ϕ 1 ∧ ) exp ⁡ ( ϕ 2 ∧ ) ≠ exp ⁡ ( ( ϕ 1 + ϕ 2 ) ∧ ) 即\mathrm R_1\mathrm R_2=\exp(\phi_1^{\wedge})\exp(\phi_2^{\wedge})\neq\exp((\phi_1+\phi_2)^{\wedge}) R1R2=exp(ϕ1)exp(ϕ2)=exp((ϕ1+ϕ2))
  • 李群乘积与李代数运算的对应关系由BCH公式给出。 即 ln ⁡ ( exp ⁡ ( A ) exp ⁡ ( B ) ) = A + B + 1 2 [ A , B ] + 1 12 [ A , [ A , B ] ] − 1 12 [ B , [ A , B ] ] + . . . 即\ln(\exp(\mathrm{A})\exp(\mathrm{B}))=\mathrm{A}+\mathrm{B}+\frac{1}{2}\left[\mathrm{A},\mathrm{B}\right]+\frac{1}{12}\left[\mathrm{A},[\mathrm{A},\mathrm{B}]\right]-\frac{1}{12}\left[\mathrm{B},[\mathrm{A},\mathrm{B}]\right]+... ln(exp(A)exp(B))=A+B+21[A,B]+121[A,[A,B]]121[B,[A,B]]+...
    注:上式中 [ , ] 表示李括号运算
  • ϕ 1 , ϕ 2 \phi_1,\phi_2 ϕ1,ϕ2为小量时,可以对BCH公式进行线性近似,得到李群乘积对应的李代数的表达式。
    即 ln ⁡ ( exp ⁡ ( ϕ 1 ∧ ) exp ⁡ ( ϕ 2 ∧ ) ) ∨ ≈ { J l ( ϕ 2 ) − 1 ϕ 1 + ϕ 2  当 ϕ 1 为小量时 J r ( ϕ 1 ) − 1 ϕ 2 + ϕ 1  当 ϕ 2 为小量时 即\ln(\exp(\phi_1^{\wedge})\exp(\phi_2^{\wedge}))^{\vee}\approx\begin{cases}\mathrm{J}_l\left(\phi_2\right)^{-1}\phi_1+\phi_2&\text{ 当}\phi_1\text{为小量时}\\\mathrm{J}_\text{r}\left(\phi_1\right)^{-1}\phi_2+\phi_1&\text{ 当}\phi_2\text{为小量时}\end{cases} ln(exp(ϕ1)exp(ϕ2)){Jl(ϕ2)1ϕ1+ϕ2Jr(ϕ1)1ϕ2+ϕ1 ϕ1为小量时 ϕ2为小量时
    其中,左乘雅可比 J l \mathrm{J}_l Jl为: J l = sin ⁡ θ θ I + ( 1 − sin ⁡ θ θ ) α α T + 1 − cos ⁡ θ θ α ∧ \mathrm{J}_l=\frac{\sin\theta}\theta\mathrm{I}+(1-\frac{\sin\theta}\theta)\alpha\alpha^\mathrm{T}+\frac{1-\cos\theta}\theta\alpha^\wedge Jl=θsinθI+(1θsinθ)ααT+θ1cosθα
    J l \mathrm{J}_l Jl逆为:
    J l − 1 = θ 2 cot ⁡ θ 2 I + ( 1 − θ 2 cot ⁡ θ 2 ) α α T + θ 2 α ∧ \mathrm{J}_l^{-1}=\frac{\theta}{2}\cot\frac{\theta}{2}\mathrm{I}+(1-\frac{\theta}{2}\cot\frac{\theta}{2})\alpha\alpha^\mathrm{T}+\frac{\theta}{2}\alpha^{\wedge} Jl1=2θcot2θI+(12θcot2θ)ααT+2θα
    右乘雅可比矩阵只需对自变量取负号即可:
    J r ( ϕ ) = J 1 ( − ϕ ) \mathrm{J}_\mathrm{r}\left(\phi\right)=\mathrm{J}_1\left(-\phi\right) Jr(ϕ)=J1(ϕ)
  • BCH公式应用:对旋转R(李代数为 ϕ \phi ϕ)左乘一个微小旋转ΔR (李代数为Δ ϕ \phi ϕ),得到的李群ΔR ⋅ R 对应的李代数为:
    ln ⁡ ( exp ⁡ ( Δ ϕ ∧ ) exp ⁡ ( ϕ ∧ ) ) ∨ = ϕ + J l − 1 ( ϕ ) Δ ϕ \ln\left(\exp(\Delta\phi^{\wedge})\exp(\phi^{\wedge})\right)^{\vee}=\phi+\mathrm{J}_l^{-1}\left(\phi\right)\Delta\phi ln(exp(Δϕ)exp(ϕ))=ϕ+Jl1(ϕ)Δϕ

2.SO(3)对应的李代数求导

  • 用李代数 ϕ 表示旋转R,通过李代数加法对李代数求导.
    ∂ ( R p ) ∂ ϕ = − ( R p ) ∧ J l \frac{\partial(\mathrm{Rp})}{\partial\mathrm{ϕ }}=-(\mathrm{Rp})^{\wedge}\mathrm{J}_l ϕ(Rp)=(Rp)Jl
  • 对R左乘扰动ΔR(对应李代数为 φ {\varphi} φ).
    ∂ ( R p ) ∂ φ = − ( R p ) ∧ \frac{\partial(\mathrm{Rp})}{\partial\mathrm{{\varphi}}}=-(\mathrm{Rp})^{\wedge} φ(Rp)=(Rp)
    注:扰动模型相比于直接对李代数求导,省去了雅可比 J l \mathrm{J}_l Jl的计算。因此,扰动模型在实际中更为实用。

3.SE(3)对应的李代数求导

扰动模型(左乘扰动ΔT(李代数为 δ ξ {\delta\xi} δξ)):
∂ ( R p ) ∂ δ ξ = [ I − ( R p + t ) ∧ 0 T 0 T ] = ( T P ) ⊙ \left.\frac{\partial(\mathrm{Rp})}{\partial\delta\xi}=\left[\begin{array}{cc}\mathrm{I}&-(\mathrm{Rp}+\mathrm{t})^\wedge\\0^\mathrm{T}&0^\mathrm{T}\end{array}\right.\right]=(\mathrm{TP})^\odot δξ(Rp)=[I0T(Rp+t)0T]=(TP)

  • 15
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值