《视觉SLAM十四讲》读书笔记(二)

李群与李代数

引入李群与李代数的原因:旋转矩阵自身是带有约束的(正交且行列式为1).它们作为优化变量时,会引入额外的约束,使优化变得困难。通过李群——李代数间的转换关系,我们希望把位姿估计变成无约束的优化问题,简化求解方式。

4.1 李群与李代数基础

三维旋转矩阵构成了特殊正交群SO(3)
变换矩阵构成了特殊欧式群SE(3)
S O ( 3 ) = { R ∈ R 3 × 3 ∣ R R T = I , det ⁡ ( R ) = 1 } S E ( 3 ) = { T = [ R t 0 T 1 ] ∈ R 4 × 4 ∣ R ∈ S O ( 3 ) , t ∈ R 3 } \begin{array}{l} \mathrm{SO}(3)=\left\{\boldsymbol{R} \in \mathbb{R}^{3 \times 3} | \boldsymbol{R} \boldsymbol{R}^{\mathrm{T}}=\boldsymbol{I}, \operatorname{det}(\boldsymbol{R})=1\right\} \\ \mathrm{SE}(3)=\left\{\boldsymbol{T}=\left[\begin{array}{ll} \boldsymbol{R} \boldsymbol{t} \\ \mathbf{0}^{\mathrm{T}} 1 \end{array}\right] \in \mathbb{R}^{4 \times 4} | \boldsymbol{R} \in \mathrm{SO}(3), \boldsymbol{t} \in \mathbb{R}^{3}\right\} \end{array} SO(3)={RR3×3RRT=I,det(R)=1}SE(3)={T=[Rt0T1]R4×4RSO(3),tR3}
乘法对应着旋转或变换的集合,两个旋转矩阵相乘表示做了两次旋转。对于这种只有一个(良好的,封闭的)运算的集合,我们称之为

4.1.1 群

群的定义:群是一种集合加上一种运算的代数结构。
运算对象:集合记作 A A A
运算符:运算记作 ⋅ \cdot
群的标记: G = ( A , ⋅ ) G=(A,\cdot) G=(A,)

群对运算的要求(封结幺逆 = 丰俭由你):

  1. 封闭性 ∀ 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.

  2. 结合律: ∀ 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, \ \ \ \ \ \left(a_{1} \cdot a_{2}\right) \cdot a_{3}=a_{1} \cdot\left(a_{2} \cdot a_{3}\right)} a1,a2,a3A,     (a1a2)a3=a1(a2a3).

  3. 幺元: ∃ a 0 ∈ A ,       { \exists a_{0} \in A, \ \ \ \ \ } a0A,      s.t. ∀ a ∈ A ,       a 0 ⋅ a = a ⋅ a 0 = a { \forall a \in A, \ \ \ \ \ a_{0} \cdot a=a \cdot a_{0}=a} aA,     a0a=aa0=a.

  4. : ∀ a ∈ A ,       ∃ a − 1 ∈ A ,       { \forall a \in A, \ \ \ \ \ \exists a^{-1} \in A, \ \ \ \ \ } aA,     a1A,      s.t. a ⋅ a − 1 = a 0 { a \cdot a^{-1}=a_{0}} aa1=a0.

李群的定义:李群是指具有连续(光滑)性质的群。

参考:旋转之十一 - SE(3) 和 se(3)

4.1.2 李代数的引出

R \boldsymbol{R} R是某个相机的旋转,它会随时间连续地变化,即为时间的函数: R ( t ) \boldsymbol{R}(t) R(t),有:
R ( t ) R ( t ) T = I (4.5) \boldsymbol{R}(t)\boldsymbol{R}(t)^T=\boldsymbol{I}\tag{4.5} R(t)R(t)T=I(4.5)
在等式两边对时间求导,得到
R ˙ ( t ) R ( t ) T + R ( t ) R ˙ ( t ) T = 0 \dot{\boldsymbol{R}}(t) \boldsymbol{R}(t)^{\mathrm{T}}+\boldsymbol{R}(t) \dot{\boldsymbol{R}}(t)^{\mathrm{T}}=0 R˙(t)R(t)T+R(t)R˙(t)T=0
整理得
R ˙ ( t ) R ( t ) T = − ( R ˙ ( t ) R ( t ) T ) T (4.6) \dot{\boldsymbol{R}}(t) \boldsymbol{R}(t)^{\mathrm{T}}=-\left(\dot{\boldsymbol{R}}(t) \boldsymbol{R}(t)^{\mathrm{T}}\right)^{\mathrm{T}}\tag{4.6} R˙(t)R(t)T=(R˙(t)R(t)T)T(4.6)
R ˙ ( t ) R ( t ) T \dot{\boldsymbol{R}}(t) \boldsymbol{R}(t)^{\mathrm{T}} R˙(t)R(t)T是一个反对称矩阵。 ∧ ^\wedge 符号可以将一个向量转成反对称矩阵。反对称矩阵,也能找到唯一与之对应的向量。
a ∧ = A = [ 0 − a 3 a 2 a 3 0 − a 1 − a 2 a 1 0 ] , A ∨ = a (4.7) \boldsymbol{a}^{\wedge}=\boldsymbol{A}=\left[\begin{array}{ccc} 0 & -a_{3} & a_{2} \\ a_{3} & 0 & -a_{1} \\ -a_{2} & a_{1} & 0 \end{array}\right], \boldsymbol{A}^{\vee}=\boldsymbol{a}\tag{4.7} a=A=0a3a2a30a1a2a10,A=a(4.7)
于是,由于 R ˙ ( t ) R ( t ) T \dot{\boldsymbol{R}}(t) \boldsymbol{R}(t)^{\mathrm{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)^{\mathrm{T}}=\boldsymbol{\phi}(t)^{\wedge} R˙(t)R(t)T=ϕ(t)

等式两边右乘 R ( t ) {\boldsymbol{R}(t)} R(t), 由于 R {\boldsymbol{R}} R 为正交阵, 可以消去左边的 R T {\boldsymbol{R}}^T RT
R ˙ ( t ) = ϕ ( t ) ∧ R ( t ) = [ 0 − ϕ 3 ϕ 2 ϕ 3 0 − ϕ 1 − ϕ 2 ϕ 1 0 ] R ( t ) (4.8) \dot{\boldsymbol{R}}(t)=\boldsymbol{\phi}(t)^{\wedge} \boldsymbol{R}(t)=\left[\begin{array}{ccc} 0 & -\phi_{3} & \phi_{2} \\ \phi_{3} & 0 & -\phi_{1} \\ -\phi_{2} & \phi_{1} & 0 \end{array}\right] \boldsymbol{R}(t)\tag{4.8} R˙(t)=ϕ(t)R(t)=0ϕ3ϕ2ϕ30ϕ1ϕ2ϕ10R(t)(4.8)
旋转矩阵的导数:只需左乘一个 ϕ ( t ) ∧ \boldsymbol{\phi}(t)^{\wedge} ϕ(t)即可。考虑 t 0 = 0 t_0=0 t0=0时,设此时旋转矩阵为 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 ) ∧ R ( t 0 ) ( t ) = I + ϕ ( t 0 ) ∧ ( t ) (4.9) \boldsymbol{R}(t) \approx \boldsymbol{R}\left(t_{0}\right)+\dot{\boldsymbol{R}}\left(t_{0}\right)\left(t-t_{0}\right) \\ =\boldsymbol{I}+\boldsymbol{\phi}\left(t_{0}\right)^{\wedge}\boldsymbol{R}(t_{0})(t)\\ =\boldsymbol{I}+\boldsymbol{\phi}\left(t_{0}\right)^{\wedge}(t)\tag{4.9} R(t)R(t0)+R˙(t0)(tt0)=I+ϕ(t0)R(t0)(t)=I+ϕ(t0)(t)(4.9)
ϕ \boldsymbol{\phi} ϕ的定义:在SO(3)原点附近的正切空间,它反映了 R \boldsymbol{R} R的导数性质

t 0 t_0 t0附近,设 ϕ \boldsymbol{\phi} ϕ保持为常数 ϕ ( t 0 ) = ϕ 0 \boldsymbol{\phi}(t_0)=\boldsymbol{\phi}_0 ϕ(t0)=ϕ0。根据式(4.8),有
R ˙ ( t ) = ϕ ( t 0 ) ∧ R ( t ) = ϕ 0 ∧ R ( t ) \dot{\boldsymbol{R}}(t)=\boldsymbol{\phi}\left(t_{0}\right)^{\wedge} \boldsymbol{R}(t)=\boldsymbol{\phi}_{0}^{\wedge} \boldsymbol{R}(t) R˙(t)=ϕ(t0)R(t)=ϕ0R(t)
上式是一个关于 R \boldsymbol{R} R的微分方程,而且有初始值 R ( 0 ) = I \boldsymbol{R}(0)=\boldsymbol{I} R(0)=I,解得
R ( t ) = exp ⁡ ( ϕ 0 ∧ t ) (4.10) \boldsymbol{R}(t)=\exp \left(\boldsymbol{\phi}_{0}^{\wedge} t\right)\tag{4.10} R(t)=exp(ϕ0t)(4.10)
式(4.10)推导:

R ˙ ( t ) = ϕ ( t 0 ) ∧ R ( t ) = ϕ 0 ∧ R ( t ) = d R ( t ) d t \dot{\boldsymbol{R}}(t)=\boldsymbol{\phi}\left(t_{0}\right)^{\wedge} \boldsymbol{R}(t)= \boldsymbol{\phi}_{0}^{\wedge} \boldsymbol{R}(t)=\frac{d\boldsymbol{R}(t)}{dt} R˙(t)=ϕ(t0)R(t)=ϕ0R(t)=dtdR(t)
方法1. 转为一阶齐次线性微分方程标准形式
d R ( t ) d t − ϕ 0 ∧ R ( t ) = 0 \frac{d\boldsymbol{R}(t)}{dt}-\boldsymbol{\phi}_{0}^{\wedge} \boldsymbol{R}(t)=0 dtdR(t)ϕ0R(t)=0
得到通解形式:
R ( t ) = exp ⁡ ( ϕ 0 ∧ t ) \boldsymbol{R}(t)=\exp \left(\boldsymbol{\phi}_{0}^{\wedge} t\right) R(t)=exp(ϕ0t)
方法2. 或者逐步推导,由
d R ( t ) R ( t ) = ϕ 0 ∧ d t \frac{d\boldsymbol{R}(t)}{R(t)}=\boldsymbol{\phi}_{0}^{\wedge}{dt} R(t)dR(t)=ϕ0dt
l n ∣ R ( t ) ∣ = ∫ ϕ 0 ∧ d t + C ln|\boldsymbol{R}(t)|=\int \boldsymbol{\phi}_{0}^{\wedge}{dt}+C lnR(t)=ϕ0dt+C
∣ R ( t ) ∣ = e ϕ 0 ∧ d t + C = e C e ϕ 0 ∧ d t = R ( 0 ) e ϕ 0 ∧ d t |\boldsymbol{R}(t)|=e^{\boldsymbol{\phi}_{0}^{\wedge}{dt}+C}=e^Ce^{\boldsymbol{\phi}_{0}^{\wedge}{dt}}=\boldsymbol{R}(0)e^{\boldsymbol{\phi}_{0}^{\wedge}{dt}} R(t)=eϕ0dt+C=eCeϕ0dt=R(0)eϕ0dt
由于初始值 R ( 0 ) = I \boldsymbol{R}(0)=\boldsymbol{I} R(0)=I,因此同样可以得到结果
R ( t ) = exp ⁡ ( ϕ 0 ∧ t ) \boldsymbol{R}(t)=\exp \left(\boldsymbol{\phi}_{0}^{\wedge} t\right) R(t)=exp(ϕ0t)

总结

  1. 给定某时刻的 R \boldsymbol{R} R,我们就能求得一个 ϕ \boldsymbol{\phi} ϕ,它描述了 R \boldsymbol{R} R在局部的倒数关系。与 R \boldsymbol{R} R对应的 ϕ \boldsymbol{\phi} ϕ正是对应到 S O ( 3 ) SO(3) SO(3)的李代数 s o ( 3 ) \mathfrak{s o}(3) so(3)
  2. 李群与李代数间的指数/对数映射,给出了向量 ϕ \boldsymbol{\phi} ϕ R \boldsymbol{R} R一一对应的关系。
  3. 有朋友可能还在困惑,到底 ϕ \boldsymbol{\phi} ϕ怎么求取。实际上,利用式(4.9),只需要知道 R ( t ) \boldsymbol{R}(t) R(t) R ( t 0 ) \boldsymbol{R}(t_0) R(t0)即可求得 ϕ \boldsymbol{\phi} ϕ

4.1.3 李代数的定义

