SLAM论文翻译(1) - LeGO-LOAM: Lightweight and Ground-OptimizedLidar Odometry and Mapping on Variab
目录
1 引言
2 系统硬件
3 轻型激光雷达里程计和建图
A 系统概述
B 分割
C 特征提取
D Lidar里程计
E Lidar建图
四 实验
A 小规模UGV测试
B 大规模UGV测试
C 基准测试结果
D 使用KITTI数据集的环路闭合测试
五 结论与讨论

摘要:
1 引言
在智能机器人的功能体系中,地图构建与状态估计被视为基础前提条件之一。通过结合视觉感知与激光雷达技术实现高精度实时SLAM系统(即同步定位与测绘)。尽管视觉方法在闭环检测方面具有显著优势;然而,在单一依赖视觉信息作为导航手段时;其对光照条件及视点变化的高度敏感性可能导致可靠性问题;而采用激光雷达则能在夜间环境下正常工作;得益于其高分辨率特性;在较大的光圈下可以有效捕捉远处环境的细致特征;因此;本文重点探讨如何利用三维激光雷达实现实时的状态估计与环境建模过程
常用迭代最近点(ICP)算法来解决这一问题。通过逐点比对两组扫描中的特征点,在此过程中不断更新变换参数直至达到收敛状态。当扫描数据规模较大时,在保持较高精度的同时降低计算复杂度一直是研究者们关注的重点方向。为了进一步提高算法性能,在现有基础之上又开发了多种改进版本。其中一种创新性方法是将匹配范围限定在局部平面内进行比对操作;另一种则是基于全局信息构建特征向量以提高匹配准确率;此外还有一种改进型算法采用了并行计算技术以显著缩短运行时间。
基于特征的匹配方法逐渐成为研究焦点...
LOAM方法被首次提出于文献中。该算法通过计算点在局部区域内的粗糙度来提取特征,并将具有较高粗糙度值的点定义为边缘特征;而将具有较低粗糙度值的点定义为平面特征。实时性能是通过将估计问题划分为两个单独的算法实现的:一种算法以高频运行并估计传感器速度精度较低;另一种算法则以低频运行但返回值精度较高运动估计。两种估计融合在一起生成一个单一运动估计结果,在高频和高精度上表现优异。LOAM的结果精度仅基于KITTI里程计基准站点上的激光雷达估计方法获得
在本研究中,我们的目标是通过配备3D激光雷达为地面车辆提供可靠且实时的六自由度姿态估计,一种能够在小型嵌入式系统中高效实现的方法.鉴于多个因素,这一任务并非简单.许多无人地面车辆(UGVs)因尺寸受限而缺乏悬挂系统或强大计算单元.在复杂地形中经常面临不稳定的行驶状态,导致扫描数据失真.此外,由于大运动范围受限,两次连续扫描间难以建立可靠的特征对应关系.最后,来自3D激光雷达的大批量三维点云数据在有限的车载计算能力下难以实现实时处理.
当我们对这类任务进行LOAM时,当UGV运行时具有平滑运动和稳定特征,并有足够的计算资源支持时,我们可以得到低漂移运动估计。然而,当资源有限时,LOAM的性能会下降。由于需要计算稠密三维点云中每个点的粗糙度,轻量级嵌入式系统的特征提取的更新频率不能始终跟上传感器的更新频率。UGV在嘈杂环境中的运行也给LOAM带来了挑战。由于UGV上激光雷达的安装位置通常接近地面,来自地面的传感器噪声可能是持续存在的。例如,从草地返回的范围可能会导致较高的粗糙度值。因此,可以从这些点提取不可靠的边缘特征。同样,边缘或平面特征也可以从树叶返回的点中提取。这些特征对于扫描匹配来说通常是不可靠的,因为在连续的两次扫描中可能看不到相同的草叶或叶子。使用这些特性可能导致不准确的匹配和较大的漂移。 因此,我们提出了一种轻量级和地面优化的LOAM (LeGO-LOAM),用于复杂环境和可变地形中的UGV位姿估计。LeGO-LOAM是轻量级的,因为实时位姿估计和映射可以在嵌入式系统上实现。点云分割是在地面分离后丢弃可能代表不可靠特征的点。LeGO-LOAM也是地面优化的,因为我们引入了两步优化的姿态估计。在第一步中,从地面提取的平面特征被用来获得

