专栏名称: 点云PCL
公众号将会推送基于PCL库的点云处理,SLAM,三维视觉,高精地图相关的文章。公众号致力于理解三维世界相关内容的干货分享。不仅组织技术交流群,而且组建github组群,有兴趣的小伙伴们可以自由的分享。欢迎关注参与交流或分享。
目录
相关文章推荐
Python爱好者社区  ·  张雪峰公司今年的年终奖... ·  4 天前  
Python爱好者社区  ·  推荐我的抖音变现俱乐部! ·  6 天前  
51好读  ›  专栏  ›  点云PCL

3D LiDAR SLAM最新综述(3)

点云PCL  · 公众号  ·  · 2024-09-26 08:00

正文


文章:3D LiDAR SLAM : A survey

作者:Yongjun Zhang, Pengcheng Shi,Jiayuan Li

编辑:点云PCL


欢迎各位加入知识星球,获取PDF论文,欢迎转发朋友圈。 文章仅做学术分享,如有侵权联系删文。未经博主同意请勿擅自转载。

公众号致力于点云处理,SLAM,三维视觉,高精地图等领域相关内容的干货分享,欢迎各位加入,有兴趣的可联系[email protected] 未经作者允许请勿转载,欢迎各位同学积极分享和交流。

摘要


SLAM(同步定位与地图构建)是机器人技术和摄影测量领域中非常具有挑战性但又极为基础的问题,也是无人系统智能感知的前提条件。近年来3D LiDAR SLAM 技术取得了显著进展。然而,据我们所知,现有的大部分综述都集中于视觉SLAM方法。为弥补这一差距,本文提供了一篇综合性的综述,概括了3D LiDAR SLAM的科学内涵、关键难点、研究现状及未来发展趋势,旨在让读者更好地理解LiDAR SLAM技术,从而激发未来的研究。具体来说,本文总结了LiDAR SLAM主要步骤的内容及其特点,介绍了其面临的关键难题,并阐述了与现有综述的关系;概述了当前的研究热点,包括仅使用LiDAR的方法和多传感器融合方法,并列举了每类中的里程碑算法和开源工具;总结了常用的数据集、评估指标和代表性的商业SLAM解决方案,并给出了主流方法在公共数据集上的评估结果。

图1 现有LiDAR SLAM方法的分类体系。主流方法分为仅基于LiDAR的框架(基于特征、直接法和基于投影)和多传感器融合解决方案(LiDAR-惯性融合、LiDAR-视觉融合以及LiDAR-惯性-视觉融合)。

多传感器融合SLAM


LiDAR-惯性(LI)融合

LiDAR通常具有较低的扫描频率,所感知的点云容易受到运动畸变的影响。在高速或复杂运动情况下,线性畸变校正模型的精度较差,容易导致LiDAR单独使用的SLAM方法性能下降。然而,惯性传感器具有高输出频率和局部精度,能够很好地补偿单个LiDAR扫描内部点的运动,LiDAR-惯性融合在像长走廊这样无特征场景中能有效提高SLAM系统的鲁棒性和精度。根据它们的结合方式,LiDAR-惯性SLAM系统可以分为松耦合方法和紧耦合方法。表4提供了这些方法的总结。

松耦合LI SLAM

松耦合通常是分别处理LiDAR和IMU的观测数据,然后融合它们的结果。最简单的方式是使用IMU测量数据校正LiDAR扫描中的非线性运动畸变,通过IMU预积分获得IMU里程计,并将其作为扫描匹配的初始值,以提高系统的鲁棒性。这种耦合可以直接应用于LiDAR单独使用的SLAM系统,几乎无需修改,代表性的工作有IMU辅助的LOAM、LeGO-LOAM、MULLS、自适应关键帧LIO(图10a)等。

另一种更流行的松耦合方法是分别基于LiDAR和IMU的观测数据进行状态估计,然后使用卡尔曼滤波或其他技术融合LiDAR里程计(LO)和IMU里程计的结果。例如,EKF-LOAM(图9和10b)和PPP-SLAM等方法在状态优化阶段使用扩展卡尔曼滤波器(EKF)来整合LiDAR、IMU和GNSS的测量数据。LION将LO和IMU里程计的结果表示为因子图,并通过固定滞后滑动窗口平滑器进行优化。在松耦合中,扫描匹配与结果融合的分离减少了计算负载,使其效率高、易于实现且易于扩展。然而,由于松耦合忽略了系统的其他状态量(如速度),可能导致信息丢失,从而无法最大化每个传感器的优势。

