智能网联汽车:激光与视觉SLAM详解
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.1.2 SLAM定义

SLAM最早是Smith、Self和Cheeseman于1988年提出的。后来,Leonard和Reid将到目前为止SLAM的发展过程总结为3个阶段,下面简单介绍一下这3个阶段,1.4.1节有更详细的介绍。

• 经典时代(1986—2004年):早期阶段,主要研究SLAM问题的定义、基于概率框架的建模和求解方法。

• 算法分析时代(2004—2015年):深入研究SLAM问题的一些性质,比如稀疏性、收敛性、一致性等,更多样、更高效的算法也被相继提出。

• 鲁棒感知时代(2015年至今):开始考虑算法的鲁棒性、可扩展性,资源约束下的高效算法,高层语义认知任务导向等。

他们认为,正如人类的行为一样,机器人也会按照人类的行为方式来运作。为了进一步理解SLAM的功能,我们将机器人或自动驾驶车辆的算法与人类的真实行为做个类比。

假设将一个饥寒交迫的人空降在一个陌生的城市,那么这个人为了迅速熟悉环境并解决饥饿问题,可能会做以下事情。

• 首先观察周边的环境,记住相应的路标,包括路名和建筑(传感器数据输入和特征提取)。

• 把这些信息记录在脑海里,并且在脑海里回想整个路面的信息(三维重建和地图构建)。

• 尝试在这个环境里走走看看,获取新的明显的地标信息,并且修正自己头脑中的地图印象(BA优化或扩展卡尔曼滤波器)。

• 根据自己前一段时间行走得到的周边地标信息确定自己的位置。

• 根据自己所走过的路径的相关特征信息,和自己脑海中的三维重建信息进行对比,看一看是否回到了曾经走过的历史路径。

在自动驾驶汽车中上述5个步骤会同时进行,这也正是SLAM里的Simultaneous(“同时”“同步”)一词的意义。

SLAM包括两部分功能——定位(估算出机器人/无人车的状态)和建图(构建机器人所处环境的地图)。机器人/无人车状态是由其姿态(位置和方向)来描述的,可能会包含机器人运行速度等信息;而地图表示的是与环境描述有关的信息,例如地标、障碍物的位置等。

在没有环境先验信息的条件下,机器人/无人车搭载特定传感器的主体在运动过程中建立环境的模型,同时估计自己的运动。如果传感器主要为相机,那就称为视觉SLAM,如iRobot扫地机器人、依靠视觉的AVP自主泊车。如果传感器为激光雷达,那就称为激光SLAM。目前二维激光SLAM技术的发展已经较为成熟,既可用于民用服务(如扫地机器人),也可用于工业现场。基于激光点云的三维SLAM技术利用三维激光传感器获取三维空间点数据,之后通过相邻点云帧之间的扫描匹配进行位姿估计,并建立完整的点云地图,与二维激光SLAM具有相通的技术原理。三维激光雷达通过光学测距,可以直接采集到海量的具有角度和距离精准信息的点,这些点的合集被称为点云,它们可以反映出真实环境中的几何信息。由于建图直观,测距精度极高,且不容易受到光照变化和视角变化的影响,激光雷达已逐步成为室外大型环境的地图构建应用中必不可少的传感器。