视觉SLAM十四讲ch4笔记——李群与李代数

news2024/11/15 7:56:03

文章目录

视觉SLAM十四讲ch4——李群与李代数

4.1 李群李代数基础

什么是群?

  • (Group)是一种集合加上一种运算的代数结构
  • 记集合为 A A A, 运算为 ⋅ \cdot ,那么运算满足以下性质时,称 ( A , ⋅ ) (A, \cdot) (A,)成群。
  • 封结幺逆的运算 (凤姐咬你)

在这里插入图片描述

举例:

A A A为整数时,运算为 + + + A , ⋅ A, \cdot A,成群

  • 可以验证:

    • 旋转矩阵集合和矩阵乘法 构成群
    • 同样变换矩阵和矩阵乘法也构成群
    • 因此,称它们为旋转矩阵群 和 变换矩阵群
  • 其他常见群

    • 一般线性群 G L ( n ) GL(n) GL(n):指 n × n n \times n n×n的可逆矩阵,它们对矩阵乘法成群
    • 特殊正交群 S O ( n ) SO(n) SO(n):也就是所谓的旋转矩阵群,其中 S O ( 2 ) SO(2) SO(2) S O ( 3 ) SO(3) SO(3)最为常见
    • 特殊欧式群 S E ( n ) SE(n) SE(n):也就是前面提到的 n n n维欧式变换,如 S E ( 2 ) SE(2) SE(2) S E ( 3 ) SE(3) SE(3)
  • 群结构保证了在群上的运算具有良好的性质。

  • 群论是研究群的各种结构和性质的理论,具体见各种抽象代数或近世代数教材

  • 李群(Lie Group)

    • 具有连续(光滑)性质的群
    • 既是群,也是流形。
    • 直观上看,一个刚体能够连续地在空间中运动,故 S O ( 3 ) SO(3) SO(3) S E ( 3 ) SE(3) SE(3)都是李群
    • 但是, S O ( 3 ) SO(3) SO(3) S E ( 3 ) SE(3) SE(3)只有定义良好的乘法,没有加法,所以难以进行取极限、求导等操作。但是在位姿估计领域需要对其求导取极限,以寻找最优解,因此这也就是位姿估计的主要研究难点之一。
  • 李代数:与李群对应的一种结构,位于向量空间

    • 通常记作小写的 s o ( 3 ) so(3) so(3) s e ( 3 ) se(3) se(3)
    • 事实上是李群单位元处的正切空间。
  • 李代数的引出:

    • 任意旋转矩阵 R \boldsymbol{R} R,满足
      R R T = I \boldsymbol{RR}^{\text{T}} = \boldsymbol{I} RRT=I

    • 考虑 R \boldsymbol{R} R 随时间的变化,有:

    R ( t ) R ( t ) T = I (1) \boldsymbol{R}(t)\boldsymbol{R}(t)^{\text{T}} = \boldsymbol{I} \tag{1} R(t)R(t)T=I(1)

    • 两侧对时间求导:

    R ( t ) ˙ R ( t ) T + R ( t ) R ( t ) T ˙ = 0 (2) \dot{\boldsymbol{R}(t)}\boldsymbol{R}(t)^{\text{T}} + \boldsymbol{R}(t)\dot{\boldsymbol{R}(t)^{\text{T}}} = 0 \tag{2} R(t)˙R(t)T+R(t)R(t)T˙=0(2)

    • 整理得:

    R ( t ) ˙ R ( t ) T = − ( R ( t ) ˙ R ( t ) T ) T (3) \dot{\boldsymbol{R}(t)}\boldsymbol{R}(t)^{\text{T}} = -\left ( \dot{\boldsymbol{R}(t)}\boldsymbol{R}(t)^{\text{T}}\right)^{\text{T}} \tag{3} R(t)˙R(t)T=(R(t)˙R(t)T)T(3)

    • 可以看出来,上式为一个反对称矩阵,注意 ϕ ( t ) \phi(t) ϕ(t)为一个向量,记:

    R ( t ) ˙ R ( t ) T = ϕ ( t ) ∧ (4) \dot{\boldsymbol{R}(t)}\boldsymbol{R}(t)^{\text{T}} = \phi(t)^{\wedge} \tag{4} R(t)˙R(t)T=ϕ(t)(4)

    • 这里需要注意 反对称符号的引入:即一个向量 a a a的上尖为一个反对称矩阵 A A A, 反对称矩阵 A A A的下尖为向量 a a a

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

    • 两侧同时右乘 R ( t ) \boldsymbol{R}(t) R(t),得
      R ( t ) ˙ = ϕ ∧ R ( t ) (5) \dot{\boldsymbol{R}(t)} = \phi^{\wedge} \boldsymbol{R}(t) \tag{5} R(t)˙=ϕR(t)(5)

    • 可以看到,对 R \boldsymbol{R} R 求导后,左侧多出一个 ϕ ( t ) ∧ \phi(t)^{\wedge} ϕ(t)

    • 考虑简单的情况: t 0 = 0 , R ( 0 ) = I t_0 = 0, \boldsymbol{R}(0) = \boldsymbol{I} t0=0,R(0)=I,即上式微分方程从 0 0 0时刻开始,对 t 0 t_0 t0开始,进行一阶泰勒展开,得到:
      R ( t ) ≈ R ( t 0 ) + R ( t 0 ) ˙ ( t − t 0 ) = I + ϕ ( t 0 ) ∧ ( t ) (6) \begin{aligned} \boldsymbol{R}(t) &\approx \boldsymbol{R}(t_0) + \dot{\boldsymbol{R}(t_0)}(t-t_0) \\ &= \boldsymbol{I} + \phi(t_0)^{\wedge}(t) \end{aligned} \tag{6} R(t)R(t0)+R(t0)˙(tt0)=I+ϕ(t0)(t)(6)

    • 可见 ϕ \phi ϕ 反映了一阶导数性质,它位于单位圆附近的正切空间(tangent space)上。

      • t 0 t_0 t0附近,假设 ϕ \phi ϕ 不变,则根据公式(5),有微分方程:
        R ( t ) ˙ = ϕ ( t 0 ) ∧ R ( t ) = ϕ 0 ∧ R ( t ) (7) \dot{\boldsymbol{R}(t)} = \phi(t_0)^{\wedge}\boldsymbol{R}(t)=\phi_0^{\wedge} \boldsymbol{R}(t) \tag{7} R(t)˙=ϕ(t0)R(t)=ϕ0R(t)(7)

      • 已知初始情况: R ( 0 ) = I \boldsymbol{R}(0) = \boldsymbol{I} R(0)=I,解之,得:
        R ( t ) = exp ⁡ ( ϕ 0 ∧ t ) (8) \boldsymbol{R}(t) = \exp(\phi_0^{\wedge}t) \tag{8} R(t)=exp(ϕ0t)(8)

      • 公式(8)说明,对任意 t t t,都可以找到一个 R \boldsymbol{R} R和一个 ϕ \phi ϕ的对应关系:

        • 该关系为指数映射(Exponential Map)
        • 这里的 ϕ \phi ϕ称为 S O ( 3 ) SO(3) SO(3) 对应的李代数: s o ( 3 ) so(3) so(3)
    • 问题:

      • s o ( 3 ) so(3) so(3) 的定义和性质?
      • 指数映射如何求?
  • 李代数(Lie Algebra)

    • 每个李群都有与之对应的李代数。

    • 李代数描述了李群单位源数的正切空间性质

    • 李代数需要满足的性质:封自双雅(疯子爽鸭)

