1 SLAM简介

1.1 概述

SLAM本质就是确定自己在哪里的哪里,如在苏州中心的正东边66米处。

SLAM (Simultaneous Localization and Mapping),也称为CML (Concurrent Mapping and Localization), 即时定位与地图构建,或并发建图与定位。
机器人自主定位导航技术中包括:定位和地图创建(SLAM)与路径规划和运动控制两个部分,而SLAM本身只是完成机器人的定位和地图创建,二者有所区别。
自主导航的解决方案:SLAM + 路径规划 + 运动控制;
在虚拟现实(Virtual Reality)和增强现实技术(Argument Reality)中,没有SLAM提供的定位,用户就无法在场景中漫游。
在这里插入图片描述

在这里插入图片描述

1.2 应用

二维激光SLAM构建的二维栅格地图,可以用来做机器人的定位与导航。
三维激光SLAM构建的三维点云地图,可以用来做无人车的定位与导航,也可以用来做三维建模。
视觉SLAM构建的稀疏点云地图,可以用来做定位。
视觉SLAM构建的半稠密与稠密的点云地图,可以用来做定位与导航,也可以用来做VR领域的交互场景,也可以用来做三维建模。
二维激光    
    

在这里插入图片描述

三维激光

在这里插入图片描述

1.3 历史发展

2 SLAM中3个模块

前端里程计模块,后端优化模块,以及回环检测模块

2.1 前端里程计模块

机器人行走里程由编码器、IMU等给出的。

实现原理


激光SLAM
激光雷达的频率一般是10Hz-40Hz之间。只要确定第一帧雷达数据与第二帧雷达数据的时间间隔内,机器人走了多远,再确定第二帧到第三帧雷达数据的时间间隔内,机器人走了多远(位姿变换),依次类推,就可以一直确定机器人到底走了多远,确定机器人当前的位姿与初始时刻的相对位姿。
视觉SLAM
摄像头的数据是一帧一帧的图像,可能是RGB彩色图像,也可能是彩色图像加上深度图像。一般的处理方法为在图像中提取特征点,然后确定特征点在空间中的坐标值,通过这些特征点,确定机器人在2帧图像间的位姿变换,再确定第二帧图像与第三帧图像间的位姿变换,依次类推,就可以确定了机器人当前的位姿与初始时刻的相对位姿。
上述过程确定了机器人相对于初始时刻以及相对于每帧数据到来时的位姿变换,这个过程就是定位的过程。

实现方法

对于激光SLAM来说,求从前一帧雷达数据到当前帧雷达数据间的位姿变换,一般将这个过程称为 扫描匹配(scan-matching) 过程。scan就是雷达的数据,通过与前一帧数据进行匹配,从而确定处位姿变换。
目前的扫描匹配方法为:

scan-to-scan:雷达数据与雷达数据进行匹配
scan-to-map:雷达数据与地图进行匹配
scan-to-submap:雷达数据与子地图进行匹配
map-to-map:地图与地图进行匹配
对于视觉SLAM来说,求从前一帧图像到当前帧图像间的位姿变换,一般将这个过程称为 BA(Bundle Adjustment)。