。在第二步中,通过匹配从分割点云中提取的边缘特征来获得变换

其他部分。我们集成了一种执行循环闭合的能力来抵消运动估计产生的漂移。本文的其他部分结构安排如下:第一部分概述了实验系统的设计原理;第二部分详细描述了实验中使用的硬件设备;第三部分深入阐述了提出的方法细节;第四节则展示了在不同室外环境下进行的一系列实验结果。
2 系统硬件
基于Velodyne VLP-16和HDL-64E三维激光雷达的数据集经过验证本文所提出的框架的有效性
3 轻型激光雷达里程计和建图
A 系统概述
图1简述了所提出的框架的主要结构。该系统通过三维激光雷达获取输入数据,并基于此计算出6自由度的位姿估计。系统总体分为五个功能模块:第一个模块负责对单个扫描进行点云分割;随后将分割得到的点云被送至特征提取模块;接着,在激光雷达测程阶段利用前一模块提取的关键特征点进行帧间里程计计算;这些特征随后被纳入激光雷达构建的地图中,并实现对全局点云数据的整合;最后,在变换积分阶段将激光雷达所得里程计结果与建图中的位姿估计相结合输出最终结果。与现有的广义LOAM框架相比,所提出的系统旨在提升地面移动设备在定位精度和效率方面的性能。以下将详细阐述各组件的具体实现过程

图1:LeGO-LOAM硬件及系统概述
B 分割
设

为时刻 t 获取的点云,其中

是

中的一个点。

首先将点投射至距离图像上。该图具有分辨率1800 \times 16这一特点,并且其中VLP-16系统在水平和垂直方向上的角度分辨率分别为0.2^\circ和2^\circ等参数设置决定了其空间定位精度特性。
在Pt集合中每个有效点pi均对应于范围图像中唯一的一个像素。

相关的范围值

表示从对应点

到传感器所测量的欧氏空间距离。鉴于斜坡地形普遍存在于多种自然和人工环境之中,我们无需假设地面呈现平滑状态即认为其平坦程度一致。在分割操作之前对距离图像进行列向量定位评估时,则等同于完成地平面估计这一过程。经过上述处理后,在所得结果中被确定为接触面点的部分将不再参与后续的区域划分步骤。
由于树冠结构较为复杂且容易受到环境因素影响,在实际应用过程中难以保证两次扫描间同一片树叶会重复出现以形成稳定且可靠的特征描述.
图2展示了原始与分割后的对比结果:原始空间网格节点密度较高但部分节点由于植被覆盖而难以被有效识别;而经过区域划分后的节点分布更加均匀且各区域间的过渡更为自然.
在此处理阶段结束后 我们将筛选出关键点位(如图2(b)所示 包括但不限于树干节点及接触点 以便后续分析 这些关键点位将被精确定位并记录于范围图像中 每个关键点位均包含以下三个重要属性:其所属类型标记(即接地点或分割线) 其空间位置信息(通过二维坐标确定)以及其测量值数据(用于后续计算) 这些参数将被整合到后续分析模块中使用

在噪声环境下进行的特征提取过程(如图2所示)。原始点云显示于图(a)中。分割后的剩余点即为上一步骤中未被处理的点。在(c)图中,蓝色与黄色标记分别对应于Fe与Fp中的边缘和平面特性;而在(d)图中,则以绿色与粉色标记分别标识出Fe与Fp中的边缘特性和平面特性。
C 特征提取
与LOAM采用的方法相仿的是特征提取的过程。但我们并非直接从原始点云获取特征信息而是基于分割后的结果进行进一步处理

为了在多个方向上均匀提取特征, 我们将距离图象水平划分为若干相等的部分. 接着, 在每个子图象中对每行点的不平滑程度参数c进行排序. 类似于LOAM的方法, 我们采用了一定的阈值

来区分不同类型的特征。我们称c大于

为边特征的点,称c小于

代表平面特征的点。接着从子图像的每一行中首先选择具有最高c值的部分;然后排除所有属于地面的部分。

边缘特征点。
采用同样的方法选取c最小的

个平面特征点,这些特征点可以标记为接地点,也可以标记为分割点。设

和

由所有子图像的所有细节特征及其形态信息组成。这些细节特征可见于图2(d)。接着,在每个子图像中逐行分析后筛选出具有最高分类能力的c值,并计算其对应的分类准确率

边缘特性不具备地表特征的属性。同样的做法也适用于从每个子图像的每一行中系统地提取出具有最小c值的一组特征向量。

个平面特征,这些特征必须是接地点。设

和

是这个过程中所有边和面特征的集合。这里,我们有

和

。

和

该区域的特征如图2(c)所示。在本文研究范围内将360度视角下的图像划分为六个子区域。每个子区域的分辨率设定为300×16像素。

,

,

和

分别为2,4,40和80。
D Lidar里程计
激光雷达里程计模块用于计算两次连续扫描之间的传感器运动。两个扫描之间的转换是通过完成点到边缘和点到平面的扫描匹配过程来实现的。换句话说,在先前扫描中提取了特征集

和

中找到

和

中间点的对应属性。为了简洁起见,在LOAM中找到查找这些对应关系的具体步骤。
然而,我们注意到可以做一些改变来提高特征匹配的准确性和效率:
1)标签匹配:由于

