连载文章,长期更新,欢迎关注:
不管是Gmapping还是Cartographer,通常都是采用单线激光雷达作为输入并且只能在室内环境运行。虽然Cartographer支持2D建图和3D建图模式,但是Cartographer采用3D建图模式构建出来的地图格式仍然为2D形式的地图。
这里介绍一种用在室外环境的激光SLAM算法,即LOAM算法。该算法利用多线激光雷达,能构建出3D点云地图。LOAM算法是一款非常经典的SLAM算法,曾经霸占KITTI数据集效果榜首很长一段时间。下面将从原理分析、源码解读和安装与运行这3个方面展开讲解LOAM算法。
8.3.1 LOAM原理分析
这里结合LOAM算法的核心论文[4]对LOAM的原理展开分析。LOAM的核心思想是将SLAM问题拆分成独立的定位和建图分别来处理,其过程如图8-25所示。首先,特征提取模块(Point Cloud Registration)从雷达点云中提取特征点(corner和surface)。然后,定位模块(Lidar Odometry)利用scan-to-scan方法对相邻两帧雷达点云中的特征点进行匹配,这种帧间特征匹配能得到较低精度的里程计(10Hz Transform),用该里程计来校正雷达特征点云的运动畸变。接着,建图模块(Lidar Mapping)利用scan-to-map方法进行高精度定位,该方法以前面低精度的里程计作为位姿初始值,将校正后的雷达特征点云与地图进行匹配,这种扫描帧到地图的匹配能得到较高精度的里程计(1Hz Transform),基于该高精度的里程计所提供的位姿将校正后的雷达特征点云加入已有地图。最后将低精度里程计和高精度里程计融合,输出更新速度和精度都较高的里程计(10Hz Transform Output)。
图8-25 LOAM算法框架
LOAM算法的价值主要体现在两个方面,一方面是LOAM解决了雷达运动畸变问题,另一方面是LOAM解决了建图效率问题。雷达运动畸变是一个很普遍的问题,具体成因见4.2.3节相关内容,而低成本的雷达由于扫描频率和转速较低,运动畸变问题会更突出。LOAM利用帧间特征匹配得到的里程计来校正雷达运动畸,使得低成本的雷达的应用成为可能。而SLAM问题涉及到同时定位与建图,计算量本来就很大,处理3D点云数据时计算量会更大。LOAM利用低精度里程计和高精度里程计将SLAM问题巧妙地拆分成独立的定位和建图分别来处理,大大降低了计算量,让低算力的计算机设备的应用成为可能。下面对LOAM的四个主要模块进行讨论。
1.特征提取
特征提取模块(Point Cloud Registration)从雷达点云中提取特征点(corner和surface)。特征提取过程其实很简单,对当前帧点云中的每个点计算平滑度,将平滑度小于某阈值(min)的点判断为corner特征点,而平滑度大于某阈值(max)的点判断为surface特征点。所有的corner特征点被存放在corner点云中发布,所有的surface特征点被存放在surface点云中发布,也就是说特征提取结果将发布到两个点云中。
2.定位
定位模块(Lidar Odometry)利用scan-to-scan方法对相邻两帧雷达点云中的特征点进行匹配。这里的匹配属于帧间匹配,利用前后两帧配对的特征点,很容易计算其位姿转移关系。在低速运动场景,直接利用帧间特征匹配就能得到低精度的里程计(10Hz Transform),并利用该里程计在匀速模型假设下对雷达运动畸变做校正。在高速运动场景,就需要借助IMU、VO、轮式里程计等提供的外部定位信息来加快帧间特征匹配速度,以响应高速运动场景下位姿的变化,同时这些外部定位信息可以用于雷达运动畸变校正。
3.建图
建图模块(Lidar Mapping)利用scan-to-map方法进行高精度定位,该方法以前面低精度的里程计作为位姿初始值,将校正后的雷达特征点云与地图进行匹配,这种扫描帧到地图的匹配能得到较高精度的里程计(1Hz Transform),基于该高精度的里程计所提供的位姿将校正后的雷达特征点云加入已有地图。
4.里程计融合
定位模块输出的里程计虽然精度较低,但是更新速度高。而建图模块输出的里程计虽然精度较高,但是更新速度低。将二者融合可以得到更新速度和精度都较高的里程计,融合通过插值过程实现。以1Hz的高精度里程计为基准,利用10Hz的低精度里程计对其进行插值,那么1Hz的高精度里程就能以10Hz速度输出了。
如果激光雷达本身帧率很高或者有IMU、VO、轮式里程计等外部定位辅助时,建图模块输出的里程计更新速度很高时,那么里程计融合模块中的插值过程也就没有必要了。
8.3.2 LOAM源码解读
(先占个坑,有时间再来补充详细内容,大家可以直接看文后的参考文献)
8.3.3 LOAM安装与运行
(先占个坑,有时间再来补充详细内容,大家可以直接看文后的参考文献)
参考文献
【1】 张虎,机器人SLAM导航核心技术与实战[M]. 机械工业出版社,2022.