RDC-SLAM:基于3D激光雷达的实时分布式协同SLAM系统

RDC-SLAM:基于3D激光雷达的实时分布式协同SLAM系统

摘要:

为了提高3D激光雷达映射的准确性和效率,探索大型和复杂的区域时已经考虑了使用实时协同SLAM。为了合并来自多个机器人的个体地图,至关重要的是识别共同区域并获得它们之间的替代匹配关系。然而,数据传输尤其是在带宽窄、距离有限的稀疏网络中是上述问题的一个具有挑战性的问题。由于分布方式适合于有限的通信,我们提出了一种3D实时分布式协同SLAM的通用框架,以填补领域的空白。假设每个机器人可以与其他机器人进行通信,所提出的框架由四个关键模块组成:位置识别、相对姿态估计、分布式图形优化和通信。同时,我们通过集成最先进的组件集成开发了一个完整的实时分布式协同SLAM系统,称为RDC-SLAM。为了提高计算和数据传输效率,使用基于描述符的注册代替传统的点云匹配。开发了一种基于强度的描述符,用于进行位置识别和获得替代匹配关系,而基于特征值的段描述符则用于进一步改进这些替代匹配之间的相对姿态估计。利用分布式图形优化方法获得多轨迹估计的最大似然性。还设计了一种通信协议,以便在易于部署和低网络要求的机器人之间进行数据关联。RDC-SLAM通过实际实验验证了其性能,在准确性、计算效率和数据效率方面表现出优越的性能。

关键词 3D激光雷达、协同SLAM、分布式系统

1引言

近年来,由于其在机器人未知环境中执行任务的基础重要性,同时定位与地图构建(SLAM)问题在机器人领域中一直备受关注[1]。SLAM是指机器人从周围环境中提取信息以构建地图,并同时利用地图进行自我定位的能力。

目前用于机器人SLAM的主要传感器是激光雷达和视觉传感器。视觉传感器在智能车辆中发挥着至关重要的作用[2][3]。然而,由于在水平方向上具有宽阔的视野(例如,全视场的360度)和在距离测量方面的高精度,激光雷达传感器在机器人系统和自动驾驶领域中变得比视觉传感器更受欢迎[4]。因此,多年来已经探索了许多基于激光雷达的SLAM方法。

最常用的SLAM方法是部署在一个机器人上以探索未知环境,并且有许多有效的解决方案可供使用。然而,由于一个机器人的存储和电源等资源在实际情况中是有限的,因此可能无法一次从一个机器人那里收集到整个环境中的足够信息,尤其是在大规模场景中。解决上述问题的一个有效方法是引入一个多机器人阵列。

多机器人系统提供了效率和稳健性的优势,这使得它们更适合于时间紧迫和稳健性高的任务。近年来,多机器人SLAM或协同SLAM的研究已经受到启发。在协同SLAM中,机器人团队中的每个机器人都探索整个环境的一部分,其中包含重叠区域。这些重叠区域可用于在机器人之间建立一致的坐标系。每个机器人建立的几个单独的地图可以合并,以生成一个完整全局地图,用于探索未知环境。

除了上述子问题外,实践中协同SLAM所面临的一个关键挑战是网络的限制。在线协同SLAM意味着来自每个机器人的数据通过通信网络进行共享。在大规模场景中,如果没有基础设施来保证全局通信,系统将面临带宽和传输距离方面的重大限制。这些限制使得系统必须在短通信时间内以最大效率共享协作所需的数据。考虑到上述通信限制,我们构建了一个实时分布式协同SLAM系统。

本文提出的系统由三个步骤组成,通过分布式利用现有SLAM技术建立全局地图。首先,识别出每个机器人之间的相似地点作为桥梁。接下来,通过识别相对地点计算相对位姿估计。最后,使用分布式图优化方法将所有机器人生成的局部地图进行合并。合并后的全局地图如图1所示,是所有数据的组合。在这些步骤中,为提出的系统设计了一个精心设计的通信协议。该通信协议基于点对点和短距离无线网络,能够满足多个移动设备的实时要求,并且具有较低的通信带宽。本文的主要贡献如下:

  1. 提出并开源了一个基于3D激光雷达的实时分布式协同SLAM系统。
    2)为数据高效的分布式SLAM系统生成了精心设计且易于部署的通信协议。
    3)通过真实世界的实验对所提出的系统进行了测试和验证。