和

中的每个特征都是在分割后用其标签编码的,所以我们只能找到

和

中具有相同标签的对应关系。对于

中的平面特征,只有在

中标记为接地点的点用于寻找平面块作为对应。对于

中的边缘特征,其对应的边缘线在分段聚类中的

在其中发现。借助此方法发现配对关系,从而提高匹配精度。换言之,在两次扫描期间更容易发现同一对象的匹配对应。这一过程也能缩减潜在候选人的通信量。
2)双阶段L-M优化:在LOAM框架内,在当前扫描边缘与平面特征点之间及其与前一时刻对应关系的一系列非线性表达式被整合为一个综合距离指标。通过应用Levenberg-Marquardt (L-M)算法求解两个连续扫描间的最小距离变换。本文提出了一种双阶段Levenberg-Marquardt优化方案以实现最优变换

分为两个步骤:(1)通过匹配

中的平面特征及其在

中的对应关系来估计

,(2)然后使用

中的边缘特征及其在

中的对应关系来估计剩余的

,同时以

作为约束。需要注意的是,虽然

其结果也体现在第一个优化步骤中。然而,在第二个阶段中这些信息未被应用于后续阶段。最终,在这一系列操作后我们能够通过融合处理获得更加稳定的结果。这些信息有助于实现整体目标

和

,识别两次连续扫描之间的6自由度变换。采用我们所提出的方法进行两步优化后发现,在计算时间减少了约35%的情况下(经实验验证),仍能保持相近的精度水平。
E Lidar建图
激光雷达映射模块将

中的特征匹配到周围的点云图

,以进一步细化位姿变换,但运行效率不高。随后再次应用 Levenberg-Marquardt (L-M) 方法获得最终变换结果。关于具体的匹配与优化流程,请参考LOAM的相关说明。
LeGO-LOAM的核心区别在于其对最终点云数据的组织方式。我们的方法并非以单一的点云形式存在,而是通过组织各个独立的特征集合来实现数据表示。

。设

为保存的集合所有以前的特征集。在

中的每个特征集也与进行扫描时传感器的位姿相关联。那么

可以通过两种方式从

得到。
在第一种方法中,

基于传感器视场中的特定特征集可以获得数据结果。为了简化操作过程,在当前位置100米范围内选取相关的传感器位姿信息作为候选集合。随后对获取到的候选集合进行处理,并将其整合到单一周围的映射模型中。

中。此映射选择技术类似于LOAM中使用的方法。
我们还可以将姿态图的SLAM技术集成到LeGO-LOAM中。每个特征集中的传感器位姿将表示为位姿图中的一个节点。

此节点可视为其传感器数据采集过程。鉴于激光雷达映射模块的位置姿态估计偏差极小,在短时间内可假定无位置姿态变化。进而可推断

可以通过选择最近的一组特征集来形成,即


,其中 k 定义

的大小。然后,可以使用 L-M 优化后得到的转换添加新节点与