李代数由一个集合 V \mathbb{V} V、一个数域 F \mathbb{F} F和一个二元运算 [ , ] [,] [,]组成。如果它们满足以下几条性质,则称 ( V , F , [ , ] ) (\mathbb{V},\mathbb{F},[,]) (V,F,[,])为一个李代数,记作 g \mathfrak{g} g

  1. 封闭性: ∀ X , Y ∈ V , [ X , Y ] ∈ V . \quad \forall \boldsymbol{X}, \boldsymbol{Y} \in \mathbb{V},[\boldsymbol{X}, \boldsymbol{Y}] \in \mathbb{V} . X,YV,[X,Y]V.

  2. 双线性: ∀ X , Y , Z ∈ V , a , b ∈ F \forall \boldsymbol{X}, \boldsymbol{Y}, \boldsymbol{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]

  3. 自反性: ∀ X ∈ V , [ X , X ] = 0. \quad \forall \boldsymbol{X} \in \mathbb{V},[\boldsymbol{X}, \boldsymbol{X}]=\mathbf{0} . XV,[X,X]=0.

  4. 雅可比等价: ∀ X , Y , Z ∈ V , [ X , [ Y , Z ] ] + [ Z , [ X , Y ] ] + [ Y , [ Z , X ] ] = 0. \quad \forall \boldsymbol{X}, \boldsymbol{Y}, \boldsymbol{Z} \in \mathbb{V},[\boldsymbol{X},[\boldsymbol{Y}, \boldsymbol{Z}]]+[\boldsymbol{Z},[\boldsymbol{X}, \boldsymbol{Y}]]+[\boldsymbol{Y},[\boldsymbol{Z}, \boldsymbol{X}]]=\mathbf{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.1.4 李代数 s o ( 3 ) \mathfrak{s o}(3) so(3)

前面提到的 ϕ \boldsymbol{\phi} ϕ,事实上是一种李代数。SO(3)对应的李代数是定义在 R 3 \mathbb{R}^3 R3上的向量,我们记作 ϕ \boldsymbol{\phi} ϕ。每个 ϕ \boldsymbol{\phi} ϕ都可以生成一个反对称矩阵:
Φ = ϕ ∧ = [ 0 − ϕ 3 ϕ 2 ϕ 3 0 − ϕ 1 − ϕ 2 ϕ 1 0 ] ∈ R 3 × 3 (4.11) \boldsymbol{\Phi}=\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}\tag{4.11} Φ=ϕ=0ϕ3ϕ2ϕ30ϕ1ϕ2ϕ10R3×3(4.11)
在此定义下,两个向量 ϕ 1 \boldsymbol{\phi}_1 ϕ1, ϕ 2 \boldsymbol{\phi}_2 ϕ2的李括号为:
[ ϕ 1 , ϕ 2 ] = ( Φ 1 Φ 2 − Φ 2 Φ 1 ) ∨ (4.12) \left[\boldsymbol{\phi}_{1}, \boldsymbol{\phi}_{2}\right]=\left(\boldsymbol{\Phi}_{1} \boldsymbol{\Phi}_{2}-\boldsymbol{\Phi}_{2} \boldsymbol{\Phi}_{1}\right)^{\vee}\tag{4.12} [ϕ1,ϕ2]=(Φ1Φ2Φ2Φ1)(4.12)
由于向量 ϕ \boldsymbol{\phi} ϕ与反对称矩阵是一一 对应的, 在不引起歧义的情况下, 就说 s o ( 3 ) \mathfrak{s o}(3) so(3) 的元素是三维向量或者三维反对称矩阵, 不加区别:
s o ( 3 ) = { ϕ ∈ R 3 , Φ = ϕ ∧ ∈ R 3 × 3 } (4.13) \mathfrak{s o}(3)=\left\{\phi \in \mathbb{R}^{3}, \boldsymbol{\Phi}=\phi^{\wedge} \in \mathbb{R}^{3 \times 3}\right\}\tag{4.13} so(3)={ϕR3,Φ=ϕR3×3}(4.13)
s o ( 3 ) \mathfrak{s o}(3) so(3)是一个由三维向量组成的集合, 每个向量对应一个反对称矩阵, 可以用于表达旋转矩阵的导数。它与 S O ( 3 ) \mathrm{SO}(3) SO(3) 的关系由指数映射给定:
R = exp ⁡ ( ϕ ∧ ) (4.14) \boldsymbol{R}=\exp \left(\boldsymbol{\phi}^{\wedge}\right)\tag{4.14} R=exp(ϕ)(4.14)
由于 ϕ \phi ϕ与反对称矩阵关系很紧密,在不引起歧义的情况下,就说 s o ( 3 ) \mathfrak{s o}(3) so(3)的元素是3维向量或者3维反对称矩阵,不加区别:
s o ( 3 ) = { Φ = ϕ ∧ ∈ R 3 × 3 ∣ ϕ ∈ R 3 } \mathfrak{s o}(3)=\left\{\Phi=\phi^{\wedge} \in \mathbb{R}^{3 \times 3} \mid \phi \in \mathbb{R}^{3}\right\} so(3)={Φ=ϕR3×3ϕR3}

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

对于SE(3),它也有对应的李代数 s e ( 3 ) \mathfrak{s e}(3) se(3) s e ( 3 ) \mathfrak{s e}(3) se(3)位于 R 6 \mathbb{R}^6 R6空间中:
s e ( 3 ) = { ξ = [ ρ ϕ ] ∈ R 6 , ρ ∈ R 3 , ϕ ∈ s o ( 3 ) , ξ ∧ = [ ϕ ∧ ρ 0 T 0 ] ∈ R 4 × 4 } \mathfrak{s e}(3)=\left\{\boldsymbol{\xi}=\left[\begin{array}{l} \rho \\ \phi \end{array}\right] \in \mathbb{R}^{6}, \boldsymbol{\rho} \in \mathbb{R}^{3}, \phi \in \mathfrak{s o}(3), \boldsymbol{\xi}^{\wedge}=\left[\begin{array}{cc} \phi^{\wedge} & \rho \\ 0^{\mathrm{T}} & 0 \end{array}\right] \in \mathbb{R}^{4 \times 4}\right\} se(3)={ξ=[ρϕ]R6,ρR3,ϕso(3),ξ=[ϕ0Tρ0]R4×4}
我们把每个 s e ( 3 ) \mathfrak{s e}(3) se(3) 元素记作 ξ \boldsymbol{\xi} ξ , 它是一个六维向量。前三维为平移(但含义与变换矩阵中的平移 不同, 分析见后 ), 记作 ρ \rho ρ ; 后三维为旋转, 记作 ϕ \phi ϕ , 实质上是 s o ( 3 ) \mathfrak{s o}(3) so(3) 元素 ⊙ ^{\odot} 。同时, 我们拓展了 ∧ ^{\wedge} 符号的含义。在 s e ( 3 ) \mathfrak{s e}(3) se(3) 中, 同样使用 ∧ ^{\wedge} 符号, 将一个六维向量转换成四维矩阵, 但这里不再表示反对称:
ξ ∧ = [ ϕ ∧ ρ 0 T 0 ] ∈ R 4 × 4 \boldsymbol{\xi}^{\wedge}=\left[\begin{array}{ll} \phi^{\wedge} & \rho \\ \mathbf{0}^{\mathrm{T}} & 0 \end{array}\right] \in \mathbb{R}^{4 \times 4} ξ=[ϕ0Tρ0]R4×4
我们仍使用 ∧ ^{\wedge} ∨ \vee 符号指代 “从向量到矩阵”和 “从矩阵到向量”的关系, 以保持和 s o ( 3 ) \mathfrak{s o}(3) so(3) 上 的一致性。它们依旧是一一对应的。读者可以简单地把 s e ( 3 ) \mathfrak{s e}(3) se(3) 理解成 “由一个平移加上一个 s o ( 3 ) \mathfrak{s o}(3) so(3) 元素构成的向量” ( 尽管这里的 ρ \rho ρ 还不直接是平移)。同样, 李代数 s e ( 3 ) \mathfrak{s e}(3) se(3) 也有类似于 s o ( 3 ) \mathfrak{s o}(3) so(3) 的李括号:
[ ξ 1 , ξ 2 ] = ( ξ 1 ∧ ξ 2 ∧ − ξ 2 ∧ ξ 1 ∧ ) ∨ \left[\boldsymbol{\xi}_{1}, \boldsymbol{\xi}_{2}\right]=\left(\boldsymbol{\xi}_{1}^{\wedge} \boldsymbol{\xi}_{2}^{\wedge}-\boldsymbol{\xi}_{2}^{\wedge} \boldsymbol{\xi}_{1}^{\wedge}\right)^{\vee} [ξ1,ξ2]=(ξ1ξ2ξ2ξ1)

4.2 指数与对数映射

4.2.1 SO(3)上的指数映射

首先,回忆任意矩阵的指数映射。它可以写成一个泰勒展开,但是只有在收敛的情况下才会有结果,其结果仍是一个矩阵。
exp ⁡ ( A ) = ∑ n = 0 ∞ 1 n ! A n (4.18) \exp(\mathbf{A}) = \sum\limits_{n = 0}^\infty {\frac{1}{{n!}}{ \mathbf{A}^n}}\tag{4.18} exp(A)=n=0n!1An(4.18)
同样地,对 s o ( 3 ) \mathfrak{so}(3) so(3)中任意一元素 ϕ \phi ϕ,我们亦可按此方式定义它的指数映射:
exp ⁡ ( ϕ ∧ ) = ∑ n = 0 ∞ 1 n ! ( ϕ ∧ ) n (4.19) \exp(\mathbf{\phi}^\wedge) = \sum\limits_{n = 0}^\infty {\frac{1}{{n!}}{ (\mathbf{\phi}^{\wedge})^n}}\tag{4.19} exp(ϕ)=n=0n!1(ϕ)n(4.19)
现在我们来仔细看看它的含义。由于 ϕ \phi ϕ是三维向量,我们可以定义它的模长和它的方向,分别记作 θ \mathbf{\theta} θ a \mathbf{a} a ∣ a ∣ = 1 |\mathbf{a}|=1 a=1),那么按照上式,可以推出式(4.20),注意中间使用了上面讲到了两个反对称矩阵的性质:

反对称矩阵有一些重要的性质,重点包括以下两条:
ϕ ϕ T = ϕ ∧ ϕ ∧ + ∥ ϕ ∥ 2 I 3 × 3 \phi \phi^{T}=\phi^{\wedge} \phi^{\wedge}+\|\phi\|^{2} \mathbf{I}_{3 \times 3} ϕϕT=ϕϕ+ϕ2I3×3
ϕ \phi ϕ单位向量时,进而有:
ϕ ∧ ϕ ∧ = [ − a 2 2 − a 3 2 a 1 a 2 a 1 a 3 a 1 a 2 − a 1 2 − a 3 2 a 2 a 3 a 1 a 3 a 2 a 3 − a 1 2 − a 2 2 ] = ϕ ϕ T − I \phi^{\wedge} \phi^{\wedge}=\left[\begin{array}{ccc} -a_{2}^{2}-a_{3}^{2} & a_{1} a_{2} & a_{1} a_{3} \\ a_{1} a_{2} & -a_{1}^{2}-a_{3}^{2} & a_{2} a_{3} \\ a_{1} a_{3} & a_{2} a_{3} & -a_{1}^{2}-a_{2}^{2} \end{array}\right]=\phi \phi^{T}-\mathbf{I} ϕϕ=a22a32a1a2a1a3a1a2a12a32a2a3a1a3a2a3a12a22=ϕϕTI
以及
ϕ ∧ ϕ ∧ ϕ ∧ = ϕ ∧ ( ϕ ϕ T − I ) = − ϕ ∧ \phi^{\wedge} \phi^{\wedge} \phi^{\wedge}=\phi^{\wedge}(\phi\phi^T-\mathbf{I})=-\phi^{\wedge} ϕϕϕ=ϕ(ϕϕTI)=ϕ

