八种常用激光雷达和视觉SLAM算法的评估与比较

Posted Being_young

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了八种常用激光雷达和视觉SLAM算法的评估与比较相关的知识,希望对你有一定的参考价值。

文章:Evaluation and comparison of eight popular Lidar and Visual SLAM algorithms

作者:Bharath Garigipati, Nataliya Strokina, Reza Ghabcheloo

编辑:点云PCL

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

公众号致力于分享点云处理,SLAM,三维视觉,高精地图相关的文章与技术,欢迎各位加入我们,一起交流一起进步,有兴趣的可联系微信:920177957。本文来自点云PCL博主的分享,未经作者允许请勿转载,欢迎各位同学积极分享和交流。

摘要

在本文中评估了八种流行的开源3D激光雷达和视觉SLAM算法,即LOAM、Lego-LOAM、LIO-SAM、HDL Graph、ORB-SLAM3、Basalt VIO和SVO2。设计了室内和室外实验场景,以研究以下配置的影响:i)传感器安装位置的影响,ii)场景类型和振动的影响,iii)运动的影响(线速度和角速度的变化)。我们比较了它们在相对和绝对姿态误差方面的性能。提供了它们所需计算资源的比较。利用我们的多摄像机和多激光雷达室内和室外数据集,对结果进行了深入分析和讨论,并确定了环境情况下性能最佳的系统。希望我们的发现能够帮助人们根据目标环境选择适合他们需求的传感器和相应的SLAM算法组合。

主要贡献

本文的贡献如下:

  • 我们设计了室内和室外实验场景,系统地分析和比较了八种流行的激光雷达和视觉SLAM;

  • 我们的实验旨在根据传感器的安装位置、场景类型、震动以及传感器的线速度和角速度变化来评估和比较所选SLAM实现的性能。

  • 我们提供了所需计算资源的比较。将调查结果总结为一系列建议。

图1:用于室外数据采集的GIM机器,传感器安装在顶部

主要内容

参考图2展示选择要评估的SLAM算法,然后我们说明了评估目的相关的细节。

图2:SLAM系统的组件

A、 SLAM背景

3D SLAM系统的目标是估计机器人的6自由度姿态,同时使用输入传感器数据(如图像和点云)构建的新环境。典型的SLAM系统由两个主要组件组成:前端和后端(见图2)。前端处理输入的视觉传感器数据,从帧中提取有用的关键信息,然后用于机器人位姿的估计。此步骤通常称为数据关联。视觉SLAM前端接收摄像机图像,提取每个帧中的关键点,并跟踪它们以匹配帧之间的关键点。帧间一致的关键点称为地标。请注意在选择地标时可能存在其他限制。激光雷达SLAM的前端通常由三部分组成:(i)点云下采样以减少计算,(ii)通常基于点云体素的平滑度值的关键点提取以及(iii)扫描点云数据匹配,例如迭代最近点(ICP)的变体算法,以生成姿态变换的初始估计。为了减少定位误差,一些系统包括通过回环访问先前访问的位置来进行闭合环路。在激光雷达SLAM的情况下,地图通常表示为地标位置的稀疏信息或稠密点云表示。在视觉SLAM中,来自前端的初始姿态估计和地标关联在后端被用于执行机器人状态的最大后验估计。在激光雷达SLAM的情况下,算法使用点云扫描匹配的里程计,而不是地标关联的方式。激光雷达SLAM还可以在帧之间使用IMU集成。最近,随着G2O和GTSAM等库的可用性,最流行的后端方法是使用因子/姿态图进行优化。它允许用户集成多种传感器模态,以实现更稳健的状态估计,接下来我们进一步介绍了每个选定算法的细节。

B、 SLAM算法的选择

图3:选定的最先进SLAM算法及其测试功能