图1 在SYSU校园数据集中的最终全局地图的演示

不同颜色的点云代表从不同机器人收集的数据

本文的组织结构如下。第二部分介绍了协同SLAM和分布式系统的相关研究工作。第三部分提供了符号和任务描述。第四部分介绍了所提出的协同SLAM方法。第五部分描述了实现分布式部署的通信协议。第六部分提供了评估结果。第七部分总结了本文以及未来的工作。

2相关工作

总体来说,实时分布式协同SLAM系统主要关注两个任务:协同SLAM和分布式系统。由于这两个任务在近年来已经在各种文献中进行了探讨,因此我们仅在此部分提供对它们的简要概述。
近年来,有几种研究关注基于LiDAR的协同SLAM。在[5]中,多个机器人仅使用2D LiDAR来补充地图的相对位置,由于缺乏后端实现,无法利用它来改善状态估计。在[6]中,提出了一个针对多辆车的离线城市规模映射方法,显示出高质量和低计算效率。谷歌的Cartographer [7]被应用于融合多个轨迹,它专注于通过新轨迹更新旧轨迹。在[8]中,通过收集本地数据并为本地机器人提供反馈,实现了一个在线3D集中式协同SLAM系统。

最常见的协同SLAM方法是专注于每个机器人的姿态估计和地图合并。有两种主要的3D LiDAR点云注册方法:全点对齐基于描述符的方法。全点对齐方法主要基于迭代最近点(ICP)算法和正态分布变换(NDT)算法的变体。与这些变体相比,基于描述符的方法在计算效率和数据效率方面具有优势。基于描述符的方法可以分为三类:点特征描述符、对象特征描述符和全局特征描述符。这些方法通过将特征点、对象或整个点云的高度概括信息压缩成一个向量来压缩数据。在这些方法中,全局特征描述符是对整个场景的高度概括,而对象级和点级描述符提取局部信息。因此,全局描述符有效地匹配整个场景,通常应用于位置识别,这是数据对齐的先决条件。其他描述符用于局部区域:它们在几何验证下对相对姿态进行估计时表现良好[14][17],并在投票策略的帮助下进行位置识别[18]。除了全点对齐和基于描述符的方法外,还可以通过传感器融合来估计姿态,以提高准确性[19][20],这可以通过卡尔曼滤波方法进行估计[21][23]。此外,深度学习方法也可用于SLAM和导航[24][26]。

地图合并对于协同SLAM任务至关重要,以便将每个单独的地图合并生成全局地图。地图合并技术可以分为两类:直接地图合并间接地图合并[27]。直接地图合并方法通过使用机器人之间的测量来获得子地图之间的相对位置,然后使用计算得出的变换矩阵将子地图直接拼接到全局地图中。间接地图合并方法专注于通过适当融合所有观测来达到全局一致性,而不仅仅是将观测结果叠加在一起。为了实现全局状态的一致估计,基于图的优化方法已成为最受欢迎的技术。基于图的优化方法在分布式系统中的应用也是一个活跃的领域[29][31]。然而,直到现在,还没有将其集成到基于3D LiDAR的协同SLAM系统中。在[31]中,数据转换的数量仅与轨迹重叠成线性关系,与DDF-SAM2.0相比显著减少[30],后者与轨迹重叠成二次关系。

   一般来说,在线协同SLAM系统可以是集中式、去中心化式或分布式[32]。如前所述,预定义的中央节点收集所有收集到的数据,并在集中式系统中执行任务。大多数关于协同SLAM的相关研究都是基于这种系统设置,例如[33][34]。然而,由于网络对中央节点的高要求和繁重的计算负担,在大型场景中部署集中式方案是困难且成本高昂的。在去中心化系统中,每个机器人都被视为一个中央节点,负责收集所有信息并执行完整的任务计算。与集中式方案相比,去中心化系统中的计算负担和通信负担都显著增加。在分布式系统中,计算负载由机器人分担,这使其比前述系统更加灵活。然而,据我们所知,只有少数协同SLAM系统采用了分布式策略[5][35]。为了填补基于3D LiDAR的在线分布式协同SLAM的空白,我们开发了一个基于上述主要策略的完整且可处理系统,涉及基于描述符的数据关联方法和基于分布式高斯-塞德尔(DGS)的后端算法[31]。与现有的基于LiDAR的协同SLAM系统相比,我们的系统具有无需辅助设备、高计算效率和低数据传输量的优点,能够有效地满足在没有通信基础设施的部署环境中执行时间关键任务的要求,例如安全和救援(SaR)任务。

