Google Cartographer算法简析

发布时间:2017年07月27日 17:40:08    浏览数:3628次    来自:admin
本篇文章主要介绍了"cartographer算法简析",主要涉及到cartographer算法简析方面的内容,对于cartographer算法简析感兴趣的同学可以参考一下。

本篇文章主要介绍了"cartographer算法简析",主要涉及到cartographer算法简析方面的内容,对于cartographer算法简析感兴趣的同学可以参考一下。

测试了一下cartogragher ros工程之后, 感觉效果确实要比Hector 和 Gmapping 两种算法好。

测试条件如下:

              软件: Ubuntu 1404 + indigo + cartographer_ros + rplidar_ros

              硬件: intel i7 u系列 + rplidar

测试结果: 

           1》 鲁棒性好,尤其在没有IMU的辅助下,应对旋转速度高的突然转向,没有出现建图错误。由于采用了回环检测,可以消除积累误差, 建图效果比较稳定。

           2》速度比想象的要快,从原理上看, 运算量远要大于hector, gmapping,但得益于SPA和 BBS算法,速度很快。

           3》接口封装得很简洁, 给人的感觉是一款稳定,可靠,易用的软件包。

主要论文: 

          1.1 Real-Time Loop Closure in 2D LIDAR SLAM , ICRA 2016

          1.2  Efficient Sparse Pose Adjustment for 2D Mapping (SPA)

          1.3  Real-Time Correlative Scan Matching (BBS)


 1》Real-Time Loop Closure in 2D LIDAR SLAM

         文章的重点是第四部分和第五部分

         第四部分:local 2d slam, 主要是将 局部地图的 scan matching作为一个二次型优化问题,   由ceres slover 解决        

         第五部分: closing loop, 采用了 SPA(Sparse Pose Adjustment)进行后端loop closure。 这个过程中有一个很重要的过程是的scan和 submap的匹配,这里采用了BBS(Branch-and-bound scan matching), 它可大幅提高精度和速度。

         cartographer的整体架构是典型的 前端建图 (局部地图)+后端优化。 整个性能相比传统的 state-of-the-art的算法没有什么太大的提高, 而是更像一个实用性的产品,很好的平衡了性能和速度。

2》SPA(Sparse Pose Adjustment)的细节参考论文 1.2

3》BBS(Branch-and-bound scan matching)的细节参考论文 1.3

以下为其他网友的分析:

    cartographer是Google的实时室内建图项目,传感器安装在背包上面,可以生成分辨率为5cm的2D格网地图。

获得的每一帧laser scan数据,利用scan match在最佳估计位置处插入子图(submap)中,且scan matching只跟当前submap有关。在生成一个submap后,会进行一次局部的回环(loop close),利用分支定位和预先计算的网格,所有submap完成后,会进行全局的回环。

local 2D slam

A.scans

submap的构造是一个重复迭代配准scan和submap的过程。利用配准估算出pose对scan进行刚体变换,插入到submap中。

B.submaps

连续的scan用来构造submap,这里submap以概率格网的形式表现。每一个scan,在插入格网(submap)时,每一个grid有hits和miss两种情况。离scan终点最近的grid为hits,在scan原点和终点之间相交的grid为miss。之前未观察的grid分配一个概率,已观察的grid进行概率更新。


1.png

C.Ceres scan matching

把求pose的问题转换为一个求解非线性最小二乘问题,利用Ceres解决这个问题。

因为最小二乘问题是一个局部最优问题,故一个好的初值(pose初值)对求解有很大影响。因此IMU能被用来提供pose初值的旋转变量。在缺乏IMU的时候,可以用提高scan match频率或匹配精度。

closing loops

利用SPA方法优化scan和submap的pose。存储插入scan位置处对应的pose用来做回环检测。此外,当submap不在变化时,对应pose的scan和submap也被用来做回环。scan match中找到的good match其对应的pose将被用来做优化问题。

A.Optimization problem

回环优化问题构造成非线性最小二乘问题,来求解。

2.png

公式中分别为submap的pose,scan的pose,对应submap和scan的pose的相关性,及相关协方差矩阵。详见原文。

B.Branch-and bround scan matching

======  没有看懂  =======

缺点:

优点:不采用粒子滤波(PF),从而低廉设备也能获得较好的性能表现;

参考资料:

  • An evaluation of 2D SLAM techniques available in robot operating system -2013

  • Improved Techniques for Grid mapping with Rao-Blackwellized Particle Filters -2007

  • Real-Time Loop Closure in 2D LIDAR SLAM -2016



标签: slamcartographer

评论共0条评论

登录后再评论!

全部评论

目前没有评论