图 9 代表性松耦合LI SLAM框架

图 10 松耦合LI SLAM的建图结果

紧耦合LI SLAM

紧耦合方法将LiDAR和IMU观测的状态估计因子表述为联合优化问题。这些方法克服了前述的限制,在复杂场景中表现出更好的性能,已成为LI融合的主流方法。紧耦合方法可以分为基于滤波的方法和基于图优化的方法。

图11 两个紧耦合LI SLAM的代表性框架。(a)和(b)分别源自于Xu & Zhang (2021)和Li, Li, & Hanebeck (2021)。

基于滤波的方法

这类方法通常根据来自LiDAR、IMU等各种传感器的观测构建状态模型和测量模型,通过粒子滤波或卡尔曼滤波进行状态估计。早期的一项重要工作是Bry等人提出的,将2D LiDAR和IMU观测融合在高斯粒子滤波框架下,应用于波士顿动力的Atlas机器人。然而,由于3D LiDAR特征点数量庞大,粒子滤波的时间复杂度过高,无法实现实时运行。因此,引入了卡尔曼滤波及其变体来替代粒子滤波,例如无迹卡尔曼滤波(UKF)、扩展卡尔曼滤波(EKF)和迭代卡尔曼滤波(IKF)。由于UKF和EKF容易受到线性化误差的影响,初始估计不准确时在扫描匹配中容易产生错误匹配,导致SLAM性能不佳。迭代卡尔曼滤波方法在每次迭代中进行误差修正,取得了当前的最佳性能。

LINS设计了一种错误状态迭代卡尔曼滤波器(ESIKF),通过在每次迭代中生成新的点对应关系递归修正估计状态,并通过拟合地面平面来减少特征数量,实现实时性能。Swarm-LIO在ESIKF框架下实现了一种完全去中心化的无人机群体系统状态估计方法。类似地,Fast-LIO在迭代扩展卡尔曼滤波(IEKF)框架下实现了LiDAR和IMU观测的紧耦合。与LINS相比,Fast-LIO提出了一种新的卡尔曼增益计算公式,使卡尔曼滤波的计算复杂度依赖于状态向量的维度而不是特征的维度,从而大大降低了系统的计算负担。Fast-LIO也是最新的基于滤波的基线,多个变体已被开发。例如,Fast-LIO2使用直接方法替代Fast-LIO中的特征基础方法进行扫描匹配,并提出了一种增量k-d树数据结构进行地图维护,从而提高了精度和速度。Faster-LIO采用稀疏增量体素(iVox)替代树结构进行点云组织,进一步提高了Fast-LIO2的计算效率。Puma-LIO考虑了LiDAR惯性测距中的原理性不确定性模型。AdaLIO添加了周围环境检查模块,以自适应调整参数,从而提高算法在退化场景中的性能。此类方法实现了高精度和高效率,但由于系统未考虑回环闭合约束,在大规模场景中可能会明显出现误差积累问题。为了解决这一问题,HD-LIO和其他研究在IEKF模块后添加了LCD模块和因子图优化模块,但这不可避免地增加了系统的计算复杂度。

图12 紧耦合LI SLAM的建图结果

基于图优化的方法

这类方法将LiDAR和IMU因子合并到统一的图结构中(通常表示为因子图或姿态图),并将其表述为最大后验估计问题,使用GTSAM、Ceres和G2O等工具进行优化。早期的工作LIPS在图优化中整合了LiDAR扫描的平面约束和IMU预积分约束。LIOM基于边缘和平面特征,使用局部滑动窗口进行平滑处理,并提出旋转约束以细化LiDAR姿态。一项更有影响力的工作是LIO-SAM,它结合关键帧和局部滑动窗口策略,提高了LIOM的实时性能,并在图优化中融合了LiDAR里程计因子、IMU预积分因子、回环闭合因子和可选的GPS因子。然而,LIO-SAM依赖高频的九轴IMU,限制了其推广。