图2 多机器人的位姿图。

三角形代表位姿节点,而颜色则标识不同的机器人

3符号和任务描述

给定一个符号集合 = {α, β, γ , . . .},它代表了我们提出的协同SLAM系统中的机器人集合。使用位姿图来展示系统的所有相关元素,如图2所示。位姿图由节点和边组成。节点表示系统的状态,并代表机器人的位姿,记作 X = xα,i, xα,j,..., xβ,i,..., xγ ,i,...,其中 xα,i 表示时间 i 时机器人 α 的位姿,x ∈ SE(3)。每个位姿 x 包括一个旋转 R ∈ SO(3) 和一个平移 t ∈ R3,表示为 x = (R,t)。此外,节点通常还附带了在相关位姿下收集的传感器数据。边,记作 E,是两个节点之间的约束,也称为关联,表示测量值 Z = zαiβj| αi, βj ∈ E。我们将关联分为两类:一类是内部数据关联,连接同一台机器人的节点;另一类是外部数据关联,连接不同机器人的节点。我们将涉及外部数据关联的节点称为边界节点。该系统的目标是获得所有测量值的最大似然度满足的最佳 X 估计值,如下所示:

图3:RDC-SLAM方法的框架。

该系统以分布式方式运行。对于每个个体,当新的LiDAR数据到达时,LiDAR里程计模块计算局部里程计以生成内部数据关联,并由位姿识别模块生成来自不同机器人的激光扫描之间的候选匹配。相对位姿模块进一步优化候选匹配之间的变换,以获得内部数据关联。最后,分布式图优化模块将内部数据关联和外部数据关联集成在一起,以更新地图。值得注意的是,通过通信协调多个本地地图的一致性。

其中,zαiβj是相对位姿测量,包括旋转测量Rαβi​j,即时间i时机器人α与时间j时机器人β之间的旋转姿态,带有测量噪声R,以及带有噪声t 的平移测量tαiβ​j[31]。

假设旋转噪声遵循Von-Mises分布[36],该分布的浓度参数为ω2R,而平移噪声遵循均值为零的高斯分布,协方差为ωt2I3。Von-Mises分布也被称为各向同性的Langevin分布,用于旋转测量误差[37]。X的ML估计可以视为以下优化问题的解

在式(3)中,我们使用弦距 ||R||2F 来量化旋转误差,具体细节可参考[37]、[38]。

4 系统架构

本节介绍了RDC-SLAM的细节。该系统由一组配备3D LiDAR的机器人组成,直接在原始传感器数据上运行,实现全局一致的定位和地图绘制。

考虑到易于部署,我们通过点对点无线网络处理机器人之间的通信,不依赖于通信基础设施的设置。尽管提供了不可替代的实际优势,但无线网络具有有限的通信带宽,通信范围因环境结构和特定协议(WiFi、蓝牙等)而异。此外,数据传输的稳定性受数据包大小的影响。数据包越小,传输越稳定。因此,由于网络设置,系统必须满足以下要求:

  1. 每台机器人应至少与其他一台机器人进行一次通信。
  2. 数据传输量低。

