Published on

李代数: 引出

Authors
  • Name

这篇文章总结了《视觉 SLAM 14 讲》中第四讲(李群与李代数)的部分内容. 跳到小结.


群是一种集合加上一种运算的代数结构. 记集合为 AA, 运算为 \cdot, 则群可以记为

G=(A,)G = (A, \cdot)

运算性质

群要求运算 \cdot 满足以下条件:

  • 封闭性:

a1,a2A,a1a2A.\forall a_1, a_2 \in A, a_1 \cdot a_2 \in A.

  • 结合律:

a1,a2,a3A,(a1a2)a3=a1(a2a3).\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).

  • 幺元:

a0A,  s.t.aA,a0a=aa0=a.\exists a_0 \in A, \;s.t. \forall a \in A, a_0 \cdot a = a \cdot a_0 = a.

  • 逆:

aA,a1A,  s.t.aa1=a0.\forall a \in A, \exists a^{-1} \in A, \; s.t. a \cdot a^{-1} = a_0.

常见的群:

  • 一般线性群 GL(n)GL(n): 指 n×nn \times n 可逆矩阵, 对矩阵乘法运算成群.
  • 特殊正交群 SO(n)SO(n): 即旋转矩阵群, 对矩阵乘法成群, SO(2)SO(2)SO(3)SO(3) 最常见.
  • 特殊欧氏群 SE(n)SE(n): 代表了 nn 维欧式变换, 对矩阵乘法成群, 如 SE(2)SE(2), SE(3)SE(3).

李群

李群指具有连续(光滑)性质的群.

  • 整数群 Z\mathbb{Z} 就没有连续性质;

  • SO(n)SO(n)SE(n)SE(n)Rn\mathbb{R}^n 上是连续的, 它们是李群.

  • 回顾:

    • 特殊正交群 SO(n)SO(n):

    SO(n)={RRn×n    RRT=I,det(R)=1}. SO(n) = \left \lbrace \mathbf{R} \in \mathbb{R}^{n \times n} \; | \; \mathbf{RR}^T = \mathbf{I}, det(\mathbf{R}) = 1 \right \rbrace.

    • 特殊欧氏群 SE(n)SE(n):

    SE(n)={T=[Rt0T1]R(n+1)×(n+1)    RSO(n),tRn}SE(n) = \left \lbrace \mathbf{T} = \left [ \begin{array}{cc} \mathbf{R} & \mathbf{t} \\ \mathbf{0}^T & 1 \end{array} \right ] \in \mathbb{R}^{(n+1) \times (n+1)} \; | \; \mathbf{R} \in SO(n), \mathbf{t} \in \mathbb{R}^n \right \rbrace

  • 视觉 SLAM 中主要讨论的是 SO(3)SO(3)SE(3)SE(3) 这两个李群.

李代数

引出

考虑 SO(3)SO(3) 中的元素 R\mathbf{R}, 有

RRT=I.\mathbf{RR}^T = \mathbf{I}.

类似地, 对一个随时间变化的旋转矩阵 R(t)\mathbf{R}(t), 有

R(t)R(t)T=I.\mathbf{R}(t)\mathbf{R}(t)^T = \mathbf{I}.

上式左右两边对 tt 求导有

R˙(t)R(t)T+R(t)TR˙(t)=0,\mathbf{\dot{R}}(t)\mathbf{R}(t)^T + \mathbf{R}(t)^T\mathbf{\dot{R}}(t) = \mathbf{0},

R˙(t)R(t)T=[R(t)TR˙(t)]T.\mathbf{\dot{R}}(t)\mathbf{R}(t)^T = -[\mathbf{R}(t)^T\mathbf{\dot{R}}(t)]^T.

这说明矩阵 R˙RT\mathbf{\dot{R}}\mathbf{R}^T 是一个反对称矩阵. 故存在向量 ϕ(t)R3\boldsymbol\phi(t) \in \mathbb{R}^3 使得

R˙RT=ϕ(t).\mathbf{\dot{R}}\mathbf{R}^T = \boldsymbol\phi(t)^\wedge.

在等式两边右乘 R(t)\mathbf{R}(t), 得

R˙(t)=ϕ(t)R(t).\mathbf{\dot{R}}(t) = \boldsymbol\phi(t)^\wedge\mathbf{R}(t).

这说明要对矩阵 R\mathbf{R} 求一次导数, 只需要左乘一个反对称矩阵 ϕ\boldsymbol\phi^\wedge 即可.

R(t)\mathbf{R}(t)t0=0t_0 = 0 处的值为 I\mathbf{I}, 可以把 R(t)\mathbf{R}(t)t0=0t_0 = 0 附近做一阶泰勒展开:

R(t)R(t0)+R˙(t0)(tt0)=I+ϕ(t0).\begin{aligned} \mathbf{R}(t) &\approx \mathbf{R}(t_0) + \mathbf{\dot{R}}(t_0)(t - t_0) \\\\ &= \mathbf{I} + \boldsymbol\phi(t_0)^\wedge. \end{aligned}

ϕ\boldsymbol\phi 反映了 RSO(3)\mathbf{R} \in SO(3) 的导数性质, 故称它在 SO(3)SO(3) 原点附近的正切空间(Tangent Space)上.

t0=0t_0 = 0 附近, 设 ϕ\boldsymbol\phi 为常数 ϕ0\boldsymbol{\phi_0}, 有

R˙=ϕ(t0)R(t),R˙=ϕ0R(t).\begin{aligned} \mathbf{\dot{R}} &= \boldsymbol\phi(t_0)^\wedge \mathbf{R}(t), \\\\ \Rightarrow \mathbf{\dot{R}} &= \boldsymbol\phi^\wedge_0\mathbf{R}(t). \end{aligned}

这是关于 R\mathbf{R} 的微分方程, 由于已知 R(0)=I\mathbf{R}(0) = \mathbf{I}, 则有

R(t)=exp(ϕ),where  RSO(3).\mathbf{R}(t) = \exp(\boldsymbol\phi^\wedge), \text{where} \; \mathbf{R} \in SO(3).


如此就得到了 SO(3)SO(3) 中元素 RRR3\mathbb{R}^3 中向量 ϕ\boldsymbol\phi 的映射关系. 也出现了两个问题:

  1. R\mathbf{R} 对应的 ϕ\boldsymbol\phi 有何含义?
  2. 矩阵指数 exp(ϕ)\exp(\boldsymbol\phi^\wedge) 如何计算?

定义

每个李群都有与之对应的李代数. 李代数描述了李群的局部性质.

定义: 李代数由一个集合 V\mathbb{V}, 一个数域 F\mathbb{F} 和一个二元运算 [,][,] 组成. 如果它们满足以下性质, 称 (V,F,[,])(\mathbb{V}, \mathbb{F}, [,]) 为一个李代数, 记作 gg:

  • 封闭性: X,YV,[X,Y]V.\forall X, Y \in \mathbb{V}, [X, Y] \in \mathbb{V}.
  • 双线性: X,Y,ZV,a,bF\forall X, Y, Z \in \mathbb{V}, a, b \in \mathbb{F}, 有

[aX+bY,Z]=a[X,Z]+b[Y,Z],[Z,aX+bY]=a[Z,X]+b[Z,Y].\begin{aligned} [aX + bY, Z] &= a[X, Z] + b[Y, Z], \\\\ [Z, aX + bY] &= a[Z, X] + b[Z, Y]. \end{aligned}

  • 自反性(交错性): XV,[X,X]=0\forall X \in \mathbb{V}, [X, X] = 0.

自反性指自己与自己进行李括号运算结果为零.

  • 雅可比等价: X,Y,ZV\forall X, Y, Z \in \mathbb{V}, 有

[X,[Y,Z]]+[Z,[X,Y]]+[Y,[Z,X]]=0.[X, [Y, Z]] + [Z, [X, Y]] + [Y, [Z, X]] = 0.

  • 此处有推论(反交换律): 由双线性自反性(交错性), 有

    0=[X+Y,X+Y]=[X,X+Y]+[Y,X+Y]=[X,X]+[X,Y]+[Y,X]+[Y,Y]=[X,Y]+[Y,X]\begin{aligned} 0 = [X + Y, X + Y] &= [X, X + Y] + [Y, X + Y] \\\\ &= [X, X] + [X, Y] + [Y, X] + [Y, Y] \\\\ &= [X, Y] + [Y, X] \end{aligned}

    故有 [X,Y]=[Y,X][X, Y] = -[Y, X]. (反交换律)

  • 例子:

    • 三维向量 R3\mathbb{R}^3 上定义的叉积 ×\times 是一种李括号, 因此 g=(R3,R,×)g = (\mathbb{R}^3, \mathbb{R}, \times) 构成了一个李代数.

李代数 so(3)so(3)

在前面的引出中提到的 ϕ\phi, 事实上是一种李代数. SO(3)SO(3) 对应的李代数是定义在 R3\mathbb{R}^3 上的向量, 记作 ϕR3\boldsymbol\phi \in \mathbb{R}^3. 每一个 ϕ\phi 都可以对应生成一个反对称矩阵 Φ\boldsymbol\Phi:

Φ=ϕ=[0ϕ3ϕ2ϕ30ϕ1ϕ2ϕ10]R3×3\boldsymbol\Phi = \boldsymbol\phi^\wedge = \left [ \begin{array}{ccc} 0 & -\phi_3 & \phi_2 \\\\ \phi_3 & 0 & -\phi_1 \\\\ -\phi_2 & \phi_1 & 0 \end{array} \right ] \in \mathbb{R}^{3 \times 3}

在此定义下, 两个向量 ϕ1,ϕ2\phi_1, \phi_2 的李括号为:

[ϕ1,ϕ2]=(Φ1Φ2Φ2Φ1).[\phi_1, \phi_2] = (\boldsymbol\Phi_1 \boldsymbol\Phi_2 - \boldsymbol\Phi_2 \boldsymbol\Phi_1)^{\vee}.

由于 ϕ\phi 与其对应的反对称矩阵 Φ\boldsymbol\Phi 之间的关系很紧密, 故在不引起歧义的情况下, 就称李代数 so(3)so(3) 的元素是 3 维向量或 3 维反对称矩阵:

so(3)={ϕR3,Φ=ϕR3×3}.so(3) = \left \lbrace \boldsymbol\phi \in \mathbb{R}^3, \boldsymbol\Phi = \boldsymbol\phi^\wedge \in \mathbb{R}^{3\times 3} \right \rbrace.

三维向量 ϕso(3)\phi \in so(3) 与其在 {SO(3) 中的旋转矩阵的对应关系由_指数映射_给出:

R=exp(ϕ).\mathbf{R} = \exp(\boldsymbol\phi^\wedge).

李代数 se(3)se(3)

对于李群 SE(3)SE(3), 也有对应的李代数 se(3)se(3).

李群 SE(3)SE(3) 的形式可以表示为:

SE(3)={T=[Rt0T1]R4×4    RSO(3),tR3}.SE(3) = \left \lbrace \mathbf{T} = \left [ \begin{array}{cc} \mathbf{R} & \mathbf{t} \\ \mathbf{0}^T & 1 \end{array} \right ] \in \mathbb{R}^{4 \times 4} \; | \; \mathbf{R} \in SO(3), \mathbf{t} \in \mathbb{R}^3 \right \rbrace.

每个变换矩阵 T\mathbf{T} 有六个自由度, 故对应的李代数 ξ\boldsymbol\xi 位于 R6\mathbb{R}^6[1]:

se(3)={ξ=[ρϕ]R6,Ξ=ξ=[ϕρ0T0]R4×4}.se(3) = \left \lbrace \boldsymbol\xi = \left [ \begin{array}{c} \boldsymbol\rho \\ \boldsymbol\phi \end{array} \right ] \in \mathbb{R}^6, \boldsymbol\Xi = \boldsymbol\xi^\wedge = \left [ \begin{array}{cc} \boldsymbol\phi^\wedge & \boldsymbol\rho \\ \mathbf{0}^T & 0 \end{array} \right ] \in \mathbb{R}^{4 \times 4} \right \rbrace.

注意此处 ^\wedge 不再表示向量 \rightarrow 反对称矩阵的映射, 而是把一个六维向量映射为一个四维矩阵.

可以看到 ξ\xi 的前三维代表平移 (此时的 ρ\boldsymbol\rho 还不直接是平移向量), 后三维代表旋转 (后三维即 ϕso(3)\boldsymbol\phi \in so(3) ). 这一李代数对应微分方程:

T˙(t)=ξ(t)T(t).\mathbf{\dot{T}}(t) = \boldsymbol\xi^\wedge(t) \mathbf{T}(t).

于是有

T(t)=exp(ξ)T(t0).\mathbf{T}(t) = \exp(\boldsymbol\xi^\wedge) \mathbf{T}(t_0).

由_指数映射_, 有

exp(ξ)={n=01n(ϕ)nn=01(n+1)!(ϕ)nρ0T1}={ΦJρ0T1}.\begin{aligned} \exp(\boldsymbol\xi^\wedge) &= \left \lbrace \begin{array}{cc} \sum_{n=0}^\infty\frac{1}{n}(\boldsymbol\phi^\wedge)^n & \sum_{n=0}^\infty\frac{1}{(n+1)!}(\boldsymbol\phi^\wedge)^n \boldsymbol\rho \\ \mathbf{0}^T & 1 \end{array} \right \rbrace \\ &= \left \lbrace \begin{array}{cc} \boldsymbol\Phi & \mathbf{J}\boldsymbol\rho \\ \mathbf{0}^T & 1 \end{array} \right \rbrace. \end{aligned}

小结 [1:1]

  • 李代数表达的正切空间, 具有和其对应李群相同的自由度;
  • _指数映射_能够把正切空间中的向量正好映射到原李群.

  1. 视觉SLAM中的数学基础第三篇:李群与李代数 ↩︎ ↩︎