我们总共选择了八种SLAM和里程计算法来运行本文中的实验。它们是当前最先进的、广泛使用的公共可用系统之一,具有基于ROS的实现版本。算法分为四种基于激光雷达的算法和四种视觉算法,如图3所示,其中既有完整的SLAM算法,也有里程计类型的算法。它们之间的本质区别在于,里程计逐帧递增地执行其位姿估计,有时需要执行滑动窗口化局部优化,而全SLAM方法旨在通过包括用于检测重新访问的位置的实现回环闭合检测来保持全局一致性,以校正姿态估计中的误差。这在设计上使得全SLAM方法的计算量比里程计算法更大。在基于激光雷达的方法中,有两种全SLAM方法,包括LIO-SAM和 HDL graph SLAM ,它们具有回环闭合校正,此外使用了与LIO -SAM互补的IMU。使用的两种激光雷达里程计算法是LEGO-LOAM和基于原始LOAM的实现A-LOAM。我们使用了三种全SLAM视觉算法,包括SVO2、ORB SLAM3、Basalt VIO和Kimera VIO的里程计实现。

C、 算法概述

Lidar SLAM:在基于激光雷达的算法中,其中包括LOAM,因为它是许多流行的基于激光雷达SLAM系统的构建模块,包括LIO-SAM和LEGO-LOAM,这是一种经典激光雷达里程计算法,使用ICP的点对线和点对面变体来执行扫描点云数据的匹配里程计。LEGO-LOAM是我们测试的另一种激光雷达里程计,它与LOAM非常相似,但通过将点云拆分为边缘和平面特征来实现效率增益。该算法分别从平面特征(地面)提取高度、横滚和俯仰,从边缘特征提取X、Y坐标和偏航。基于激光雷达的全SLAM算法之一是HDL graph SLAM,这是一种基于因子图的方法,允许用户定义多个边缘约束,如GPS、IMU、地面平面检测和回环闭合。在初始扫描匹配之后,节点被添加到图结构中,用户选择该初始扫描匹配为ICP或NDT方法。LIO-SAM是我们测试的第二种全SLAM激光雷达技术,它通过因子图优化,利用紧耦合的IMU集成和激光雷达里程计来估计状态。

视觉SLAM:基于视觉的SLAM系统中的第一个是SVO2。与其他在前端使用关键点检测器的视觉SLAM算法不同,SVO2具有类似于直接视觉SLAM系统的前端。该方案估计是基于稀疏模型的图像对齐,使用局部强度梯度的方向来估计运动。与基于功能的系统相比,这使其前端速度更快。在基于特征的SLAM中,我们使用了ORB SLAM3,它被认为是当前最先进的视觉SLAM系统之一。它的前端由ORB特征检测器和描述子匹配组成,并通过其基于多地图数据关联DBoW2 pose-graph的回环在苛刻条件下提供了额外的鲁棒性。 

Basalt VIO 是我们使用的下一个基于特征的视觉惯导算法, Basalt VIO 恢复了在更一般的IMU预积分步骤中丢失的关键帧之间的IMU测量值的非线性。使用FAST特征和KLT跟踪器以及非线性因子生成的局部捆集调整估计在全局优化期间使用因子图进行优化。最后,开发了Kimera C++库中的Kimera视觉惯性里程计,以使用尺度语义SLAM执行环境的语义3D网格重建,其前端开始于使用KLT跟踪器跟踪新图像帧的Shi Tomasi角点,然后使用五点/三点RANSAC来求解关键帧之间的相对姿态,并在关键帧之间计算预集成的IMU测量值。地标、初始姿态估计和IMU预积分被用作因子图约束来生成最终状态估计。

实验描述

在本节中,我们描述了我们的设置和实验,以研究以下项目对所选SLAM实现的准确性和可靠性的影响和严重性:

  • 传感器的安装位置。

  • 场景类型和振动影响。

  • 传感器的线性和角速度变化。

在室外场景中,我们研究了所有三个项目的效果,对于室内场景,我们的实验侧重于(iii)。

A、 配置的传感器套件和计算