RDC-SLAM以分布式方式运行,计算负载由机器人之间共享。每台机器人执行图3中描述的程序。当新的激光扫描由3D LiDAR捕获时,它被输入到LiDAR里程计(LO)和位姿识别(PR)模块。PR模块提取激光扫描的紧凑描述,并通过偶尔的通信,在来自不同机器人的激光扫描之间产生候选匹配。LO模块计算顺序约束和闭环约束,以生成用于定位的地图。相对位姿(RP)模块从地图的候选匹配部分中提取信息,以进一步细化相应扫描之间的变换或拒绝候选匹配。分布式图优化(DGO)模块接收来自地图的初始猜测、来自RP模块的外部数据关联和来自LO模块的内部数据关联,通过通信一致估计多轨迹来更新地图。该系统随着新LiDAR数据的获取而连续工作。

机器人在相遇期间共享信息(这意味着它们在通信范围内)。为了满足系统要求,涉及通信的模块应确保系统在低数据传输量下的性能。本节的其余部分将详细介绍信息压缩方法和协同数据处理方法。

4.1位置识别

位姿识别模块探索了每个机器人节点之间的替代匹配,这涉及到了公共区域。传统的位姿识别方法试图在所有点云之间进行注册,以找到两个单独机器人之间公共区域的替代节点。然而,这些方法总是消耗大量的时间和计算资源。为了实现实时SLAM系统,应尽可能减少PR模块的时间消耗。因此,应用了一种基于强度(称为DELIGHT)的全局描述符,以减少时间消耗[15]。

每个点的强度是来自表面的反射强度,这可以通过3D LiDAR捕获周围环境。DELIGHT描述符由m个非重叠的直方图组成。这些直方图是通过沿径向、高程和方位轴的球面分割得到的。一个球可以被分为8个分区,根据三个轴的方向。为了获得有效的点,使用传感器范围r1从原始点云中选择点。通过范围阈值r2可以选出较近的点作为内球。其余的有效点云被称为外球。因此,点可以被分为两个球和m = 16个分区。在每个分区中,我们将强度值(0-255)分配到Ibins相等的插槽中并生成直方图。

图4   DELIGHT描述符的结构。

(空间由沿径向、高程和方位轴的球面分割划分。在本文中,径向分为2个部分(黄色表示内球,红色表示外球),高程分为4个部分,方位分为2个部分,总共有16个分区。)

根据每个节点的传感器姿态建立点云的坐标系。为了减少传感器姿态引起的估计误差,对整个点云应用以下两个过程:1)我们对点云进行归一化处理,使点云原点在相同环境下位于同一位置。2)我们人为地定义了局部坐标系中各轴的正方向。

在原始的DELIGHT描述符中,局部参考系是通过支持范围内所有周围点的主成分分析(PCA)获得的,其中存在轴向方向的歧义。有4个可能的参考系对应于4个不同的分区序列,导致4个不同的描述符版本。为了消除歧义并定义唯一的局部参考系,我们计算由x-z平面分隔的两个球中的点数,并将较大的值设置为正Y轴。正Z轴可以根据重力方向确定。因此,我们可以确定右手系统中每个轴的方向。根据之前的两个过程,可以有效地减少传感器姿态引起的估计误差。

关于相似性评估,如[15]中所述,利用以下卡方检验来评估描述符A和描述符B在第i个分区之间的直方图距离。

关于相似性评估,如[15]中所述,利用以下卡方检验来评估描述符A和描述符B在第i个分区之间的直方图距离。

在每个bins中,我们计算从1到Ibins的强度直方图。两个描述符的相似性度量等于所有相应直方图之间的平均距离。接下来,我们可以按照以下方式计算两帧之间的相似度值:

因此,通过选取每对节点对在两个不同机器人上的较小相似度值,我们可以得到替代匹配结果。对于来自一个机器人的某一帧Fiα,该模块处理后所选的另一机器人的替代匹配结果记为Sβ。

4.2相对位姿估计

