文章:LIO-SAM: Tightly-coupled Lidar Inertial Odometry via Smoothing and Mapping
作者:Tixiao Shan, Brendan Englot, Drew Meyers, Wei Wang, Carlo Ratti, and Daniela Rus
编辑:点云PCL
代码:https://github.com/TixiaoShan/LIO-SAM
欢迎各位加入知识星球,获取PDF论文,欢迎转发朋友圈。文章仅做学术分享,如有侵权联系删文。
公众号致力于点云处理,SLAM,三维视觉,高精地图等领域相关内容的干货分享,欢迎各位加入,有兴趣的可联系dianyunpcl@163.com。未经作者允许请勿转载,欢迎各位同学积极分享和交流。
摘要
本文提出了一种基于平滑和建图的紧耦合激光雷达惯性里程计框架—LIO-SAM,实现了高精度、实时的移动机器人轨迹估计和地图构建任务,LIO-SAM在因子图上构建了激光雷达惯导里程计,允许将多源传感器(相对和绝对测量)作为因子纳入系统中,IMU预积分估计的运动消除了点云的倾斜问题,并产生了激光雷达里程计优化的初值。激光雷达里程计的解用于估计IMU的偏置。为了确保实时的高性能,将旧的激光雷达扫描帧边缘化以进行位姿优化,而不是将激光雷达扫描帧与全局地图匹配,局部范围上的扫描帧匹配而不是全局尺度上的扫描帧匹配可以显著地提高系统的实时性能,正如有选择地引入关键帧以及一种有效的滑动窗口方法,可以将一个新的关键帧配准到一个固定大小的先验的“子关键帧”集合上,提出的方法在不同规模和环境下从三个平台收集的数据集上进行了广泛评估。
主要贡献
目前的激光雷达状态估计和建图方案存在以下问题:
全局体素地图存储方式限制:一些方案使用全局体素地图存储数据,导致难以进行回环检测和结合其他绝对测量,如GPS,用于姿态校正。
在特征丰富的环境中效率低:当体素地图变得密集时,在特征丰富的环境中,在线优化过程变得不太高效。
大规模测试中出现漂移问题:某些方法在大规模测试中可能存在漂移问题,因为其核心是基于扫描匹配的方法。
对光照和距离的敏感性:基于视觉的方法对光照和距离的敏感性较高,使其在单独用于支持自主导航系统时不太可靠。
LIOSAM 克服了以上存在的问题,提出了一个紧耦合的激光雷达惯性测距(Lidar Inertial Odometry)框架,通过平滑和建图(Smoothing and Mapping)来解决上述问题。它在多传感器融合和全局优化方面做出了以下主要贡献:
紧耦合的框架:LIOSAM基于因子图构建了一个紧耦合的激光雷达惯性测距框架,适用于多传感器融合和全局优化。
实时性能:采用了高效的本地滑动窗口式扫描匹配方法,选择性地将新的关键帧注册到固定大小的先前子关键帧集中,从而提高了系统的实时性能。
高精度建图:LIOSAM能够直接捕捉环境的3D细节,通过激光雷达数据进行高精度的建图。
全局优化:引入全局因子图进行机器人轨迹估计,可以高效地进行传感器融合、包含机器人位姿的地点识别以及引入绝对测量,如GPS定位和罗盘航向,当它们可用时进行姿态校正。
轨迹优化:通过对旧的激光扫描进行边缘化处理,而不是像LOAM那样将扫描匹配到全局地图,大大改善了轨迹优化的效率。
综合验证:LIOSAM在多种尺度、车辆和环境上进行了广泛验证,表现出卓越的性能。
主要内容
系统概述
图1展示了所提出系统的概述,该系统接收来自3D激光雷达、惯导和可选的GPS的传感器数据,通过这些传感器的观测来估计机器人的状态和轨迹,这个状态估计问题可以被形式化为一个最大后验概率(MAP)问题。使用因子图来建模这个问题,因为相比贝叶斯网络,它更适合进行推理,在假设高斯噪声模型的情况下,该问题的MAP推理等价于解决一个非线性最小二乘问题,值得注意的是,所提出的系统也可以结合其他传感器的测量,比如来自高度计的高度信息或者罗盘的航向信息。作者引入四种类型的因子以及一种变量类型用于构建因子图。这个变量代表机器人在特定时刻的状态,并被赋予在图中的节点。这四种类型的因子是:(a) 惯导预积分因子,(b) 激光雷达测距因子,(c) GPS因子和(d) 回环闭合因子。当机器人姿态变化超过用户定义的阈值时,图中会添加一个新的机器人状态节点x,在插入新节点时,因子图通过增量平滑和建图与贝叶斯树(iSAM2)进行优化。
图1:LIO-SAM的系统结构,系统接收来自3D激光雷达、惯导测距帧和可选的GPS的输入,为了构建因子图,引入了四种类型的因子:(a) 惯性预积分因子,(b) 激光雷达测距因子,(c) GPS因子和(d) 回环闭合因子。
惯性预积分因子
在LIO-SAM中,IMU(惯性测距仪)是用于测量机器人的线性和角速度,它能够提供高频率的姿态和运动信息。然而,由于IMU测量的高频率和噪声,直接使用IMU数据进行状态估计和位姿优化是困难的。为了更好地利用IMU数据并减少计算复杂性,LIO-SAM引入了IMU Preintegration Factor。这是一种在因子图中的约束项,用于融合IMU数据和激光雷达数据,从而更准确地估计机器人的状态和轨迹。IMU Preintegration Factor的主要作用是将IMU数据预积分成较低频率的姿态变化和位移信息,以降低状态估计和优化的计算复杂性。它考虑了在两个时间点之间的IMU测量,预先计算并集成了姿态变化和位移,并将这些预积分值作为因子添加到因子图中。这样,在因子图的优化过程中,可以同时考虑IMU和激光雷达的信息,从而更准确地估计机器人的姿态和位姿。通过引入IMU Preintegration Factor,LIO-SAM能够更有效地融合IMU和激光雷达数据,提高状态估计的精度和优化的效率。这是LIO-SAM算法中的一个重要创新,使得系统能够在复杂环境下实现高性能的状态估计和建图。
激光雷达测距因子
激光雷达测距因子是LIO-SAM系统中的一种因子,用于融合激光雷达数据和惯性测距仪数据,从而估计机器人的位姿(位置和姿态),该因子的目标是将激光雷达测得的点云数据与惯性测距仪测得的IMU数据进行匹配,得到机器人的运动轨迹,在LIO-SAM中,激光雷达数据通过匹配相邻帧之间的点云来估计机器人的运动,从而得到激光雷达测距因子。具体来说,每当机器人的运动超过一个预定义的阈值时,会添加一个新的机器人状态节点,表示机器人在特定时刻的位置和姿态。激光雷达测距因子将新的机器人状态节点与前一个状态节点连接起来,通过最小化点云在两个状态节点间的误差来优化机器人的位姿。激光雷达测距因子在构建因子图时起到重要的作用,它将激光雷达数据与惯性测距仪数据进行融合,通过非线性最小二乘优化来估计机器人的位姿。
GPS 因子
在LIO-SAM系统结构中GPS因子用于在因子图中集成来自GPS的绝对定位信息,GPS因子的作用是在建图过程中提供绝对位置约束,从而帮助系统更准确地估计机器人的轨迹和状态,GPS因子通过将GPS测量与机器人状态节点相关联来建立,具体来说,当系统接收到GPS测量时会将其表示为一个GPS因子,并将其与最近的机器人状态节点进行关联。
回环闭合因子
当机器人完成了一次或多次闭环运动后,它可能会经过之前已经探索过的区域,此时激光雷达所采集的点云数据和机器人的运动信息会重叠,但由于传感器噪声等因素,这些数据之间可能存在一定的误差。回环闭合因子的作用就是通过对这些回环数据进行匹配和校正,来减少因闭环造成的累积误差。在LIO-SAM中,回环闭合因子用于优化因子图,并修正回环处的机器人状态。当系统检测到回环时,它会将回环闭合因子添加到因子图中,该因子将激光雷达数据与之前经过的位置信息进行匹配。然后,通过最小化回环数据与之前保存的位置信息之间的误差,系统可以校正回环处的机器人状态,从而减小误差,提高SLAM的精度和鲁棒性。
实验
本文中使用的传感器套件包括Velodyne VLP-16激光雷达,MicroStrain 3DM-GX5-25惯性测量单元(IMU)和Reach M全球定位系统(GPS)。为了验证,我们收集了5个不同的数据集,涵盖了不同的尺度、平台和环境。这些数据集分别称为Rotation、Walking、Campus、Park和Amsterdam。传感器的安装平台如图2所示。
前三个数据集是在麻省理工学院校园使用自制的手持设备收集的,Park数据集是在一个有植被覆盖的公园中,使用无人地面车辆(UGV) - Clearpath Jackal进行收集的,最后一个数据集Amsterdam是通过将传感器安装在船上,在阿姆斯特丹的运河中进行航行时收集的。这些数据集的详细信息如表I所示。
我们将提出的LIO-SAM框架与LOAM和LIOM进行了比较,在所有实验中,LOAM和LIO-SAM被强制实时运行。另一方面,给予LIOM无限时间处理每个传感器测量,所有方法都是用C++实现的,并在装有Intel i7-10710U CPU的笔记本电脑上使用机器人操作系统(ROS)在Ubuntu Linux上执行,注意到计算中只使用了CPU,未启用并行计算,并且LIO-SAM实现在Github上开源。
图3:在Rotation数据集中LOAM和LIO-SAM的建图结果,LIOM无法产生有意义的结果。
使用Walking数据集的LOAM、LIOM和LIO-SAM的建图结果。
图4:当遇到激烈的旋转时,LOAM的地图(b)多次发散,LIOM优于LOAM。然而,由于点云配准不准确,其地图显示了许多模糊的结构,LIO-SAM生成了一张与Google Earth图像一致的地图,而无需使用GPS。
用户使用手持设备在MIT校园周围行走,并返回到相同的位置,由于建图区域中有众多建筑物和树木,GPS接收很少可用且大部分时间不准确,在滤除不一致的GPS测量数据后,GPS可用的区域显示为图5(a)中的绿色部分,这些区域对应于没有被建筑物或树木包围的少数区域,LOAM、LIO-odom、LIO-GPS和LIO-SAM的估计轨迹如图5(a)所示。由于LIOM无法正确初始化和产生有意义的结果,其结果未显示。
图5:使用在MIT校园收集的Campus数据集的各种方法的结果。红点表示起始和结束位置。轨迹方向为顺时针。由于LIOM无法产生有意义的结果,因此未显示。
与其他所有方法相比,LOAM的轨迹明显漂移,在没有GPS数据校正的情况下,LIO-odom的轨迹开始在地图的右下角明显漂移,在有GPS数据的帮助下,LIO-GPS可以在可用时纠正漂移,然而由于数据集的后半部分没有GPS数据,当机器人返回到起始位置时,LIO-GPS无法闭环。另一方面,LIOSAM可以通过在图中添加闭环因子来消除漂移。LIO-SAM的地图与Google Earth图像非常吻合,如图5(b)所示。机器人返回到起始位置时所有方法的相对平移误差如表II所示。
为了模拟具有挑战性的建图场景,我们只在机器人处于广阔开阔区域时使用GPS测量数据,这在图6(a)中用绿色段表示,这样的建图场景代表了机器人必须在多个GPS信号受限的区域进行建图,并定期返回有GPS信号的区域进行漂移校正的任务。
图6:使用在新泽西州Pleasant Valley公园收集的Park数据集的各种方法的结果,红点表示起始和结束位置。轨迹方向为顺时针。
图7:LIO-SAM的地图与Google Earth对齐。
总结
本文提出了LIO-SAM是一个紧密耦合的激光雷达惯导测距法通过平滑和建图实现实时状态估计和建图的框架,特别适用于多传感器融合,可以将其他传感器的额外测量数据作为新因子轻松地纳入到框架中,提供绝对测量的传感器,如GPS、罗盘或高度计,可以用来消除激光雷达惯导测距法在长时间或特征贫瘠环境下累积的漂移。位置识别也可以很容易地整合到系统中,为了提高系统的实时性能,本文提出了滑动窗口方法,将旧的激光帧进行边缘化处理,用于扫描匹配,关键帧会被选择性地添加到因子图中,当生成激光测距和闭环因子时,新的关键帧仅与一组固定大小的子关键帧进行配准。这种局部尺度上的扫描匹配而不是全局尺度上的扫描匹配有助于LIO-SAM框架的实时性能,在不同环境中使用三种平台收集的数据集上对提出的方法进行了彻底的评估。结果表明与LOAM和LIOM相比,LIO-SAM可以实现类似或更好的精度。
最近计划学习高翔博士的这本新书,欢迎一起交流。
资源
自动驾驶及定位相关分享
【点云论文速读】基于激光雷达的里程计及3D点云地图中的定位方法
自动驾驶中基于激光雷达的车辆道路和人行道实时检测(代码开源)
更多文章可查看:点云学习历史文章大汇总
SLAM及AR相关分享
结构化PLP-SLAM:单目、RGB-D和双目相机使用点线面的高效稀疏建图与定位方案
以上内容如有错误请留言评论,欢迎指正交流。如有侵权,请联系删除
扫描二维码
关注我们
让我们一起分享一起学习吧!期待有想法,乐于分享的小伙伴加入知识星球注入爱分享的新鲜活力。分享的主题包含但不限于三维视觉,点云,高精地图,自动驾驶,以及机器人等相关的领域。
分享与合作方式:微信“cloudpoint9527”(备注:姓名+学校/公司+研究方向) 联系邮箱:dianyunpcl@163.com。
为分享的伙伴们点赞吧!