激光的前端配准算法(帧间匹配算法)

  • 前端配准在视觉内叫做Tracking或者帧间匹配,对激光SLAM是有非常大的影响的
  • 帧间匹配不一定说的是前后两帧进行匹配,也可以是任意帧之间进匹配
  • 是一个Map—>Scan的过程,一个Scan和一个Map去匹配的过程
  • 常用的方法有下面四种
    • ICP匹配方法(对上节ICP算法的证明)
    • PL-ICP匹配方法(与ICP算法相似,只是说误差是之间的)
    • 基于优化的匹配方法(Hector和cartographer两种算法是基于优化的方法)
    • 相关匹配方法及分支定界加速(CSM算法)

ICP匹配方法

  • ICP方法的目的:就是两帧3D点云的匹配,求解一个R和t使得下列式(误差)最小。

  • 已知对应点的求解方法

    就是先求一个平均点,每一个点云都求一个平均点,然后对任何一个点云进行平移操作,把它移到以P点为圆心的地方,然后构造一个矩阵W,然后对这个矩阵进行SVD分解,然后得到ICP的解R与t

    下面对ICP的解 (R与t)进行证明

    对加号左边与加号右边分别取极小值,所以加号右边=0时,即可得t=ux-Rup

    现在来求R,现在加号左边是这样的式子

    我们知道(红色字)

    所以可以将加号左边写成

    把两式展开

    R的转置* R是=I 一个常数,a²那项也是常数,所以最后留下

    所以最后就是

​ 所以要求的就是上面这个式子的最小值,也就是求下面式子的最大值,然后得R


  • 未知对应点的求解方法

    上节已经推理

ICP实现过程

也就是求一个R和t,使得两个点云间的距离最短(下式(误差)最小),求解下式

t和R的求解过程忽略,得到R和t的解

然后就可以计算得两个点云间的最短距离(使得(误差)最小)

PL-ICP方法(已有开源代码—indigo下的CSM)

  • 上节ICP其实别名是PP-ICP,Point-to-Point ,点到点距离的ICP匹配方法

  • PL-ICP是Point-to-Line,点到线距离的ICP匹配方法

  • 他的算法流程(和PP-ICP没什么区别,就是误差形式不同,到后面也是求R和t)

基于优化的匹配方法(基于梯度,HectorSLAM是纯梯度优化方法、Cartogerepher用的是CSM+梯度优化)