LiLi-OM探索了固态LiDAR和IMU之间的紧耦合关系。它设计了一种基于固态LiDAR特性的特征提取方法,并使用滑动窗口、局部因子图和全局因子图等策略进行优化。LIOvehicle是一种专注于车辆轨迹估计的SLAM方法,它在LIOSAM框架中添加了低成本传感器(如轮速计和转向角传感器)观测和车辆运动约束,以构建更准确的因子图。类似地,GR-LOAM通过添加编码器约束提高了地面机器人在复杂地形场景中的鲁棒性。以上方法的扫描匹配均为基于特征的方法,此外也有一些基于直接匹配的方法。直接方法的配准精度更高,Koide等使用GPU加速的体素化GICP构建匹配代价因子,并融合局部映射和全局映射以细化LIO的结果。D-LIOM的结构类似于LiLi-OM,只是直接将扫描与概率子地图进行注册,替代了特征匹配。DLIO结合了直接方法和连续时间运动的思想,通过考虑单帧内每个3D点的运动状态估计,实现了精确的畸变修正。总体而言,图优化实现了高性能,特别是在抑制误差积累方面。然而,这些方法计算量大,通常使用关键帧和局部滑动窗口策略以实现实时操作。关键帧意味着需要丢弃许多LiDAR扫描,这可能导致信息丢失。

LiDAR-visual (LV) 融合

视觉SLAM具有丰富的纹理信息和较小的数据量,但对光照敏感且存在尺度漂移的问题。此外,视觉SLAM方法构建的地图通常非常稀疏。相对而言,LiDAR SLAM可以直接获取具有真实比例的密集3D信息,并且对光照不敏感,但缺乏纹理,且数据组织较为混乱。因此,两者之间存在良好的互补关系。LV融合可以有效提高SLAM系统的准确性和可靠性,并生成与真实世界纹理一致的密集3D环境地图。一般而言,LV融合方法可以分为LiDAR辅助视觉SLAM方法和LV耦合SLAM方法。表5总结了这些方法。

LiDAR辅助视觉SLAM

基于特征的方法利用LiDAR传感器为视觉特征提供深度信息,并将这些信息输入视觉SLAM系统进行定位和建图。具体做法是从图像中提取显著的视觉特征,如点特征或点线结合的特征,LiDAR为这些特征提供精确的深度数据,以提升视觉SLAM的尺度准确性和鲁棒性。这类方法的代表性算法包括DEMO、LIMO、CamVox等,这些算法基于点特征,而PL-LIMO则融合了点和线特征。尽管这种方法能够增强视觉SLAM的精度,但由于LiDAR点云的稀疏性,只有少量的视觉特征能够与深度信息有效匹配,关联过程中容易引入插值误差。为了缓解这个问题,像RGBL方法通过补充LiDAR深度图生成RGBD图像,增强视觉SLAM的鲁棒性;H-VLO则通过深度神经网络进行LiDAR深度补全和单目深度估计,通过深度图配准提供尺度校正。然而,深度补全和估计可能产生错误深度信息,从而影响系统的稳健性。

图13 两个代表性的LV融合LiDAR SLAM框架。 (a) 和 (b) 分别最早由Zhang等人(2017年)和Zhang & Singh(2015年)提出。

直接方法不依赖于视觉特征检测,而是将LiDAR点云直接投影到图像上,利用带有深度信息的像素进行跟踪。这种方法的核心是直接最小化图像间的光度误差,不局限于特定的视觉特征,能够使用图像中的任意像素梯度区域进行跟踪,如白墙边缘和亮度变化区域。这使得直接方法在弱纹理或无纹理的场景中具有更强的鲁棒性。DVL-SLAM是首个将直接稀疏里程计引入LiDAR和视觉融合的系统,随后CR-LDSO通过云重用策略解决了跟踪像素不足的问题,而SelfCompDVLO则通过LiDAR深度补全替代了传统的光度-度量误差,从而提升了跟踪效果。然而,直接方法依赖于像素强度信息,因此在光照变化剧烈的环境中可能会失效。