exp ⁡ ( ϕ ∧ ) = exp ⁡ ( θ a ∧ ) = ∑ n = 0 ∞ 1 n ! ( θ a ∧ ) n = I + θ a ∧ + 1 2 ! θ 2 a ∧ a ∧ + 1 3 ! θ 3 a ∧ a ∧ a ∧ + 1 4 ! θ 4 ( a ∧ ) 4 + ⋯ = a a T − a ∧ a ∧ + θ a ∧ + 1 2 ! θ 2 a ∧ a ∧ − 1 3 ! θ 3 a ∧ − 1 4 ! θ 4 ( a ∧ ) 2 + ⋯ = a a T + ( θ − 1 3 ! θ 3 + 1 5 ! θ 5 − ⋯   ) ⏟ sin ⁡ θ a ∧ − ( 1 − 1 2 ! θ 2 + 1 4 ! θ 4 − ⋯   ) ⏟ cos ⁡ θ a ∧ a ∧ = a ∧ a ∧ + I + sin ⁡ θ a ∧ − cos ⁡ θ a ∧ a ∧ = ( 1 − cos ⁡ θ ) a ∧ a ∧ + I + sin ⁡ θ a ∧ = cos ⁡ θ I + ( 1 − cos ⁡ θ ) a a T + sin ⁡ θ a ∧ (4.20) \begin{aligned} \exp \left(\phi^{\wedge}\right) &=\exp \left(\theta \boldsymbol{a}^{\wedge}\right)=\sum_{n=0}^{\infty} \frac{1}{n !}\left(\theta \boldsymbol{a}^{\wedge}\right)^{n} \\ &=\boldsymbol{I}+\theta \boldsymbol{a}^{\wedge}+\frac{1}{2 !} \theta^{2} \boldsymbol{a}^{\wedge} \boldsymbol{a}^{\wedge}+\frac{1}{3 !} \theta^{3} \boldsymbol{a}^{\wedge} \boldsymbol{a}^{\wedge} \boldsymbol{a}^{\wedge}+\frac{1}{4 !} \theta^{4}\left(\boldsymbol{a}^{\wedge}\right)^{4}+\cdots \\ &=\boldsymbol{a} \boldsymbol{a}^{\mathrm{T}}-\boldsymbol{a}^{\wedge} \boldsymbol{a}^{\wedge}+\theta \boldsymbol{a}^{\wedge}+\frac{1}{2 !} \theta^{2} \boldsymbol{a}^{\wedge} \boldsymbol{a}^{\wedge}-\frac{1}{3 !} \theta^{3} \boldsymbol{a}^{\wedge}-\frac{1}{4 !} \theta^{4}\left(\boldsymbol{a}^{\wedge}\right)^{2}+\cdots \\ &=\boldsymbol{a} \boldsymbol{a}^{\mathrm{T}}+\underbrace{\left(\theta-\frac{1}{3 !} \theta^{3}+\frac{1}{5 !} \theta^{5}-\cdots\right)}_{\sin \theta} \boldsymbol{a}^{\wedge}-\underbrace{\left(1-\frac{1}{2 !} \theta^{2}+\frac{1}{4 !} \theta^{4}-\cdots\right)}_{\cos \theta} \boldsymbol{a}^{\wedge} \boldsymbol{a}^{\wedge} \\ &=\boldsymbol{a}^{\wedge} \boldsymbol{a}^{\wedge}+\boldsymbol{I}+\sin \theta \boldsymbol{a}^{\wedge}-\cos \theta \boldsymbol{a}^{\wedge} \boldsymbol{a}^{\wedge} \\ &=(1-\cos \theta) \boldsymbol{a}^{\wedge} \boldsymbol{a}^{\wedge}+\boldsymbol{I}+\sin \theta \boldsymbol{a}^{\wedge} \\ &=\cos \theta \boldsymbol{I}+(1-\cos \theta) \boldsymbol{a} \boldsymbol{a}^{\mathrm{T}}+\sin \theta \boldsymbol{a}^{\wedge} \end{aligned}\tag{4.20} exp(ϕ)=exp(θa)=n=0n!1(θa)n=I+θa+2!1θ2aa+3!1θ3aaa+4!1θ4(a)4+=aaTaa+θa+2!1θ2aa3!1θ3a4!1θ4(a)2+=aaT+sinθ (θ3!1θ3+5!1θ5)acosθ (12!1θ2+4!1θ4)aa=aa+I+sinθacosθaa=(1cosθ)aa+I+sinθa=cosθI+(1cosθ)aaT+sinθa(4.20)

式(4.20)详细推导过程(实际上也是罗德里格斯公式的推导过程):

先再次观察 so(3),so(3) 中的元素可以看成矩阵,这个矩阵为反对称矩阵,我们用 Ω \Omega Ω来表示:

Ω = [ ω ] x = [ 0 − ω 3 ω 2 ω 3 0 − ω 1 − ω 2 ω 1 0 ] \Omega=[\boldsymbol{\omega}]_{x}=\left[\begin{array}{ccc} 0 & -\omega_{3} & \omega_{2} \\ \omega_{3} & 0 & -\omega_{1} \\ -\omega_{2} & \omega_{1} & 0 \end{array}\right] Ω=[ω]x=0ω3ω2ω30ω1ω2ω10

这个矩阵可以看成是
E 1 = [ 0 0 0 0 0 − 1 0 1 0 ] , E 2 = [ 0 0 1 0 0 0 − 1 0 0 ] , E 3 = [ 0 − 1 0 1 0 0 0 0 0 ] E_{1}=\left[\begin{array}{ccc}0 & 0 & 0 \\ 0 & 0 & -1 \\ 0 & 1 & 0\end{array}\right], E_{2}=\left[\begin{array}{ccc}0 & 0 & 1 \\ 0 & 0 & 0 \\ -1 & 0 & 0\end{array}\right], E_{3}=\left[\begin{array}{ccc}0 & -1 & 0 \\ 1 & 0 & 0 \\ 0 & 0 & 0\end{array}\right] E1=000001010,E2=001000100,E3=010100000
组合而成, Ω = ω 1 E 1 + ω 2 E 2 + ω 3 E 3 \Omega=\omega_{1} E_{1}+\omega_{2} E_{2}+\omega_{3} E_{3} Ω=ω1E1+ω2E2+ω3E3 也就是:
ω ∈ R 3 ω 1 E 1 + ω 2 E 2 + ω 3 E 3 ∈ s o ( 3 ) \begin{aligned} &\boldsymbol{\omega} \in R^{3} \\ \omega_{1} E_{1}+\omega_{2} E_{2}&+\omega_{3} E_{3} \in s o(3) \end{aligned} ω1E1+ω2E2ωR3+ω3E3so(3)
观察 ω = [ ω 1 ω 2 ω 3 ] \boldsymbol{\omega}=\left[\begin{array}{l}\omega_{1} \\ \omega_{2} \\ \omega_{3}\end{array}\right] ω=ω1ω2ω3 , 作为向量, 它的模长:
θ 2 = ω 1 2 + ω 2 2 + ω 3 2 θ 2 = [ ω 1 ω 2 ω 3 ] ⋅ [ ω 1 ω 2 ω 3 ] = ω T ω \begin{array}{c} \theta^{2}=\omega_{1}^{2}+\omega_{2}^{2}+\omega_{3}^{2} \\ \theta^{2}=\left[\begin{array}{lll} \omega_{1} & \omega_{2} & \omega_{3} \end{array}\right] \cdot\left[\begin{array}{c} \omega_{1} \\ \omega_{2} \\ \omega_{3} \end{array}\right]=\omega^{T} \boldsymbol{\omega} \end{array} θ2=ω12+ω22+ω32θ2=[ω1ω2ω3]ω1ω2ω3=ωTω
计算 Ω n , n = 1 , 2 , … \Omega^{n}, n=1,2, \ldots Ωn,n=1,2, :

Ω 0 = I Ω = [ 0 − ω 3 ω 2 ω 3 0 − ω 1 − ω 2 ω 1 0 ] Ω 2 = [ 0 − ω 3 ω 2 ω 3 0 − ω 1 − ω 2 ω 1 0 ] [ 0 − ω 3 ω 2 ω 3 0 − ω 1 − ω 2 ω 1 0 ] = [ − ω 3 2 − ω 2 2 ω 1 ω 2 ω 1 ω 3 ω 2 ω 1 − ω 3 2 − ω 1 2 ω 2 ω 3 ω 3 ω 1 ω 2 ω 3 − ω 1 2 − ω 2 2 ] \begin{array}{c} \Omega^{0}=I \\ \Omega=\left[\begin{array}{ccc} 0 & -\omega_{3} & \omega_{2} \\ \omega_{3} & 0 & -\omega_{1} \\ -\omega_{2} & \omega_{1} & 0 \end{array}\right] \\ \Omega^{2}=\left[\begin{array}{ccc} 0 & -\omega_{3} & \omega_{2} \\ \omega_{3} & 0 & -\omega_{1} \\ -\omega_{2} & \omega_{1} & 0 \end{array}\right]\left[\begin{array}{ccc} 0 & -\omega_{3} & \omega_{2} \\ \omega_{3} & 0 & -\omega_{1} \\ -\omega_{2} & \omega_{1} & 0 \end{array}\right]=\left[\begin{array}{ccc} -\omega_{3}^{2}-\omega_{2}^{2} & \omega_{1} \omega_{2} & \omega_{1} \omega_{3} \\ \omega_{2} \omega_{1} & -\omega_{3}^{2}-\omega_{1}^{2} & \omega_{2} \omega_{3} \\ \omega_{3} \omega_{1} & \omega_{2} \omega_{3} & -\omega_{1}^{2}-\omega_{2}^{2} \end{array}\right] \end{array} Ω0=IΩ=0ω3ω2ω30ω1ω2ω10Ω2=0ω3ω2ω30ω1ω2ω100ω3ω2ω30ω1ω2ω10=ω32ω22ω2ω1ω3ω1ω1ω2ω32ω12ω2ω3ω1ω3ω2ω3ω12ω22
由于我们知道反对称矩阵的通用性质:
ϕ ϕ T = ϕ ∧ ϕ ∧ + ∥ ϕ ∥ 2 I 3 × 3 \phi \phi^{T}=\phi^{\wedge} \phi^{\wedge}+\|\phi\|^{2} \mathbf{I}_{3 \times 3} ϕϕT=ϕϕ+ϕ2I3×3
ϕ ∧ ϕ ∧ = ϕ ϕ T − ∥ ϕ ∥ 2 I 3 × 3 \phi^{\wedge} \phi^{\wedge} =\phi \phi^{T}-\|\phi\|^{2} \mathbf{I}_{3 \times 3} ϕϕ=ϕϕTϕ2I3×3
左右两边左乘一个 ϕ ∧ \phi^{\wedge} ϕ
ϕ ∧ ϕ ∧ ϕ ∧ = ϕ ∧ ϕ ϕ T − ∥ ϕ ∥ 2 ϕ ∧ \phi^{\wedge}\phi^{\wedge} \phi^{\wedge} =\phi^{\wedge}\phi \phi^{T}-\|\phi\|^{2} \phi^{\wedge} ϕϕϕ=ϕϕϕTϕ2ϕ
由于 ϕ ∧ ϕ = 0 \phi^{\wedge}\phi=0 ϕϕ=0,因此得
ϕ ∧ ϕ ∧ ϕ ∧ = − ∥ ϕ ∥ 2 ϕ ∧ \phi^{\wedge}\phi^{\wedge} \phi^{\wedge} =-\|\phi\|^{2} \phi^{\wedge} ϕϕϕ=ϕ2ϕ
由于有 ∣ ∣ ω ∣ ∣ 2 = ( ω 1 2 + ω 2 2 + ω 3 2 ) = θ 2 ||\boldsymbol{\omega}||^2=\left(\omega_{1}^{2}+\omega_{2}^{2}+\omega_{3}^{2}\right)=\theta^{2} ω2=(ω12+ω22+ω32)=θ2。让 Ω \Omega Ω代入上式,所以有 Ω 3 = − θ 2 Ω \Omega^{3}=-\theta^{2} \Omega Ω3=θ2Ω ,继续:
继续让式子左右两边左乘一个 ϕ ∧ \phi^{\wedge} ϕ
ϕ ∧ ϕ ∧ ϕ ∧ ϕ ∧ = − ∥ ϕ ∥ 2 ϕ ∧ ϕ ∧ \phi^{\wedge}\phi^{\wedge}\phi^{\wedge} \phi^{\wedge} =-\|\phi\|^{2} \phi^{\wedge}\phi^{\wedge} ϕϕϕϕ=ϕ2ϕϕ
ϕ ∧ ϕ ∧ ϕ ∧ ϕ ∧ ϕ ∧ = − ∥ ϕ ∥ 2 ϕ ∧ ϕ ∧ ϕ ∧ = ∥ ϕ ∥ 4 ϕ ∧ \phi^{\wedge}\phi^{\wedge}\phi^{\wedge}\phi^{\wedge} \phi^{\wedge} =-\|\phi\|^{2} \phi^{\wedge}\phi^{\wedge}\phi^{\wedge}=\|\phi\|^{4} \phi^{\wedge} ϕϕϕϕϕ=ϕ2ϕϕϕ=ϕ4ϕ
如此类推可得到
Ω 4 = Ω Ω 3 = − θ 2 Ω 2 Ω 5 = Ω 2 Ω 3 = − Ω 2 θ 2 Ω = − θ 2 Ω 3 = θ 4 Ω ⋯ \begin{array}{c} \Omega^{4}=\Omega \Omega^{3}=-\theta^{2} \Omega^{2} \\ \Omega^{5}=\Omega^{2} \Omega^{3}=-\Omega^{2} \theta^{2} \Omega=-\theta^{2} \Omega^{3}=\theta^{4} \Omega \\ \cdots \end{array} Ω4=ΩΩ3=θ2Ω2Ω5=Ω2Ω3=Ω2θ2Ω=θ2Ω3=θ4Ω
所以有
θ 2 = ω T ω Ω 2 i + 1 = ( − 1 ) i θ 2 i Ω Ω 2 i + 2 = ( − 1 ) i θ 2 i Ω 2 \begin{aligned} \theta^{2} &=\boldsymbol{\omega}^{T} \boldsymbol{\omega} \\ \Omega^{2 i+1} &=(-1)^{i} \theta^{2 i} \Omega \\ \Omega^{2 i+2} &=(-1)^{i} \theta^{2 i} \Omega^{2} \end{aligned} θ2Ω2i+1Ω2i+2=ωTω=(1)iθ2iΩ=(1)iθ2iΩ2
展开:
exp ⁡ ( Ω ) = ∑ n = 0 ∞ 1 n ! Ω n = I + ( ∑ i = 0 ∞ ( − 1 ) i θ 2 i ( 2 i + 1 ) ! ) Ω + ( ∑ i = 0 ∞ ( − 1 ) i θ 2 i ( 2 i + 2 ) ! ) Ω 2 = I + ( 1 − θ 2 3 ! + θ 4 5 ! + ⋯   ) Ω + ( 1 2 ! − θ 2 4 ! + θ 4 6 ! + ⋯   ) Ω 2 \begin{aligned} \exp (\Omega) &=\sum_{n=0}^{\infty} \frac{1}{n !} \Omega^{n} \\ &=I+\left(\sum_{i=0}^{\infty} \frac{(-1)^{i} \theta^{2 i}}{(2 i+1) !}\right) \Omega+\left(\sum_{i=0}^{\infty} \frac{(-1)^{i} \theta^{2 i}}{(2 i+2) !}\right) \Omega^{2} \\ &=I+\left(1-\frac{\theta^{2}}{3 !}+\frac{\theta^{4}}{5 !}+\cdots\right) \Omega+\left(\frac{1}{2 !}-\frac{\theta^{2}}{4 !}+\frac{\theta^{4}}{6 !}+\cdots\right) \Omega^{2} \end{aligned} exp(Ω)=n=0n!1Ωn=I+(i=0(2i+1)!(1)iθ2i)Ω+(i=0(2i+2)!(1)iθ2i)Ω2=I+(13!θ2+5!θ4+)Ω+(2!14!θ2+6!θ4+)Ω2
有欧拉公式:
sin ⁡ x = x − x 3 3 ! + x 5 5 ! − x 7 7 ! + ⋯ cos ⁡ x = 1 − x 2 2 ! + x 4 4 ! − x 6 6 ! + ⋯ \begin{array}{l} \sin x=x-\frac{x^{3}}{3 !}+\frac{x^{5}}{5 !}-\frac{x^{7}}{7 !}+\cdots \\ \cos x=1-\frac{x^{2}}{2 !}+\frac{x^{4}}{4 !}-\frac{x^{6}}{6 !}+\cdots \end{array} sinx=x3!x3+5!x57!x7+cosx=12!x2+4!x46!x6+
所以:
exp ⁡ ( Ω ) = I + ( sin ⁡ θ θ ) Ω + ( 1 − cos ⁡ θ θ 2 ) Ω 2 \exp (\Omega)=I+\left(\frac{\sin \theta}{\theta}\right) \Omega+\left(\frac{1-\cos \theta}{\theta^{2}}\right) \Omega^{2} exp(Ω)=I+(θsinθ)Ω+(θ21cosθ)Ω2
如果我们需要更严密一点的话 expso ⁡ ( 3 ) → S O ( 3 ) \operatorname{expso}(3) \rightarrow \mathrm{SO}(3) expso(3)SO(3) :

