SLAM学习历程-Gmappinghector和cartography的优缺点

Posted 殇堼

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SLAM学习历程-Gmappinghector和cartography的优缺点相关的知识,希望对你有一定的参考价值。

Gmapping

Gmapping是经由Burgard等人在2007年时提出,同年发布在ROS中的SLAM软件包,是目前使用最广泛的SLAM软件包。
Gmapping应用改进的自适应RBPF算法来进行实时定位与建图,可应用于室内和室外环境。一种通过采用粒子滤波的激光SLAM算法,Gmapping在RBPF算法上做了两个主要的改进:改进提议分布和选择性重采样。
Gmapping是一个开源的建图工具,它是基于slam_ gmapping的 ROS封装开源包。基于SLAM进行地图构建,定位和建图同时进行难度较大,定位和建图相当于条件概率中的两个变量,可以通过先求解其中一个变量,将其作为己知量来求解另一个变量。这样就可以把定位和建图两个步骤分开执行。在Gmapping中,通过Rbpf的引入,有效地把定位和建图进行分离,先采用RBpf粒子滤波算法定位,得到当前机器人的最优位姿,然后,根据卡尔曼滤波进行建图。在RBpf算法中,每一个粒子相当于一幅地图,由于粒子基数大和不断地被重采样,导致计算量和内存消耗的增加。所以,Gmapping 基于RBpf,对提议分布进行了优化;设定阀值,对需要执行重采样的粒子进行选择,这样降低了粒子数目和有效抑制了粒子的退化。基于Gmapping的地图构建思想流程如图所示。

在这里插入图片描述

优点:
1.可以实时构建室内地图,在构建小场景地图所需的计算量较小且精度较高;
2.相比Hector SLAM对激光雷达频率要求低、鲁棒性高(Hector 在机器人快速转向时很容易发生错误匹配,建出的地图发生错位,原因主要是优化算法容易陷入局部最小值);
3.而相比Cartographer在构建小场景地图时,Gmapping不需要太多的粒子并且没有回环检测,因此计算量小于Cartographer而精度并没有差太多。
4.在长廊及低特征场景中建图效果好;在地况较为平整时采用Gmapping方法较多。

缺点:
1.依赖里程计(odometry),无法适用无人机及地面小车不平坦区
2.严重依赖里程计,无法适应无人机及地面不平坦的区域,无回环(激光SLAM很难做回环检测),大的场景,粒子较多的情况下,特别消耗资源。
3.随着场景增大所需的粒子增加,因为每个粒子都携带一幅地图,因此在构建大地图时所需内存和计算量都会增加。因此不适合构建大场景地图。
4.没有回环检测,因此在回环闭合时可能会造成地图错位,虽然增加粒子数目可以使地图闭合但是以增加计算量和内存为代价。
所以Gmapping不能像cartographer那样构建大的地图。

Hector_ SLAM算法

Hector_SLAM提出的初衷是为了解决非平坦地区,非结构化环境下的地图构建。

优点:
1.SLAM经过多年的发展,在结构化场景下建图已经非常成熟,但是都离不开高精度的里程计数据,而Hector_SLAM完全摆脱了里程计,仅仅依赖于高频率的激光。不需要使用里程计,所以使得空中无人机及地面小车在不平坦区域建图存在运用的可行性;
2.利用已经获得的地图对激光束点阵进行优化, 估计激光点在地图的表示,和占据网格的概率;
3.利用高斯牛顿方法解决scan-matching 问题,获得激光点集映射到已有地图的刚体变换;
4.为避免局部最小而非全局最优,使用多分辨率地图;导航中的状态估计加入惯性测量系统(IMU),利用EKF滤波;
5.Hector_SLAM灵活高、可扩展性强,可用于二维和三维地图的创建,很好地适应了微型处理器,降低了SLAM算法对计算机硬件的要求,在自主移动机器人导航领域应用越来越多。

缺点:
1.需要雷达(LRS)的更新频率较高,测量噪声小。所以在制图过程中,需要robot速度控制在比较低的情况下,建图效果才会比较理想,这也是它没有回环(loop close)的一个后遗症;
2.且在里程计数据比较精确的时候,无法有效利用里程计信息。

实验表明:在大地图,低特征(distinctive landmarks)场景中,hector的建图误差高于gmapping。这是由于hector过分依赖scan-match。特别是在长廊问题中,误差更加明显。

补充:hector_slam通过最小二乘法匹配扫描点,且依赖高精度的激光雷达数据,因此扫描角很小且噪声较大的Kinect是不行的,匹配时会陷入局部点,地图比较混乱。

cartography

累计误差较前两种算法低,能天然的输出协方差矩阵,后端优化的输入项。成本较低的雷达也能跑出不错的效果。

references

Gmapping、hector、Cartographer三种激光SLAM算法简单对比
2D激光SLAM算法汇总

以上是关于SLAM学习历程-Gmappinghector和cartography的优缺点的主要内容,如果未能解决你的问题,请参考以下文章

从零开始的三维激光雷达SLAM教程第一讲(搭建运行环境,并跑Kitti数据集)

激光slam课程学习笔记--第1课:激光slam的发展和应用

激光slam课程学习笔记--第1课:激光slam的发展和应用

个人的一些基本情况记录

go语言学习历程

《ROS理论与实践》学习笔记机器人SLAM建图