视觉SLAM笔记(二)-李群与李代数基础


在前面的刚体运动中我们提到了两个群 S O ( 3 ) SO(3) SO(3) S E ( 3 ) SE(3) SE(3),这两个群为所谓的李群。注意到这两个群对于加法是不封闭的,但对于乘法是封闭的,即两个旋转矩阵相加不再是一个旋转矩阵,相乘则还是一个旋转矩阵(从 d e t ( R ) = 1 det(R)=1 det(R)=1这点上很好理解)。下面给出群的定义: G r o u p = s e t ( G ) + o p e r a t i o n ( ⋅ ) Group=set(G)+operation(\cdot) Group=set(G)+operation(),其满足如下几个条件:

  1. 封闭性: g 1 ⋅ g 2 ∈ G , ∀ g 1 , g 2 ∈ G g_1 \cdot g_2 \in G,\forall g_1,g_2 \in G g1g2G,g1,g2G
  2. 结合律: ( g 1 ⋅ g 2 ) ⋅ g 3 = g 1 ⋅ ( g 2 ⋅ g 3 ) , ∀ g 1 , g 2 , g 3 ∈ G (g_1 \cdot g_2)\cdot g_3 = g_1 \cdot (g_2\cdot g_3), \forall g_1,g_2,g_3 \in G (g1g2)g3=g1(g2g3),g1,g2,g3G
  3. 幺元: ∃ e ∈ G : e ⋅ g = g ⋅ e = g , ∀ g ∈ G \exist e \in G: e \cdot g = g \cdot e = g, \forall g \in G eG:eg=ge=g,gG
  4. 逆: ∃ g − 1 ∈ G : g ⋅ g − 1 = g − 1 ⋅ g = e , ∀ g ∈ G \exist g^{-1} \in G: g \cdot g^{-1} = g^{-1} \cdot g = e, \forall g \in G g1G:gg1=g1g=e,gG

李群与李代数