系统中所选择节点间的空间关系可以通过执行环路闭合检测进一步消除该模块的漂移现象。当在当前特性和历史特性间实现匹配时,则会添加新的几何约束条件。随后将姿态图数据发送至优化模块以更新传感器的姿态估计值。需要注意的是,在本论文第4节(D)部分仅采用了此方法用于构建周围环境的地图模型。
四 实验
我们目前进行了系列实验,并分别从定性和定量角度比较了两种竞争算法(LOAM 和 LeGO-LOAM),其中一种是基于 C++ 编程语言开发的,并在 Ubuntu Linux 1.18 系统上部署了 ROS 机器人操作系统。这些算法分别采用 Jetson TX2 和 Cortex-A57 硬件平台进行测试,在不同的硬件平台上也进行了对比分析——包括搭载了 i7-4710MQ 处理器的普通笔记本电脑以及 Jetson 平台——并均运行于相同的操作系统环境。
A 小规模UGV测试
在被植被覆盖的户外环境中, 我们实现了机器人实现自主驾驶任务. 我们首先通过实验比较了在此环境下不同特征提取方法的效果. 通过对比分析, 在同一扫描数据中提取出的边缘和表面特性如图4所示. 这些特性将被第III节所述的方法发送至激光雷达映射模块进行处理.

在图4(d)中可以看出,在对点云数据进行分割处理后发现其特征数量显著减少。具体而言,在树叶区域获取到的大批数据因多次扫描过程中的不稳定性而被舍弃了(许多来自树叶区域的点被舍弃),这主要是因为这些区域中的特征难以维持稳定性这一特性所导致的结果。值得注意的是,在Grass区域返回的数据不仅具有较大的噪声(评估结果显示出较高的粗糙度值),而且还会严重影响后续计算精度。由此可知,在这些区域中提取土壤信息时不可避免地会受到边缘特征的影响(如图4(c)所示)。

图4:在植被覆盖的室外环境中,利用两种不同的激光雷达测距与测绘方案采集了边缘和平面特征,并将其分别标注为绿色与粉红色;其中LOAM方法获取到对应的编号(b)与(c)的空间边缘与平面特征;而LeGO-LOAM方法获取到对应的编号(d)与(e)的空间边缘与平面特征;标签(i)代表树体、标签(ii)代表石墙、标签(iii)代表机器人
然而,在LOAM算法中调节提取边缘和平面特征的粗糙度阈值cth的过程并非没有风险。尽管我们可以降低cth以减少特征的数量,并通过这一操作去除杂草和树叶中的不稳定性特征点云数据集的生成效果会受到影响。这种方法的改变会导致更差的结果。例如,在进行此类调节后,在较为干净的环境中可能会出现无法捕获足够稳定边缘信息的情况。同样地,在某些特定条件下(如机器人进入较为干净的环境),这种调节策略可能导致有用的边缘特征求取不足。此外,在某些情况下(如减小cth),算法可能会在较干净环境中无法有效捕获足够的平面特征信息。在此前的所有实验中,我们始终采用了相同的cth参数设置。

如图5所示,在图4(a)中展示的地形景观上分布着LOAM与乐高-LOAM地图。(a)中标注的白色箭头所指的树代表同一棵树。
为了对比两种方法的性能表现,在测试环境中进行了详细对比实验。为了模拟具有挑战性的潜在UGV作战场景,在仿真实验中进行了多组偏航姿态机动测试。值得注意的是,在实验初始化阶段,两种方法采用了相同的初始姿态设置。这些实验数据均来自单个惯性测量单元(IMU)采集,并且在本研究的所有实验中均采用该数据源进行建模与计算分析。经过60秒运行后获得了点云数据图(如图5所示)。由于动态环境中的不稳定性特征可能导致特征匹配错误,在LOAM算法运行过程中出现了轨迹分岔现象。图5(a)中标注了三棵白色箭头所指的对象均为同一树木,并通过对比分析可知,在两种里程计方法下完整的空间映射过程可参考视频附件中的相关内容