在这里插入图片描述

在这里插入图片描述

  • 最后得到一个似曾相识的结果:

exp ⁡ ( θ a ∧ ) = cos ⁡ θ I + ( 1 − cos ⁡ θ ) a a T + sin ⁡ θ a ∧ (14) \exp(\theta a^{\wedge}) = \cos \theta \boldsymbol{I} + (1-\cos\theta)aa^{\text{T}} + \sin \theta a^{\wedge} \tag{14} exp(θa)=cosθI+(1cosθ)aaT+sinθa(14)

  • 公式(14)即为:罗德里格斯公式,罗德里格斯公式能够将旋转向量转换为旋转矩阵,这说明李代数到李群的转化为罗德里格斯公式
  • 这说明 s o ( 3 ) so(3) so(3) 的物理意义就是旋转向量
  • 反之,给定旋转矩阵时,亦能求李代数(对数运算):

ϕ = ln ⁡ ( R ) ∨ = ( ∑ n = 0 ∞ ( − 1 ) n n + 1 ( R − I ) n + 1 ) ∨ (15) \phi = \ln (\boldsymbol{R})^{\vee}=\left ( \sum_{n=0}^{\infty } \frac{(-1)^n}{n+1}(\boldsymbol{R} - \boldsymbol{I})^{n + 1} \right)^{\vee} \tag{15} ϕ=ln(R)=(n=0n+1(1)n(RI)n+1)(15)

