我们提出了轻量级和地面优化的里程计和建图方法,LeGO-LOAM,估计地面无人车的实时六自由度位置。LeGO-LOAM它是轻量级的,因为它可以在低功耗嵌入式系统中实现实时位置估计。LeGO-LOAM是是的,因为它利用了地面在分割和优化步骤中的存在。我们首先使用点云分割来过滤噪声,然后提取特征来获得独特的平面和边缘特征。然后,一个利用平面和边缘特征来解决连续扫描之间六自由度变化的不同重量。我们比较了从地面车辆可变地形环境中收集的数据集LeGO-LOAM最先进的方法LOAM性能,结果显示LeGO-LOAM在降低计算成本的同时达到相似或更好的精度。我们还将LeGO-LOAM集成到一个SLAM在框架中,用于消除漂移引起的位置估计误差KITTI测试了数据集。
引言
地图构建和状态估计是智能机器人能力中最基本的先决条件之一。以视觉和激光雷达为基础,实现实时6自由度的定位和构图(SLAM)付出了巨大的努力。虽然基于视觉的方法在闭环检测中有优势,但如果用作唯一的导航传感器,它们对光和视角变化的敏感性可能会使这种能力不可靠。另一方面,基于激光雷达的方法光雷达的方法也工作,许多三维激光雷达的高分辨率允许远程捕捉环境的细节。因此,本文重点利用三维激光雷达支持实时状态估计和构图。
在激光雷达扫描之间寻找两次变换的典型方法是迭代最新点(ICP) [1]。通过逐步寻找相应的关系,ICP在满足停止标准之前,迭代对齐两组点。当扫描包含大量点时,ICP压力可能需要过高的计算成本。人们提出了各种提高效率和准确性的方法ICP变体[2]。[3]引入点-平面ICP它将点与局部平面匹配。Generalized-ICP从两次扫描中提出了一种匹配局部平面的方法。此外,几个ICP并行计算变体以提高效率[5]–[8]。
基于特征的匹配方法正在吸引更多的关注,因为它们需要更少的计算资源来从环境中提取代表性特征。这些特征应适用于有效匹配,并保持视角不变性。许多检测器,例如点特征直方图(PFH) 视点特征直方图[9](VFH) [10]使用简单有效的技术从点云中提取这些特征已被提出。在[11]中介绍了一种用途Kanade-Tomasi角点检测器从点云中提取一般特征。讨论了从密集点云中提取线和平面特征的框架。
还提出了点云配准算法的许多特征。[13]和[14]在局部聚类中提出了曲率计的关键点选择算法。选定的关键点用于匹配和位置识别。[15]从高曲率点中选择匹配和位置识别的特征,将点云投影到距离图像并分析深度值的二阶导数。假设环境由平面组成,在[16]中提出了基于平面的配准算法。户外环境,如森林,可能会限制这种方法的应用。在[17]中提出了一种特殊的方法Velodyne激光雷达设计collar line segments(CLS)方法。CLS用扫描的两个连续的射线点随机生成线。因此,生成两个线云并用于配准。然而,这种方法受到了随机生成线的挑战。文献[18]提出了基于分割的配准算法。SegMatch将分割应用于点云。然后根据特征值和形状直方图计算每个片段的特征向量。用于匹配两次扫描的片段的随机森林算法。虽然这种方法可以用于在线位置估计,但它只能提供超过1Hz定位更新左右频率。
文献[19]和[20]提出了一种低漂移的实时激光雷达里成绩和建图方法(LOAM)。(LOAM)将点特征与边缘/平面扫描匹配,以找到扫描之间的相应关系。通过计算一个点在其局部区域的粗糙度来提取特征。具有高粗糙度值的点被选为边缘特征。同样,粗糙度低的点被选为平面特征。通过将估计问题新颖地分为两种独立算法来实现实时性能。传感器速度由高频运行,精度低。另一种算法运行频率低但返回高精度的运动估计结果。这两产生高频、高精度的单一运动估计,这两种估计结合在一起。LOAM最终的精度是KITTI激光雷达估计方法在里程计评分榜上获得的最佳结果[21]。
在这项工作中,我们以一种有效实现小规模嵌入式系统的方式为装备提供3D激光雷达地面车辆提供可靠实时的六自由度位置估计。由于几个原因,这样的任务并非微不足道。由于尺寸有限,许多无人地面车辆没有悬架或强大的计算单元。在多变的地形上行驶的小型无人驾驶车辆往往会遇到不平滑的运动,因此,收集的数据往往会发生变化。在覆盖范围重叠有限的大型运动中,很难在两次连续扫描之间找到可靠的特征。此外,从三维激光雷达接收到的大量点对有限机载计算资源的实时处理提出了挑战。 当我们为这样的任务实现时LOAM时,当UGV当我们有足够的计算资源支持时,我们可以得到低漂移的运动估计。。同样,边缘或平面特征也可以从叶片返回点中提取。这些特征通常不可靠,因为相同的草或叶子可能不会出现在两个连续的扫描中。使用这些特征可能会导致不准确的准确性和大的漂移。
因此,我们提出了轻量级和地面优化LOAM(LeGO-LOAM),在复杂多变的地形环境中使用UGV估计位置。LeGO-LOAM它是轻量级的,因为嵌入式系统可以实现实时位置估计和构图。执行点云分割是为了在地面分离后丢弃可能代表不可靠特征的点。LeGO-LOAM也是地面优化,因为我们引入了两步优化的位置估计。第一步是从地面提取的平面特征 [ t z , θ roll , θ pitch ] \left[t_{z}, \theta_{\text {roll }}, \theta_{\text {pitch }}\right] [tz,θroll,θpitch ]。在第二步中,剩余的变换 [ t x , t y , θ y a w ] \left[t_{x}, t_{y}, \theta_{y a w}\right] [tx,ty,θyaw] 通过匹配从分割点云提取的边缘特征来获得。我们还集成了执行闭环检测的能力,以校正运动估计漂移。
系统硬件
略
轻量级的雷达里程计与建图
该系统接收来自三维激光雷达的输入,并输出6自由度位姿估计。整个系统分为
图1
LeGO-LOAM 的硬件和系统概述
令 P t = { p 1 , p 2 , … , p n } P_{t}=\left\{p_{1}, p_{2}, \ldots, p_{n}\right\} Pt={
p1,p2,…,pn}是在 t t t时刻获取的点云,其中 p i p_{i} pi是 P t P_t Pt中的一个点。 P t P_t Pt首先投影到一幅距离图像上。投影距离图像的分辨率是1800×16,因为VLP-16的水平和垂直角分辨率分别为 0.2 ° 0.2\degree 0.2°和 2 ° 2\degree 2°,每个 P t P_t Pt中的有效点 p i p_i pi由距离图像中唯一的像素来表示。距离值 r i r_i ri表示从相应点 p i p_i pi到传感器的欧几里得距离。由于斜坡地形在任何环境下都很常见,我们不假设地面是平坦的。在分割之前,对距离图像进行列式评估(可视为
距离图像就是深度图
然后,将基于图像的分割方法[23]应用于距离图像,以将点分组为许多簇(
图2
噪声环境中scan的特征提取过程。原始点云如(a)所示。在(b)中,红色点标记为接地点。其余的点是分割后保留的点。在(c)中,蓝色和黄色点表示 F e F_{e} Fe和 F p F_{p} Fp中的边缘和平面特征。在(d)中,绿色和粉色点分别表示 F e \mathbb{F}_{e} Fe和中的边 F p \mathbb{F}_{p} Fp 缘和平面特征。
原始点云包括许多点,这些点是从可能产生不可靠特征的周围植被中获得的。
在这个过程之后,只有可能代表大物体的点(图2(b))例如树干和接地点被保留用于进一步处理。同时,只有这些点保存在距离图像中。我们还获取了每个点的3个属性:(1)它作为接地点或分割点的标签,(2)它在范围图像中的列和行索引,以及(3)它的范围值。这些属性将在以下模块中使用。
特征提取过程类似于[20]中使用的方法。然而,我们不是从原始点云提取特征,而是从地面点和分割点提取特征。让我们从距离图像的同一行中选择一组连续的点 S S S,各有一半的点在 p i p_{i} pi的两侧。在本文中,我们将 ∣ S ∣ |S| ∣S∣ 设置为10。使用在分割期间计算的距离值,我们可以评估 S S S 中点 p i p_i pi的粗糙度: c = 1 ∣ S ∣ ⋅ ∥ r i ∥ ∥ ∑ j ∈ S , j ≠ i ( r j − r i ) ∥ (1) c=\frac{1}{|S| \cdot\left\|r_{i}\right\|}\left\|\sum_{j \in S, j \neq i}\left(r_{j}-r_{i}\right)\right\|\tag{1} c=∣S∣⋅∥ri∥1∥∥∥∥∥∥j∈S,j=i∑(rj−ri)∥∥∥∥∥∥(1) 为了从各个方向均匀地提取特征,我们将距离图像水平分成几个相等的子图像。然后,我们根据粗糙度值 c c c对子图像每行中的点进行排序。类似于LOAM,我们使用距离阈值来区分不同类型的特征。我们称 c c c大于 c t h c_{t h} cth的点为边缘特征, c c c小于 c t h c_{t h} cth的点为平面特征。从子图像的每一行中选择不属于地面的具有最大 c c c值的边缘特征点 n F e n_{\mathbb{F}_{e}} nFe。以相同的方式选择具有最小 c c c值的其他特征点 n F p n_{\mathbb{F}_{p}} nFp,这些特征点可以被标记为地面点或分割点。