B 大规模UGV测试
接下来,在三组大规模数据集上对比LOAM与LeGO-LOAM算法表现情况,并将其统称为实验1至3
实验1:本实验旨在验证LOAM与LeGO-LOAM均可在城市环境中实现平稳且低漂移的姿态估计。为了确保系统的稳定性,在实验过程中我们尽力避免过激的偏航动作,并尽量避开那些仅凭有限稳定特征可到达的空旷地带。在整个数据采集过程中,机器人主要在平坦的道路表面移动运行。起始位置位于一个斜坡上(见图6(b)),机器人持续以1.35米/秒的速度匀速行驶807秒后返回至初始点
为了比较两种方法在位姿估计上的精度差异,在本研究中我们计算了两组位姿在平移与旋转上的差异,并在此基础上确定初始位置参数为空间原点[Ox,Oy,Oz,Oθx,Oθy,Oθz](单位均为毫米)。结果显示LOAM和LeGO-LOAM算法在不同硬件配置下均表现出稳定的低漂移特性(见表V)。其中,在Jetson平台上运行的LeGO-LOAM算法其生成的地图如图6(b)所示
2)实验二: 实验二与实验一在同一环境中运行但轨迹存在微小差异 如图7(a)所示 该人行道反映了LOAM容易失效的环境特征 人行道的一端有堵墙及一根柱子 这些结构中的几何特征较为稳定 而另一端则是一个开阔区域 覆盖着杂草树木等物体 这种复杂环境会导致LOAM的姿态估计出现偏差(如图7(b)和(d)所示)。LeGOLOAM则能有效规避这一问题:1)它未从被草覆盖的地面提取边缘几何特征 2)通过分割处理和去噪滤波去除杂草干扰 LOCOMAP与LeGOLOAM两种算法精度对比结果见表V所示 在本次实验中 LeGO-LOAM 的精度比 LOAM 高出一个数量级

在图6中展示了实验1和2的LeGO-LOAM结果。(c)区域的颜色变换反映了真实的地形高度变化。即在实验1中机器人起始位置位于斜坡上,则(b)区域的颜色变换无法反映真实的地形高度情况。

图7展示了实验2中LOAM在穿过史蒂文斯校园人行道上的失效情况(见图(a),最左侧为人行道起始处)。一端由建筑特征提供支撑,而另一端被杂草和树木覆盖。如果没有点云分割,则会导致提取不可靠边缘和平面特征。图(b)与图(d)显示LOAM通过人行道后出现失效现象。

图8:实验3 LeGO-LOAM映射结果。
实验3:该数据集源自一片森林中的徒步小径路段。该UGV以每秒一又四分之三米的速度匀速移动。经过约三十五分钟的持续移动后返回起始点。在这片区域中测量的最大高差约为19米。UGV分别在泥土覆盖的小路上、沥青铺就的道路以及被草皮覆盖的地面上移动。这些表面类型的代表性图像均可见于图8底部部分。道路至少一侧始终被树木或灌木覆盖。
为了检验LOAM在该环境中的准确性,我们首先进行了相关测试工作。实验中,所生成的地图由于两台计算机的位置不同而出现不一致现象,这可能导致定位误差较大。其定位精度数据表明,在Jetson平台上为69.40米和平移角度27.38度,而在笔记本电脑上为62.11米和平移角度8.50度左右。图9(a)、(b)展示了基于两种硬件布置进行的定位轨迹测试结果
在对所用数据集进行应用时
C 基准测试结果
我们对比了不同方法在表II中的特征提取结果。具体而言,在每个数据集上平均每次扫描所得的特征内容超过10次实验次数。在完成点云分割处理后,在后续分析中我们统一采用该算法输出的结果作为基准进行对比研究。

、

、

和

集合,LeGO-LOAM需要处理的特征数量分别减少了至少29%、40%、68%和72%。

图9:LOAM和LeGO-LOAM在10个试验、2台计算机上使用实验3数据集生成的路径。

2)迭代次数比较: 采用本文提出的方法对两步L-M优化进行了应用(见表III)。随后我们将原有的L-M优化与LeGO-LOAM进行了结合。这表明我们最小化了边缘和平面特征之间的距离函数。接着,在第二步中我们对LeGO-LOAM应用了两步L-M优化:首先,在Fp中的平面特征得到了相应的优化处理;其次,在后续步骤中进一步提高了算法的收敛速度。

; 2) Fe中的边缘特征得到