在本文中,两台激光雷达、两台立体相机和一台IMU用于图1中的传感器设置。Velodyne VLP-16是一台旋转16扫描激光雷达,垂直视场为30度;它提供2度的垂直分辨率和0.1至0.4度的水平分辨率,这取决于5至20Hz的旋转速度。第二个激光雷达是robosense Bpearl;它同样是一个旋转的激光雷达,具有更高的32条扫描线,具有90度的更宽垂直视场。分辨率为2.81度,水平分辨率为0.2至0.4度,取决于速度,其范围为10至20 Hz。两台激光雷达的最大射程均为100米,精度均为±3厘米。在这两款立体相机中,Intel Realsense T265是一款内置IMU的全局快门单目鱼眼相机,其基线为64毫米,视野为163度。第二个立体相机是滚动快门RGB相机,具有120mm的较大基线和60度和90度的垂直和水平视野。最后,使用的IMU是9轴Xsens Mti 300。

在实验期间,传感器数据被记录到Jetson Xavier NX模块上的ROS包文件中,在实验中,Velodyne VLP 16与ALOAM、LEGO-LOAM、HDL graph SLAM和LIO-SAM一起使用,将Realsense T265与 Basalt -VIO、SVO2和Kimera VIO一起使用。Kimera-VIO没有完美支持T265的超广角鱼眼模型,在户外实验中失败了。最后,我们使用了带有ORB SLAM3的ZED相机,作为初始测试的结果,我们发现这些传感器和算法的组合具有最佳的可能结果。我们在室内和室外实验中使用了相同的传感器套件。这些算法在4核8线程Intel i7 7700HQ CPU上运行。在我们的评估中,所有8个线程的最大容量被认为是100%。在运行时,总体使用率数据保存到一个文本文件中,稍后对其进行解析,以分离和计算与Falgorithms启动的进程相对应的使用率。

室外环境:室外试验在坦佩雷大学移动液压实验室进行。作为一个基本事实,我们使用了基于双天线RTK-GNSS、IMU和里程计定位。传感器组装在框架上,并使用Kalibr工具箱进行相机imu校准,使用LI Calib进行激光雷达imu校准。传感器框架安装在GIM机器的顶部,见图4。

图4:户外实验的传感器安装位置

室内环境:室内测试在坦佩雷大学的RoboLab Tampere进行,为了在这些轨迹中获得一致的预定义运动,我们将传感器杆安装在移动工业机器人(MIR)上,如图5所示。

图5:室内实验中使用的MiR机器人

这是一个运行机器人操作系统(ROS)的商用差速驱动移动机器人,通常用于在工业仓库空间内移动材料。通过其界面,MIR允许用户定义它将执行的路径;这对于设计和执行重复运动以测试SLAM算法是有用的。坦佩雷大学的机器人实验室配备了最先进的Optitrack运动捕捉系统,用于收集地面真值实况。它用于通过跟踪放置在MIR上的标记来收集地面真实轨迹。

B、 户外实验

设计了两个室外实验来研究上述i-iii效果:一组研究安装位置和场景类型的影响,第二组研究运动速度的影响。

不同的安装位置和场景类型(室外实验1):这些实验包含五个数据集,其中机器以八个回路的形状围绕移动液压实验室重复相同的轨迹,如图6所示。

图6:户外实验1:轨迹俯视图,用于测试各种安装位置和场景类型的效果

在每个测试中,传感器套件安装在机器的不同位置(图4中总共5个位置):1)在动臂下部,2)在动杆中部,3)在动臂高位,4)顶部安装在机舱框架上,5)侧面安装。这个实验允许我们场景地形的变化如何影响定位性能,以及在通过具有挑战性的环境后进行回环闭合的好处。我们还测试了对振动影响和传感器安装位置的灵敏度。轨迹包括沥青上的直线、砾石上的直线和砾石地形上的下坡路径。

