ORB_SLAM与Gmapping对比

SLAM(Simultaneous localization and Mapping)是实现无人驾驶的关键技术。当车辆处在未知场景中时,需要依据传感器获取的信息完成自身定位和环境建图,然后在建好的地图上进行路径实时规划和车辆自主控制。

文章目录


一、ORB_SLAM算法方案

ORB_SLAM算法方案是基于ORB特征点提取来实现自身定位和生成三维稀疏地图的一种关键帧SLAM算法。

ORB_SLAM分为三个主要过程:追踪、局部建图、回环闭合。追踪线程通过提取多帧图像的ORB特征,比较前后帧的不同来估计相机当前位姿,如果追踪失败,就要重新进行全局定位和局部优化地图,并对实时位姿进行初始化定位和生成新的关键帧。局部环境建图通过新的关键帧的插入和特征点的匹配,产生新的点云地图,根据局部优化点的位置删掉多余帧,留下关键帧。回环闭合包括回环检测和闭环校正两部分,首先使用词袋法检测,之后算出相似变换,最后图优化实现闭环校正。整个过程都是基于RGB图像的ORB特征,很大程度上提升了计算效率。

2015年提出的基于单目相机的ORB SLAM方案,成为众多关键帧SLAM方案中功能较为完备的方案。最新ORB_SLAM版本是2017年扩展的ORB_SLAM2算法方案,不仅可以应用于单目相机,还可以应用于双目和RGB_D相机等多种视觉传感器。在关键帧的基础上融合了适当的删除帧和插入帧,简化了地图构建,可以实现机器人系统在CPU上的实时运行。回环检测应用了BOW方案,提高效率并且减少了光线环境的影响。

二、Gmapping算法方案

Gmapping是ROS开源系统中应用最广泛和最可靠的2D SLAM算法功能包,基于粒子滤波算法,粒子用于模拟机器人位姿和地图两个状态变量。
Gmapping功能包框架处理的信息包括ROS机器人获取的环境的深度信息、IMU信息以及里程计信息,在此基础上进一步完成参数的设置,然后就可以进行实时定位和地图建模,最终得到基于概率构建出二维的栅格地图。粒子滤波算法往往需要获取大量的粒子以及进行大量的计算,需要依赖里程计进行粒子分布的计算,该算法方案不适合大场景地图,没有回环检测,回环闭合可能会造成地图错位,要想减少粒子滤波法确定机器人位置问题中的不确定性可以采用重采样将观测状况考虑进去。
Cmapping在粒子滤波基础上提出改进的提议分布和重要性重采样算法,前者不仅依赖里程计信息,同时也考虑激光雷达的观测模型,计算相对集中的粒子分布,使粒子分布更接近真实分布,使用粒子更少;后者通过设定粒子权重阈值,避免粒子耗散,当粒子权重变化超过阈值时执行重采样,通过限制重采样次数来保证粒子多样性不会消失,避免机器人位姿单一。

三、两种SLAM算法的比较

当前主要有滤波器与图优化两大类解决机器人SLAM问题的方案。基于扩展卡尔曼滤波的SLAM算法是最原始的且较成熟的概率估计算法,以及之后的基于稀疏扩展信息滤波的SLAM算法,都是适用于机器人通过提取特征点构建特征地图的算法,但此种算法对解决数据的关联问题有一定的难度。近年来,一种基于粒子滤波器的SLAM算法方案被提出,能够依据要求构建出特征点地图或是二维栅格地图,同时很好的解决了数据的关联问题,但存在着计算量存储量是粒子数的平方关系增长,不适用于具有大量特征点的视觉SLAM。目前主流的视觉SLAM研究方向是基于图优化的处理方法,不仅可以进行高精度地图的构建,还能够随着时间的推移保证较高的效率,主要包括前端建图和后端优化两部分。

Gmapping算法方案是一种基于粒子滤波的2D SLAM算法,通过对多个机器人的位置点采样形成高斯分布,进而抽样获得机器人的当前位置。虽然实现Gmapping算法有一定的复杂度,但该算法是当前构建栅格地图应用最广泛的最有效的算法。Gmapping算法功能包处理的信息包括ROS机器人获取的场景的深度信息、IMU信息和里程计信息,在此基础上进一步完成参数的设置,然后就可以完成实时定位和地图建模,最终生成的是基于概率的二维栅格地图。但因为每个粒子都有着机器人的位置信息和地图信息,所以该方法面临着有关粒子数的大量计算和大量存储的问题,尤其是构建栅格地图时该问题更为严重。

ORB_SLAM算法方案是基于ORB特征点提取来实现实时定位和生成三维稀疏点云图的一种图优化SLAM系统,通过提取关键帧的ORB特征,估计相机位姿信息变化,计算相机最终的运动轨迹,生成三维稀疏点云地图。ORB_SLAM还具有初始化地图与闭环检测等功能,改进了关键帧的选择和地图生成的方式,进一步改善了处理图像的效率、特征追踪的效果以及建图的精度。ORB_SLAM比基于概率的滤波方法更精准、更高效,但很难实现导航和自动避障功能。

上一篇:论文阅读: 基于SLAM的使用GPS和鱼眼相机第Integrity Monitoring


下一篇:7.2.1 导航实现01_SLAM建图