图14 LV融合LiDAR SLAM的建图结果

LV耦合SLAM

与LiDAR辅助视觉SLAM不同,LV耦合SLAM方法将LiDAR里程计(LO)因素和视觉里程计(VO)因素结合起来,以提高系统的精度和鲁棒性。这类方法也分为松耦合和紧耦合方法。

松耦合方法通常采用级联策略来结合LO和VO模块。一个早期的代表性工作是VLOAM,它通过一个高速运行的VO模块(60Hz)获取低精度位姿信息,然后通过一个低速的LO模块(1Hz)来细化运动估计并纠正LiDAR扫描中的失真。VLOAM在KITTI数据集上当时取得了最佳的精度表现。基于VLOAM框架,衍生出了VLO-SCVB、SDV-LOAM、DV-LOAM等方法。为了克服插值误差问题,VLO-SCVB首先将LiDAR点投影到图像上,选择投影点中的关键点,并以松耦合方式融合ORB-SLAM2和LOAM的结果。SDV-LOAM结合了基于特征和直接法的优势,通过光度一致性进行初始跟踪,然后通过最小化特征的重投影误差进一步优化,属于半直接法。DV-LOAM则用直接法取代了VLOAM中的基于特征的方案。尽管松耦合具有简单的系统结构和高局部精度的优势,但在大规模复杂场景中的鲁棒性仍然不够高。

紧耦合方法则将LiDAR和视觉观测的状态估计因素表述为联合优化问题。TVLO同时构建了一个LiDAR体素地图和一个视觉稀疏地图,并将LO和VO的残差整合到同一个目标函数中进行优化,从而实现精确的位姿跟踪。同样,TVL-SLAM和MMFC-TVL-SLAM将所有的LiDAR和视觉观测整合到SLAM后端的因子图中(包括视觉因子、LiDAR因子、组合因子和LV因子),实现LiDAR和视觉残差的联合优化。ViLiVO提出了一种基于视觉图像的虚拟LiDAR概念,通过语义分割模型提取图像中的自由空间,并将其轮廓离散化以生成虚拟LiDAR的扫描线。紧耦合方法通常具有更高的全局精度和鲁棒性,但系统结构更为复杂,计算复杂度较高。

LiDAR-惯性-视觉(LIV)融合

LiDAR可以直接获取密集的3D信息并对光照变化不敏感;IMU具有较高的输出频率,能够在如走廊等无特征场景中有效提升精度;视觉图像则包含丰富的纹理信息,使得特征提取和回环检测更加可靠。因此,融合这些不同模态的优势信息可以提升系统应对复杂场景的能力。与LiDAR-惯性(LI)融合类似,松耦合和紧耦合是两种最重要的耦合方法。表6对LIV融合的LiDAR SLAM进行了总结。

松耦合的LIV SLAM

松耦合意味着LiDAR、视觉和惯性传感器的状态估计因素未进行联合优化,主要有两种情况。第一种情况是视觉和惯性模块松耦合或紧耦合,生成视觉惯性里程计(VIO)运动估计,并将其作为LiDAR里程计(LO)模块的初始化进行精细化处理。代表性方法如VI-LOAM,其缺点是依赖逐帧的运动估计,难以保持全局一致性。为了解决这个问题,VILO引入了回环检测和后端优化模块以提高全局一致性,而VIL-SLAM则实现了立体相机版本的VILO。VIO-LOAM通过引入热成像信息增强了在低光场景下的鲁棒性。这种耦合策略尽管简单高效,但未充分利用各种观测因素的优势。第二种情况是视觉惯性里程计(VIO)和LiDAR里程计(LIO)模块紧耦合,但两者的融合仍然是松耦合的。这种方法虽然被一些文献称为紧耦合,但本质上仍然是松耦合。代表性方法如MetroLoc、R3LIVE及其升级版R3LIVE++,它们构建了基于IMU的因素图估计器,通过结合紧耦合和松耦合策略,提升了系统的精度和鲁棒性。

图15 三种LIV系统架构

紧耦合的LIV SLAM