在这里插入图片描述

4.3 李代数求导与扰动模型

4.3.1 引入李代数的原因

  • 在实际应用当中,我们经常需要对位姿进行估计
  • 李群元素只有乘法,没有加法,无从定义导数

R 1 + R 2 ∉ S O ( 3 ) \boldsymbol{R}_1 + \boldsymbol{R}_2 \notin SO(3) R1+R2/SO(3)

4.3.2 李代数求导方法

  • 那么如何对李群进行求导呢?

  • 直观的想法:

    • 能否利用李代数上的加法,定义李群元素的导数?
    • 能否使用指数映射和对数映射完成变换关系
  • 基本问题:当在李代数中做加法时,是否等价于在李群上做乘法?
    exp ⁡ ( ϕ 1 ∧ ) exp ⁡ ( ϕ 2 ∧ ) ? = exp ⁡ ( ( ϕ 1 + ϕ 2 ) ∧ ) (19) \exp(\phi_1^{\wedge}) \exp(\phi_2^{\wedge}) ?= \exp((\phi_1 + \phi_2)^{\wedge}) \tag{19} exp(ϕ1)exp(ϕ2)?=exp((ϕ1+ϕ2))(19)

    • 在使用标量的情况下,显然,公式(19)是成立的

    • 但这里的 ϕ ∧ \phi^{\wedge} ϕ矩阵!显然公式(19)不成立的

    • 完整形式的BCH(Backer-Campbell-Hausdorff)公式给出:

      • 完整形式非常复杂,需要自行百度

      • 部分展开式:(方括号为李括号)
        ln ⁡ ( exp ⁡ ( A ) exp ⁡ ( B ) ) = A + B + 1 2 [ A , B ] + 1 12 [ A , [ A , B ] ] − 1 12 [ B , [ A , B ] ] + ⋯ (20) \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{20} ln(exp(A)exp(B))=A+B+21[A,B]+121[A,[A,B]]121[B,[A,B]]+(20)

      • 特别的是,当 A \boldsymbol{A} A或者 B \boldsymbol{B} B特别小时,可以只保留一阶项

      • 即:当 A \boldsymbol{A} A或者 B \boldsymbol{B} B 其中一个量为小量时,忽略其高阶项,BCH具有线性近似形式:
        ln ⁡ ( exp ⁡ ( ϕ 1 ∧ ) exp ⁡ ( ϕ 2 ∧ ) ) ∨ ≈ { J l ( ϕ 2 ) − 1 ϕ 1 + ϕ 2  if  ϕ 1  is small, J r ( ϕ 1 ) − 1 ϕ 2 + ϕ 1  if  ϕ 2  is small. (21) \ln(\exp(\phi_1^{\wedge }) \exp(\phi_2^{\wedge}))^{\vee} \approx \begin{cases} \boldsymbol{J}_l(\phi_2)^{-1}\phi_1 + \phi_2 & \text{ if } \phi_1 \text{ is small,} \\ \boldsymbol{J}_r(\phi_1)^{-1}\phi_2 + \phi_1 & \text{ if } \phi_2 \text{ is small.} \end{cases} \tag{21} ln(exp(ϕ1)exp(ϕ2)){Jl(ϕ2)1ϕ1+ϕ2Jr(ϕ1)1ϕ2+ϕ1 if ϕ1 is small, if ϕ2 is small.(21)

      • 其中:

        • 左乘雅可比矩阵:

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

        J l − 1 = θ 2 cot ⁡ θ 2 I + ( 1 − θ 2 cot ⁡ θ 2 ) a a T − θ 2 a ∧ \boldsymbol{J}_l^{-1} = \frac{\theta }{2}\cot \frac{\theta }{2}\boldsymbol{I} + \left (1 - \frac{\theta }{2} \cot\frac{\theta }{2} \right )aa^{\text{T}} - \frac{\theta}{2}a^{\wedge } Jl1=2θcot2θI+(12θcot2θ)aaT2θa

        • 右乘雅可比矩阵:

        J r ( ϕ ) = J l ( − ϕ ) \boldsymbol{J}_r(\phi ) =\boldsymbol{J}_l(-\phi ) Jr(ϕ)=Jl(ϕ)

      • 后续以左乘为例展开

      • 以左乘为例,直观的写法:

        • 在李群行左乘小量时,李代数上的加法相差左雅克比矩阵的逆
          exp ⁡ ( Δ ϕ ∧ ) exp ⁡ ( ϕ ∧ ) = exp ⁡ ( ( ϕ + J l − 1 ( ϕ ) Δ ϕ ) ∧ ) (22) \exp(\Delta \phi^{\wedge }) \exp (\phi ^{\wedge }) = \exp\left ( ( \phi + \boldsymbol{J}_l^{-1}(\phi) \Delta\phi )^{\wedge } \right ) \tag{22} exp(Δϕ)exp(ϕ)=exp((ϕ+Jl1(ϕ)Δϕ))(22)

        • 反之:
          exp ⁡ ( ( ϕ + Δ ϕ ∧ ) ∧ ) = exp ⁡ ( ( J l Δ ϕ ) ∧ ) exp ⁡ ( ϕ ∧ ) = exp ⁡ ( ϕ ∧ ) exp ⁡ ( ( J r Δ ϕ ) ∧ ) (23) \exp\left ( (\phi + \Delta \phi^{\wedge })^{\wedge } \right ) = \exp \left ((\boldsymbol{J}_l \Delta \phi)^{\wedge } \right ) \exp (\phi ^{\wedge }) = \exp (\phi ^{\wedge }) \exp\left ( ( \boldsymbol{J}_r\Delta\phi )^{\wedge } \right ) \tag{23} exp((ϕ+Δϕ))=exp((JlΔϕ))exp(ϕ)=exp(ϕ)exp((JrΔϕ))(23)

          • 李代数上进行小量加法时,相当于李群上左(右)乘一个带左(右)雅可比的量
        • s e ( 3 ) se(3) se(3) 上形式更复杂:
          exp ⁡ ( Δ ξ ∧ ) exp ⁡ ( ξ ∧ ) ≈ exp ⁡ ( ( J l − 1 Δ ξ + ξ ) ∧ ) (24 a) \exp (\Delta \xi ^{\wedge }) \exp (\xi ^{\wedge }) \approx \exp \left((\mathcal{J}_l^{-1} \Delta\xi + \xi)^{\wedge} \right ) \tag{24 a} exp(Δξ)exp(ξ)exp((Jl1Δξ+ξ))(24 a)

          exp ⁡ ( ξ ∧ ) exp ⁡ ( Δ ξ ∧ ) ≈ exp ⁡ ( ( J r − 1 Δ ξ + ξ ) ∧ ) (24 b) \exp (\xi ^{\wedge }) \exp (\Delta \xi ^{\wedge }) \approx \exp \left((\mathcal{J}_r^{-1} \Delta\xi + \xi)^{\wedge} \right ) \tag{24 b} exp(ξ)exp(Δξ)exp((Jr1Δξ+ξ))(24 b)

    • 通过BCH线性近似,可以定义李代数上的导数

    • 考虑一个基本问题:旋转后的点 p p p关于旋转的导数:
      不严谨地记为:  ∂ R p ∂ R \text{不严谨地记为: }\frac{\partial \boldsymbol{R}p}{\partial \boldsymbol{R}} 不严谨地记为: RRp

    • 由于 R \boldsymbol{R} R 没有加法,导数无从定义

    • 存在两种解决方法:

      • R \boldsymbol{R} R 对应的李代数加上小量,求相对于小量的变化率(导数模型
      • R \boldsymbol{R} R 左乘或者右乘一个小量,求相对于小量的李代数的变化率(扰动模型
    • 导数模型

      • 按照定义可以推出:

      ∂ ( 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 (25) \begin{aligned} \frac{\partial (\exp (\phi^\wedge) p)}{\partial \phi} &= \lim_{\delta \phi \to 0} \frac{\exp \left ((\phi + \delta \phi )^\wedge \right )p - \exp(\phi ^\wedge )p}{\delta \phi } \\ &= \lim_{\delta \phi \to 0} \frac{\exp \left ((\boldsymbol{J}_l \delta \phi )^\wedge \right) \exp (\phi ^\wedge )p - \exp(\phi ^\wedge )p}{\delta \phi }\\ &\approx \lim_{\delta \phi \to 0} \frac{\left ( \boldsymbol{I} + (\boldsymbol{J}_l \delta \phi )^\wedge \right ) \exp (\phi ^\wedge )p - \exp(\phi ^\wedge )p}{\delta \phi } \\ &= \lim_{\delta \phi \to 0} \frac{(\boldsymbol{J}_l \delta \phi )^\wedge \exp(\phi ^\wedge )p}{\delta \phi } \\ &= \lim_{\delta \phi \to 0} \frac{- (\exp(\phi ^\wedge )p)^\wedge \boldsymbol{J}_l \delta \phi }{\delta \phi } \\ &= -(\boldsymbol{R}p)^\wedge \boldsymbol{J}_l \end{aligned} \tag{25} ϕ(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(25)

      • 结果中含有左乘雅可比矩阵,比较复杂,因此可以尝试消除
    • 扰动模型

      • 左乘小量,令其李代数为零:( S O ( 3 ) SO(3) SO(3) 上的扰动模型)

      ∂ ( R p ) ∂ φ = lim ⁡ φ → 0 exp ⁡ ( φ ∧ ) exp ⁡ ( ϕ ∧ ) p − exp ⁡ ( ϕ ∧ ) p φ ≈ lim ⁡ φ → 0 ( 1 + φ ∧ ) exp ⁡ ( ϕ ∧ ) p − exp ⁡ ( ϕ ∧ ) p φ = lim ⁡ φ → 0 φ ∧ R p φ = lim ⁡ φ → 0 − ( R p ) ∧ φ φ = − ( R p ) ∧ (26) \begin{aligned} \frac{\partial(\boldsymbol{R}p)}{\partial \varphi} &= \lim_{\varphi \to 0} \frac{\exp(\varphi^\wedge) \exp (\phi ^\wedge)p - \exp (\phi ^\wedge)p}{\varphi} \\ &\approx \lim_{\varphi \to 0} \frac{(1 + \varphi^\wedge) \exp (\phi ^\wedge )p - \exp (\phi ^\wedge )p}{\varphi } \\ &= \lim_{\varphi \to 0} \frac{\varphi^\wedge \boldsymbol{R}p}{ \varphi} \\ &= \lim_{\varphi \to 0} \frac{-(\boldsymbol{R}p) ^\wedge \varphi}{ \varphi} \\ &= -(\boldsymbol{R}p) ^\wedge \end{aligned} \tag{26} φ(Rp)=φ0limφexp(φ)exp(ϕ)pexp(ϕ)pφ0limφ(1+φ)exp(ϕ)pexp(ϕ)p=φ0limφφRp=φ0limφ(Rp)φ=(Rp)(26)

      • 可以看出,相对于导数模型,扰动模型的最终结果更简洁,也更为实用
    • S E ( 3 ) SE(3) SE(3) 上的扰动模型:
      ∂ T p ∂ δ ξ = lim ⁡ δ ξ → 0 exp ⁡ ( δ ξ ∧ ) exp ⁡ ( ξ ∧ ) p − exp ⁡ ( ξ ∧ ) 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 ] δ ξ = [ I − ( R p + t ) ∧ 0 T 0 T ] ≜ ( T p ) ⊙ (27) \begin{aligned} \frac{\partial \boldsymbol{T}p}{\partial \delta \boldsymbol{\xi}} &= \lim_{\delta \boldsymbol{\xi} \to 0} \frac{\exp (\delta \boldsymbol{\xi}^\wedge )\exp (\boldsymbol{\xi}^\wedge )p - \exp (\boldsymbol{\xi }^\wedge )p}{\delta \boldsymbol{\xi }} \\ &\approx \lim_{\delta \boldsymbol{\xi} \to 0} \frac{(\boldsymbol{I} + \delta \boldsymbol{\xi}^\wedge) \exp (\boldsymbol{\xi}^\wedge )p - \exp (\boldsymbol{\xi }^\wedge )p}{\delta \boldsymbol{\xi }} \\ &= \lim_{\delta \boldsymbol{\xi} \to 0} \frac{\delta \boldsymbol{\xi}^\wedge \exp (\boldsymbol{\xi}^\wedge )p}{\delta \boldsymbol{\xi }} \\ &= \lim_{\delta \boldsymbol{\xi} \to 0} \frac{\begin{bmatrix} \delta \phi ^\wedge & \delta \rho \\ 0^\text{T} & 0 \end{bmatrix} \begin{bmatrix} \boldsymbol{R}p+t \\ 1 \end{bmatrix}}{\delta \boldsymbol{\xi }} \\ &= \lim_{\delta \boldsymbol{\xi} \to 0} \frac{\begin{bmatrix} \delta \phi ^\wedge(\boldsymbol{R}p+t) + \delta \rho \\ 0 \end{bmatrix}}{\delta \boldsymbol{\xi }} \\ &= \begin{bmatrix} \boldsymbol{I} & -(\boldsymbol{R}p+t)^\wedge \\ \boldsymbol{0}^\text{T} & \boldsymbol{0}^\text{T} \end{bmatrix} \\ &\triangleq (\boldsymbol{T}p)^{\odot } \end{aligned} \tag{27} δξTp=δξ0limδξexp(δξ)exp(ξ)pexp(ξ)pδξ0limδξ(I+δξ)exp(ξ)pexp(ξ)p=δξ0limδξδξexp(ξ)p=δξ0limδξ[δϕ0Tδρ0][Rp+t1]=δξ0limδξ[δϕ(Rp+t)+δρ0]=[I0T(Rp+t)0T](Tp)(27)

4.3.3 小结

  • 利用BCH线性近似,可以推导 s o ( 3 ) so(3) so(3) s e ( 3 ) se(3) se(3) 上的导数模型和扰动模型
  • 通常情况下,扰动模型形式更为简单,所以更常用一些

4.4 演示:SOPHUS库

GitHub链接:https://github.com/gaoxiang12/slambook

本节对应的是 ch4

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/57423.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

AOP工作流程

由于AOP是基于Spring容器管理的bean做的增强,所以整个工作过程需要从Spring加载bean说起: 流程1:Spring容器启动 容器启动就需要去加载bean,哪些类需要被加载呢? 需要被增强的类,如:BookServiceImpl 通知类,如:MyAdvice 注意此时bean对象还没…

【POJ No. 3468】 简单的整数问题 A Simple Problem with Integers

【POJ No. 3468】 简单的整数问题 A Simple Problem with Integers 北大OJ 题目地址 其实这道题之前也已经 做过了 https://blog.csdn.net/weixin_44226181/article/details/128112081 上次就 直接用的区间更新 和区间查询。这次 我们使用 分块方法实现一次。 【题意】 有N…

IDEA搭建Android开发环境及创建Helloword项目并运行

IDEA开发Android环境搭建 安装jdk JDK版本 :jdk-8u161-windows-x64.exe 链接:https://pan.baidu.com/s/1leC6nilGeCEYsD99Rlt5hQ 提取码:0epq 配置环境变量 配置成功会出现如下所示 安装sdk 安装完成后,SDK的目录如下&#…

数据分享|R语言分析上海空气质量指数数据:kmean聚类、层次聚类、时间序列分析:arima模型、指数平滑法...

全文链接:http://tecdat.cn/?p30131最近我们被客户要求撰写关于上海空气质量指数的研究报告。本文向大家介绍R语言对上海PM2.5等空气质量数据(查看文末了解数据免费获取方式)间的相关分析和预测分析,主要内容包括其使用实例&…

[附源码]计算机毕业设计学习互助辅助系统Springboot程序

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

菜谱APP源码和设计报告

《移动互联开发》 课程作业 学 院: 班 级: 学 号: 姓 名: 日 期: 设计要求(提交文档时需删除): 1.本课程设计作为《Android 程序设计》的期末考查内容。 2.任务安排: &…

WAVE SUMMIT+2022飞桨平台新升级 全面支撑大模型研发与产业化

11月30日,由深度学习技术及应用国家工程研究中心主办的WAVE SUMMIT 2022深度学习开发者峰会如期举行。峰会上,百度AI技术生态总经理马艳军发布了飞桨深度学习平台的最新技术和生态进展,全新发布飞桨开源框架2.4版本,带来业界首个端…

在Linux中部署运维监控系统WGCLOUD

在公网IP为x.x.x.x,安装CentOS8或Alibaba Cloud Linux 3.2104 LTS 64位系统的服务器(服务端)上,先安装jdk8,然后安装数据库mariadb-10.5,最后进行server安装。 在需要监控的安装CentOS8或Alibaba Cloud L…

基于多时间尺度滚动优化的多能源微网双层调度研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

【Redis】redis的理解与使用、springboot中redis的五种数据类型的相关存取、StringRedisTemplate

文章目录Redis简介:redis的安装与使用:1.启动方式:2.修改密码3. Redis可视化软件4.redis的使用5.有关redis的存储问题springBoot项目使用redis▶jar包:▶示例:1.使用opsForValue操作字符串2.使用opsForList操作List3.使…

智能使得宇宙趋向稳定吗?

——评《智能简史》 最近读完了加拿大工程院院士于非的新著《智能简史》,书中的主要观点是“智能的作用是推动宇宙趋向稳定”。从这个观点出发,万物都有智能,因为它们遵循的规律都具有这个作用。即使是人们认为“无智能”的物理对象&#xff…

vue纯手写思维导图,拒绝插件(cv即用)

vue纯手写思维导图,拒绝插件(cv即用) 已完成功能点:折叠、放大、缩小、移动 后续增加功能点:添加、删除 先看结果: 有这么个需求,按照层级关系,把表格放在思维导图上,我第一时间想到用插件&am…

Android开发JetPack-Databinding组件

DataBinding介绍Android开发JetPack-Databinding组件1. 什么是databinding(1)简介(2)意义2. databinding基本使用(1)启用databinding(2)定义一个布局(3)创建一…

Redis02:企业架构介绍以及redis介绍

企业架构介绍以及redis介绍NoSql概述单机Mysql的演进当今企业架构分析NoSql概述 单机Mysql的演进 1、单机Mysql的年代 90年代一个基本的网站访问量一般不会太大,单个数据库完全足够!那个时候更多的去使用静态html,服务器没有太大的压力。这…

HCIP实验3-1:IBGP与EBGP

实验 3-1 IBGP与EBGP 学习目的 掌握区域内部BGP的配置方法掌握多区域BGP的配置方法观察BGP的邻居表和数据库掌握BGP更新源的配置方法掌握EBGP多跳的配置方法观察IBGP和EBGP中路由的下一跳的变化掌握IBGP中下一跳的配置掌握BGP的Network命令的配置方法 拓扑图 场景 你是公司…

open label file.(This can be normal only if you use MScoco)

E:\yolov4-rubish\darknet\our_data\ImagesAug 把标签的txt文件和Jpg文件放在同一个文件夹

Kafka 入门知识,看这一篇就够了(上)

目录01 初识 Kafka02 topic & partition03 Kafka 分布式最近在学习 Kafka(别问,问就是公司在用 ),将学习过程中的笔记整理出来分享给大家,就当是入入门 01 初识 Kafka Kafka 最早是由 LinkedIn 公司开发的&#x…

python中numpy数组形状和计算

1. numpy数组形状 数组可以理解为是矩阵,所以会涉及几行几列 import numpy as np import randomt1 np.array([[1,2,3],[4,5,6]]) print(t1) print(t1.shape)在这段逻辑里,t1是个数组,输出结果后 (2, 3)表示的就是这个数组是一个2行3列的矩…

计算机系统基础实验——数据的机器级表示(计算浮点数 f 的绝对值[f])

题目要求: 这个函数计算浮点数f的绝对值[f]。如果f是NaN,函数应该简单的返回f。 Unsigned float_abs (unsiged f) { /**************/ return/*******/; } 先分析题目,题目有两个要求: 1.判断f是否是NAN类型,如果是返…

文件管理,给文件名称插入纯数字详细步骤

在日常办公过程中,我们经常会需要对文件名称进行重命名,如何给文件插入纯数字呢?一两个文件还好可以自定义重命名,面对大量文件的时候,怎么在文件名称中插入纯数字呢?一起来看看吧! 第一步&…