线速度和角速度的变化(室外实验2):在本实验中测试了机器速度的快速变化对SLAM算法定位精度的影响。传感器运动会在来自激光雷达的累积点云中引入点云失真,并在图像中引入运动模糊,视觉SLAM前端中较慢的特征检测器可能会失去对地标的跟踪。该数据集是在与先前地形变化数据集的较短部分相同的位置收集的。GIM机器从起始位置S开始,如图7所示逆时针旋转。在这一单循环中,机器经历速度变化,如恒速、加速和制动,回环在开始处结束。

图7:室外实验2:测试线速度和角速度变化影响的轨迹俯视图

C、 室内实验

我们设计了三个实验来研究跟踪组件在各种情况下的鲁棒性和潜在漂移,即在方形、360度转弯的直线、静止和动态场景下的漂移。

方形回环(室内实验1):在第一个室内实验中,MiR被指定沿着一条方形路径,两米长的边连续循环五分钟,如图8所示,共72米。该数据集旨在观察在一个恒定回环中定位的可能漂移,该循环在正方形的每个角落具有平移直角转弯,这可能会对特征跟踪模块的能力产生潜在影响。Robolab测试区的四堵墙中有两堵是由玻璃制成的,可以看到大楼更大的大厅区域;这可能导致激光雷达光束的部分反射和由于玻璃前面的物体可能影响激光雷达SLAM性能而造成的遮挡。

图8:室内实验1:地面真实传感器轨迹

直线360度旋转(室内实验2):在第二个室内实验中,MiR沿直线向前移动,开始逆时针旋转,直到达到360度,然后返回旋转的开始位置。之后,它以直线返回起点,并在交替的转弯中以顺时针旋转重复运动,轨迹的俯视图见图9。

图9:室内实验2:Optitrack地面真实传感器轨迹

实验记录了五分钟,360度旋转意味着在点云中引起倾斜,并查看不同的激光雷达SLAM如何处理它。这些特征也离传感器更近,因为它在室内,导致快速移动的关键点、滚动快门失真和旋转过程中的运动模糊,这可能对视觉SLAM算法中较慢的特征跟踪器造成挑战。此外,在特征丢失的情况下,算法必须准确地重新定位。

动态场景(室内实验3):在第三次实验中,MiR机器人保持静止,但传感器前有移动物体,如托盘、椅子和人。实验记录了五分钟。该数据集允许通过测量生成位姿的漂移来测量动态对象如何影响SLAM估计的准确性。

实验结果

性能指标:为了评估性能,我们计算SLAM算法生成的轨迹与真值情况之间的误差,使用绝对姿势误差(APE)和相对姿势误差(RPE)的均方根(RMS)及其标准偏差(STD)。

表一:室外实验1:不同安装位置的绝对姿态误差(APE)的均方根(米)

室外实验:表I显示了SLAM算法生成的轨迹的APE RMS,与不同传感器安装位置的地面真实情况进行了比较(实验1如图6所示)。基于地面优化的LEGO-LOAM的精度随着传感器高度的增加而降低(即动臂高、顶部安装)。使用IMU的LIO SAM显示出1.142米的最佳APE,但当传感器安装在摇晃的吊杆上时,其性能会下降。基于ICP扫描点云匹配变体的LOAM在侧面安装位置具有最佳精度,可提供270度左右的最大无障碍视野。在动臂低位的所有视觉SLAM算法中,ORB SLAM3的误差最小,为1.563m。还可以看出,随着摄像机远离地面,整体视觉SLAM算法的准确性下降。在侧装位置,由于相机垂直于机器的运动,关键点移动很快,运动模糊很高。帧之间的数据关联几乎不可能,导致Basalt VIO和SVO2失败,但OBR SLAM3由于其更好的数据关联能力而得以重新调整,尽管误差很大。Realsense T265硬件在收集Top mount数据集期间出现故障,导致Basalt VIO和SVO2的估计值丢失。

表二:户外实验2:各种速度实验的绝对姿态误差(APE)的RMS和STD(单位:米)