在前面的步骤中,我们仅获得了替代匹配的帧。这些匹配帧之间的变换仍需要计算以建立精确的数据关联。因此,执行相对姿态估计是为了在较短时间和较低计算成本下确定准确的变换。首先,点云被划分为几个部分。采用[39]中提出的基于范围图像的方法进行分割,这种方法具有极小的计算需求,并且对于稀疏点云表现良好。该方法规定,当两点间连线与较远处点激光束之间的角度足够小时,认为这两点属于不同的段。这些段作为原始点云的一部分,突出了点云的核心信息。接下来,对所有分割出的段应用基于特征值的段描述方法,该描述表示为向量V,由段的特征值e1、e2和e3计算得出的因素组成,用于压缩数据大小。这些描述符不仅能代表各段,还能减小帧的大小。然后通过快速最近邻搜索(KNN)在基于特征值的描述符空间内利用FLANN树实现段匹配,设定选取邻居的数量Kknn和距离阈值Tknn。两个独立帧中的段可能相互对应,以减少估计误差。

接下来,基于RANSAC(随机采样一致)的几何验证过程会获取满足几何一致性(GC)的簇,该一致性以分辨率阈值Tres和最小簇大小Tmin为判断依据。最后,根据得到的相对变换创建新的数据间关联。RP模块的算法如Algorithm.1所示。Fiα表示来自机器人α的第i帧,Fjβ表示来自机器人β的第j帧。ξFiαFβj表示这两帧之间的变换。Sβ表示来自机器人β的替代匹配结果,而NSβ表示替代匹配的数量。Segment(·)表示第一步中的分割过程。Segα和Segβ分别代表分割出的段,Niα和Nβj则表示每个机器人分割出的段的数量。Descriptor(·)表示第二步中基于特征值的段描述方法。Vα和Vβ代表各段对应的描述符向量。KNN(·)表示第三步中的搜索过程。Geometric(·)表示用于获取变换的几何验证过程。最后,在两帧之间计算出用于建立数据间关联的变换。

4.3分布式图优化

在合作SLAM系统中,用于关联不同机器人数据的前端系统以及用于一致估计所有机器人全局状态的后端系统对于决定整个系统的性能至关重要。在最后两个步骤中,我们可以通过两种描述符计算不同帧之间的相对姿态变换。因此,我们可以获得数据间的关联(inter-data associations)和数据内的关联(intra-data associations)。为了从多台机器人构建完整且精确的全局地图,DGO模块被用来获取[31]中提出的最大似然(Maximum Likelihood, ML)多轨迹估计。每台机器人仅使用与其它机器人共享的边界节点姿态测量值来估计其局部轨迹。此模块的数据传输量仅与边界节点的数量成线性比例关系。为了解决上述分布式图优化问题,采用了一种两阶段策略,如公式(3)所示。第一阶段,如公式(6a)所示,通过求解公式(3)的第二部分来计算所有多台机器人的旋转;第二阶段,如公式(6b)所示,通过单次高斯-牛顿迭代[40]解决公式(3),以计算完整的姿态变换。两个阶段的结果可以表示如下:请注意,您没有提供具体的数学公式,以上解释基于一般性的分布式图优化(Distributed Graph Optimization, DGO)方法在多机器人SLAM中的应用原理。在实际应用中,每个阶段的具体计算过程会涉及复杂的数学模型和算法实现。

这段文字主要描述了如何将原始的非凸优化问题转化为一系列线性最小二乘子问题,以便以分布式方式进行求解。根据文中的描述,可以总结出以下几点:

  1. 原始的非凸问题被近似为一系列线性最小二乘子问题,这样可以方便地以分布式方式进行求解。
  2. 未知状态向量可以分割成与单个轨迹相关的子向量,这样可以将子问题分别解决。
  3. 这些子问题可以根据一般形式进行重新排列,例如公式(6a)和公式(6b)。
  4. 在分布式SLAM系统中,全局优化问题通常被分解为多个局部子问题,通过迭代通信和局部更新来逐步逼近全局最优解。
  5. 第一个子问题主要涉及计算各个机器人之间的相对旋转参数,可以通过求解一组线性化后的姿态约束关系得到。
  6. 第二个子问题则进一步扩展至计算完整的位姿变换,包括旋转和平移,同样采用线性最小二乘方法,并且可能在一个或多个高斯-牛顿迭代步骤中解决。