Ω ∈ s o ( 3 ) θ = − 1 2 tr ⁡ ( Ω 2 ) exp ⁡ ( Ω ) = { I θ ≃ 0 I + ( sin ⁡ θ θ ) Ω + ( 1 − cos ⁡ θ θ 2 ) Ω 2 θ ≠ 0 \begin{array}{c} \Omega \in s o(3) \\ \theta=\sqrt{-\frac{1}{2} \operatorname{tr}\left(\Omega^{2}\right)} \\ \exp (\Omega)=\left\{\begin{array}{ll} I & \theta \simeq 0 \\ I+\left(\frac{\sin \theta}{\theta}\right) \Omega+\left(\frac{1-\cos \theta}{\theta^{2}}\right) \Omega^{2} & \theta \neq 0 \end{array}\right. \end{array} Ωso(3)θ=21tr(Ω2) exp(Ω)={II+(θsinθ)Ω+(θ21cosθ)Ω2θ0θ=0
同样 S O ( 3 ) → s o ( 3 ) \mathrm{SO}(3) \rightarrow \mathrm{so}(3) SO(3)so(3) ,也就是旋转矩阵到旋转向量。如果也更严密一点,首先就是我们限制旋转角 店在 [ 0 , π ] [0, \pi] [0,π] 间, 毕竟可能要用 a c o s acos acos函数和保证一对一, 否则角度加上 2 π 2 \pi 2π 计算出来的 sin ⁡ cos ⁡ \sin \cos sincos 总是 相等,其次就是当 θ \theta θ 足够小的时候的处理:
R ∈ S O ( 3 ) θ = arccos ⁡ ( 1 2 [ tr ⁡ ( R ) − 1 ] ) log ⁡ ( R ) = { θ [ 0 − 1 1 1 0 − 1 − 1 1 0 ] θ ≃ 0 θ sin ⁡ θ ( R − R T ) θ ≠ 0 \begin{array}{c} R \in S O(3) \\ \theta=\arccos \left(\frac{1}{2}[\operatorname{tr}(R)-1]\right) \\ \log (R)=\left\{\begin{array}{ll} \theta\left[\begin{array}{ccc} 0 & -1 & 1 \\ 1 & 0 & -1 \\ -1 & 1 & 0 \end{array}\right] \quad \theta \simeq 0 \\ \frac{\theta}{\sin \theta}\left(R-R^{T}\right) & \theta \neq 0 \end{array}\right. \end{array} RSO(3)θ=arccos(21[tr(R)1])log(R)=θ011101110θ0sinθθ(RRT)θ=0

最后,得到罗德里格斯公式
exp ⁡ ( θ a ∧ ) = cos ⁡ θ I + ( 1 − cos ⁡ θ ) a a T + sin ⁡ θ a ∧ (4.22) \exp \left(\theta \boldsymbol{a}^{\wedge}\right)=\cos \theta \boldsymbol{I}+(1-\cos \theta) \boldsymbol{a} \boldsymbol{a}^{\mathrm{T}}+\sin \theta \boldsymbol{a}^{\wedge}\tag{4.22} exp(θa)=cosθI+(1cosθ)aaT+sinθa(4.22)
这表明, s o ( 3 ) \mathfrak{s o}(3) so(3) 实际上就是 由所谓的旋转向量组成的空间, 而指数映射即罗德里格斯公式。通过它们, 我们把 s o ( 3 ) \mathfrak{s o}(3) so(3) 中任意一个向量对应到了一个位于 S O ( 3 ) \mathrm{SO}(3) SO(3) 中的旋转矩阵。反之, 如果定义对数映射, 也能把 S O ( 3 ) \mathrm{SO}(3) SO(3) 中的元素对应到 s o ( 3 ) \mathfrak{s o}(3) so(3) 中:
ϕ = ln ⁡ ( R ) ∨ = ( ∑ n = 0 ∞ ( − 1 ) n n + 1 ( R − I ) n + 1 ) ∨ (4.23) \phi=\ln (\boldsymbol{R})^{\vee}=\left(\sum_{n=0}^{\infty} \frac{(-1)^{n}}{n+1}(\boldsymbol{R}-\boldsymbol{I})^{n+1}\right)^{\vee}\tag{4.23} ϕ=ln(R)=(n=0n+1(1)n(RI)n+1)(4.23)
和指数映射医院,我们没必要直接用泰勒展开计算对数映射,只需要使用常规的旋转矩阵转旋转向量公式即可:
转角
tr ⁡ ( R ) = cos ⁡ θ tr ⁡ ( I ) + ( 1 − cos ⁡ θ ) tr ⁡ ( n n T ) + sin ⁡ θ tr ⁡ ( n ∧ ) = 3 cos ⁡ θ + ( 1 − cos ⁡ θ ) = 1 + 2 cos ⁡ θ (3.16) \begin{aligned} \operatorname{tr}(\boldsymbol{R})=& \cos \theta \operatorname{tr}(\boldsymbol{I})+(1-\cos \theta) \operatorname{tr}\left(\boldsymbol{n} \boldsymbol{n}^{\mathrm{T}}\right)+\sin \theta \operatorname{tr}\left(\boldsymbol{n}^{\wedge}\right) \\ =& 3 \cos \theta+(1-\cos \theta) \\ =& 1+2 \cos \theta \\ \end{aligned}\tag{3.16} tr(R)===cosθtr(I)+(1cosθ)tr(nnT)+sinθtr(n)3cosθ+(1cosθ)1+2cosθ(3.16)
θ = arccos ⁡ tr ⁡ ( R ) − 1 2 (3.17) \theta=\arccos \frac{\operatorname{tr}(\boldsymbol{R})-1}{2} \tag{3.17} θ=arccos2tr(R)1(3.17)
转轴
转轴 n \boldsymbol{n} n是矩阵 R \boldsymbol{R} R特征值1对应的特征向量。

如果我们把旋转角度固定在 ± π ±\pi ±π之间,那么李群和李代数元素是一一对应的。

4.2.2 SE(3)上的指数映射

s e ( 3 ) \mathfrak{s e}(3) se(3)上的指数映射形式:
exp ⁡ ( ξ ∧ ) = [ ∑ n = 0 ∞ 1 n ! ( ϕ ∧ ) n ∑ n = 0 ∞ 1 ( n + 1 ) ! ( ϕ ∧ ) n ρ 0 T 1 ] ≜ [ R J ρ 0 T 1 ] = T (4.25) \begin{aligned} \exp \left(\boldsymbol{\xi}^{\wedge}\right) &=\left[\begin{array}{cc} \sum_{n=0}^{\infty} \frac{1}{n !}\left(\phi^{\wedge}\right)^{n} & \sum_{n=0}^{\infty} \frac{1}{(n+1) !}\left(\phi^{\wedge}\right)^{n} \rho \\ 0^{\mathrm{T}} & 1 \end{array}\right] \\ & \triangleq\left[\begin{array}{cc} \boldsymbol{R} & \boldsymbol{J} \boldsymbol{\rho} \\ \mathbf{0}^{\mathrm{T}} & 1 \end{array}\right]=\boldsymbol{T} \end{aligned}\tag{4.25} exp(ξ)=[n=0n!1(ϕ)n0Tn=0(n+1)!1(ϕ)nρ1][R0TJρ1]=T(4.25)
只要有一点耐心, 可以照着 s o ( 3 ) \mathfrak{s o}(3) so(3) 上的做法推导, 把 exp ⁡ \exp exp 进行泰勒展开推导此式。令 ϕ = θ a \phi=\theta \boldsymbol{a} ϕ=θa , 其中 a \boldsymbol{a} a 为单位向量, 则
∑ n = 0 ∞ 1 ( n + 1 ) ! ( ϕ ∧ ) n = I + 1 2 ! θ a ∧ + 1 3 ! θ 2 ( a ∧ ) 2 + 1 4 ! θ 3 ( a ∧ ) 3 + 1 5 ! θ 4 ( a ∧ ) 4 ⋯ = 1 θ ( 1 2 ! θ 2 − 1 4 ! θ 4 + ⋯   ) ( a ∧ ) + 1 θ ( 1 3 ! θ 3 − 1 5 θ 5 + ⋯   ) ( a ∧ ) 2 + I = 1 θ ( 1 − cos ⁡ θ ) ( a ∧ ) + θ − sin ⁡ θ θ ( a a T − I ) + I = sin ⁡ θ θ I + ( 1 − sin ⁡ θ θ ) a a T + 1 − cos ⁡ θ θ a ∧ =  def  J (4.26) \begin{aligned} \sum_{n=0}^{\infty} \frac{1}{(n+1) !}\left(\boldsymbol{\phi}^{\wedge}\right)^{n} &=\boldsymbol{I}+\frac{1}{2 !} \theta \boldsymbol{a}^{\wedge}+\frac{1}{3 !} \theta^{2}\left(\boldsymbol{a}^{\wedge}\right)^{2}+\frac{1}{4 !} \theta^{3}\left(\boldsymbol{a}^{\wedge}\right)^{3}+\frac{1}{5 !} \theta^{4}\left(\boldsymbol{a}^{\wedge}\right)^{4} \cdots \\ &=\frac{1}{\theta}\left(\frac{1}{2 !} \theta^{2}-\frac{1}{4 !} \theta^{4}+\cdots\right)\left(\boldsymbol{a}^{\wedge}\right)+\frac{1}{\theta}\left(\frac{1}{3 !} \theta^{3}-\frac{1}{5} \theta^{5}+\cdots\right)\left(\boldsymbol{a}^{\wedge}\right)^{2}+\boldsymbol{I} \\ &=\frac{1}{\theta}(1-\cos \theta)\left(\boldsymbol{a}^{\wedge}\right)+\frac{\theta-\sin \theta}{\theta}\left(\boldsymbol{a} \boldsymbol{a}^{\mathrm{T}}-\boldsymbol{I}\right)+\boldsymbol{I} \\ &=\frac{\sin \theta}{\theta} \boldsymbol{I}+\left(1-\frac{\sin \theta}{\theta}\right) \boldsymbol{a} \boldsymbol{a}^{\mathrm{T}}+\frac{1-\cos \theta}{\theta} \boldsymbol{a}^{\wedge} \\ &\stackrel{\text { def }}{=} \boldsymbol{J} \end{aligned}\tag{4.26} n=0(n+1)!1(ϕ)n=I+2!1θa+3!1θ2(a)2+4!1θ3(a)3+5!1θ4(a)4=θ1(2!1θ24!1θ4+)(a)+θ1(3!1θ351θ5+)(a)2+I=θ1(1cosθ)(a)+θθsinθ(aaTI)+I=θsinθI+(1θsinθ)aaT+θ1cosθa= def J(4.26)

李群和李代数的定义与相互转换关系总结

在这里插入图片描述

4.3 李代数求导与扰动模型

4.3.1 BCH公式与近似形式

高等数学告诉我们,如果有标量 A A A B B B,有下式:
ln ⁡ ( exp ⁡ ( A ) exp ⁡ ( B ) ) = A + B \ln\left(\exp\left(A\right)\exp\left(B\right)\right)=A+B ln(exp(A)exp(B))=A+B
但是,该式在矩阵时并不成立。两个李代数指数映射乘积的完整形式,由Baker-Campbell-Hausdorff公式(BCH公式)给出:
ln ⁡ ( exp ⁡ ( A ) exp ⁡ ( B ) ) = A + B + 1 2 [ A , B ] + 1 12 [ A , [ A , B ] ] − 1 12 [ B , [ A , B ] ] + ⋯ (4.29) \ln (\exp (\boldsymbol{A}) \exp (\boldsymbol{B}))=\boldsymbol{A}+\boldsymbol{B}+\frac{1}{2}[\boldsymbol{A}, \boldsymbol{B}]+\frac{1}{12}[\boldsymbol{A},[\boldsymbol{A}, \boldsymbol{B}]]-\frac{1}{12}[\boldsymbol{B},[\boldsymbol{A}, \boldsymbol{B}]]+\cdots\tag{4.29} ln(exp(A)exp(B))=A+B+21[A,B]+121[A,[A,B]]121[B,[A,B]]+(4.29)
其中 [    ] [\ \ ] [  ]为李括号。特别地,考虑 s o ( 3 ) \mathfrak{s o}(3) so(3)上地李代数 ln ⁡ ( exp ⁡ ( ϕ 1 ∧ ) exp ⁡ ( ϕ 2 ∧ ) ) ∨ \ln\left(\exp\left(\phi_1^{\wedge}\right)\exp\left(\phi_2^{\wedge}\right)\right)^{\vee} ln(exp(ϕ1)exp(ϕ2)),当 ϕ 1 ∧ \phi_1^{\wedge} ϕ1 ϕ 2 ∧ \phi_2^{\wedge} ϕ2为小量时,小量二次以上的项都可以被忽略。此时,BCH拥有线性近似表达:
ln ⁡ ( exp ⁡ ( ϕ 1 ∧ ) exp ⁡ ( ϕ 2 ∧ ) ) ∨ ≈ { J l ( ϕ 2 ) − 1 ϕ 1 + ϕ 2  当  ϕ 1  为小量,  J r ( ϕ 1 ) − 1 ϕ 2 + ϕ 1  当  ϕ 2  为小量.  (4.30) \ln \left(\exp \left(\phi_{1}^{\wedge}\right) \exp \left(\phi_{2}^{\wedge}\right)\right)^{\vee} \approx\left\{\begin{array}{ll} J_{l}\left(\phi_{2}\right)^{-1} \phi_{1}+\phi_{2} & \text { 当 } \phi_{1} \text { 为小量, } \\ J_{r}\left(\phi_{1}\right)^{-1} \phi_{2}+\phi_{1} & \text { 当 } \phi_{2} \text { 为小量. } \end{array}\right.\tag{4.30} ln(exp(ϕ1)exp(ϕ2)){Jl(ϕ2)1ϕ1+ϕ2Jr(ϕ1)1ϕ2+ϕ1  ϕ1 为小量  ϕ2 为小量(4.30)
于是,李代数在BCH近似下,分成了左乘近似和右乘近似两种。其中,左乘BCH近似雅可比 J l J_l Jl为:
J l ( θ ) = J = sin ⁡ θ θ I + ( 1 − sin ⁡ θ θ ) a a T + 1 − cos ⁡ θ θ a ∧ (4.31) \boldsymbol{J}_{l}(\theta)=\boldsymbol{J}=\frac{\sin \theta}{\theta} \boldsymbol{I}+\left(1-\frac{\sin \theta}{\theta}\right) \boldsymbol{a} \boldsymbol{a}^{\mathrm{T}}+\frac{1-\cos \theta}{\theta} \boldsymbol{a}^{\wedge}\tag{4.31} Jl(θ)=J=θsinθI+(1θsinθ)aaT+θ1cosθa(4.31)
它的逆为
J l ( θ ) − 1 = θ 2 cot ⁡ θ 2 I + ( 1 − θ 2 cot ⁡ θ 2 ) a a T − θ 2 a ∧ (4.32) \boldsymbol{J}_{l}(\theta)^{-1}=\frac{\theta}{2} \cot \frac{\theta}{2} \boldsymbol{I}+\left(1-\frac{\theta}{2} \cot \frac{\theta}{2}\right) \boldsymbol{a} \boldsymbol{a}^{\mathrm{T}}-\frac{\theta}{2} \boldsymbol{a}^{\wedge}\tag{4.32} Jl(θ)1=2θcot2θI+(12θcot2θ)aaT2θa(4.32)
其中 cot ⁡ ( ) \cot() cot()为余切函数。

右乘雅可比仅需要对自变量取负号即可:
J r ( ϕ ) = J l ( − ϕ ) (4.33) J_{r}(\phi)=J_{l}(-\phi)\tag{4.33} Jr(ϕ)=Jl(ϕ)(4.33)
BCH近似的意义:假定对某个旋转 R \boldsymbol{R} R,对应的李代数为 ϕ \boldsymbol{\phi} ϕ。我们给它左乘一个微小旋转,记作 Δ R \Delta \boldsymbol{R} ΔR,对应的李代数为 Δ ϕ \Delta \boldsymbol{\phi} Δϕ。那么,在李群上,得到的结果就是 Δ R ⋅ R \Delta \boldsymbol{R}\cdot\boldsymbol{R} ΔRR,而在李代数上,根据BCH近似,为 ϕ + J l − 1 ( ϕ ) Δ ϕ \phi+J_{l}^{-1}(\phi) \Delta \phi ϕ+Jl1(ϕ)Δϕ。合并起来,可以简单地写成:
exp ⁡ ( Δ ϕ ∧ ) exp ⁡ ( ϕ ∧ ) = exp ⁡ ( ( ϕ + J l − 1 ( ϕ ) Δ ϕ ) ∧ ) (4.34) \exp \left(\Delta \phi^{\wedge}\right) \exp \left(\phi^{\wedge}\right)=\exp \left(\left(\phi+J_{l}^{-1}(\phi) \Delta \phi\right)^{\wedge}\right)\tag{4.34} exp(Δϕ)exp(ϕ)=exp((ϕ+Jl1(ϕ)Δϕ))(4.34)
反之, 如果我们在李代数上进行加法, 让一个 ϕ \phi ϕ 加上 Δ ϕ \Delta \phi Δϕ , 那么可以近似为李群上带左右雅可比的乘法(尤其需要注意左乘雅可比和右乘雅可比是不同的):
exp ⁡ ( ( ϕ + Δ ϕ ) ∧ ) = exp ⁡ ( ( J l Δ ϕ ) ∧ ) exp ⁡ ( ϕ ∧ ) = exp ⁡ ( ϕ ∧ ) exp ⁡ ( ( J r Δ ϕ ) ∧ ) (4.35) \exp \left((\phi+\Delta \phi)^{\wedge}\right)=\exp \left(\left(\boldsymbol{J}_{l} \Delta \phi\right)^{\wedge}\right) \exp \left(\boldsymbol{\phi}^{\wedge}\right)=\exp \left(\boldsymbol{\phi}^{\wedge}\right) \exp \left(\left(\boldsymbol{J}_{r} \Delta \boldsymbol{\phi}\right)^{\wedge}\right)\tag{4.35} exp((ϕ+Δϕ))=exp((JlΔϕ))exp(ϕ)=exp(ϕ)exp((JrΔϕ))(4.35)
这就为之后李代数上做微积分提供了理论基础。同样地, 对于 S E ( 3 ) \mathrm{SE}(3) SE(3) , 也有类似的BCH近似:
exp ⁡ ( Δ ξ ∧ ) exp ⁡ ( ξ ∧ ) ≈ exp ⁡ ( ( J l − 1 Δ ξ + ξ ) ∧ ) exp ⁡ ( ξ ∧ ) exp ⁡ ( Δ ξ ∧ ) ≈ exp ⁡ ( ( J r − 1 Δ ξ + ξ ) ∧ ) (4.36) \begin{array}{l} \exp \left(\Delta \boldsymbol{\xi}^{\wedge}\right) \exp \left(\boldsymbol{\xi}^{\wedge}\right) \approx \exp \left(\left(\mathcal{J}_{l}^{-1} \Delta \boldsymbol{\xi}+\boldsymbol{\xi}\right)^{\wedge}\right) \\ \exp \left(\boldsymbol{\xi}^{\wedge}\right) \exp \left(\Delta \boldsymbol{\xi}^{\wedge}\right) \approx \exp \left(\left(\mathcal{J}_{r}^{-1} \Delta \boldsymbol{\xi}+\boldsymbol{\xi}\right)^{\wedge}\right) \end{array}\tag{4.36} exp(Δξ)exp(ξ)exp((Jl1Δξ+ξ))exp(ξ)exp(Δξ)exp((Jr1Δξ+ξ))(4.36)
这里的 J l \mathcal{J}_{l} Jl形式比较复杂,它是一个6X6矩阵。

4.3.2 SO(3)上的李代数求导

假设某个时刻机器人的位姿为 T \boldsymbol{T} T。它观察到了一个世界坐标位于 p \boldsymbol{p} p的点,产生了一个观测数据 z \boldsymbol{z} z。那么,由坐标变换关系知:
z = T p + w (4.38) \boldsymbol{z}=\boldsymbol{T} \boldsymbol{p}+\boldsymbol{w}\tag{4.38} z=Tp+w(4.38)
其中 w \boldsymbol{w} w 为随机噪声。由于它的存在, z \boldsymbol{z} z 往往不可能精确地满足 z = T p \boldsymbol{z}=\boldsymbol{T} \boldsymbol{p} z=Tp 的关系。所以, 我们通常会计算理想的观测与实际数据的误差:
e = z − T p (4.39) \boldsymbol{e}=\boldsymbol{z}-\boldsymbol{T} \boldsymbol{p}\tag{4.39} e=zTp(4.39)
假设一共有 N N N 个这样的路标点和观测, 于是就有 N N N 个上式。那么, 对机器人进行位姿估计, 相当于寻找一个最优的 T \boldsymbol{T} T , 使得整体误差最小化:
min ⁡ T J ( T ) = ∑ i = 1 N ∥ z i − T p i ∥ 2 2 (4.40) \min _{\boldsymbol{T}} J(\boldsymbol{T})=\sum_{i=1}^{N}\left\|\boldsymbol{z}_{i}-\boldsymbol{T} \boldsymbol{p}_{i}\right\|_{2}^{2}\tag{4.40} TminJ(T)=i=1NziTpi22(4.40)
SO(3),SE(3) 上并没有良好定义的加法,它们只是群。如果我们把 T \boldsymbol{T} T当成一个普通矩阵来处理优化,那就必须对优化问题添加约束(一旦有约束就变得很复杂了)。而从李代数角度来说,由于李代数由向量组成,具有良好的加法运算。因此,使用李代数解决求导问题的思路分为两种:

  1. 用李代数表示姿态,然后对根据李代数加法来对李代数求导
  2. 对李群左乘右乘微小扰动,然后对该扰动求导,称为左扰动和右扰动模型。

4.3.3 李代数求导

首先,考虑SO(3)上的情况。假设我们对一个空间点 p \boldsymbol{p} p进行了旋转,得到了 R p \boldsymbol{Rp} Rp。现在,要计算旋转之后点的坐标相对于旋转的导数,我们非正式地记为:
∂ ( R p ) ∂ R \frac{\partial(\boldsymbol{R} \boldsymbol{p})}{\partial \boldsymbol{R}} R(Rp)
由于 S O ( 3 ) \mathrm{SO}(3) SO(3)没有加法, 所以该导数无法按照导数的定义进行计算。设 R \boldsymbol{R} R对应的李代数为 ϕ \phi ϕ, 我们转而计算。
∂ ( exp ⁡ ( ϕ ∧ ) p ) ∂ ϕ \frac{\partial\left(\exp \left(\phi^{\wedge}\right) \boldsymbol{p}\right)}{\partial \phi} ϕ(exp(ϕ)p)
按照导数的定义, 有
∂ ( exp ⁡ ( ϕ ∧ ) p ) ∂ ϕ = lim ⁡ δ ϕ → 0 exp ⁡ ( ( ϕ + δ ϕ ) ∧ ) p − exp ⁡ ( ϕ ∧ ) p δ ϕ = lim ⁡ δ ϕ → 0 exp ⁡ ( ( J l δ ϕ ) ∧ ) exp ⁡ ( ϕ ∧ ) p − exp ⁡ ( ϕ ∧ ) p δ ϕ = lim ⁡ δ ϕ → 0 ( I + ( J l δ ϕ ) ∧ ) exp ⁡ ( ϕ ∧ ) p − exp ⁡ ( ϕ ∧ ) p δ ϕ = lim ⁡ δ ϕ → 0 ( J l δ ϕ ) ∧ exp ⁡ ( ϕ ∧ ) p δ ϕ = lim ⁡ δ ϕ → 0 − ( exp ⁡ ( ϕ ∧ ) p ) ∧ J l δ ϕ δ ϕ = − ( R p ) ∧ J l \begin{aligned} \frac{\partial\left(\exp \left(\boldsymbol{\phi}^{\wedge}\right) \boldsymbol{p}\right)}{\partial \boldsymbol{\phi}} &=\lim _{\delta \boldsymbol{\phi} \rightarrow 0} \frac{\exp \left((\boldsymbol{\phi}+\delta \boldsymbol{\phi})^{\wedge}\right) \boldsymbol{p}-\exp \left(\boldsymbol{\phi}^{\wedge}\right) \boldsymbol{p}}{\delta \boldsymbol{\phi}} \\ &=\lim _{\delta \boldsymbol{\phi} \rightarrow 0} \frac{\exp \left(\left(\boldsymbol{J}_{l} \delta \boldsymbol{\phi}\right)^{\wedge}\right) \exp \left(\boldsymbol{\phi}^{\wedge}\right) \boldsymbol{p}-\exp \left(\boldsymbol{\phi}^{\wedge}\right) \boldsymbol{p}}{\delta \boldsymbol{\phi}} \\ &=\lim _{\delta \phi \rightarrow 0} \frac{\left(\boldsymbol{I}+\left(\boldsymbol{J}_{l} \delta \boldsymbol{\phi}\right)^{\wedge}\right) \exp \left(\boldsymbol{\phi}^{\wedge}\right) \boldsymbol{p}-\exp \left(\boldsymbol{\phi}^{\wedge}\right) \boldsymbol{p}}{\delta \boldsymbol{\phi}} \\ &=\lim _{\delta \phi \rightarrow 0} \frac{\left(\boldsymbol{J}_{l} \delta \boldsymbol{\phi}\right)^{\wedge} \exp \left(\boldsymbol{\phi}^{\wedge}\right) \boldsymbol{p}}{\delta \boldsymbol{\phi}} \\ &=\lim _{\delta \boldsymbol{\phi} \rightarrow 0} \frac{-\left(\exp \left(\boldsymbol{\phi}^{\wedge}\right) \boldsymbol{p}\right)^{\wedge} \boldsymbol{J}_{l} \delta \boldsymbol{\phi}}{\delta \boldsymbol{\phi}}=-(\boldsymbol{R} \boldsymbol{p})^{\wedge} \boldsymbol{J}_{l} \end{aligned} ϕ(exp(ϕ)p)=δϕ0limδϕexp((ϕ+δϕ))pexp(ϕ)p=δϕ0limδϕexp((Jlδϕ))exp(ϕ)pexp(ϕ)p=δϕ0limδϕ(I+(Jlδϕ))exp(ϕ)pexp(ϕ)p=δϕ0limδϕ(Jlδϕ)exp(ϕ)p=δϕ0limδϕ(exp(ϕ)p)Jlδϕ=(Rp)Jl
第二行地近似为BCH线性近似,第三行为泰勒展开社区高阶项后地近似( exp ⁡ ( ) \exp() exp()括号内的矩阵范数很小时才可以这样近似),第四行至第五行将反对称符号看作叉积,交换之后变号。于是,我们推导出了旋转后的点相对于李代数的导数:
∂ ( R p ) ∂ R = − ( R p ) ∧ J l (4.41) \frac{\partial(\boldsymbol{R} \boldsymbol{p})}{\partial \boldsymbol{R}}=-(\boldsymbol{R} \boldsymbol{p})^{\wedge} \boldsymbol{J}_{l}\tag{4.41} R(Rp)=(Rp)Jl(4.41)
不过,由于这里仍然含有形式比较复杂的 J l \boldsymbol{J}_{l} Jl,我们不太希望计算它。而下面要讲的扰动模型则提供了更简单的导数计算方式。

4.3.4 扰动模型(左乘)

另一种求导方式是对 R \boldsymbol{R} R进行一次扰动 Δ R \Delta \boldsymbol{R} ΔR , 看结果相对于扰动的变化率。这个扰动可以乘 在左边也可以乘在右边, 最后结果会有一点儿微小的差异, 我们以左扰动为例。设左扰动 Δ R \Delta \boldsymbol{R} ΔR对应的李代数为 φ ∘ \varphi_{\circ} φ 然后, 对 φ \varphi φ求导, 即
∂ ( R p ) ∂ φ = lim ⁡ φ → 0 exp ⁡ ( φ ∧ ) exp ⁡ ( ϕ ∧ ) p − exp ⁡ ( ϕ ∧ ) p φ (4.42) \frac{\partial(\boldsymbol{R} \boldsymbol{p})}{\partial \boldsymbol{\varphi}}=\lim _{\varphi \rightarrow 0} \frac{\exp \left(\boldsymbol{\varphi}^{\wedge}\right) \exp \left(\boldsymbol{\phi}^{\wedge}\right) \boldsymbol{p}-\exp \left(\boldsymbol{\phi}^{\wedge}\right) \boldsymbol{p}}{\boldsymbol{\varphi}}\tag{4.42} φ(Rp)=φ0limφexp(φ)exp(ϕ)pexp(ϕ)p(4.42)
该式的求导比上面更简单:
∂ ( R p ) ∂ φ = lim ⁡ φ → 0 exp ⁡ ( φ ∧ ) exp ⁡ ( ϕ ∧ ) p − exp ⁡ ( ϕ ∧ ) p φ = lim ⁡ φ → 0 ( I + φ ∧ ) exp ⁡ ( ϕ ∧ ) p − exp ⁡ ( ϕ ∧ ) p φ = lim ⁡ φ → 0 φ ∧ R p φ = lim ⁡ φ → 0 − ( R p ) ∧ φ φ = − ( R p ) ∧ \begin{aligned} \frac{\partial(\boldsymbol{R} \boldsymbol{p})}{\partial \boldsymbol{\varphi}} &=\lim _{\boldsymbol{\varphi} \rightarrow \mathbf{0}} \frac{\exp \left(\boldsymbol{\varphi}^{\wedge}\right) \exp \left(\boldsymbol{\phi}^{\wedge}\right) \boldsymbol{p}-\exp \left(\boldsymbol{\phi}^{\wedge}\right) \boldsymbol{p}}{\boldsymbol{\varphi}} \\ &=\lim _{\boldsymbol{\varphi} \rightarrow 0} \frac{\left(\boldsymbol{I}+\boldsymbol{\varphi}^{\wedge}\right) \exp \left(\boldsymbol{\phi}^{\wedge}\right) \boldsymbol{p}-\exp \left(\boldsymbol{\phi}^{\wedge}\right) \boldsymbol{p}}{\boldsymbol{\varphi}} \\ &=\lim _{\boldsymbol{\varphi} \rightarrow 0} \frac{\boldsymbol{\varphi}^{\wedge}\boldsymbol{R} p}{\boldsymbol{\varphi}}=\lim _{\boldsymbol{\varphi} \rightarrow \mathbf{0}} \frac{-(\boldsymbol{R} \boldsymbol{p})^{\wedge} \boldsymbol{\varphi}}{\boldsymbol{\varphi}}=-(\boldsymbol{R} \boldsymbol{p})^{\wedge} \end{aligned} φ(Rp)=φ0limφexp(φ)exp(ϕ)pexp(ϕ)p=φ0limφ(I+φ)exp(ϕ)pexp(ϕ)p=φ0limφφRp=φ0limφ(Rp)φ=(Rp)
可见, 相比于直接对李代数求导, 省去了一个雅可比 J l \boldsymbol{J}_{l} Jl 的计算。这使得扰动模型更为实用。 请读者务必理解这里的求导运算, 这在位姿估计中具有重要的意义。

4.3.4扩展1: 扰动模型(右乘)

右扰动模型定义:
∂ ( R p ) ∂ φ = lim ⁡ φ → 0 exp ⁡ ( ϕ ∧ ) exp ⁡ ( φ ∧ ) p − exp ⁡ ( ϕ ∧ ) p φ (4.42) \frac{\partial(\boldsymbol{R} \boldsymbol{p})}{\partial \boldsymbol{\varphi}}=\lim _{\varphi \rightarrow 0} \frac{\exp \left(\boldsymbol{\phi}^{\wedge} \right) \exp \left(\boldsymbol{\varphi}^{\wedge}\right) \boldsymbol{p}-\exp \left(\boldsymbol{\phi}^{\wedge}\right) \boldsymbol{p}}{\boldsymbol{\varphi}}\tag{4.42} φ(Rp)=φ0limφexp(ϕ)exp(φ)pexp(ϕ)p(4.42)
进一步推算求导
∂ ( R p ) ∂ φ = lim ⁡ φ → 0 exp ⁡ ( ϕ ∧ ) exp ⁡ ( φ ∧ ) p − exp ⁡ ( ϕ ∧ ) p φ = lim ⁡ φ → 0 exp ⁡ ( ϕ ∧ ) ( I + φ ∧ ) p − exp ⁡ ( ϕ ∧ ) p φ = lim ⁡ φ → 0 R φ ∧ p φ = lim ⁡ φ → 0 − R p ∧ φ φ = − R p ∧ \begin{aligned} \frac{\partial(\boldsymbol{R} \boldsymbol{p})}{\partial \boldsymbol{\varphi}} &=\lim _{\boldsymbol{\varphi} \rightarrow \mathbf{0}} \frac{\exp \left(\boldsymbol{\phi}^{\wedge} \right) \exp \left(\boldsymbol{\varphi}^{\wedge}\right) \boldsymbol{p}-\exp \left(\boldsymbol{\phi}^{\wedge}\right) \boldsymbol{p}}{\boldsymbol{\varphi}} \\ &=\lim _{\boldsymbol{\varphi} \rightarrow 0} \frac{\exp \left(\boldsymbol{\phi}^{\wedge}\right) \left(\boldsymbol{I}+\boldsymbol{\varphi}^{\wedge}\right) \boldsymbol{p}-\exp \left(\boldsymbol{\phi}^{\wedge}\right) \boldsymbol{p}}{\boldsymbol{\varphi}} \\ &=\lim _{\boldsymbol{\varphi} \rightarrow 0} \frac{\boldsymbol{R} \boldsymbol{\varphi}^{\wedge}p}{\boldsymbol{\varphi}}=\lim _{\boldsymbol{\varphi} \rightarrow \mathbf{0}} \frac{-\boldsymbol{R} \boldsymbol{p}^{\wedge} \boldsymbol{\varphi}}{\boldsymbol{\varphi}}=-\boldsymbol{R} \boldsymbol{p}^{\wedge} \end{aligned} φ(Rp)=φ0limφexp(ϕ)exp(φ)pexp(ϕ)p=φ0limφexp(ϕ)(I+φ)pexp(ϕ)p=φ0limφRφp=φ0limφRpφ=Rp

4.3.4扩展2: 伴随

在SO(3) 和SE(3) 上,有⼀个东西称为伴随(Adjoint)。对于SO(3),有:
R exp ⁡ ( p ∧ ) R T = exp ⁡ ( ( R p ) ∧ ) \boldsymbol{R} \exp \left(\boldsymbol{p}^{\wedge}\right) \boldsymbol{R}^{\mathrm{T}}=\exp \left((\boldsymbol{R} \boldsymbol{p})^{\wedge}\right) Rexp(p)RT=exp((Rp))
此时称 Ad ⁡ ( R ) = R \operatorname{Ad}(\boldsymbol{R})=\boldsymbol{R} Ad(R)=R

提示: 首先你需要证明 ∀ a ∈ R 3 , R a ∧ R T = ( R a ) ∧ \forall a \in \mathbb{R}^{3}, \boldsymbol{R a}^{\wedge} \boldsymbol{R}^{\mathrm{T}}=(\boldsymbol{R} \boldsymbol{a})^{\wedge} aR3,RaRT=(Ra) , 页面Derivation of Adjoint for SO(3)提示了一种简洁的途径。如下:

设有任意向量 v \boldsymbol{v} v,与式子右边内积:
( R a ) ∧ v = ( R a ) × v = ( R a ) × ( R R T v ) = R ( a × ( R T v ) ) = R ( a ∧ R T v ) = R a ∧ R T v \begin{aligned} (\boldsymbol{R} \boldsymbol{a})^{\wedge}\boldsymbol{v} &= (\boldsymbol{R} \boldsymbol{a})\times \boldsymbol{v}\\ &=(\boldsymbol{R} \boldsymbol{a})\times (\boldsymbol{R}\boldsymbol{R}^\boldsymbol{T}\boldsymbol{v}) \\ &=\boldsymbol{R}\left(\boldsymbol{a}\times\left(\boldsymbol{R}^\boldsymbol{T}\boldsymbol{v}\right)\right)\\ &=\boldsymbol{R}\left(\boldsymbol{a}^{\wedge}\boldsymbol{R}^\boldsymbol{T}\boldsymbol{v}\right)\\ &=\boldsymbol{R}\boldsymbol{a}^{\wedge}\boldsymbol{R}^\boldsymbol{T}\boldsymbol{v} \end{aligned} (Ra)v=(Ra)×v=(Ra)×(RRTv)=R(a×(RTv))=R(aRTv)=RaRTv
证毕, ∀ a ∈ R 3 , R a ∧ R T = ( R a ) ∧ \forall a \in \mathbb{R}^{3}, \boldsymbol{R a}^{\wedge} \boldsymbol{R}^{\mathrm{T}}=(\boldsymbol{R} \boldsymbol{a})^{\wedge} aR3,RaRT=(Ra)

对于 S E ( 3 ) \mathrm{SE}(3) SE(3), 有:
T exp ⁡ ( ξ ∧ ) T − 1 = exp ⁡ ( ( Ad ⁡ ( T ) ξ ) ∧ ) \boldsymbol{T} \exp \left(\boldsymbol{\xi}^{\wedge}\right) \boldsymbol{T}^{-1}=\exp \left((\operatorname{Ad}(\boldsymbol{T}) \boldsymbol{\xi})^{\wedge}\right) Texp(ξ)T1=exp((Ad(T)ξ))
其中 Ad ⁡ ( T ) \operatorname{Ad}(\boldsymbol{T}) Ad(T)定义为:
Ad ⁡ ( T ) = [ R t ∧ R 0 R ] \operatorname{Ad}(\boldsymbol{T})=\left[\begin{array}{cc} \boldsymbol{R} & \boldsymbol{t}^{\wedge} \boldsymbol{R} \\ \mathbf{0} & \boldsymbol{R} \end{array}\right] Ad(T)=[R0tRR]
这个性质将在后文的 Pose Graph 优化中用到。但是 S E ( 3 ) \mathrm{SE}(3) SE(3) 的证明较为复杂。

4.3.4扩展3: 扰动求导的例子

参考李代数扰动模型求导总结
例子1
∂ R 1 R 2 ∂ R 1 = I \frac{\partial{R_1R_2}}{\partial{R_1}}=I R1R1R2=I
R 1 R 2 R_1R_2 R1R2 R 1 R_1 R1的左扰动导数:
∂ R 1 R 2 ∂ R 1 = ∂ log ⁡ ( exp ⁡ ( δ ) R 1 R 2 ( R 1 R 2 ) − 1 ) ∂ δ ∣ δ = 0 = ∂ log ⁡ ( exp ⁡ ( δ ) R 1 R 2 R 2 − 1 R 1 − 1 ) ∂ δ ∣ δ = 0 = ∂ log ⁡ ( exp ⁡ ( δ ) ) ∂ δ ∣ δ = 0 = I \begin{aligned} \frac{\partial{R_1R_2}}{\partial{R_1}}&=\frac{\partial{\log(\exp(\delta)R_1R_2(R_1R_2)^{-1})}}{\partial{\delta}}|_{\delta=0}\\ &=\frac{\partial{\log(\exp(\delta)R_1R_2R_2^{-1}R_1^{-1})}}{\partial{\delta}}|_{\delta=0}\\ &=\frac{\partial{\log(\exp(\delta))}}{\partial{\delta}}|_{\delta=0}\\ &=I \end{aligned} R1R1R2=δlog(exp(δ)R1R2(R1R2)1)δ=0=δlog(exp(δ)R1R2R21R11)δ=0=δlog(exp(δ))δ=0=I

例子2
∂ R 1 R 2 ∂ R 2 = R 1 \frac{\partial{R_1R_2}}{\partial{R_2}}=R_1 R2R1R2=R1
R 1 R 2 R_1R_2 R1R2 R 2 R_2 R2的左扰动导数:
∂ R 1 R 2 ∂ R 2 = ∂ log ⁡ ( R 1 exp ⁡ ( δ ) R 2 ( R 1 R 2 ) − 1 ) ∂ δ ∣ δ = 0 = ∂ log ⁡ ( R 1 exp ⁡ ( δ ) R 2 R 2 − 1 R 1 − 1 ) ∂ δ ∣ δ = 0 = ∂ log ⁡ ( R 1 exp ⁡ ( δ ) R 1 − 1 ) ∂ δ ∣ δ = 0 = ∂ log ⁡ ( exp ⁡ ( R 1 δ ) ) ∂ δ ∣ δ = 0 = R 1 \begin{aligned} \frac{\partial{R_1R_2}}{\partial{R_2}}&=\frac{\partial{\log(R_1\exp(\delta)R_2(R_1R_2)^{-1})}}{\partial{\delta}}|_{\delta=0}\\ &=\frac{\partial{\log(R_1\exp(\delta)R_2R_2^{-1}R_1^{-1})}}{\partial{\delta}}|_{\delta=0}\\ &=\frac{\partial{\log(R_1\exp(\delta)R_1^{-1})}}{\partial{\delta}}|_{\delta=0}\\ &=\frac{\partial{\log(\exp(R_1\delta))}}{\partial{\delta}}|_{\delta=0}\\ &=R_1 \end{aligned} R2R1R2=δlog(R1exp(δ)R2(R1R2)1)δ=0=δlog(R1exp(δ)R2R21R11)δ=0=δlog(R1exp(δ)R11)δ=0=δlog(exp(R1δ))δ=0=R1

例子3
∂ R − 1 ∂ R = − R − 1 = − R ⊺ \frac{\partial{R^{-1}}}{\partial{R}}=-R^{-1}=-R^\intercal RR1=R1=R
R − 1 R^{-1} R1 R R R的左扰动导数:
∂ R − 1 ∂ R = ∂ log ⁡ ( ( exp ⁡ ( δ ) R ) − 1 R ) ∂ δ ∣ δ = 0 = ∂ log ⁡ ( ( R − 1 exp ⁡ ( δ ) R ) − 1 ) ∂ δ ∣ δ = 0 = ∂ log ⁡ ( exp ⁡ ( R − 1 δ ) − 1 ) ∂ δ ∣ δ = 0 = ∂ log ⁡ ( exp ⁡ ( − R − 1 δ ) ) ∂ δ ∣ δ = 0 = − R − 1 = − R ⊺ \begin{aligned} \frac{\partial{R^{-1}}}{\partial{R}}&=\frac{\partial{\log((\exp(\delta)R)^{-1}R)}}{\partial\delta}|_{\delta=0}\\ &=\frac{\partial{\log((R^{-1}\exp(\delta)R)^{-1})}}{\partial\delta}|_{\delta=0}\\ &=\frac{\partial{\log(\exp(R^{-1}\delta)^{-1})}}{\partial\delta}|_{\delta=0}\\ &=\frac{\partial{\log(\exp(-R^{-1}\delta))}}{\partial\delta}|_{\delta=0}\\ &=-R^{-1}=-R^{\intercal} \end{aligned} RR1=δlog((exp(δ)R)1R)δ=0=δlog((R1exp(δ)R)1)δ=0=δlog(exp(R1δ)1)δ=0=δlog(exp(R1δ))δ=0=R1=R

exp ⁡ ( ϕ ) − 1 = exp ⁡ ( − ϕ ) \exp(\phi)^{-1}=\exp(-\phi) exp(ϕ)1=exp(ϕ)
证明:
已知:
exp ⁡ ( ϕ ) = exp ⁡ ( θ ⋅ a ) = cos ⁡ ( θ ) ⋅ I + ( 1 − cos ⁡ ( θ ) ) a ⋅ a ⊺ + sin ⁡ ( θ ) a ∧ \begin{aligned} \exp(\phi)=\exp(\theta\cdot a)=\cos(\theta)\cdot I+(1-\cos(\theta))a\cdot a^\intercal+\sin(\theta)a^\wedge \end{aligned} exp(ϕ)=exp(θa)=cos(θ)I+(1cos(θ))aa+sin(θ)a
和:
( a ∧ ) ⊺ = − a ∧ (a^\wedge)^\intercal=-a^\wedge (a)=a
则:
exp ⁡ ( ϕ ) − 1 = exp ⁡ ( θ ⋅ a ) ⊺ = cos ⁡ ( θ ) ⋅ I ⊺ + ( 1 − cos ⁡ ( θ ) ) ( a ⋅ a ⊺ ) ⊺ + sin ⁡ ( θ ) ( a ∧ ) ⊺ = cos ⁡ ( θ ) ⋅ I + ( 1 − cos ⁡ ( θ ) ) a ⋅ a ⊺ − sin ⁡ ( θ ) a ∧ exp ⁡ ( − ϕ ) = exp ⁡ ( − θ ⋅ a ) = cos ⁡ ( − θ ) ⋅ I + ( 1 − cos ⁡ ( − θ ) ) a ⋅ a ⊺ + sin ⁡ ( − θ ) a ∧ = cos ⁡ ( θ ) ⋅ I + ( 1 − cos ⁡ ( θ ) ) a ⋅ a ⊺ − sin ⁡ ( θ ) a ∧ \begin{aligned} \exp(\phi)^{-1}=\exp(\theta\cdot a)^\intercal&=\cos(\theta)\cdot I^\intercal+(1-\cos(\theta))(a\cdot a^\intercal)^\intercal+\sin(\theta)(a^\wedge)^\intercal \\ &=\cos(\theta)\cdot I+(1-\cos(\theta))a\cdot a^\intercal-\sin(\theta)a^\wedge \\ \\ \exp(-\phi)=\exp(-\theta\cdot a)&=\cos(-\theta)\cdot I+(1-\cos(-\theta))a\cdot a^\intercal+\sin(-\theta)a^\wedge \\ &=\cos(\theta)\cdot I+(1-\cos(\theta))a\cdot a^\intercal-\sin(\theta)a^\wedge \end{aligned} exp(ϕ)1=exp(θa)exp(ϕ)=exp(θa)=cos(θ)I+(1cos(θ))(aa)+sin(θ)(a)=cos(θ)I+(1cos(θ))aasin(θ)a=cos(θ)I+(1cos(θ))aa+sin(θ)a=cos(θ)I+(1cos(θ))aasin(θ)a
因此:
exp ⁡ ( ϕ ) − 1 = exp ⁡ ( − ϕ ) \exp(\phi)^{-1}=\exp(-\phi) exp(ϕ)1=exp(ϕ)

4.3.5 SE(3)上的扰动模型

最后, 我们给出 S E ( 3 ) \mathrm{SE}(3) SE(3) 上的扰动模型, 而直接李代数上的求导就不再介绍了。假设某空间点 p p p 经过一次变换 T \boldsymbol{T} T (对应李代数为 ξ \boldsymbol{\xi} ξ) , 得到 T p \boldsymbol{T} \boldsymbol{p}^{\mathbb{}} Tp 。现在, 给 T \boldsymbol{T} T 左乘一个扰动 Δ T = exp ⁡ ( δ ξ ∧ ) \Delta \boldsymbol{T}=\exp \left(\delta \boldsymbol{\xi}^{\wedge}\right) ΔT=exp(δξ) , 我们设扰动项的李代数为 δ ξ = [ δ ρ , δ ϕ ] T \delta \boldsymbol{\xi}=[\delta \boldsymbol{\rho}, \delta \phi]^{\mathrm{T}} δξ=[δρ,δϕ]T , 那么:
∂ ( T p ) ∂ δ ξ = lim ⁡ δ ξ → 0 exp ⁡ ( δ ξ ∧ ) exp ⁡ ( ξ ∧ ) p − exp ⁡ ( ξ ∧ ) p δ ξ \frac{\partial(\boldsymbol{T} \boldsymbol{p})}{\partial \delta \boldsymbol{\xi}}=\lim _{\delta \xi \rightarrow 0} \frac{\exp \left(\delta \boldsymbol{\xi}^{\wedge}\right) \exp \left(\boldsymbol{\xi}^{\wedge}\right) \boldsymbol{p}-\exp \left(\boldsymbol{\xi}^{\wedge}\right) \boldsymbol{p}}{\delta \boldsymbol{\xi}} δξ(Tp)=δξ0limδξexp(δξ)exp(ξ)pexp(ξ)p
= lim ⁡ δ ξ → 0 ( I + δ ξ ∧ ) exp ⁡ ( ξ ∧ ) p − exp ⁡ ( ξ ∧ ) p δ ξ = lim ⁡ δ ξ → 0 δ ξ ∧ exp ⁡ ( ξ ∧ ) p δ ξ = lim ⁡ δ ξ → 0 [ δ ϕ ∧ δ ρ 0 T 0 ] [ R p + t 1 ] δ ξ = lim ⁡ δ ξ → 0 [ δ ϕ ∧ ( R p + t ) + δ ρ 0 T ] [ δ ρ , δ ϕ ] T = [ I − ( R p + t ) ∧ 0 T 0 T ] = def ⁡ ( T p ) ⊙ . \begin{array}{l} =\lim _{\delta \xi \rightarrow 0} \frac{\left(\boldsymbol{I}+\delta \boldsymbol{\xi}^{\wedge}\right) \exp \left(\boldsymbol{\xi}^{\wedge}\right) \boldsymbol{p}-\exp \left(\boldsymbol{\xi}^{\wedge}\right) \boldsymbol{p}}{\delta \boldsymbol{\xi}} \\ =\lim _{\delta \boldsymbol{\xi} \rightarrow 0} \frac{\delta \boldsymbol{\xi}^{\wedge} \exp \left(\boldsymbol{\xi}^{\wedge}\right) \boldsymbol{p}}{\delta \boldsymbol{\xi}} \\ =\lim _{\delta \boldsymbol{\xi} \rightarrow \mathbf{0}} \frac{\left[\begin{array}{cc} \delta \boldsymbol{\phi}^{\wedge} & \delta \boldsymbol{\rho} \\ \mathbf{0}^{\mathrm{T}} & 0 \end{array}\right]\left[\begin{array}{c} \boldsymbol{R} \boldsymbol{p}+\boldsymbol{t} \\ 1 \end{array}\right]}{\delta \boldsymbol{\xi}} \\ =\lim _{\delta \boldsymbol{\xi} \rightarrow \mathbf{0}} \frac{\left[\begin{array}{c} \delta \boldsymbol{\phi}^{\wedge}(\boldsymbol{R} \boldsymbol{p}+\boldsymbol{t})+\delta \boldsymbol{\rho} \\ \mathbf{0}^{\mathrm{T}} \end{array}\right]}{[\delta \boldsymbol{\rho}, \delta \boldsymbol{\phi}]^{\mathrm{T}}}=\left[\begin{array}{cc} \boldsymbol{I} & -(\boldsymbol{R} \boldsymbol{p}+\boldsymbol{t})^{\wedge} \\ \mathbf{0}^{\mathrm{T}} & \mathbf{0}^{\mathrm{T}} \end{array}\right] \stackrel{\operatorname{def}}{=}(\boldsymbol{T} \boldsymbol{p})^{\odot} . \end{array} =limδξ0δξ(I+δξ)exp(ξ)pexp(ξ)p=limδξ0δξδξexp(ξ)p=limδξ0δξ[δϕ0Tδρ0][Rp+t1]=limδξ0[δρ,δϕ]T[δϕ(Rp+t)+δρ0T]=[I0T(Rp+t)0T]=def(Tp).
我们把最后的结果定义成一个算符 ⊙ ^\odot , 它把一个齐次坐标的空间点变换成一个 4 × 6 4 \times 6 4×6 的矩 阵。此式稍微需要解释的是矩阵求导方面的顺序, 假设 a , b , x , y \boldsymbol{a}, \boldsymbol{b}, \boldsymbol{x}, \boldsymbol{y} a,b,x,y 都是列向量, 那么在我们的符号写法下, 有如下的规则:
d [ a b ] d [ x y ] = ( d [ a , b ] T d [ x y ] ) T = [ d a d x d b d x d a d y d b d y ] T = [ d a d x d a d y d b d x d b d y ] \frac{\mathrm{d}\left[\begin{array}{l} a \\ b \end{array}\right]}{\mathrm{d}\left[\begin{array}{l} \boldsymbol{x} \\ \boldsymbol{y} \end{array}\right]}=\left(\begin{array}{c} \frac{\mathrm{d}[\boldsymbol{a}, \boldsymbol{b}]^{\mathrm{T}}} {\mathrm{d}\left[\begin{array}{l} \boldsymbol{x} \\ \boldsymbol{y} \end{array}\right]} \end{array}\right)^\mathrm{T}=\left[\begin{array}{cc} \frac{\mathrm{d} \boldsymbol{a}}{\mathrm{d} \boldsymbol{x}} & \frac{\mathrm{d} \boldsymbol{b}}{\mathrm{d} \boldsymbol{x}} \\ \frac{\mathrm{d} \boldsymbol{a}}{\mathrm{d} \boldsymbol{y}} & \frac{\mathrm{d} \boldsymbol{b}}{\mathrm{d} \boldsymbol{y}} \end{array}\right]^{\mathrm{T}}=\left[\begin{array}{cc} \frac{\mathrm{d} \boldsymbol{a}}{\mathrm{d} \boldsymbol{x}} & \frac{\mathrm{d} \boldsymbol{a}}{\mathrm{d} \boldsymbol{y}} \\ \frac{\mathrm{d} \boldsymbol{b}}{\mathrm{d} \boldsymbol{x}} & \frac{\mathrm{d} \boldsymbol{b}}{\mathrm{d} \boldsymbol{y}} \end{array}\right] d[xy]d[ab]=(d[xy]d[a,b]T)T=[dxdadydadxdbdydb]T=[dxdadxdbdydadydb]

4.4 实践:Sopuhs

待续…

4.5 相似变换群与李代数

最后, 我们要提一下在单目视觉中使用的相似变换群 Sim ⁡ ( 3 ) \operatorname{Sim}(3) Sim(3), 以及对应的李代数 sim ⁡ ( 3 ) \operatorname{sim}(3) sim(3) 。如果在单目 SLAM 中使用 S E ( 3 ) \mathrm{SE}(3) SE(3)表示位姿, 那么由于尺度不确定性与尺度漂移,整个SLAM过程中的尺度会发生变化, 这在 S E ( 3 ) \mathrm{SE}(3) SE(3)中末能体现出来。 因此, 在单目情况下我们一般会显式地把尺度因子表达出来。用数学语言来说, 对于位于空间的点 p \boldsymbol{p} p , 在相机坐标系下要经过一个相似变换, 而非欧氏变换:
p ′ = [ s R t 0 T 1 ] p = s R p + t \boldsymbol{p}^{\prime}=\left[\begin{array}{cc} s \boldsymbol{R} & t \\ 0^{\mathrm{T}} & 1 \end{array}\right] \boldsymbol{p}=s \boldsymbol{R} \boldsymbol{p}+\boldsymbol{t} p=[sR0Tt1]p=sRp+t
在相似变换中, 我们把尺度 s s s表达出来了。它同时作用在 p \boldsymbol{p} p的 3 个坐标之上, 对 p \boldsymbol{p} p进行了一次缩 放。与 S O ( 3 ) \mathrm{SO}(3) SO(3) S E ( 3 ) \mathrm{SE}(3) SE(3)相似, 相似变换也对矩阵乘法构成群, 称为相似变换群 Sim ⁡ ( 3 ) \operatorname{Sim}(3) Sim(3) :
Sim ⁡ ( 3 ) = { S = [ s R t 0 T 1 ] ∈ R 4 × 4 } \operatorname{Sim}(3)=\left\{S=\left[\begin{array}{cc} s \boldsymbol{R} & t \\ \mathbf{0}^{\mathrm{T}} & 1 \end{array}\right] \in \mathbb{R}^{4 \times 4}\right\} Sim(3)={S=[sR0Tt1]R4×4}
同样地, Sim ⁡ ( 3 ) \operatorname{Sim}(3) Sim(3)也有对应的李代数、指数映射、对数映射等。李代数 sim ⁡ ( 3 ) \operatorname{sim}(3) sim(3)元素是一个 7 维 向量 ζ \zeta ζ。它的前6维与 s e ( 3 ) \mathfrak{s e}(3) se(3)相同, 最后多了一项 σ 。  \sigma_{\text {。 }} σ 
sim ⁡ ( 3 ) = { ζ ∣ ζ = [ ρ ϕ σ ] ∈ R 7 , ζ ∧ = [ σ I + ϕ ∧ ρ 0 T 0 ] ∈ R 4 × 4 } \operatorname{sim}(3)=\left\{\boldsymbol{\zeta} \mid \boldsymbol{\zeta}=\left[\begin{array}{l} \rho \\ \phi \\ \sigma \end{array}\right] \in \mathbb{R}^{7}, \boldsymbol{\zeta}^{\wedge}=\left[\begin{array}{cc} \sigma I+\phi^{\wedge} & \rho \\ \mathbf{0}^{\mathrm{T}} & 0 \end{array}\right] \in \mathbb{R}^{4 \times 4}\right\} sim(3)=ζζ=ρϕσR7,ζ=[σI+ϕ0Tρ0]R4×4
它比 s e ( 3 ) \mathfrak{s e}(3) se(3)多了一项 σ ∘ \sigma_{\circ} σ关联 Sim ⁡ ( 3 ) \operatorname{Sim}(3) Sim(3) sim ⁡ ( 3 ) \operatorname{sim}(3) sim(3)的仍是指数映射和对数映射。指数映射为
exp ⁡ ( ζ ∧ ) = [ e σ exp ⁡ ( ϕ ∧ ) J s ρ 0 T 1 ] \exp \left(\boldsymbol{\zeta}^{\wedge}\right)=\left[\begin{array}{cc} \mathrm{e}^{\sigma} \exp \left(\boldsymbol{\phi}^{\wedge}\right) & \boldsymbol{J}_{s} \rho \\ \boldsymbol{0}^{\mathrm{T}} & 1 \end{array}\right] exp(ζ)=[eσexp(ϕ)0TJsρ1]
其中, J s \boldsymbol{J}_{s} Js的形式为
J s = e σ − 1 σ I + σ e σ sin ⁡ θ + ( 1 − e σ cos ⁡ θ ) θ σ 2 + θ 2 a ∧ + ( e σ − 1 σ − ( e σ cos ⁡ θ − 1 ) σ + ( e σ sin ⁡ θ ) θ σ 2 + θ 2 ) a ∧ a ∧ \begin{aligned} J_{s}=& \frac{\mathrm{e}^{\sigma}-1}{\sigma} \boldsymbol{I}+\frac{\sigma \mathrm{e}^{\sigma} \sin \theta+\left(1-\mathrm{e}^{\sigma} \cos \theta\right) \theta}{\sigma^{2}+\theta^{2}} \boldsymbol{a}^{\wedge} \\ &+\left(\frac{\mathrm{e}^{\sigma}-1}{\sigma}-\frac{\left(\mathrm{e}^{\sigma} \cos \theta-1\right) \sigma+\left(\mathrm{e}^{\sigma} \sin \theta\right) \theta}{\sigma^{2}+\theta^{2}}\right) \boldsymbol{a}^{\wedge} \boldsymbol{a}^{\wedge} \end{aligned} Js=σeσ1I+σ2+θ2σeσsinθ+(1eσcosθ)θa+(σeσ1σ2+θ2(eσcosθ1)σ+(eσsinθ)θ)aa
通过指数映射, 我们能够找到李代数与李群的关系。对于李代数 ζ \boldsymbol{\zeta} ζ , 它与李群的对应关系为
s = e σ , R = exp ⁡ ( ϕ ∧ ) , t = J s ρ s=\mathrm{e}^{\sigma}, \boldsymbol{R}=\exp \left(\boldsymbol{\phi}^{\wedge}\right), \boldsymbol{t}=\boldsymbol{J}_{s} \boldsymbol{\rho} s=eσ,R=exp(ϕ),t=Jsρ
旋转部分和 S O ( 3 ) \mathrm{SO}(3) SO(3) 是一致的。平移部分,在 s e ( 3 ) \mathfrak{s e}(3) se(3)中需要乘一个雅可比 J \mathcal{J} J , 而相似变换的雅 可比更复杂。对于尺度因子, 可以看到李群中的 s s s即为李代数中 σ \sigma σ 的指数函数。

Sim ⁡ ( 3 ) \operatorname{Sim}(3) Sim(3) B C H \mathrm{BCH} BCH 近似与 S E ( 3 ) \mathrm{SE}(3) SE(3)是类似的。我们可以讨论一个点 p \boldsymbol{p} p经过相似变换 S p \boldsymbol{S} \boldsymbol{p} Sp后, 相对于 S S S的导数。同样地,存在微分模型和扰动模型两种方式, 而扰动模型较为简单。我们省略推导 过程,直接给出扰动模型的结果。设给予 S p S \boldsymbol{p} Sp左侧一个小扰动 exp ⁡ ( ζ ∧ ) \exp \left(\boldsymbol{\zeta}^{\wedge}\right) exp(ζ) , 并求 S p \boldsymbol{S p} Sp 对于扰动的导 数。因为 S p S p Sp 是 4 维的齐次坐标, ζ \zeta ζ 是 7 维向量, 所以该导数应该是 4 × 7 4 \times 7 4×7 的雅可比。方便起见, 记 S p S \boldsymbol{p} Sp 的前 3 维组成向量为 q \boldsymbol{q} q , 那么:
∂ S p ∂ ζ = [ I − q ∧ q 0 T 0 T 0 ] \frac{\partial \boldsymbol{S p}}{\partial \boldsymbol{\zeta}}=\left[\begin{array}{ccc} \boldsymbol{I} & -\boldsymbol{q}^{\wedge} & \boldsymbol{q} \\ \mathbf{0}^{\mathrm{T}} & \mathbf{0}^{\mathrm{T}} & 0 \end{array}\right] ζSp=[I0Tq0Tq0]

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在《视觉SLAM十四》中,章节安排如下: 1. 数学基础部分:介绍这本书的基本信息,包括自测题。概述SLAM系统的组成和各模块的工作。介绍三维空间运动、李群和李代数、针孔相机模型以及非线性优化。完成一个曲线拟合的实验。 2. SLAM技术部分:解特征点法的视觉里程计,包括特征点的提取与匹配、对极几何约束的计算、PnP和ICP等方法。学习直接法的视觉里程计,包括光流和直接法的原理,并使用g2o实现一个简单的RGB-D直接法。构建一个视觉里程计框架,解决优化和关键帧选择的问题。深入讨论后端优化,包括Bundle Adjustment和位姿图的优化。介绍回环检测和地图构建的方法。最后,介绍当前的开源SLAM项目和未来的发展方向。 另外,对于四元数的学习,可以先了解复平面的概念。复平面是一个用来描述复数的平面,其中实部和虚部分别对应平面的横坐标和纵坐标。了解复平面后,可以开始学习四元数的概念和应用。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [视觉SLAM十四笔记](https://blog.csdn.net/dada19980122/article/details/111404967)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [【视觉SLAM十四】笔记【逐行代码带你解析】【适合纯小白 ps:因为我就是】(持续更新中)](https://blog.csdn.net/R_ichun/article/details/131964588)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值