在第二个实验中,对于不同的线性和角速度,HDL graph SLAM的误差最小,为0.845m,如表II所示。其环路闭合能力有助于保持估计值的准确性,ICP扫描数据匹配里程计算法LOAM表现良好,误差为1.072m,LEGO-LOAM的RMS APE为1.448m,因为吊杆处于吊杆中间位置,地面视野良好,由于初始化错误,LIO-SAM表现最差,误差为3.715m。ORB-SLAM3和Basalt VIO具有相似的误差,均优于激光雷达SLAM算法LIO SAM和LeGO LOAM。

表三:室内实验:相对于地面真实轨迹的相对姿态误差(RPE)和APE的RMS、STD,数值单位为米

室内实验:第一次室内实验(方形回环)的结果总结在表III中。在基于激光雷达的算法中,LOAM的相对姿态误差(RPE)最小,为0.030m,其次是LIO-SAM,在激光雷达SLAM算法中,其误差为0.0606m。视觉SLAM算法比激光雷达SLAM具有更好的RPE,Basalt VIO的误差最小,为0.008m。通过比较标准偏差,可以看出,平均而言,与视觉SLAM估计相比,激光雷达SLAM估计的噪声更大。可以通过APE解释估计的全局一致性。ORB SLAM3具有最佳的APE,表明其具有出色的回环闭合和全局优化能力。类似地,HDL graph SLAM的RPE结果最差,但APE结果相当。值得注意的是,三种基于激光雷达的算法LOAM、LEGO LOAM和LIO SAM的APE非常接近1.5米。SVO在该数据集中的表现优于以前的室外数据集,因为它的前端速度更快,有助于它在90度旋转的广场上更好地跟踪特征。

表三显示了中间第二个室内实验的RPE和APE,其轨迹如图9所示。视觉同时定位和建图算法在RPE中再次优于激光雷达同时定位和跟踪,其中Basalt VIO的均方根误差最小,为0.0084m,其次是SVO2,误差为0.086m。与使用计算成本较低的FAST探测器的性能最好的Basalt VIO相比,ORB SLAM3的ORB探测器前端速度较慢,在旋转过程中,ORB-SLAM3不断丢失特征,但能够重新定位,以通过其优越的环路闭合检测和子图合并实现可比的精度。使用IMU预积分和IMU点云去偏的LIO-SAM在RPE为0.0551m的激光雷达SLAM中误差最小。在最后的室内实验中,机器人是静止的,物体在视图中移动,因此我们使用累积距离和从起始位置的漂移作为度量,以比较SLAM估计的质量,如表III所示。基于激光雷达的算法中从起始点的漂移最小,并且它们优于除Kimera之外的所有基于视觉的算法。姿势图节点尚未在HDL graph SLAM中初始化,因为尚未超过所需的最小距离,将估计值保持为零。视觉算法ORB-SLAM3、Basalt VIO和SVO2已从起点漂移约0.23-0.36米,高于激光雷达SLAM,表明与激光雷达相比,相机的视野更小,移动物体的影响更大。激光雷达SLAM估计是准确的,但噪声较大,导致累积距离较高,尽管总体漂移较低。

表四:运行相同实验的算法的平均和峰值CPU使用率,占总可用CPU的百分比

计算资源:从表IV中我们可以看出,由于算法简单,激光雷达里程表算法LEGO LOAM和LOAM所需的CPU资源最少,分别为4.43%和6.63%。利用GTSAM和g2o的基于posegraph的方法LIO SAM和HDL graph SLAM的CPU利用率分别为21.4%和11.85%,LIO SAM的更高负载在峰值时几乎达到80%,这是由于执行了额外IMU计算。与ORB SLAM3、Basalt VIO和Kimera VIO中的其他探测方法相比,前端中的特征探测器的平均CPU使用率更高,可以观察到其影响。在所有户外实验中,具有顶部安装的激光雷达位置的LIO SAM最适合我们实验中使用的装载机类型的机器,其APE的最小RMS为1.142m。稳定性对于依赖IMU的LIO SAM更为重要,当传感器固定在动臂上的装载机铲斗上时,其性能会下降,动臂在移动时振动很大。LeGO LOAM是最有效的,同时当传感器距离地面较近,APE为1.316米时,也具有相对良好的性能。对于任意激光雷达位置,较简单的LOAM具有合理的结果,因此当传感器位置不固定时,它是一个合适的选择。当摄像机离地面较近时,视觉算法表现得更好。

