一、SLAM简介
1.1 引入
将一个机器人放入未知环境中的未知位置,是否有办法让机器人一边逐步描绘出此环境完全的地图,同时一边决定机器人应该往哪个方向行进?
1.2 定义
SLAM (simultaneous localization and mapping) ,即时定位与地图构建,SLAM回答两个问题:“我在哪儿?”“我周围是什么?”,主要用于解决机器人在未知环境运动时的定位与地图构建问题。
二、SLAM的分类以及优缺点
2.1 分类
S L A M { 激光 S L A M :常采用 2 D 或 3 D 激光雷达 视觉 S L A M :常采用单目相机、双目相机、 R G B D 相机 SLAM \begin{cases} 激光SLAM:常采用2D或3D激光雷达 \\ 视觉SLAM:常采用单目相机、双目相机、RGBD相机 \\ \end{cases} SLAM{激光SLAM:常采用2D或3D激光雷达视觉SLAM:常采用单目相机、双目相机、RGBD相机
2.2 优缺点
激光SLAM
优:
1.激光雷达测距比较准确,误差模型简单,在强光直射以外的环境中运行稳定,点云的处理也比较容易。[点云:激光雷达采集到的物体信息呈现出一系列分散的、具有准确角度和距离信息的点,被称为点云。]
2.激光雷达SLAM建立的地图常常使用占据栅格地图表示,每个栅格以概率的形式表示被占据的概率,存储非常紧凑,特别适合于进行路径规划。
缺:
价格比较昂贵
视觉SLAM
优:
1.可以从环境中获取海量的、富于冗余的纹理信息,拥有超强的场景辨识能力。[例如两块尺寸相同内容却不同的广告牌,基于点云的激光SLAM算法无法区别他们,而视觉则可以轻易分辨。]
2.视觉信息可以较为容易的被用来跟踪和预测场景中的动态目标,如行人、车辆等,对于在复杂动态场景中的应用这是至关重要的。
缺:
光照严重不足或纹理缺失的环境中,视觉SLAM的精准度不如激光SLAM。
三、SLAM常见的算法
3.1 Gmapping算法
定义:Gmapping基于RBPF粒子滤波算法,即将定位和建图过程分离,先进行定位再进行建图。
优点:Gmapping可以实时构建室内环境地图,在小场景中计算量少,且地图精度较高,对激光雷达扫描频率要求较低。
缺点:强烈依赖里程计信息;随着环境的增大,构建地图所需的内存和计算量就会变得巨大,所以Gmapping不适合大场景构图。
3.2 Cartographer算法
定义:Cartographer是Google推出的一套基于图优化的SLAM算法,Cartographer主要理论是通过闭环检测来消除构图过程中产生的累积误差。
优点:鲁棒性好,累计误差低,建图速度快,建图效果好且精度高;适用于构建大范围地图构建;使用成本较低的激光雷达也具有良好的效果,没有IMU和里程计,只有激光雷达时也可以建图,还可以手持建图。
缺点:图优化算法含复杂的矩阵运算,对处理器要求高,需要强大的数据处理与计算能力。