总的来说,这段文字描述了如何将一个复杂的问题分解为多个简单的子问题,以便于分布式求解。每个子问题都可以单独解决,然后将结果进行合并以得到全局最优解。这种方法适用于大规模、复杂的问题,可以提高计算效率和精度。

首先,我们需要理解题目中提到的向量和矩阵的分解。

题目中提到,向量y表示未知的位置向量p或未知的旋转向量r。根据等式(7),我们可以将y分解为多个部分,即y = yα, yβ,...。其中,yα描述了机器人α的位置或旋转。

同样地,矩阵H和向量g也需要根据y的块结构进行相应的分解。

进一步地,如果我们把yα的贡献从总和中分离出来,等式(7)可以重写为:

Hαβgβ + Hαγgγ + ... = yα

这里,Hαβ, Hαγ,... 是矩阵H的子块,gβ, gγ,... 是向量g的子块,yα是向量y的子块,分别对应于机器人α的位置或旋转。

通过这种方式,我们可以将原始的非线性优化问题分解为多个线性最小二乘子问题,每个子问题只涉及一个机器人的位置或旋转。这样,我们就可以利用分布式计算资源来并行解决这些子问题,从而提高计算效率。

利用分布式高斯-赛德尔算法[31],问题可以通过迭代来解决。从任意的初始估计开始,系统中的每个机器人α在k-th迭代中遵循以下更新规则:

其中,α 表示已经完成k-th迭代的机器人集合,α 表示还需要进行更新的机器人集合,不包括机器人α。当收敛到一个固定点时,得到的y确实是线性系统的解,这如等式(7)所示。关于公式推导的更多细节,请参考[31]。

由于优化方法包含两个阶段,并且需要经历迭代过程,因此在第一阶段结束时和迭代之间会出现不一致的全局状态估计。此外,DGO模块无法在迭代之间合并新添加的节点。同时通过LO模块和DGO模块修改姿态图会导致状态估计冲突。受版本控制工具思想的启发,我们将乐观并发控制部署到分布式机器人系统中,类似于[35]、[41]、[42]。我们让DGO模块在姿态图的副本上而不是原始图上运行。每次优化循环开始时,记录开始时刻,以防止在此之后加入的新节点参与优化过程。经过优化的估计值将被合并到原始姿态图中,直到分布式图优化算法经过若干次迭代后收敛。

4.4通信协议

考虑到上述的通信限制和实时要求,通信协议需要经过精心设计并且易于部署。在这个系统中,每个机器人会定期发送ping消息来根据响应消息识别邻居机器人。

存在响应消息多台机器人之间的信息共享即将开始。通过所提出的协议,来自多台机器人的通信消息得到了同步,如图5所示。为了清晰起见,我们仅以两台机器人为例进行说明,但需要注意的是,我们的通信协议可用于多台机器人。

当机器人α捕获新的LiDAR数据时,PR模块会生成一个描述符来压缩原始点云,并将其存储在本地描述符树中,这将在第III-A节中介绍。这些描述符的通信消息被发送为PR_MSG。一旦另一台机器人β从其邻居机器人α接收到PR_MSG,PR模块将被触发以从描述符树中检索最相似的描述符。与节点相关的基于特征值的段描述符对应于地图中最相似的位置。同时,将基于特征值的段描述符与相关节点封装到相对姿态消息中,即RP_MSG,并将其发送出去。当机器人α接收到RP_MSG时,会提取相应的基于特征值的段描述符,RP模块使用这些描述符计算相对姿态,以建立新的内部数据关联。一旦建立了新的内部数据关联,DGO模块将被触发,通过几次共享边界节点姿态来更新地图,这被称为DGO_MSG。如果没有多台机器人捕获数据,整个系统将发送FIN消息以终止该周期的通信。在每个通信周期结束时,每台机器人都保持全局一致的状态。

