李群与李代数基础

  • 直观的理解:群就是一种特殊的代数结构,这种代数结构是由一种集合加上一种运算组成,我们把集合记作A,运算记为 ⋅ \cdot ⋅,那么群记为 G = ( A , ⋅ ) G=(A,\cdot) G=(A,⋅)。

例如:我规定“土豆list(TODO list)”是一种代数结构,其由待办事项和添加待办、删除待办这样的运算组成,那么“土豆list”也可以和“群”作类比来理解。

  • 要求的满足条件:
    1.封闭性 : ∀ a 1 , a 2 ∈ A , \forall a_1,a_2 \in A, ∀a1​,a2​∈A,   a 1 ⋅ a 2 ∈ A a_1 \cdot a_2 \in A a1​⋅a2​∈A.

    2.结合律: ∀ a 1 , a 2 , a 3 ∈ A , \forall a_1,a_2,a_3 \in A, ∀a1​,a2​,a3​∈A,   ( a 1 ⋅ a 2 ) ⋅ a 3 = a 1 ⋅ ( a 2 ⋅ a 3 ) (a_1 \cdot a_2) \cdot a_3 = a_1\cdot (a_2 \cdot a_3) (a1​⋅a2​)⋅a3​=a1​⋅(a2​⋅a3​).

    3.幺元: ∃ a 0 ∈ A , s . t . ∀ a ∈ A , a 0 ⋅ a = a ⋅ a 0 = a \exists a_0 \in A,s.t. \forall a \in A ,\space a_0 \cdot a = a \cdot a_0 = a ∃a0​∈A,s.t.∀a∈A, a0​⋅a=a⋅a0​=a.

    4.逆: ∀ a ∈ A , ∃ a − 1 ∈ A , s . t . a ⋅ a − 1 = a 0 \forall a \in A,\space \exists a ^{-1} \in A,\space s.t. \space a \cdot a^{-1} = a_0 ∀a∈A, ∃a−1∈A, s.t. a⋅a−1=a0​.

矩阵中常见的群有特殊正交群(旋转矩阵群) S O ( n ) SO(n) SO(n)和特殊欧式群(n维欧式变换) S E ( n ) SE(n) SE(n)。
以三维旋转矩阵 S O ( 3 ) SO(3) SO(3)为例,旋转矩阵和乘法构成了旋转矩阵群,旋转矩阵之间的乘法满足封闭性和结合性,而幺元就是单位矩阵, R R R乘以 R − 1 R^{-1} R−1也确实等于幺元。

  • 李群:指具有连续光滑性质的群,可以直观地以相机位姿在空间中的连续旋转来想象。

李代数

以下的推导将书中的内容细分,虽然说看上去有些多,但是也将推导过程变得更容易理解,建议手推一遍,这样会很有成就感~

旋转矩阵求导

  1. 定义一个三维向量 α = [ a 1 , a 2 , a 3 ] T \alpha = [a_1,a_2,a_3]^T α=[a1​,a2​,a3​]T.
    引出^符号,来表示将向量 α \alpha α变成了反对称矩阵A: α ^ = A = [ 0 − a 3 a 2 a 3 0 − a 1 − a 2 a 1 0 ] \alpha \hat{} = A = \begin{bmatrix} 0&-a_3&a_2\\ a_3 & 0& -a_1 \\ -a_2 & a_1 & 0 \end{bmatrix} α^=A=⎣⎡​0a3​−a2​​−a3​0a1​​a2​−a1​0​⎦⎤​.

  2. 对于任意旋转矩阵R,它会随时间连续的变化,是时间的函数,满足 R ( t ) R ( t ) T = I R(t)R(t)^T = I R(t)R(t)T=I,求导得 R ˙ ( t ) R ( t ) T = − ( R ˙ ( t ) R ( t ) T ) T \dot R(t) R(t) ^T = -( \dot R(t)R(t)^T)^T R˙(t)R(t)T=−(R˙(t)R(t)T)T.

  3. R ˙ ( t ) R ( t ) T \dot R(t)R(t)^T R˙(t)R(t)T是一个反对称矩阵,记作 ϕ ( t ) ^ \phi(t)\hat{} ϕ(t)^,则 R ˙ ( t ) = ϕ ( t ) ^ R ( t ) \dot R(t) = \phi(t)\hat{}R(t) R˙(t)=ϕ(t)^R(t),也就是说,对旋转矩阵求导数,只要左乘一个 ϕ ( t ) \phi(t) ϕ(t)矩阵即可。

旋转矩阵和反对称矩阵的关系—— R ( t ) = e x p ( ϕ 0 t t ) R(t) = exp(\phi _0 ^ t t) R(t)=exp(ϕ0t​t)

  1. R(t)在t = 0时,规定此时旋转矩阵R(t)为 I I I。
  2. R ˙ ( t ) = ϕ ( t ) ^ R ( t ) \dot R(t) = \phi(t)\hat{}R(t) R˙(t)=ϕ(t)^R(t),此时引入一个小概念——矩阵指数。