李群是指具有连续光滑性质的群,由 R R T = I RR^T=I RRT=I,我们可以得到
d d t ( R R T ) = R ˙ R T + R R ˙ T ⇒ R ˙ R T = − ( R ˙ R T ) T \frac{d}{dt}(RR^T)=\dot{R}R^T+R\dot{R}^T \Rightarrow \dot{R}R^T=-(\dot{R}R^T)^T dtd(RRT)=R˙RT+RR˙TR˙RT=(R˙RT)T
所以可以看到 R ˙ R T \dot{R}R^T R˙RT是一个反对称矩阵,可以用 w ^ \hat{w} w^表示, ^ \hat{\quad} ^符号将一个三维的向量映射为一个 3 × 3 3\times3 3×3的反对称矩阵,若 ϕ = [ ϕ 1 , ϕ 2 , ϕ 3 ] \phi=[\phi_1,\phi_2,\phi_3] ϕ=[ϕ1,ϕ2,ϕ3],则
ϕ ^ = [ 0 − ϕ 3 ϕ 2 ϕ 3 0 − ϕ 1 − ϕ 2 ϕ 1 0 ] \hat{\phi}= \begin{bmatrix} 0 & -\phi_3 & \phi_2 \\ \phi_3 & 0 & -\phi_1 \\ -\phi_2 & \phi_1 & 0 \end{bmatrix} ϕ^=0ϕ3ϕ2ϕ30ϕ1ϕ2ϕ10
所以可得 R ˙ ( t ) R T ( t ) = ϕ ^ ( t ) \dot{R}(t)R^T(t)=\hat{\phi}(t) R˙(t)RT(t)=ϕ^(t),即 R ˙ ( t ) = ϕ ^ ( t ) R ( t ) \dot{R}(t)=\hat{\phi}(t)R(t) R˙(t)=ϕ^(t)R(t)
这里的 ϕ ^ \hat{\phi} ϕ^即为 S O ( 3 ) SO(3) SO(3)所对应的李代数 s o ( 3 ) so(3) so(3),可以看到,李代数实际上反映了李群的正切空间,反映了李群的局部导数,这一点在后面的优化问题中十分重要,因为优化问题经常需要求变量的导数。
现在给出李代数的定义,李代数由一个集合 V V V,一个数域 F F F和一个二元运算 [ , ] [,] [,](李括号)组成,满足如下几条性质

  1. 封闭性: ∀ X , Y ∈ V , [ X , Y ] ∈ V \forall X,Y \in V, [X,Y] \in V X,YV,[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 ] \forall X,Y,Z \in V, a,b \in F, [aX+bY,Z]=a[X,Z]+b[Y,Z],[Z,aX+bY]=a[Z,X]+b[Z,Y] X,Y,ZV,a,bF,[aX+bY,Z]=a[X,Z]+b[Y,Z],[Z,aX+bY]=a[Z,X]+b[Z,Y]
  3. 自反性: ∀ X ∈ V , [ X , X ] = 0 \forall X \in V,[X,X]=0 XV,[X,X]=0
  4. 雅可比等价: ∀ X , Y , Z ∈ V , [ X , [ Y , Z ] ] + [ Z , [ X , Y ] ] + [ Y , [ Z , X ] ] = 0 \forall X,Y,Z \in V, [X,[Y,Z]]+[Z,[X,Y]]+[Y,[Z,X]]=0 X,Y,ZV,[X,[Y,Z]]+[Z,[X,Y]]+[Y,[Z,X]]=0
    对应于 S O ( 3 ) SO(3) SO(3)的李代数如下:
    s o ( 3 ) = { Φ = ϕ ^ ∈ R 3 × 3 ∣ ϕ ∈ R 3 } so(3)=\lbrace \Phi=\hat{\phi} \in R^{3\times3}| \phi \in R^3 \rbrace so(3)={Φ=ϕ^R3×3ϕR3}
    李括号如下
    [ ϕ 1 , ϕ 2 ] = [ Φ 1 Φ 2 − Φ 2 Φ 1 ] ⋁ [\phi_1,\phi_2] = [\Phi_1 \Phi_2-\Phi_2 \Phi_1] ^{\bigvee} [ϕ1,ϕ2]=[Φ1Φ2Φ2Φ1]
    对应于 S E ( 3 ) SE(3) SE(3)的李代数如下:
    s e ( 3 ) = { ξ ^ = [ ϕ ^ ρ 0 T 0 ] ∈ R 4 × 4 ∣ ρ ∈ R 3 , ϕ ^ ∈ s o ( 3 ) } se(3) = \lbrace \hat{\xi} = \begin{bmatrix} \hat{\phi} & \rho\\ 0^T & 0 \end{bmatrix} \in R^{4\times4} | \rho \in R^3, \hat{\phi} \in so(3) \rbrace se(3)={ξ^=[ϕ^0Tρ0]R4×4ρR3,ϕ^so(3)}
    李括号如下
    [ ξ 1 , ξ 2 ] = ( ξ 1 ^ ξ 2 ^ − ξ 2 ^ ξ 1 ^ ) ⋁ [\xi_1,\xi_2]=(\hat{\xi_1}\hat{\xi_2}-\hat{\xi_2}\hat{\xi_1})^{\bigvee} [ξ1,ξ2]=(ξ1^ξ2^ξ2^ξ1^)

Exponential and Logarithm

SO(3)与so(3)


R ˙ ( t ) = ϕ ^ R ( t ) R ( 0 ) = I \dot{R}(t)=\hat{\phi}R(t) \\ R(0) = I R˙(t)=ϕ^R(t)R(0)=I
解得
R ( t ) = e x p ( ϕ ^ t ) R(t)=exp(\hat{\phi}t) R(t)=exp(ϕ^t)
由指数函数的泰勒展开:
e x p ( ϕ ^ ) = ∑ n = 0 ∞ 1 n ! ( ϕ ^ ) n exp(\hat{\phi})=\sum_{n=0}^{\infty} \frac{1}{n!}(\hat{\phi})^n exp(ϕ^)=n=0n!1(ϕ^)n
ϕ = θ a , θ = ∣ ϕ ∣ \phi=\theta a,\theta = |\phi| ϕ=θa,θ=ϕ,这里 a a a有如下性质
a ^ 2 = a a T − I , a ^ 3 = − a ^ \hat{a}^2=aa^T-I, \hat{a}^3=-\hat{a} a^2=aaTI,a^3=a^
带入上式中得
e x p ( ϕ ^ ) = e x p ( θ a ^ ) = ∑ n = 0 ∞ 1 n ! ( θ a ^ ) n exp(\hat{\phi})=exp(\theta \hat{a})=\sum_{n=0}^{\infty} \frac{1}{n!} (\theta \hat{a})^n exp(ϕ^)=exp(θa^)=n=0n!1(θa^)n
由上述 a a a的性质可得(中间主要是展开公式并合并 a ^ \hat{a} a^ a ^ 2 \hat{a}^2 a^2项,并利用了三角函数的泰勒展开形式)
e x p ( ϕ ^ ) = c o s θ + ( 1 − c o s θ ) a a T + s i n θ a ^ exp(\hat{\phi})=cos\theta + (1-cos\theta)aa^T+sin\theta \hat{a} exp(ϕ^)=cosθ+(1cosθ)aaT+sinθa^
此时便完成了由李代数到李群的映射,由李群到李代数的映射通常用trace的性质计算,得到其旋转向量和转角
R = ( r i j ) R=(r_{ij}) R=(rij),则
θ = c o s − 1 ( t r a c e ( R ) − 1 2 ) a = 1 2 s i n θ [ r 32 − r 23 r 13 − r 31 r 21 − r 12 ] \theta = cos^{-1}(\frac{trace(R)-1}{2})\\ a=\frac{1}{2sin\theta} \begin{bmatrix} r_{32}-r_{23}\\ r_{13}-r_{31}\\ r_{21}-r_{12} \end{bmatrix} θ=cos1(2trace(R)1)a=2sinθ1r32r23r13r31r21r12