为了减少冗余传输并提高通信的鲁棒性,需要考虑数据包丢失和重传。参考网络协议中的超时重传,当一条消息被发送出去时,会启动一个计时器。如果在一定时间内没有收到消息反馈,该消息将再次被发送。当相应的请求消息已经被接收时,不会重复发送同一请求消息,以避免双向通信中的冗余计算。状态转换图如图6所示。

图5  通信协议

PR_MSG表示PR模块中的消息,RP_MSG表示RP模块中的消息,DGO_MSG表示DGO模块中的消息,而FIN表示终止通信的最终消息

图6  通信协议的状态图

5实验

在这里,我们通过在真实世界环境中的测试来验证我们提出的实时分布式协同SLAM系统。我们对公开可用的KITTI数据集[43]进行了定量分析,同时,为了验证RDC-SLAM在具有挑战性的非结构化环境中的能力,我们收集了位于SYSU校园的室外数据集,并对开发的系统进行了评估。该系统以C++的形式作为ROS包实现。以下实验在多台计算机上进行了测试,每台计算机都配备了Intel i7-8550U CPU @1.80GHz · 88GB的DDR3 RAM,负责单个机器人的计算。这些计算机设置在相同的网络段中,计算机/机器人之间的通信基于AdHoc无线网络。

5.1实验设置

  1. 场景:KITTI数据集由从各种道路场景收集的真实数据组成。由于KITTI实际上并不是为分布式SLAM的验证而定制的,因此我们选择了一个大型序列并对其进行了修改,以满足实验设置的需求。我们将KITTI序列05分为两个具有相同持续时间的子序列,每个子序列持续2.2km和287s。同时播放这两个子序列以模拟多机器人场景。为了研究系统性能是否受到短距离传输条件的影响,我们播放一个子序列的反向数据,以便模拟的机器人可以在某些点相遇并通信,即使是在短距离通信的情况下也是如此。

此外,为了进一步验证算法,我们通过两个配备velodyne VLP-16的机器人收集了SYSU校园中一个无结构的林间小径的数据作为补充数据集。SYSU校园数据集由两名人员同时控制两台机器人,手动操纵它们在SYSU校园内。机器人通过无线网络进行通信,每台机器人都运行RDC-SLAM系统。为了进行实验,我们记录了包含自身测量数据(GPS数据和LiDAR数据)的数据集,将其分为两个数据包,一个持续182秒,另一个持续135秒,这使我们可以在离线情况下重现实验。

  1. 细节和系统参数化:由于系统的设计侧重于多个轨迹的协同处理能力,上述内容不涉及激光里程计模块的具体实现。任何可用的单个SLAM方法都可以使用。在实验中,我们应用了Lego-loam [44]作为激光里程计模块。此外,实验中使用的参数列在表I中。这些参数包括:(1)用于位置识别的内球半径(r1)、外球半径(r2)、强度分箱(Ibins)和相似性阈值(TSAB);(2)基于段注册的距离阈值(Tknn)、最近邻居数(Kknn)、几何一致性分辨率阈值(Tres)和最小簇大小(Tmin);(3)连接距离(dcp)。

5.2地图质量

图7展示了RDC-SLAM的工作原理,以KITTI数据集为例。一开始,机器人分别在其本地参考帧中构建自己的地图。当第一次建立数据间关联时,轨迹被合并到一致的全局帧中。在第一次建立数据间关联后,任何新添加的数据间关联都可以消除累积误差。在KITTI数据集中的最终结果如图7(d)所示。此外,SYSU校园数据集的映射结果如图1所示。正如预期的那样,合并后的地图都实现了全局一致性。为了定量分析重建地图的质量,我们利用绝对轨迹误差(ATE)作为精度指标,将重建轨迹与实际轨迹(地面真实值)进行比较。两个实验中的ATE列在表II中。结果表明,在SYSU校园数据集中,生成的轨迹达到了0.1256米的空间精度,而在KITTI数据集中达到了0.0604米的精度。