紧耦合系统架构根据优化器不同可分为基于滤波和基于图优化的方法。早期的代表性滤波方法是LIC-Fusion,使用多状态约束卡尔曼滤波器(MSCKF)框架融合LiDAR、视觉和惯性观测信息。后续版本LIC-Fusion2引入滑动窗口的平面特征跟踪模块以提高效率,R2LIVE则结合了滤波和因素图优化,是一种混合方法。

另一类紧耦合方法是基于图优化的典型方法,如LVI-SAM。LVI-SAM包含基于Vins-mono的视觉里程计模块和基于LIO-SAM的LiDAR里程计模块,通过共同优化IMU、视觉、LiDAR和回环检测的约束,达到更高的精度和鲁棒性。其他方法如VILENS、Lvio-fusion、CLIC等,进一步提升了在特定场景下的定位精度和系统鲁棒性。

图16 三种LIV LiDAR SLAM方法。(a–c)分别最初展示于Shao等人(2019),Lin & Zhang(2022a)以及Zheng等人(2022)。

图17 LIV SLAM的建图结果。(a)和(b)为松耦合LIV SLAM,而(c)和(d)为紧耦合LIV SLAM。

总结


多传感器融合SLAM分为三类:LI、LV和LIV。其总结如下:

LiDAR传感器直接获取环境的密集3D信息,具有高测量精度、对光照变化不敏感且没有尺度漂移的优势;IMU可以测量运动过程中的角速度和加速度等观测量,输出频率高且局部精度非常高;视觉图像则是现实世界的2D直接重建,包含丰富的纹理信息和较强的可理解性。这些传感器具有很好的互补性。通过融合技术整合这些不同传感器的优势,系统能够增强应对复杂场景的能力。多传感器融合在实际应用中展示了更高的精度和鲁棒性,成为SLAM研究的发展趋势之一。

松耦合和紧耦合是实现多传感器信息融合的两种主要方式。松耦合可以将SLAM系统的不同模块分离,从而减少计算负荷,具有高效运行、易于实现和扩展的优势。然而,松耦合无法最大化利用每个传感器的优势。相比之下,紧耦合通过在一个目标函数中优化多种观测因子,如LiDAR、IMU、视觉和回环检测等,在复杂场景下表现出更高的精度和鲁棒性,因此在多传感器融合中更受欢迎。

紧耦合可分为基于滤波和图优化的方法。滤波方法通过构建基于传感器观测的状态模型和测量模型实现融合,能够在充分利用每个LiDAR扫描帧的同时取得良好的实时性能。然而,滤波方法不考虑回环检测约束,在大规模场景中误差累积相对明显。图优化通常将观测因子表达为因子图,并将其描述为一个MAP(最大后验估计)问题进行优化。图优化在抑制误差累积方面表现更好,但计算量大,且需要使用关键帧来实现实时操作。关键帧意味着需要丢弃许多LiDAR扫描帧,可能会导致信息丢失。

从理论上讲,传感器类型越多,SLAM系统能够利用的信息就越丰富,精度和鲁棒性也会越高。然而,传感器种类越多,SLAM系统也会越复杂且扩展性越差。如何表征不同传感器数据的质量?如何自适应地检测融合系统中的错误观测并调整不同观测类型的权重?以及使用哪种融合机制?这些都是需要解决的核心问题。

资源

自动驾驶及定位相关分享

【点云论文速读】基于激光雷达的里程计及3D点云地图中的定位方法

自动驾驶中基于光流的运动物体检测

基于语义分割的相机外参标定

综述:用于自动驾驶的全景鱼眼相机的理论模型和感知介绍

高速场景下自动驾驶车辆定位方法综述

Patchwork++:基于点云的快速、稳健的地面分割方法

PaGO-LOAM:基于地面优化的激光雷达里程计

多模态路沿检测与滤波方法

多个激光雷达同时校准、定位和建图的框架

动态的城市环境中杆状物的提取建图与长期定位

非重复型扫描激光雷达的运动畸变矫正

快速紧耦合的稀疏直接雷达-惯性-视觉里程计

基于相机和低分辨率激光雷达的三维车辆检测

用于三维点云语义分割的标注工具和城市数据集

ROS2入门之基本介绍

固态激光雷达和相机系统的自动标定







请到「今天看啥」查看全文