SE(3)与se(3)

这里仅给出公式:
e x p ( ξ ^ ) = [ R J ρ 0 T 1 ] exp(\hat{\xi})= \begin{bmatrix} R & J\rho\\ 0^T & 1 \end{bmatrix} exp(ξ^)=[R0TJρ1]
R R R可以通过 ξ \xi ξ中的 ϕ \phi ϕ计算得到,而 J J 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})aa^T+\frac{1-cos\theta}{\theta}\hat{a} J=θsinθI+(1θsinθ)aaT+θ1cosθa^

李代数求导

BCH近似

BCH近似的目的是如何用李代数上的加法来代替李群上的矩阵乘法,当对一个旋转矩阵 R 2 R_2 R2左乘一个微小量 R 1 R_1 R1,近似看作在原有李代数 ϕ 2 \phi_2 ϕ2基础上加上一项 J l ( ϕ 2 ) − 1 ϕ 1 J_l(\phi_2)^{-1}\phi_1 Jl(ϕ2)1ϕ1,当对一个旋转矩阵 R 1 R_1 R1右乘一个微小量 R 2 R_2 R2,近似看作在原有李代数 ϕ 1 \phi_1 ϕ1基础上加上一项 J r ( ϕ 1 ) − 1 ϕ 2 J_r(\phi_1)^{-1}\phi_2 Jr(ϕ1)1ϕ2,其中
J l = s i n θ θ I + ( 1 − s i n θ θ ) a a T + 1 − c o s θ θ a ^ J_l=\frac{sin\theta}{\theta}I+(1-\frac{sin\theta}{\theta})aa^T+\frac{1-cos\theta}{\theta}\hat{a} Jl=θsinθI+(1θsinθ)aaT+θ1cosθa^
J l − 1 = θ 2 c o t θ 2 I + ( 1 − θ 2 c o t θ 2 ) a a T − θ 2 a ^ J_l^{-1}=\frac{\theta}{2}cot\frac{\theta}{2}I + (1-\frac{\theta}{2}cot\frac{\theta}{2})aa^T-\frac{\theta}{2}\hat{a} Jl1=2θcot2θI+(12θcot2θ)aaT2θa^
J r ( ϕ ) = J l ( − ϕ ) J_r(\phi)=J_l(-\phi) Jr(ϕ)=Jl(ϕ)
假设对某个旋转 R R R,对应的李代数为 ϕ \phi ϕ,做成一个 Δ R \Delta R ΔR,对应李代数为 Δ ϕ \Delta \phi Δϕ,则在李代数上
e x p ( Δ ϕ ^ ) e x p ( ϕ ^ ) = e x p ( ( ϕ + J l − 1 ( ϕ ) Δ ϕ ) ∧ ) exp(\Delta \hat{\phi})exp(\hat{\phi})=exp((\phi+J_l^{-1}(\phi)\Delta \phi)^{\land}) exp(Δϕ^)exp(ϕ^)=exp((ϕ+Jl1(ϕ)Δϕ))
同理,
e x p ( ( ϕ + Δ ϕ ) ∧ ) = e x p ( ϕ ^ ) e x p ( ( J r Δ ϕ ) ∧ ) exp((\phi+\Delta \phi)^{\land})=exp(\hat{\phi})exp((J_r \Delta \phi)^{\land}) exp((ϕ+Δϕ))=exp(ϕ^)exp((JrΔϕ))
对于 S E ( 3 ) SE(3) SE(3),也有如上公式
e x p ( Δ ξ ^ ) e x p ( ξ ^ ) = e x p ( ( ϕ + J l − 1 ( ξ ) Δ ξ ) ∧ ) exp(\Delta \hat{\xi})exp(\hat{\xi})=exp((\phi+J_l^{-1}(\xi)\Delta \xi)^{\land}) exp(Δξ^)exp(ξ^)=exp((ϕ+Jl1(ξ)Δξ))