图7 RDC-SLAM的演示

(a)在t=10秒时,轨迹位于其本地参考帧中。

(b)在t=13秒时,建立了第一个数据间关联,轨迹变为一致的全局帧。

(c)在t=102秒时,发生了不一致性(红色圆圈),这是由于累积漂移造成的。

(d)KITTI序列05的最终轨迹。由于在t=106秒建立了第二个数据间关联,误差被消除,从而解决了(c)中的不一致性问题。

5.3计算效率

表III列出了每个模块消耗的总时间。为了展示时间变化的计算成本,图8展示了KITTI实验中Robot α的累积计时。对于KITTI数据集,每个机器人在大约150秒的操作中,进行合作计算所需的时间不到10秒,这表明与仅进行单个SLAM的激光雷达里程计相比,附加的计算成本较低。在SYSU校园数据集中的表现类似:涉及合作计算的模块的计算时间在KITTI实验中占整个操作时间的比例不到8%,而在SYSU校园数据集中占不到4%,这都属于较低的比例。

5.4 通信协议

通信协议是我们提出的RDC-SLAM系统的亮点。在本节中,我们将从数据效率和连接距离两个方面对协议进行分析。

1)数据效率:数据传输情况如图9所示。它们直接显示了每个模块中数据传输的总量和时变带宽。对于KITTI数据集,我们的RDC-SLAM在145秒的操作中传输的数据量不到350KB。即使使用二进制压缩,原始数据大小也超过5GB。类似地,对于SYSU校园数据集,传输的数据量不到400KB,而原始数据大小约为2.5GB。值得注意的是,由于增加了适应更复杂环境和更稀疏数据的DELIGHT强度分箱的数量,第二个实验中的数据压缩率有所降低。这种增加导致PR模块中的数据量增加,并在RP模块中节省了时间,因为PR模块的准确性得到了提高,并且传递给RP模块的错误候选匹配项减少(参见表III)。

2)网络连接距离的影响:表IV说明了网络连接距离如何影响准确性和数据传输量,以KITTI数据集为例。借助GPS提供的地面真实值,模拟了连接距离的变化。通过将单个SLAM系统的结果与初始GPS先验直接合并,得到了“无连接”的结果。值得注意的是,除了50米的通信范围外,其他通信范围设置中的准确性都比单个SLAM的结果有所提高。在第一个数据间关联建立坐标系之间的关系后,任何新添加的数据间关联都用于改善状态误差,如图7(c)(d)所示。当通信距离为“全球覆盖”、200米和100米时,结果精度相似。可以看出,通信距离对精度的影响很小。在一定程度上,它甚至可以减少数据传输量。当通信距离设置为50米时,准确性会降低。考虑到KITTI数据集是由高速汽车收集的,这种准确性的降低是由于连接时间太短,无法执行一个分布式图优化周期。因此,影响准确性的因素是连接时间,而不是连接距离。因此,在有限的网络距离条件下,RDC-SLAM能够工作。但如果我们让机器人缓慢交叉以延长通信时间,将能够提高性能。

6结论

在本文中,我们提出了一种基于3D激光雷达的实时分布式协同SLAM系统,称为RDC-SLAM,该系统显著降低了多个机器人之间的通信带宽和时间消耗的压力。该系统以分布式方式构建,并提出了精心设计的通信规则,以整合最先进的组件。前端负责获取内部数据关联和数据间关联,并将其输入到RDC-SLAM的后端,而后端基于分布式图优化算法,每个机器人只维护与自身相关的状态。我们证明了该算法在没有先验信息的情况下正确地融合了来自多个机器人的信息,在一致性结果、计算效率和低数据传输方面具有优势。特别是,所提出的协同SLAM可以适应短距离、短期通信条件,并实现可比较的性能。未来,我们有兴趣进一步提高准确性和扩大机器人团队规模。机器人阵列规模的增加将对算法提出更严格的考验,我们希望将研究推向更深入的层次。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值