总结

在本文中,我们对八种最流行的最先进的视觉和激光雷达SLAM方法进行了系统评估。我们使用我们特别设计的传感器套件对它们进行了测试,该套件包括不同类型的视觉传感器,使我们能够同时从中获取数据。实验在室外和室内进行,我们研究了传感器安装位置、场景类型、振动影响以及线速度和角速度变化的影响。在激光雷达SLAM方法中,LIO SLAM使用额外的IMU信息,在单次运行中产生的误差最小。LEGO-LOAM适用于轻型应用,但传感器安装在离地面较近的位置。LOAM还可以用于环境不太复杂的轻量级应用程序。比较视觉SLAM方法,ORB SLAM3在动态和困难的环境中表现良好。Basalt VIO能更好地处理速度的快速变化。得益于性能更快的前端,SVO可以更好地处理快速运动。总的来说,由于激光雷达的环境视野大,因此其在室外和动态物体中的表现始终更好。

更多详细内容请加入知识星球查看原文。

资源

自动驾驶及定位相关分享

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ROS2入门之基本介绍

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

激光雷达+GPS+IMU+轮速计的传感器融合定位方案

基于稀疏语义视觉特征的道路场景的建图与定位

自动驾驶中基于激光雷达的车辆道路和人行道实时检测(代码开源)

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

更多文章可查看:点云学习历史文章大汇总

SLAM及AR相关分享

TOF相机原理介绍

TOF飞行时间深度相机介绍

结构化PLP-SLAM:单目、RGB-D和双目相机使用点线面的高效稀疏建图与定位方案

开源又优化的F-LOAM方案:基于优化的SC-F-LOAM

【开源方案共享】ORB-SLAM3开源啦!

【论文速读】AVP-SLAM:自动泊车系统中的语义SLAM

【点云论文速读】StructSLAM:结构化线特征SLAM

SLAM和AR综述

常用的3D深度相机

AR设备单目视觉惯导SLAM算法综述与评价

SLAM综述(4)激光与视觉融合SLAM

Kimera实时重建的语义SLAM系统

SLAM综述(3)-视觉与惯导,视觉与深度学习SLAM

易扩展的SLAM框架-OpenVSLAM

高翔:非结构化道路激光SLAM中的挑战

基于鱼眼相机的SLAM方法介绍

如果你对本文感兴趣,请后台发送“知识星球”获取二维码,务必按照“姓名+学校/公司+研究方向”备注加入免费知识星球,免费下载pdf文档,和更多热爱分享的小伙伴一起交流吧!

以上内容如有错误请留言评论,欢迎指正交流。如有侵权,请联系删除

扫描二维码

                   关注我们

让我们一起分享一起学习吧!期待有想法,乐于分享的小伙伴加入免费星球注入爱分享的新鲜活力。分享的主题包含但不限于三维视觉,点云,高精地图,自动驾驶,以及机器人等相关的领域。

分享及合作方式:微信“920177957”(需要按要求备注) 联系邮箱:dianyunpcl@163.com,欢迎企业来联系公众号展开合作。

点一下“在看”你会更好看耶

以上是关于八种常用激光雷达和视觉SLAM算法的评估与比较的主要内容,如果未能解决你的问题,请参考以下文章

激光雷达导航技术的优势都有哪些?请说具体一点!

激光雷达SLAM包括以下几种方案:

激光雷达SLAM算法

autoware使用激光雷达进行目标检测

激光slam导航轨迹怎么看

激光SLAM技术总结3D激光SLAM算法原理