视觉SLAM_05_李群与李代数基础

说明:转发请注明作者和出处;以下文章内容为精简版,详细版以pdf格式的幻灯片形式呈现,请见链接:视觉SLAM_05_李群与李代数基础.pdf

0.目录

1.群

  群是一种集合加上一种运算的代数结构。如果把集合记作 A A A,运算记作 ⋅ \cdot ,则群可记作 G = ( A , ⋅ ) G=(A,\cdot) G=(A,)。群要求此运算满足以下几点:

  • 封闭性: ∀ a 1 , a 2 ∈ A , a 1 ⋅ a 2 ∈ A \forall a_1, a_2 \in A, a_1 \cdot a_2 \in A a1,a2A,a1a2A.
  • 结合律: ∀ a 1 , a 2 , a 3 ∈ A , ( a 1 ⋅ a 2 ) ⋅ a 3 = a 1 ⋅ ( a 2 ⋅ a 3 ) \forall a_1, a_2, a_3 \in A, (a_1 \cdot a_2) \cdot a_3 = a_1 \cdot (a_2 \cdot a_3) a1,a2,a3A,(a1a2)a3=a1(a2a3).
  • 幺元: ∃ a 0 ∈ A , s . t . ∀ a ∈ A , a 0 ⋅ a = a ⋅ a 0 = a \exists a_0 \in A, s.t. \quad \forall a \in A, a_0 \cdot a = a \cdot a_0 = a a0A,s.t.aA,a0a=aa0=a.
  • 逆: ∀ a ∈ A , ∃ a − 1 ∈ A , s . t . a ⋅ a − 1 = a 0 \forall a \in A, \exists a^{-1} \in A, s.t. \quad a \cdot a^{-1} = a_0 aA,a1A,s.t.aa1=a0.
      矩阵中常见的群有:
  • 一般线性群 G L ( n ) GL(n) GL(n):指 n × n n \times n n×n的可逆矩阵,它们对矩阵乘法成群。
  • 特殊正交群 S O ( n ) SO(n) SO(n):指 n n n维旋转矩阵群,其中 S O ( 2 ) , S O ( 3 ) SO(2), SO(3) SO(2),SO(3)最常见。
  • 特殊欧氏群 S E ( n ) SE(n) SE(n):指 n n n维欧氏变换矩阵群,其中 S E ( 2 ) , S E ( 3 ) SE(2), SE(3) SE(2),SE(3)最常见。
      群论是研究群的各种结构和性质的理论。李群是指具有连续性质的群,像整数群 Z \mathbb{Z} Z那样离散的群没有连续性质,所以不是李群。
      特殊正交群:
    S O ( 3 ) = { R ∈ R 3 × 3 ∣ R R T = I , det ⁡ ( R ) = 1 } (1) SO(3) = \left \{\boldsymbol R \in \mathbb R^{3\times 3} | \boldsymbol R \boldsymbol R^T = \boldsymbol I, \det (\boldsymbol R) = 1 \right \} \tag{1} SO(3)={RR3×3RRT=I,det(R)=1}(1)  特殊欧式群:
    S E ( 3 ) = { T = [ R t 0 T 1 ] ∈ R 4 × 4 ∣ R ∈ S O ( 3 ) , t ∈ R 3 } (2) SE(3) = \left \{ \boldsymbol T = \begin{bmatrix} \boldsymbol R & \boldsymbol t \\ \boldsymbol 0^T & 1 \end{bmatrix} \in \mathbb{R}^{4 \times 4} | \boldsymbol R \in SO(3), \boldsymbol t \in \mathbb R^3 \right \} \tag{2} SE(3)={T=[R0Tt1]R4×4RSO(3),tR3}(2)

2.李代数的引出

  旋转矩阵是正交的,满足:
R R T = I (3) \boldsymbol{R} \boldsymbol{R}^T = \boldsymbol{I} \tag{3} RRT=I(3)假设 R \boldsymbol{R} R是某个相机的旋转,它随时间连续变化,即为时间的函数 R ( t ) \boldsymbol{R}(t) R(t),由于它仍是旋转矩阵,有:
R ( t ) R ( t ) T = I (4) \boldsymbol{R}(t) \boldsymbol{R}(t)^T = \boldsymbol{I} \tag{4} R(t)R(t)T=I(4)在等式两边对时间求导得:
R ˙ ( t ) R ( t ) T + R ( t ) R ˙ ( t ) T = I \dot{\boldsymbol{R}}(t) \boldsymbol{R}(t)^T + \boldsymbol{R(t)} \dot{\boldsymbol{R}}(t)^T = \boldsymbol{I} R˙(t)R(t)T+R(t)R˙(t)T=I整理得:
R ˙ ( t ) R ( t ) T = − ( R ˙ ( t ) R ( t ) T ) T (5) \dot{\boldsymbol{R}}(t) \boldsymbol{R}(t)^T = -(\dot{\boldsymbol{R}}(t) \boldsymbol{R}(t)^T)^T \tag{5} R˙(t)R(t)T=(R˙(t)R(t)T)T(5)可以看出 R ˙ ( t ) R ( t ) T \dot{\boldsymbol{R}}(t) \boldsymbol{R}(t)^T R˙(t)R(t)T是一个反对称矩阵,可以找到一个三维向量 ϕ ( t ) ∈ R 3 \boldsymbol \phi(t) \in \mathbb{R}^3 ϕ(t)R3与之对应:
R ˙ ( t ) R ( t ) T = ϕ ( t )   ^ \dot{\boldsymbol{R}}(t) \boldsymbol{R}(t)^T = \boldsymbol \phi (t) \hat{\,}^{} R˙(t)R(t)T=ϕ(t)^等式两边右乘 R ( t ) \boldsymbol{R}(t) R(t),由于 R \boldsymbol{R} R正交,有:
R ˙ ( t ) = ϕ ( t )   ^ R ( t ) = [ 0 − ϕ 3 ϕ 2 ϕ 3 0 − ϕ 1 − ϕ 2 ϕ 1 0 ] R ( t ) (6) \dot{\boldsymbol{R}}(t) = \boldsymbol \phi(t) \hat{\,} \boldsymbol{R}(t) = \begin{bmatrix} 0 & -\phi_3 & \phi_2 \\ \phi_3 & 0 & -\phi_1 \\ -\phi_2 & \phi_1 & 0 \end{bmatrix} \boldsymbol{R}(t) \tag{6} R˙(t)=ϕ(t)^R(t)=0ϕ3ϕ2ϕ30ϕ1ϕ2ϕ10R(t)(6)可以看到,每对矩阵求一次导数,只需左乘一个 ϕ ( t )   ^ \boldsymbol \phi(t) \hat{\,} ϕ(t)^矩阵即可。设 t 0 t_0 t0时,旋转矩阵 R ( 0 ) = I \boldsymbol{R}(0) = \boldsymbol{I} R(0)=I。对 R ( t ) \boldsymbol{R}(t) R(t) t = 0 t=0 t=0附近进行一阶泰勒展开:
R ( t ) ≈ R ( t 0 ) + R ˙ ( t 0 ) ( t − t 0 ) = I + ϕ ( t 0 )   ^ I ( t − 0 ) = I + ϕ ( t 0 )   ^ ( t ) (7) \begin{aligned} \boldsymbol{R}(t) &\approx \boldsymbol{R}(t_0) + \dot{\boldsymbol{R}}(t_0)(t-t_0) \\ &= \boldsymbol{I} + \boldsymbol \phi(t_0) \hat{\,} \boldsymbol I (t - 0) \\ &= \boldsymbol{I} + \boldsymbol \phi(t_0) \hat{\,} (t) \end{aligned} \tag{7} R(t)R(t0)+R˙(t0)(tt0)=I+ϕ(t0)^I(t0)=I+ϕ(t0)^(t)(7)设在 t 0 t_0 t0附近,设 ϕ \phi ϕ保持为常数 ϕ ( t 0 ) = ϕ 0 \boldsymbol \phi(t_0) = \boldsymbol \phi_0 ϕ(t0)=ϕ0,则:
R ˙ ( t ) = ϕ ( t )   ^ R ( t ) = ϕ 0   ^ R ( t ) \dot{\boldsymbol{R}}(t) = \boldsymbol \phi(t) \hat{\,} \boldsymbol{R}(t) = \boldsymbol \phi_0 \hat{\,} \boldsymbol{R}(t) R˙(t)=ϕ(t)^R(t)=ϕ0^R(t)
上式是关于 R \boldsymbol{R} R的微分方程,且初始值 R ( 0 ) = I \boldsymbol{R(0)} =\boldsymbol{I} R(0)=I,解得:
R ( t ) = e ϕ 0   ^ t (8) \boldsymbol{R}(t) = e^{\boldsymbol \phi_0 \hat{\,} t} \tag{8} R(t)=eϕ0^t(8)通过上式可以看出:给定某时刻的 R \boldsymbol R R,我们就能求得一个 ϕ \phi ϕ,它描述了 R \boldsymbol R R在局部的导数关系。与 R \boldsymbol R R对应的 ϕ \phi ϕ正是对应到 S O ( 3 ) SO(3) SO(3)上的李代数 s o ( 3 ) \mathfrak{so}(3) so(3)

