第四讲:李群和李代数

第四讲:李群和李代数


学习目标

  • 理解李群和李代数,掌握SO(3),SE(3)与对应李代数的表示方式.
  • 理解BCH近似的意义
  • 学会在李代数上的扰动模型
  • 使用Sophus对李代数进行运算

通过李群李代数的转换关系,我们希望把位姿估计变成无约束的优化问题,简化求解方式.

1. 李群与李代数基础

回顾:

  • 特殊正交群: SO(3)

    S O ( n ) = { R ∈ R n × n ∣ R R T = I , d e t ( R ) = 1 } , R 为 旋 转 矩 阵 SO(n) = \{R \in R^{n \times n} | RR^T =I, det(R)=1 \} , \quad R为旋转矩阵 SO(n)={RRn×nRRT=I,det(R)=1},R

  • 特殊欧式群: SE(3)

    S E ( 3 ) = { T = [ R t 0 T 1 ] ∈ R 4 × 4 ∣ R ∈ S O ( 3 ) , t ∈ R 3 } , T 为 变 换 矩 阵 SE(3) = \left\{ T = \begin{bmatrix} R & t \\ 0^T & 1 \end{bmatrix} \in R^{4 \times 4} | R \in SO(3), t\in \Bbb{R}^3 \right\} , \quad T为变换矩阵 SE(3)={T=[R0Tt1]R4×4RSO(3),tR3},T

R,T矩阵对加法不是封闭的, 例如:
R 1 + R 2 ∉ S O ( 3 ) \bm{R_1+R_2} \notin SO(3) R1+R2/SO(3)

R,T矩阵对乘法是封闭的, 例如:

R 1 R 2 ∈ S O ( 3 ) , T 1 T 2 ∈ S E ( 3 ) \bm{R_1R_2} \in SO(3), \quad \bm{T_1T_2} \in SE(3) R1R2SO(3),T1T2SE(3)

乘法对应着旋转或者变化的复合, 两个旋转矩阵相乘表示做了两次旋转. 对于这种只有一个运算的集合我们称之为.

1.1. 群

群是一种集合加上一种运算的代数结构.

把集合记做A,运算记做 ⋅ \quad \cdot \quad ,那么可以记做 G = ( A , ⋅ ) G=(A,\cdot) G=(A,). 群要求这个运算满足以下条件:

  1. 封闭性: ∀ a 1 , a 2 ∈ A , a 1 ⋅ a 2 ∈ A \qquad\forall a_1,a_2\in A, \quad 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 ) \qquad \forall a_1,a_2,a_3 \in A, \quad (a_1 \cdot a_2) \cdot a_3 = a_1\cdot(a_2 \cdot a_3) a1,a2,a3A,(a1a2)a3=a1(a2a3)
  3. 幺元: ∃ a 0 ∈ A , s . t . ∀ a ∈ A , a 0 ⋅ a = a ⋅ a 0 = a \qquad \exists a_0 \in A, \quad \bm{s.t.} \quad \forall a \in A, \quad a_0\cdot a = a \cdot a_0 = a a0A,s.t.aA,a0a=aa0=a
  4. 逆: ∀ a ∈ A , ∃ a − 1 ∈ A , s . t . a ⋅ a − 1 = a 0 \qquad \forall a \in A, \quad \exist a^{-1} \in A, \quad \bm{s.t.} \quad a\cdot a^{-1} = a_0 aA,a1A,s.t.aa1=a0

s . t . \bm{s.t.} s.t. 表示: 使得...

上述的四种性质简称为:封结幺逆

矩阵中常见的群:

  • 一般线性群 GL(n): 指 n × n n\times n n×n 的可逆矩阵, 他们对矩阵乘法成群.
  • 特殊正交群 SO(n): 也即旋转矩阵群, 其中SO(2) 和SO(3) 最常见.
  • 特殊欧式群 SE(n): 也就是前面提到的n维欧式变换, 如SE(2)和SE(3)

李群: 指的是具有连续(光滑)性质的群. 例如,一个一个刚体能够连续的在空间中运动,他们被称为李群.

1.2. 李代数的引出

