超强激光SLAM LIO-SAM!高精度机器人定位建图!_关键帧

作者丨robot L@知乎


本文介绍IROS2020的一篇文章:

T. Shan, B. Englot, D. Meyers, W. Wang, C. Ratti, D. Rus. LIO-SAM: Tightly-coupled Lidar Inertial Odometry via Smoothing and Mapping, IEEE/RSJ International Conference on Intelligent Robots and Systems, 2020.

附上作者Tixiao Shan上传到Youtube的视频:


原视频地址:youtube.com/watch?。

作者Tixiao Shan在2018年发表过LeGO-LOAM,当时他还在史蒂文斯理工学院读博士,19年毕业之后去了MIT做助理研究员(羡慕.jpg)。。。这篇文章LIO-SAM实际上是LeGO-LOAM的扩展版本,添加了IMU预积分因子和GPS因子,去除了帧帧匹配部分,然后更详细地描述了LeGO-LOAM帧图匹配部分的设计动机和细节。

代码已开源,传送门:TixiaoShan/LIO-SAM(https://github.com/TixiaoShan/LIO-SAM)。

PS:今天上github查了一下LeGO-LOAM,发现有许多有趣的版本,比如这个:https://github.com/irapkaist/SC-LeGO-LOAM

将基于欧式距离的回环检测换成了基于全局描述子Scan Context的回环检测。还有这个:https://github.com/facontidavide/LeGO-LOAM-BOR/tree/speed_optimization

从代码层面进行了改进,优化了速度和代码可读性等。


目录

  • 内容介绍
  • 研究背景
  • 方法
  • 综述
  • 激光里程计因子
  • GPS因子
  • 实验验证
  • 旋转数据集

  • 行走数据集

  • 校园数据集

  • 公园数据集

  • 阿姆斯特丹数据集

  • 总结

  • 核心思想

  • 优缺点

  • 展望


1. 内容介绍

本文提出了一种紧耦合激光-惯性里程计方法,通过优化包含LiDAR里程计因子,IMU预积分因子,GPS因子和回环因子来得到机器人的全局一致的位姿。作者使用帧-局部地图匹配代替LOAM的帧-全局地图匹配,提高了帧图匹配的效率(个人感觉这并不算一个新的创新点,因为作者在LeGO-LOAM中已经用了帧-局部地图匹配)。

超强激光SLAM LIO-SAM!高精度机器人定位建图!_数据集_02

图1. (a)操作员手持设备。(b)LIO-SAM使用激光和IMU数据的建图结果。

2. 研究背景

LOAM是目前为止激光里程计(LO)领域最经典最广泛使用的方法。但是它存在一个问题,就是它直接存储全局体素地图而不是局部地图,从而很难执行回环检测以修正漂移,或者组合GPS等测量进行位姿修正。并且体素地图的使用效率会随时间降低。为了克服该问题,作者只独立地存储每个关键帧的特征,而不是在位姿估计完成后就将特征加入到全局地图中。

另一方面,IMU和LiDAR的联合位姿估计已经被广泛研究,大致分为两类。第一类是松耦合的方法,例如LOAM和LeGO-LOAM中使用IMU去除LiDAR点云的运动畸变,以及[8]-[12]使用EKF整合LiDAR和IMU的测量。第二类是紧耦合的方法,例如R-LINS[15],使用误差状态卡尔曼滤波器迭代地修正机器人的位姿估计,再比如LIOM [16]联合优化LiDAR和IMU测量。但是LIOM一次性处理所有测量,因此不能实时运行。而本文也属于紧耦合的激光-惯性里程计方法,只是采用了因子图优化而不是滤波的方法。

3. 方法

A. 综述

图2展示了LIO-SAM的因子图。图中主要包含四种因子。第一种是IMU预积分因子(橙色),由两个相邻关键帧之间的IMU测量积分得到。第二种是激光里程计因子(绿色),由每个关键帧和之前n个关键帧之间的帧图匹配结果得到。第三种是GPS因子(黄色),由每个关键帧的GPS测量得到。第四种是回环因子(黑色),由每个关键帧和候选回环关键帧的时序相邻的2m+1个关键帧之间的帧图匹配得到。此外,因子图优化通过iSAM2[18]完成。

超强激光SLAM LIO-SAM!高精度机器人定位建图!_数据集_03

图2. LIO-SAM的系统结构。

IMU预积分因子在robot L:【论文阅读12】On-Manifold Preintegration (https://zhuanlan.zhihu.com/p/108203458,Part2:技术细节)一文中已经介绍过,回环因子在LeGO-LOAM中已经介绍过,不再赘述。这里详细介绍后激光里程计因子和GPS因子。

B. 激光里程计因子

在本文中,只使用关键帧的特征,非关键帧的特征全部被抛弃。采用LOAM[1]或LeGO-LOAM[7]的方法提取第 超强激光SLAM LIO-SAM!高精度机器人定位建图!_3D_04 个关键帧的特征 超强激光SLAM LIO-SAM!高精度机器人定位建图!_数据集_05 ,前者是边缘特征,后者是平面特征。当新的关键帧 超强激光SLAM LIO-SAM!高精度机器人定位建图!_3D_06 到来时,利用之前n+1个关键帧的特征集合 超强激光SLAM LIO-SAM!高精度机器人定位建图!_3D_07 和位姿估计 超强激光SLAM LIO-SAM!高精度机器人定位建图!_数据集_08构建局部地图 超强激光SLAM LIO-SAM!高精度机器人定位建图!_数据集_09 ,其中

超强激光SLAM LIO-SAM!高精度机器人定位建图!_关键帧_10 (1)

超强激光SLAM LIO-SAM!高精度机器人定位建图!_关键帧_11 和 超强激光SLAM LIO-SAM!高精度机器人定位建图!_数据集_12 是变换到世界坐标系中的第 超强激光SLAM LIO-SAM!高精度机器人定位建图!_3D_04 个关键帧的特征。 超强激光SLAM LIO-SAM!高精度机器人定位建图!_3D_14 和 超强激光SLAM LIO-SAM!高精度机器人定位建图!_数据集_15 是世界坐标系中的局部边缘特征地图和局部平面特征地图。

之后,我们利用LOAM中的方法匹配 超强激光SLAM LIO-SAM!高精度机器人定位建图!_数据集_16 和 超强激光SLAM LIO-SAM!高精度机器人定位建图!_3D_14 ,以及 超强激光SLAM LIO-SAM!高精度机器人定位建图!_关键帧_18 和 超强激光SLAM LIO-SAM!高精度机器人定位建图!_数据集_15 ,建立点线和点面距离约束。通过最小化所有约束,优化 超强激光SLAM LIO-SAM!高精度机器人定位建图!_3D_20 。点云匹配和位姿优化过程与LOAM/LeGO-LOAM相同,不再赘述。不同的是,这里使用过去n+1帧关键帧的组合点云而不是全局点云和最新帧进行匹配。

C. GPS因子

当接收到GPS测量后,我们首先使用[20]的方法变换它们到笛卡尔坐标系中。当一个新的位姿节点被插入到因子图后,我们关联GPS因子到该位姿节点中去。具体地,我们线性插值GPS的时间戳,得到对应最新位姿节点的GPS位置。

由于在GPS信号一直存在的时候,持续添加GPS因子没有意义。因为漂移很缓慢。所以在实际操作过程中,我们只添加GPS因子当位姿估计协方差矩阵变得很大的时候。

4. 实验结果

我们比较了提出的LIO-SAM,LOAM以及LIOM。此外,我们的实验基于三种不同的实验平台,如图3所示。

超强激光SLAM LIO-SAM!高精度机器人定位建图!_关键帧_21

图3. 三种不同的实验平台。

A. 旋转数据集

该实验验证我们仅使用IMU因子和激光里程计因子时,系统的鲁棒性。在该实验中,我们静止在原地,并快速晃动手中的传感器设备。LOAM和LIO-SAM的建图结果如图4所示。LIOM由于采用了[24]的初始化方法较为敏感,在该数据集中不能初始化成功,因此没有显示它的建图结果。

超强激光SLAM LIO-SAM!高精度机器人定位建图!_关键帧_22

图4. 实验1的建图结果对比。、

B. 行走数据集

该测试用来验证我们方法经历剧烈平移和旋转运动时的表现。在数据收集阶段,使用者手持传感器在MIT校园内快速行走。可以看出LOAM,LIOM和我们的LIO-SAM的建图效果递增。LIOM不能实时运行,其他两种算法可以实时运行。

超强激光SLAM LIO-SAM!高精度机器人定位建图!_关键帧_23

图5. 实验2的建图结果比较。

C. 校园数据集

该测试用来验证引入GPS和回环因子的好处。为此,去除GPS和回环因子的系统被称为LIO-odom;去除回环因子使用GPS因子的系统被称为LIO-GPS;适用所有因子的系统为LIO-SAM。在该数据集中,使用者手持平台在MIT校园中行走,并回到起点的相同位置。由于有树木的遮挡,部分区域接收不到GPS信号。图6展示了各种方法的轨迹和LIO-SAM的建图结果。

超强激光SLAM LIO-SAM!高精度机器人定位建图!_数据集_24

图6. 实验3的轨迹图和LIO-SAM的建图结果。

表2总结了各种方法回到原点后的相对平移误差。

超强激光SLAM LIO-SAM!高精度机器人定位建图!_3D_25

D. 公园数据集

在该实验中,我们将传感器放到UGV上,并驾驶它沿着公园的林荫小路行走。在40分钟后,该小车回到了原点。图7展示了不同算法的轨迹图,表2总结了各种方法的相对平移误差。

超强激光SLAM LIO-SAM!高精度机器人定位建图!_数据集_26

图7. 实验4的轨迹图和LIO-SAM的重建结果。

E. 阿姆斯特丹数据集

在该实验中,我们将传感器放到船上,并绕着阿姆斯特丹运河行驶了三个小时。建图结果如图8所示。

超强激光SLAM LIO-SAM!高精度机器人定位建图!_3D_27

此外,表4总结了各种方法平均每帧的运行时间。和LIO-SAM能够承受的数据倍速播放上限。

超强激光SLAM LIO-SAM!高精度机器人定位建图!_3D_28

5. 总结

A. 核心思想

基于激光雷达,IMU和GPS多种传感器的因子图优化方案,以及在帧图匹配中使用帧-局部地图取代帧-全局地图。

B. 优缺点

第一个优点是紧耦合了多种不同传感器,运动估计结果更鲁棒。

第二个优点是使用增量平滑和建图方法iSAM2执行因子图优化。iSAM2是真的好用,只需要设计因子就完事儿了,其他部分完全不用管,增量优化帮你搞定一切。时间-精度平衡,不存在的。

缺点一是关键帧之间的特征被完全丢弃。能否设计一种简单高效的方法同时利用关键帧之间的激光帧的(部分)特征?这样的好处是信息损失更少,有利于提高精度。

缺点二是没开源(划掉。

C. 展望

使用IMU预积分来利用IMU测量已经是惯用手法。帧-局部地图匹配也在其他LO/LIO中被使用过,例如SuMa和IMLS-SLAM使用的都是帧-局部地图匹配,以及这篇LIO文章robot L:【论文阅读9】3D LiDAR Inertial Odometry and Mapping(https://zhuanlan.zhihu.com/p/106291845)也使用了帧-局部地图匹配。为了提速,仅使用关键帧,剔除中间帧的想法借鉴自视觉SLAM,以后在激光SLAM中也会逐渐流行起来。LO以及LiDAR和其他传感器融合的SLAM领域还有什么可做的呢?

我觉得首先LIDAR点云的特征点提取这种基础工作有待进一步改进,无论是LOAM还是LeGO-LOAM,特征点提取方法都非常简单。能够提取出更加通用,稳定,高效的特征点的方法是非常关键的。因为后续的匹配算法对特征点的质量非常敏感,虽然短期可能看不出来,但是长期来看,好的特征非常重要。

其次,如何处理高动态环境也是一个开放问题。包括高动态环境中准确,鲁棒的定位方法,以及高动态环境的建图方法,是否对动态物体建图?如何去除动态物体的残影?如何建立纯静态场景地图?以及基于语义,物体,拓扑的建图方法等。

本文仅做学术分享,如有侵权,请联系删文。


超强激光SLAM LIO-SAM!高精度机器人定位建图!_关键帧_29

▲长按关注公众号