有一个简单的标量一阶线性微分方程 x ˙ ( t ) = a x ( t ) \dot x(t) = ax(t) x˙(t)=ax(t),其中 x ( t ) ∈ R , a ∈ R x(t) \in R, a \in R x(t)∈R,a∈R,且初始条件为 x ( 0 ) = x 0 x(0) = x_0 x(0)=x0​,那么解为 x ( t ) = e a t x 0 x(t) = e^{at}x_0 x(t)=eatx0​。

  1. 有了矩阵指数的概念,我们可以轻地得出 R ( t ) = e ϕ ( t 0 ) ^ t R ( t 0 ) R(t) = e^{\phi(t_0) \hat{} t}R(t_0) R(t)=eϕ(t0​)^tR(t0​)。
  2. 因为 R ( 0 ) = I R(0) = I R(0)=I,在 t 0 t_0 t0​附近,设 ϕ \phi ϕ保持为常数 ϕ 0 \phi_0 ϕ0​,所以上式可化为 R ( t ) = e ϕ 0 ^ t R(t) = e^{\phi_0 \hat{}t} R(t)=eϕ0​^t即 R ( t ) = e x p ( ϕ 0 ^ t ) R(t) = exp(\phi_0 \hat{}t) R(t)=exp(ϕ0​^t)。

李代数的引出

  1. 按照导数定义,使旋转矩阵在t=0附近一阶泰勒展开,得:
    R ( t ) ≈ R ( t 0 ) + R ˙ ( t 0 ) ( t − t 0 ) = I + ϕ ( t 0 ) ^ ( t ) R(t) \approx R(t_0)+ \dot R(t_0)(t-t_0) = I + \phi(t_0) \hat {}(t) R(t)≈R(t0​)+R˙(t0​)(t−t0​)=I+ϕ(t0​)^(t).
  2. 可以看到 ϕ \phi ϕ反映了R的导数性质,故称它在SO(3)上的原点 ϕ 0 \phi _0 ϕ0​ 附近的正切空间上。这个 ϕ \phi ϕ正是李群SO(3)对应的李代数so(3)。
  3. 简单地理解就是,李代数so(3)是三维向量 ϕ \phi ϕ的集合,李群SO(3)是旋转矩阵的集合,冥冥之中两个集合建立了联系:李群空间的任意一个旋转矩阵R,都可以用李代数空间的一个向量的反对称矩阵指数来近似

李代数的定义

  1. 每个李群都有对应的李代数,李代数描述了李群的局部性质,准确地说,是单位元附近的正切空间。
  2. 李代数由一个集合V、一个数域F和一个二元运算[,]组成。如果满足以下几条性质,则称(V,F,[,])为一个李代数。
    • 封闭性: ∀ X , Y ∈ V , [ X , Y ] ∈ V \forall X,Y \in V,[X,Y] \in V ∀X,Y∈V,[X,Y]∈V.
    • 双线性: ∀ X , Y , Z ∈ V , a , b ∈ F \forall X,Y,Z \in V,a,b \in F ∀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 ] [aX+bY,Z] = a[X,Z]+ b[Y,Z],[Z,aX+bY] = a[Z,X]+ b[Z,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 X \in V,[X,X] = 0 ∀X∈V,[X,X]=0.
    • 雅可比等价: ∀ 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,Z∈V,[X,[Y,Z]]+[Z,[X,Y]]+[Y,[Z,X]]=0.
  3. 其中的二元运算被称为李括号,例如,三维向量 R 3 R^3 R3上定义的叉积x就是一种李括号。

两种李代数so(3)和se(3)

  1. 李代数 so(3) 是定义在 R 3 R^3 R3上的向量,记作 ϕ \phi ϕ。每个 ϕ \phi ϕ都可以生成一个反对称矩阵:
    Φ = ϕ ^ = [ 0 − ϕ 3 ϕ 2 ϕ 3 0 − ϕ 1 − ϕ 2 ϕ 1 0 ] ∈ R 3 × 3 \Phi = \phi \hat{} = \begin{bmatrix} 0 & -\phi _3 & \phi _2 \\ \phi _3 & 0 & -\phi _1 \\ -\phi _2 & \phi _1& 0 \end{bmatrix} \in R^{3 \times 3} Φ=ϕ^=⎣⎡​0ϕ3​−ϕ2​​−ϕ3​0ϕ1​​ϕ2​−ϕ1​0​⎦⎤​∈R3×3
    两个向量的李括号为 [ ϕ 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​)∨.
  2. 李代数 se(3)so(3) 相似,se(3) 位于 R 6 R^6 R6空间中: s e ( 3 ) = { ξ = [ ρ ϕ ] ∈ R 6 , ρ ∈ R 3 , ϕ ∈ s o ( 3 ) , ξ ^ = [ ϕ ^ ρ 0 T 0 ] ∈ R 4 × 4 } se(3) = \{ \xi = \begin {bmatrix} \rho \\ \phi \end{bmatrix} \in R^6 , \rho \in R^3 , \phi \in so(3), \xi \hat{} = \begin {bmatrix} \phi \hat{} & \rho \\ 0 ^T & 0 \end{bmatrix} \in R^{4 \times 4} \} se(3)={ξ=[ρϕ​]∈R6,ρ∈R3,ϕ∈so(3),ξ^=[ϕ^0T​ρ0​]∈R4×4}
    这里把每个se(3)元素记作 ξ \xi ξ,它是一个六维向量,前三维为平移,记作 ρ \rho ρ,后三维为旋转,记作 ϕ \phi ϕ,实质上是so(3)元素。在se(3)中,同样使用^符号,但是^不再表示反对称,而是表示将一个六维向量转换成四维矩阵。
    se(3)的李括号为: [ ξ 1 , ξ 2 ] = ( ξ 1 ^ ξ 2 ^ − ξ 2 ^ ξ 1 ^ ) ∨ [\xi _1 ,\xi _2] = (\xi _1 \hat{} \xi _2 \hat{}-\xi _2 \hat{} \xi _1 \hat{}) ^ {\vee} [ξ1​,ξ2​]=(ξ1​^ξ2​^−ξ2​^ξ1​^)∨.

指数与对数映射

公式写麻了。。。就以so(3)为例吧

SO(3)上的指数映射