任意旋转矩阵R,满足:
R R T = I \bm{RR^T} = \bm{I} RRT=I

现在,认为R是某个相机的旋转,R会随着时间变化,则相机的旋转可以表示为R(t). 它任然满足如下性质:
R ( t ) R ( t ) T = I \bm{R(t)R(t)^T} = \bm{I} R(t)R(t)T=I

对时间求导得到:

R ′ ( t ) R ( t ) T + R ( t ) R ′ ( t ) T = 0 ⇒ R ′ ( t ) R ( t ) T = − ( R ′ ( t ) R ( t ) T ) T R^\prime(t)R(t)^T + R(t)R^\prime(t)^T = 0 \newline \Rightarrow \newline R^\prime(t)R(t)^T = -(R^\prime(t)R(t)^T)^T R(t)R(t)T+R(t)R(t)T=0R(t)R(t)T=(R(t)R(t)T)T

由以上推导可知 R ′ ( t ) R ( t ) T R^\prime(t)R(t)^T R(t)R(t)T是一个反对称矩阵.我们在之前用符号: ^ 表示将一个向量变成反对称.同理,用符号: ∨ ^\vee 表示一个反对称矩阵变成一个向量.

  • ∧ ^\wedge : 将一个向量变成反对称矩阵.
  • ∨ ^\vee : 将一个反对称矩阵变成向量.

a ∧ = A = [ 0 − a 3 a 2 a 3 0 − a 1 − a 2 a 1 0 ] , A ∨ = a a^\wedge = A = \begin{bmatrix} 0 & -a_3 & a_2 \\ a_3 & 0 & -a_1 \\ -a_2 & a_1 & 0 \end{bmatrix}, \quad A^\vee = a a=A=0a3a2a30a1a2a10,A=a

同理,对于 R ′ ( t ) R ( t ) T R^\prime(t)R(t)^T R(t)R(t)T 可以找到一个三维向量 ϕ ( t ) ∈ R 3 \phi(t) \in \Bbb{R}^3 ϕ(t)R3与之对应. 于是有:
R ′ ( t ) R ( t ) T = ϕ ( t ) ∧ R^\prime(t)R(t)^T = \phi(t)^ \wedge R(t)R(t)T=ϕ(t)

等式两遍右乘以 R(t):
R ′ ( t ) = ϕ ( t ) ∧ R ( t ) = [ 0 − ϕ 3 ϕ 2 ϕ 3 0 − ϕ 1 − ϕ 2 ϕ 1 0 ] R ( t ) R^\prime(t) = \phi(t)^\wedge R(t) = \begin{bmatrix} 0 & -\phi_3 & \phi_2 \\ \phi_3 & 0 & -\phi_1 \\ -\phi_2 & \phi_1 & 0 \end{bmatrix} R(t) R(t)=ϕ(t)R(t)=0ϕ3ϕ2ϕ30ϕ1ϕ2ϕ10R(t)

可知:每对旋转轴求一次导,只需要左乘一个 ϕ ( t ) ∧ \phi(t)^\wedge ϕ(t) 矩阵即可.

1.3. 李代数的定义