3.李代数的定义

  每个李群都有与之对应的李代数,李代数描述了李群的局部性质。一般的李代数的定义如下:
  李代数由一个集合 V \mathbb{V} V、一个数域 F \mathbb{F} F和一个二元运算符[,]组成。称 ( V , F , [ , ] ) (\mathbb{V}, \mathbb{F}, [,]) (V,F,[,])为一个李代数,记作 g \mathfrak g g,如果它们满足以下几条性质:

  • 封闭性: ∀ X , Y ∈ V , [ X , Y ] ∈ V \forall \boldsymbol X, \boldsymbol Y \in \mathbb V , [\boldsymbol X, \boldsymbol Y] \in \mathbb V X,YV,[X,Y]V
  • 双线性: ∀ X , Y , Z ∈ V , a , b ∈ F \forall \boldsymbol{X, Y, Z} \in \mathbb V, a, b \in \mathbb F X,Y,ZV,a,bF,有:
    [ a X + b Y , Z ] = a [ X , Z ] + b [ Y , Z ] , [ Z , a X + b Y ] = a [ Z , X ] + b [ Z , Y ] [a \boldsymbol X + b \boldsymbol Y, \boldsymbol Z] = a[\boldsymbol X, \boldsymbol Z] + b[\boldsymbol Y, \boldsymbol Z],\quad [\boldsymbol Z, a \boldsymbol X + b \boldsymbol Y] = a[\boldsymbol Z, \boldsymbol X] + b[\boldsymbol Z, \boldsymbol Y] [aX+bY,Z]=a[X,Z]+b[Y,Z],[Z,aX+bY]=a[Z,X]+b[Z,Y]
  • 自反性: ∀ X ∈ V , [ X , X ] = 0 \forall \boldsymbol X \in \mathbb V , [\boldsymbol X, \boldsymbol X] = 0 XV,[X,X]=0
  • 雅可比等价: ∀ X , Y , Z ∈ V , [ X , [ Y , Z ] ] + [ Z , [ X , Y ] ] + [ Y , [ Z , X ] ] = 0 \forall \boldsymbol{X, Y, Z} \in \mathbb V, [\boldsymbol X, [\boldsymbol Y, \boldsymbol Z ]] + [\boldsymbol Z, [\boldsymbol X, \boldsymbol Y]] + [\boldsymbol Y, [\boldsymbol Z, \boldsymbol X]] = 0 X,Y,ZV,[X,[Y,Z]]+[Z,[X,Y]]+[Y,[Z,X]]=0
    其中,二元运算称为李括号。三维向量 R 3 \mathbb R^3 R3上定义的叉积 × \times ×是一种李括号,因此 g = ( R 3 , R , × ) \mathfrak g = (\mathbb R^3, \mathbb R, \times) g=(R3,R,×)构成了一个李代数。

4.李代数 s o ( 3 ) \mathfrak{so}(3) so(3)

  李代数 s o ( 3 ) \mathfrak{so}(3) so(3)的元素是三维向量或者三维反对称矩阵:
s o ( 3 ) = { ϕ ∈ R 3 , Φ = ϕ   ^ ∈ R 3 × 3 } (9) \mathfrak{so}(3) = \left\{ \boldsymbol \phi \in \mathbb R^3, \Phi = \boldsymbol \phi \hat{\,}^{} \in \mathbb R ^ {3 \times 3} \right\} \tag{9} so(3)={ϕR3,Φ=ϕ^R3×3}(9)亦即, s o ( 3 ) \mathfrak{so}(3) so(3)的内容是一个由三维向量组成的集合,每个向量对应一个反对称矩阵,可以用于表达旋转矩阵的导数。它与 S O ( 3 ) SO(3) SO(3)的关系由指数映射给定:
R = e ϕ   ^ \boldsymbol R = e^{\boldsymbol \phi \hat{\,}^{}} R=eϕ^

5.李代数 s e ( 3 ) \mathfrak{se}(3) se(3)

s e ( 3 ) = { ξ = [ ρ ϕ ] ∈ R 6 , ρ ∈ R 3 , ϕ ∈ s o ( 3 ) , ξ   ^ = [ ϕ   ^ ρ 0 T 0 ] ∈ R 4 × 4 } (10) \mathfrak{se}(3) = \left\{ \boldsymbol \xi = \begin{bmatrix} \boldsymbol \rho \\ \boldsymbol \phi \end{bmatrix} \in \mathbb R^6, \boldsymbol \rho \in \mathbb R^3, \boldsymbol \phi \in \mathfrak{so}(3), \boldsymbol \xi \hat{\,}^{} = \begin{bmatrix} \boldsymbol \phi \hat{\,}^{} & \boldsymbol \rho \\ \boldsymbol 0^T & 0 \end{bmatrix} \in \mathbb R^{4 \times 4} \right\} \tag{10} se(3)={ξ=[ρϕ]R6,ρR3,ϕso(3),ξ^=[ϕ^0Tρ0]R4×4}(10)
我们把每个 s e ( 3 ) \mathfrak{se}(3) se(3)的元素记作 ξ \boldsymbol \xi ξ,它是一个六维向量,前三维表示平移,记作 ρ \boldsymbol \rho ρ,后三维表示旋转,记作 ϕ \boldsymbol \phi ϕ。可以简单地把 s e ( 3 ) \mathfrak{se}(3) se(3)理解成“由一个平移加上一个 s o ( 3 ) \mathfrak{so}(3) so(3)元素构成的向量”。

6.参考文献

  • 高翔等. 视觉SLAM十四讲:从理论到实践第二版. 北京:电子工业出版社,2019.8.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一字艺

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值