e x p ( ( ξ + Δ ξ ) ∧ ) = e x p ( ξ ^ ) e x p ( ( J r Δ ξ ) ∧ ) exp((\xi+\Delta \xi)^{\land})=exp(\hat{\xi})exp((J_r \Delta \xi)^{\land}) exp((ξ+Δξ))=exp(ξ^)exp((JrΔξ))

李代数上的求导

使用李代数解决求导问题的思路分为两种:

  1. 用李代数表示姿态,根据李代数加法对李代数求导
  2. 对李群左乘或右乘微小扰动,对该扰动求导
李代数求导

∂ ( R P ) ∂ R = ∂ ( e x p ( ϕ ^ ) p ) ∂ ϕ = − ( R p ) ∧ J l \frac{\partial(RP)}{\partial R}=\frac{\partial(exp(\hat{\phi})p)}{\partial \phi}=-(Rp)^{\land}J_l R(RP)=ϕ(exp(ϕ^)p)=(Rp)Jl
由于结果中含有 J l J_l Jl,这个矩阵形式较为复杂,故我们使用下面的扰动模型

扰动模型

以左扰动为例,在 R R R的左边乘一个微小量 Δ R \Delta R ΔR,对应的李代数为 φ \varphi φ,对 φ \varphi φ求导
∂ ( R P ) ∂ φ = lim ⁡ φ → 0 e x p ( φ ^ ) e x p ( ϕ ^ ) p − e x p ( ϕ ^ ) p φ = lim ⁡ φ → 0 ( 1 + φ ^ ) e x p ( ϕ ^ ) p − e x p ( ϕ ^ ) p φ = lim ⁡ φ → 0 φ ^ R p φ = lim ⁡ φ → 0 − ( R p ) ∧ φ φ = − ( R p ) ∧ \frac{\partial(RP)}{\partial \varphi}=\lim_{\varphi \to 0} \frac{exp(\hat{\varphi})exp(\hat{\phi})p-exp(\hat{\phi})p}{\varphi}\\ =\lim_{\varphi \to 0} \frac{(1+\hat{\varphi})exp(\hat{\phi})p-exp(\hat{\phi})p}{\varphi} \\ =\lim_{\varphi \to 0} \frac{\hat{\varphi}Rp}{\varphi}=\lim_{\varphi \to 0}\frac{-(Rp)^{\land}\varphi}{\varphi}=-(Rp)^{\land} φ(RP)=φ0limφexp(φ^)exp(ϕ^)pexp(ϕ^)p=φ0limφ(1+φ^)exp(ϕ^)pexp(ϕ^)p=φ0limφφ^Rp=φ0limφ(Rp)φ=(Rp)
这里相比较上一种求导方式省去了 J l J_l Jl的计算

SE(3)上求导

同样的利用扰动模型,在 T T T上左乘一个扰动 Δ T = e x p ( δ ξ ^ ) \Delta T=exp(\delta \hat{\xi}) ΔT=exp(δξ^),设扰动项的李代数为 δ ξ = [ δ ρ , δ ϕ ] T \delta \xi=[\delta \rho, \delta \phi]^T δξ=[δρ,δϕ]T
∂ ( T p ) ∂ δ ξ = [ I − ( R p + t ) ∧ 0 T 0 T ] \frac{\partial(Tp)}{\partial \delta \xi}= \begin{bmatrix} I & -(Rp+t)^{\land}\\ 0^T & 0^T \end{bmatrix} δξ(Tp)=[I0T(Rp+t)0T]
最后结果为一个 4 × 6 的 矩 阵 4\times6的矩阵 4×6

综上所述,SLAM中李群和李代数的定义主要是为了方便计算变换矩阵的导数, S O ( 3 ) SO(3) SO(3) S E ( 3 ) SE(3) SE(3)分别代表了旋转和三维刚体运动, s o ( 3 ) so(3) so(3) s e ( 3 ) se(3) se(3)定义了其上的李代数,代表了李群上的正切空间,最后通过扰动模型可以方便的计算出李群上的导数,而避免了计算复杂的雅可比矩阵。

参考文献

[1] 高翔, 张涛, 颜沁睿, 刘毅, 视觉SLAM十四讲:从理论到实践, 电子工业出版社, 2017
[2] https://vision.in.tum.de/teaching/ss2019/mvg2019
[3] Barfoot T D. State Estimation for Robotics[M]. Cambridge University Press, 2017.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值