李代数:李代数是一个集合 V \Bbb{V} V,一个数域 F \Bbb{F} F,和一个二元运算符[,]组成,如果他们满足以下性质,那么称 ( V , F , [ , ] ) (\Bbb{V},\Bbb{F},[,]) (V,F,[,])为一个李代数,记作 g g g

  1. 封闭性: ∀ X , Y ∈ V , [ X , Y ] ∈ V \forall X,Y \in \Bbb{V},[X,Y] \in \Bbb{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 \Bbb{V},\quad a,b\in \Bbb{F}, 有:[aX+bY,Z]=a[X,Z]+b[Y,Z],\quad [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 \Bbb{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 \Bbb{V}, [X,[Y,Z]]+[Z,[X,Y]]+[Y,[Z,X]]=0 X,Y,ZV,[X,[Y,Z]]+[Z,[X,Y]]+[Y,[Z,X]]=0

其中的二元运算符被称为李括号.

由于三位向量上定义的 × \times ×满足上述四条性质,所以 g = ( R 3 , R , × ) g=( \Bbb{R^3},\Bbb{R},\times ) g=(R3,R,×) 构成一个李代数.

R 3 \Bbb{R^3} R3表示集合; R \Bbb{R} R表示数域; × \times × 表示二元运算.

1.4. 李代数 s o ( 3 ) \frak{so}(3) so(3)

之前的 ϕ \phi ϕ 实际上是一种李代数.

S O ( 3 ) SO(3) SO(3)对应的李代数是定义在 R 3 \Bbb{R^3} R3上的向量 ϕ \phi ϕ.

根据之前的定义, ϕ \phi ϕ 可以生成一个反对称矩阵.
Φ = ϕ ∧ = [ 0 − ϕ 3 ϕ 2 ϕ 3 0 − ϕ 1 − ϕ 2 ϕ 1 0 ] ∈ R 3 × 3 \Phi =\phi^\wedge = \begin{bmatrix} 0 & -\phi_3 & \phi_2 \\ \phi_3 & 0 & -\phi_1 \\ -\phi_2 & \phi_1 & 0 \end{bmatrix} \in \Bbb{R^{3\times 3}} Φ=ϕ=0ϕ3ϕ2ϕ30ϕ1ϕ2ϕ10R3×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)

s o ( 3 ) \frak{so}(3) so(3)的元素是三维向量或者三维反对称矩阵.
s o ( 3 ) = [ ϕ ∈ R 3 , Φ = ϕ ∧ ∈ R 3 × 3 ] \frak{so}(3) = \begin{bmatrix} \phi \in \Bbb{R^3}, \Phi = \phi^\wedge \in \Bbb{R^{3\times 3}} \end{bmatrix} so(3)=[ϕR3,Φ=ϕR3×3]

s o ( 3 ) \frak{so}(3) so(3)的内容为:由一个三维向量组成的集合,每个向量对应一个反对称矩阵,可以表达旋转矩阵的导数.

它与 S O ( 3 ) SO(3) SO(3)的关系由指数映射给定:

R = e x p ( ϕ ∧ ) \bm{R}=exp(\phi ^\wedge) R=exp(ϕ)

指数映射会在后面介绍

1.5. 李代数 s e ( 3 ) \frak{se}(3) se(3)

s e ( 3 ) \frak{se}(3) se(3)位于 R 6 \Bbb{R^6} R6空间中:
s e ( 3 ) = { ξ = [ ρ ϕ ] ∈ R 6 , ρ ∈ R 3 , ϕ ∈ s o ( 3 ) , ρ ∧ = [ ϕ ∧ ρ 0 T 0 ] ∈ R 4 × 4 } \frak{se}(3) = \left \{ \xi = \begin{bmatrix} \rho \\ \phi \end{bmatrix} \in \Bbb{R^6}, \rho \in \Bbb{R^3}, \phi \in \frak{so}(3), \rho^\wedge = \begin{bmatrix} \phi^\wedge & \rho \\ 0^T & 0 \end{bmatrix} \in \Bbb{R^{4 \times 4}} \right \rbrace se(3)={ξ=[ρϕ]R6,ρR3,ϕso(3),ρ=[ϕ0Tρ0]R4×4}

s e ( 3 ) = [ ρ ϕ ] \frak{se}(3) = \begin{bmatrix} \rho \\ \phi \end{bmatrix} se(3)=[ρϕ]为六维向量. ρ \rho ρ 表示平移; ϕ \phi ϕ 表示旋转.

将一个六维向量转换成四维矩阵(但是不在表示反对称):
ξ ∧ = [ ϕ ∧ ρ 0 T 0 ] ∈ R 4 × 4 \xi^\wedge = \begin{bmatrix} \phi^\wedge & \rho \\ 0^T & 0 \end{bmatrix} \in \Bbb{R^{4 \times 4}} ξ=[ϕ0Tρ0]R4×4

s e ( 3 ) \frak{se}(3) se(3) 的李括号为:
[ ξ 1 , ξ 2 ] = ( ξ 1 ∧ ξ 2 1 ∧ − ξ 2 ∧ ξ 1 ∧ ) ∨ [\xi_1,\xi_2] = (\xi_1^\wedge\xi21^\wedge-\xi_2^\wedge\xi_1^\wedge)^\vee [ξ1,ξ2]=(ξ1ξ21ξ2ξ1)

2. 指数与对数映射

2.1. S O ( 3 ) SO(3) SO(3) 上的指数映射

任意矩阵的指数映射可以写成一个泰勒展开,只有在收敛的情况下才有结果,其结果任然是矩阵:
e x p ( A ) = ∑ n = 0 ∞ 1 n ! A n exp(A) = \sum_{n=0}^\infty \frac{1}{n!}A^n exp(A)=n=0n!1An

同理,定义 s o ( 3 ) \frak{so}(3) so(3) 中任意元素 ϕ \phi ϕ 的指数映射:
e x p ( ϕ ∧ ) = ∑ n = 0 ∞ 1 n ! ( ϕ ∧ ) n exp(\phi^\wedge) = \sum_{n=0}^{\infty}\frac{1}{n!}(\phi^\wedge)^n exp(ϕ)=n=0n!1(ϕ)n

ϕ \phi ϕ 是一个三维向量, 它的模长和方向分别记做: θ , a \theta, \bm{a} θ,a( a \bm{a} a为长度为1的单位向量), a \bm{a} a有如下两条性质:
a ∧ a ∧ = a a T = I a ∧ a ∧ a ∧ = − a ∧ \bm{a}^\wedge\bm{a}^\wedge = \bm{a} \bm{a}^T = \bm{I} \newline \bm{a}^\wedge\bm{a}^\wedge\bm{a}^\wedge = -\bm{a}^\wedge aa=aaT=Iaaa=a

那么指数映射可以写成:
e x p ( ϕ ∧ ) = e x p ( θ a ∧ ) = . . . = cos ⁡ θ I + ( 1 − cos ⁡ θ ) a a T + sin ⁡ θ a ∧ = R exp(\phi^\wedge) = exp(\theta a^\wedge) = ... =\cos\theta \bm{I} +(1-\cos\theta)\bm{a}\bm{a}^T + \sin \theta \bm{a}^\wedge = \bm{R} exp(ϕ)=exp(θa)=...=cosθI+(1cosθ)aaT+sinθa=R

上式即为第三讲中的罗德里格斯公式

把旋转角度固定在 ± π \pm \pi ±π 之间, 那么李群和李代数元素之间一一对应.

2.2. S E ( 3 ) SE(3) SE(3)上的指数映射

其映射公式如下:
e x p ( ξ ∧ ) = [ ∑ n = 0 ∞ 1 n ! ( ϕ ∧ ) n ∑ n = 0 ∞ 1 ( n + 1 ) ! ( ϕ ∧ ) n ρ 0 T 1 ] ≜ [ R J ρ 0 T 1 ] = T exp(\xi^\wedge)= \begin{bmatrix} \sum_{n=0}^{\infty}\frac{1}{n!}(\phi^\wedge)^n & \sum_{n=0}^{\infty}\frac{1}{(n+1)!}(\phi^\wedge)^n\rho \\ \bm{0}^T & 1 \end{bmatrix} \triangleq \begin{bmatrix} \bm{R} & \bm{J\rho} \\ \bm{0}^T & 1 \end{bmatrix}= \bm{T} exp(ξ)=[n=0n!1(ϕ)n0Tn=0(n+1)!1(ϕ)nρ1][R0TJρ1]=T

李群和李代数之间的相互转化总结:

  1. 对于SO(3):

    李群: S O ( 3 ) , R ∈ R 3 × 3 , R R T = I , d e t ( R ) = 1 SO(3),\quad R \in \Bbb{R^{3\times 3}},\quad RR^T = \bm{I},\quad det(R)=1 SO(3),RR3×3,RRT=I,det(R)=1

    李代数: s o ( 3 ) , ϕ ∈ R 3 , ϕ ∧ = [ 0 − ϕ 3 ϕ 2 ϕ 3 0 − ϕ 1 − ϕ 2 ϕ 1 0 ] \frak{so}(3),\quad \phi \in R^3, \quad \phi^\wedge =\begin{bmatrix}0 & -\phi_3 & \phi_2 \\ \phi_3 & 0 & -\phi_1 \\ -\phi_2 & \phi_1 & 0 \end{bmatrix} {} so(3),ϕR3,ϕ=0ϕ3ϕ2ϕ30ϕ1ϕ2ϕ10

    李群–>李代数:
    θ = arccos ⁡ t r ( R ) − 1 2 , R a = a , ϕ = θ a \theta = \arccos \frac{tr(R)-1}{2}, \quad Ra = a, \quad \phi = \theta a θ=arccos2tr(R)1,Ra=a,ϕ=θa

    李代数–>李群:
    R = exp ⁡ ( θ a ∧ ) = cos ⁡ θ I + ( 1 − cos ⁡ θ ) a a T + sin ⁡ θ a ∧ , ϕ = θ a ( θ 为 ϕ 模 长 , a 为 ϕ 的 方 向 ) R = \exp(\theta a^\wedge) = \cos \theta \bm{I} +(1-\cos\theta)aa^T +\sin\theta a^\wedge, \quad \phi=\theta a \quad(\theta为\phi 模长, a 为\phi的方向) R=exp(θa)=cosθI+(1cosθ)aaT+sinθa,ϕ=θa(θϕ,aϕ)

  2. 对于SE(3):

    李群:
    S E ( 3 ) , T ∈ R 4 × 4 , T = [ R t 0 T 1 ] SE(3), \quad T \in \Bbb{R^{4 \times 4}}, \quad T = \begin{bmatrix} R & t \\ 0^T & 1 \end{bmatrix} {} SE(3),TR4×4,T=[R0Tt1]

    李代数:
    s e ( 3 ) , ξ = [ ρ θ ] ∈ R 6 , ξ ∧ = [ ϕ ∧ ρ 0 T 0 ] ∈ R 4 × 4 \frak{se}(3),\quad \xi = \begin{bmatrix} \rho \\ \theta \end{bmatrix}\in \Bbb{R^6}, \quad \xi^\wedge = \begin{bmatrix} \phi^\wedge & \rho \\ 0^T & 0 \end{bmatrix} \in \Bbb{R^{4 \times 4}} {} se(3),ξ=[ρθ]R6,ξ=[ϕ0Tρ0]R4×4

    李群–>李代数:

    θ = arccos ⁡ t r ( R ) − 1 2 , R a = a , t = J p , ϕ = θ a \theta = \arccos \frac{tr(R)-1}{2}, \quad Ra=a, \quad t=Jp, \quad \phi = \theta a θ=arccos2tr(R)1,Ra=a,t=Jp,ϕ=θa

    李代数–>李群:

    T = exp ⁡ ( ξ ∧ ) = [ exp ⁡ ( ϕ ∧ ) J p 0 T 1 ] , J = sin ⁡ θ θ I + ( 1 − sin ⁡ θ θ ) a a T + 1 − cos ⁡ θ θ a ∧ , ϕ = θ a T = \exp(\xi^\wedge)= \begin{bmatrix} \exp(\phi^\wedge) & Jp \\ 0^T & 1 \end{bmatrix}, \quad J = \frac{\sin \theta}{\theta}I + (1- \frac{\sin \theta}{\theta})aa^T + \frac {1-\cos\theta}{\theta}a^\wedge, \quad \phi =\theta a T=exp(ξ)=[exp(ϕ)0TJp1],J=θsinθI+(1θsinθ)aaT+θ1cosθa,ϕ=θa

3. 李代数的求导与扰动模型

3.1. BCH公式与近似计算

两个李代数指数映射的乘积为(BCH公式):

ln ⁡ ( exp ⁡ ( A ) exp ⁡ ( B ) ) = A + B + 1 2 [ A , B ] + 1 12 [ A , [ A , B ] ] − 1 12 [ B , [ A , B ] ] + ⋯ \ln(\exp(A)\exp(B))=A+B+\frac{1}{2}[A,B]+\frac{1}{12}[A,[A,B]]-\frac{1}{12}[B,[A,B]]+\cdots ln(exp(A)exp(B))=A+B+21[A,B]+121[A,[A,B]]121[B,[A,B]]+

其中[]为李括号

ϕ 1 或 ϕ 2 \phi_1 或 \phi_2 ϕ1ϕ2为小量时,小量二次以上的项都可以被忽略:
ln ⁡ ( exp ⁡ ( ϕ 1 ∧ ) exp ⁡ ( ϕ 2 ∧ ) ) ∨ ≈ { J l ( ϕ 2 ) − 1 ϕ 1 + ϕ 2 当 ϕ 1 为小量 J r ( ϕ 1 ) − 1 ϕ 2 + ϕ 1 当 ϕ 2 为小量 \ln(\exp(\phi_1^\wedge)\exp(\phi_2^\wedge))^\vee \approx \begin{cases} J_l(\phi_2)^{-1}\phi_1 +\phi_2 & \text{当$\phi_1$为小量} \\ J_r(\phi_1)^{-1}\phi_2 +\phi_1 & \text{当$\phi_2$为小量} \end{cases} ln(exp(ϕ1)exp(ϕ2)){Jl(ϕ2)1ϕ1+ϕ2Jr(ϕ1)1ϕ2+ϕ1ϕ1为小量ϕ2为小量

J l = J = sin ⁡ θ θ I + ( 1 − sin ⁡ θ θ ) a a T + 1 − cos ⁡ θ θ a ∧ J_l = J = \frac{\sin \theta}{\theta}I + (1- \frac{\sin \theta}{\theta})aa^T + \frac{1-\cos\theta}{\theta}a^\wedge Jl=J=θsinθI+(1θsinθ)aaT+θ1cosθa

J l J_l Jl求导:
J l − 1 = θ 2 cot ⁡ θ 2 I + ( 1 − θ 2 cot ⁡ θ 2 ) a a T − θ 2 a ∧ J_l^{-1} = \frac{\theta}{2}\cot\frac{\theta}{2}\bm{I}+\left( 1- \frac{\theta}{2}\cot\frac{\theta}{2} \right)aa^T - \frac{\theta}{2}a^\wedge Jl1=2θcot2θI+(12θcot2θ)aaT2θa

右乘雅可比 T r T_r Tr:
J r ( ϕ ) = J l ( − ϕ ) J_r(\phi) = J_l(-\phi) Jr(ϕ)=Jl(ϕ)

BCH的近似意义:
假设对于某个旋转R,对应李代数为 ϕ \phi ϕ.给它左乘一个微小的旋转,记做 Δ R \Delta R ΔR ,对应的李代数记做 Δ ϕ \Delta \phi Δϕ.那么在李群上得到的结果为 Δ R ⋅ R \Delta R \cdot R ΔRR,根据BCH近似, J l ( ϕ ) − 1 Δ ϕ + ϕ J_l(\phi)^{-1}\Delta\phi +\phi Jl(ϕ)1Δϕ+ϕ

李群上的乘法:

Δ R ⋅ R = exp ⁡ ( Δ ϕ ∧ ) exp ⁡ ( ϕ ∧ ) = exp ⁡ ( ( ϕ + J l − 1 ( ϕ ) Δ ϕ ) ∧ ) \Delta R \cdot R = \exp(\Delta \phi^\wedge)\exp(\phi^\wedge) =\exp((\phi+J_l^{-1}(\phi)\Delta \phi)^\wedge) ΔRR=exp(Δϕ)exp(ϕ)=exp((ϕ+Jl1(ϕ)Δϕ))

李代数上的加法:

exp ⁡ ( ( ϕ + Δ ϕ ) ∧ ) = exp ⁡ ( ( J l Δ ϕ ) ∧ ) exp ⁡ ( ϕ ∧ ) = exp ⁡ ( ϕ ∧ ) exp ⁡ ( ( J r Δ ϕ ) ∧ ) \exp((\phi +\Delta \phi)^\wedge)=\exp((J_l\Delta \phi)^\wedge)\exp(\phi^\wedge)=\exp(\phi^\wedge)\exp((J_r\Delta \phi)^\wedge) exp((ϕ+Δϕ))=exp((JlΔϕ))exp(ϕ)=exp(ϕ)exp((JrΔϕ))

3.2. SO(3)李代数上的求导

假设:

  • 位姿: T
  • 观察到一个世界坐标: p
  • 产生观测数据: z

z = T p + w , w 为 噪 声 z = Tp + w, \quad w为噪声 z=Tp+w,w

误差值e:
e = z − T p e = z-Tp e=zTp

假设有N组数据,使得整体误差最小:

min ⁡ T J ( T ) = ∑ i = 1 N ∣ ∣ z i − T p i ∣ ∣ 2 2 \min_TJ(T) = \sum_{i=1}^N||z_i-Tp_i||_2^2 TminJ(T)=i=1NziTpi22

对位姿进行求导,以为SO(3),SE(3)没有定义良好的加法,所以只能李代数解决求导问题:

分为两种思路:

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

3.3. 李代数求导

假设对空间点p进行旋转,得到: R p Rp Rp. 现在要计算旋转之后的点坐标相对与旋转的导数.记做:
∂ ( R p ) ∂ R \frac{\partial(Rp)}{\partial R} R(Rp)
由于SO(3)没有加法,固无法直接计算,所以转换为李代数:
∂ ( exp ⁡ ( ϕ ∧ ) p ) ∂ ϕ = δ ϕ → 0 − ( R p ) ∧ J l \frac{\partial(\exp(\phi^\wedge)p)}{\partial \phi} \quad \xlongequal[\delta \phi \to 0]{} \quad -(Rp)^\wedge J_l ϕ(exp(ϕ)p) δϕ0(Rp)Jl

即:

∂ ( R p ) ∂ R = ( − R p ) ∧ J l \frac{\partial(Rp)}{\partial R} = (-Rp)^\wedge J_l R(Rp)=(Rp)Jl

扰动模型将会提供更简单的计算方式.

3.4. 扰动模型

以左扰动为例:
∂ ( R p ) ∂ φ = lim ⁡ φ → 0 exp ⁡ ( φ ∧ ) exp ⁡ ( ϕ ∧ ) p − exp ⁡ ( ϕ ∧ ) p φ \frac{\partial(Rp)}{\partial \varphi} = \lim_{\varphi \to 0} \frac{\exp(\varphi^\wedge)\exp(\phi^\wedge)p-\exp(\phi^\wedge)p}{\varphi} φ(Rp)=φ0limφexp(φ)exp(ϕ)pexp(ϕ)p

即:
∂ ( R p ) ∂ φ = − ( R p ) ∧ \frac{\partial(Rp)}{\partial \varphi} = -(Rp)^\wedge φ(Rp)=(Rp)

相比之下,扰动模型更为实用.

3.5. SE(3)上的李代数求导

假设空间点p经过一次变换T(对应李代数为 ξ \xi ξ),得到 T p Tp Tp.给T左乘一个扰动 Δ T = exp ⁡ ( δ ξ ∧ ) \Delta T=\exp(\delta \xi^\wedge) ΔT=exp(δξ),设扰动项的李代数为 δ ξ = [ δ ρ , δ ϕ ] T \delta \xi = [\delta \rho,\delta \phi]^T δξ=[δρ,δϕ]T

∂ ( T p ) ∂ δ ξ = δ ξ → 0 [ I − ( R p + t ) ∧ 0 T 0 T ] ≜ ( T p ) ⊙ \frac{\partial(Tp)}{\partial \delta \xi} \xlongequal[\delta\xi \to 0]{} \begin{bmatrix} \bm{I} & -(Rp+t)^\wedge \\ 0^T & 0^T \end{bmatrix} \triangleq (Tp)^\odot δξ(Tp) δξ0[I0T(Rp+t)0T](Tp)

最后的结果定义成一个运算符 ⊙ \odot , 它把一个齐次坐标的空间点变成一个 4 × 6 4\times 6 4×6的矩阵.

4. 实践:Sophus

见code/第四讲/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值