记录L-M方法完成一次扫描后的平均迭代次数(以完成一次扫描后终止时的平均值为基础),以便于比较。当采用两步优化策略时,在实验1和实验2中第一步优化均经过两次迭代即可完成。尽管step-2优化的迭代次数与原始L-M方法的数量相近(两者均在相同或相近范围内),但其处理的有效特征显著减少(具体数据见下文)。结果显示,在采用两步L-M优化策略后(如表IV所示),激光雷达测程的时间减少了约34%至48%之间。两步优化方案的时间消耗数据如表IV所示。
对比: LOAM 和 LeGO-LOAM 在两台计算机上的各个模块运行时间详细列出于表 IV 中。基于所提出的方法,在 LeGO-LOAM 中特征提取和激光雷达测程模块的运行时间降低了量级。请注意这些模块在 LOAM 中 Jetson 上的平均时间为每个均超过 100ms。结果是由于 LOAM 在嵌入式系统上的实时性能无法实现而导致许多扫描被跳过。当采用 LeGO-LOOM 时 激光雷达映射的时间至少减少了 60%
4)位姿误差对比:在所有实验中将初始位姿设定为[0 0 0 0 0 0]后,在所得结果中对最终姿态与起始姿态的差异用于计算相对位置估计误差。其中旋转误差(以度表示)和移动误差(以米表示)记录于表V中。该方法针对两台计算机的两种方法进行了验证,并基于所提出的框架设计的LeGO-LOAM系统能够在较短时间内实现与现有方法相当甚至更优的位置估计精度。
D 使用KITTI数据集的环路闭合测试
我们将LeGO-LOAM应用于KITTI数据集。因为LOAM在其嵌入式系统中的运行效率仅为实时速度的10%,所以我们专注于研究其在嵌入式系统中的实时应用潜力,并探讨其中所涉及的行程长度足以要求采用完整的SLAM解决方案。
在Jetson平台中采用序列00号的LeGO-LOAM算法所得结果如图10所示。为了在Jetson平台上实现实时性能所需,在HDL-64E扫描数据的基础上选取与第三节中用于VLP-16算法相同范围的空间区域进行采样操作。即每次扫描中约75%的数据点在处理前被排除了。在此基础上引入ICP算法以施加姿态图节点间的约束关系,并基于优化后的姿态图对传感器的位置和环境进行校准工作。进一步的研究可以在视频附件中找到更多的循环闭合测试案例
五 结论与讨论
我们开发了LeGO-LOAM这一激光雷达里程测量与映射方法,并对其进行了优化技术集成。该系统旨在实现UGV在复杂环境中的实时姿态估计。首先具备轻量化优势是因为它适合嵌入式系统且能实现实时性能。通过地面优化实现了对地面特征的有效识别与处理。同时剔除了不具价值的关键点以提高数据质量。具体而言采用分步应用改进型L-M算法来分别计算姿态变换的不同分量。为了验证该方法的有效性我们采用一系列室外环境下的UGV数据集作为实验样本进行验证评估。实验结果表明在精度方面LeGO-LOAM表现不俗甚至略胜一筹并且其计算效率较现有技术有明显提升。
尽管该算法主要针对地面车辆的位姿估计进行了优化设计(...),然而其潜在的应用领域不仅限于这类场景。例如用于无人机(包括)的情况也有可能实现,并稍作调整以适应不同需求。当我们将其应用于无人机时(...),无需依赖扫描数据中的地面信息。点云数据可以直接分割成独立区域而不必依赖地面信息提取

,

和

的选择,特征提取过程是相同的。不是从标记为接地点的点中提取

的平面特征,而是从所有分割的点中选择

其中的关键特征在于随后采用传统的L-M算法来计算两次扫描之间的转换而非采用两阶段优化策略尽管这些调整会导致计算时间有所增加但该算法仍保持高效性这是因为由于分段处理后在复杂且噪声严重的室外环境中能有效地过滤掉大量无关数据通过分段处理得到的特征估计精度有望得到提升值得注意的是 在长时间运行中持续进行闭环校正使得该算法特别适合应用于持续定位场景


图10: LeGO-LOAM, KITTI数据集循环闭合评估中采用基于Jetson平台的实现方法。通过颜色变化可反映高程变化情况。

