<论文阅读>多机器人系统的地图融合(map merging for multi-robot system)

该文探讨了多机器人系统中的地图融合问题,重点在于处理异构机器人群的初始位姿不确定性。直接和间接地图融合算法被比较,提出了一种新的基于占用网格的融合方法,该方法受到图像拼接的启发,采用随机抽样一致性(RANSAC)进行稳健的变换估计。该算法能够处理任意数量的地图,克服了现有方法的局限性,尤其适合异构机器人系统。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

@masterthesis{Hörner2016, author = {Jiří Hörner}, title = {Map-merging for multi-robot system}, address = {Prague}, year = {2016}

多机器人探索拥有比单个机器人明显的优势,可以去做一些单个机器人无法做的事情。在全分布式系统中,消除了单点故障。
多机器人群可以克服导航和建图算法中的底层缺陷,特别当使用异构机器人群时,当某处一个机器人被困住了,就会被使用不同算法的机器人取代。
当前的工作集中于地图融合,这是一个挑战性问题,特别是当使用异构机器人群时。在多机器人系统中共享地图需要高效的协同,地图融合算法产生的全局地图是多机器人系统的重要组成部分。

1.初始位姿估计问题

地图融合的关键问题是获得机器人坐标系之间的变化,当坐标系变化知道之后,通过机器人产生融合地图就是一件很简单的事。在这种情况下,我们可以计算到全局坐标系的变化,把融合地图放在全局坐标系中。在一个特定的全局坐标系中,地图的错误通常出现在动态环境中,可能会在地图的贯穿处出现不同的值,但是可以通过采用算法均值、中值或极值去协调这种问题。
不同栅格之间的变化可以从机器人的初始位姿获取,反之亦然,将初始位置在地图中表示为原点(或任何固定的点),在已经存在的SLAM算法中通常都是这样做的。
问题是融合算法不知道机器人的初始位姿,当机器人从同一个地方出发,初始的相对位置可以通过现有的或按装在机器人上的基础的设备测量得到。当机器人从很远的地方出发,测量其初始位置需要更复杂的设备,全球定位系统(GPS)等广泛使用的硬件传感器可能无法提供所需的精度。在室内环境中,确定起始位置可能更具挑战性。
由于这些困难,已经开发出一种算法,可以估计地图之间的转换,然后在不知道初始位置的情况下融合地图。[LLL+12]对地图融合技术进行了全面的综述,将地图合并算法分为直接地图融合和间接地图融合。

1.1直接地图融合

直接地图合并算法依靠传感器直接计算机器人参考坐标系之间的变换。这包括依赖于机器人直接会合的技术[ZR06]和类似技术。该技术可以提供高度精确的变换估计,但受限于依赖于特定的条件来估计这种变换,如机器人的交会或遇到特定的地标。这些系统还交换与选定特征或传感器相关的特定数据,以估计转换;有些算法甚至需要对机器人进行控制,如[KFL+03]中的解决方案。因此,实现往往是单一的,因为它们依赖于自定义消息和特定传感器数据的交换,这使得它们很难实现,特别是对于异构的机器人

1.2间接地图融合

间接地图合并算法使用地图中的重叠区域来估计地图之间的转换。基于地图数据合并地图只会自然地创建一个公共界面,并且适用于异构的机器人群体。每个机器人只需要以一种通用的格式公开其地图,安装在机器人上的传感器设备可能不同,创建地图时使用SLAM算法。这使得间接地图合并算法比直接地图合并更灵活:机器人可以在不同的时间访问重叠区域(相对于机器人会合),而且这种方法绝对被动,不需要对机器人进行控制。间接地图融合算法使用地图中的重叠区域来估计地图之间的转换。基于地图数据合并地图只会自然地创建一个公共界面,并且适用于异构的机器人群体。每个机器人只需要以一种通用的格式公开其地图,安装在机器人上的传感器设备可能不同,创建地图时使用SLAM算法。这使得间接地图合并算法比直接地图合并更灵活:机器人可以在不同的时间访问重叠区域(相对于机器人会合),而且这种方法绝对被动,不需要对机器人进行控制。
间接地图合并已经采用了广泛的技术。在他的工作[LLL+12]中提到了基于扫描匹配算法的技术。这些算法与地图的SLAM地图表示相结合,通常与特定的SLAM算法紧密耦合。这使得它们与直接地图融合算法共享一些缺点(比如难以通过异构系统进行可伸缩性)。这类算法包括[WJL+12]基于视觉尺度不变特征变换(SIFT)特征和拓扑节点的工作,[TLKJ10]将全向视觉和激光扫描相结合的方法,[CWBD12]使用图SLAM结合压缩地图和非线性约束优化来获取地图之间的转换。SLAM算法用于表示地图的数据可能太大,无法在机器人之间全部交换,这在[LPP+13]的工作中解决了,它使用了压缩测量和多机器人图SLAM。
只有少数算法专门用于可移植的地图表示(地图表示为二维占用网格),尽管这保证了更好的可扩展性,并在设计上支持异构的多机器人系统。使用占用网格的作品包括[Car08]的基于光谱的方法。[LL11]将他的方法与虚拟支持线的概念相结合,以合并红外特征的自定义稀疏地图。[Mar13]使用了[Sch12]基于图像特征的算法来合并两个机器人的地图,这是该算法的局限性。
第2节介绍的地图合并的新算法是只使用占用网格来生成合并的地图。该算法是受图像拼接算法的启发,用于创建照片全景图。它被设计用于合并任意数量机器人的地图,克服了[Sch12]和[Car08]的限制。该方法采用随机抽样一致性(RANSAC)进行鲁棒变换估计,并利用概率模型评价估计变换的置信度。采用[ML12]提出的并行分层聚类树加速匹配阶段,使算法能够很好地适应大量机器人的情况。

2.融合算法

本章提出了一种基于计算机视觉技术的二维地图地图合并算法。这种方法并不是全新的。第一个针对ROS实现的基于图像特征的地图合并算法为[Sch12]。这个包的目的是把SLAM创建的地图拼接到现有的静态地图上。
虽然这个包不是为多机器人配置中的地图合并而开发的,但是算法及其原始实现被[Mar13]用于合并两个机器人的地图,以及[ANB14]中提出的多机器人协作探索解决方案。
由于mapstitch算法的原始目的,它对于多机器人地图合并设置存在一定的局限性。该算法最初是为离线使用设计的[ANB14]。此外,它的设计是为了拼接两个地图,其中一个是大型参考地图覆盖了大部分的环境。尽管使用这种算法可以递增地合并来自多个机器人的地图,但全局地图质量通常会随着机器人数量的增加而下降。观察到当4个机器人时,性能显著下降[ANB14]。
bb

虽然我们的算法也使用了基于计算机视觉的方法,但它解决了算法1的局限性。本文提出的算法可以处理任意数量的网格(而算法1只能处理两个网格)。该算法不需要迭代归并,而且可以确定成对归并的最优顺序。我认为这可能是[ANB14]观察到的4机器人设置性能下降的主要原因。该算法处理了一般n-地图合并问题中出现的其他问题,例如当某些地图到其他地图的转换无法被可靠地估计而无法合并时,可以从更多来源(多个邻居)估计地图的转换。

2.1 Stitching pipeline

正如第1.2节所讨论的,我们的算法是受到图像拼接算法的启发。拼接算法被很好地理解和实现是广泛可用的。多步拼接流水线的一般概念见[BL06]。拼接管道也在开源计算机视觉库(OpenCV)中建立良好的代码,主要基于[BL06],以及[Sze04] [SS98]等。图2.1突出显示了OpenCV中拼接流水线的加工步骤。
在这里插入图片描述
我们的算法将解决配准部分(估计网格间的变换),如图2.1所示。拼接的合成部分对于占用网格来说是比较简单的(相对于相机图像),因为我们不需要补偿曝光误差、增益等不足。配准解决了获取机器人个体帧间变换的主要问题,解决了初始位置已知和初始位置未知的地图合并问题。
3.1节中描述的用于地图合并的ROS节点也实现了合成管道的一部分,这在估计转换时是一个很容易的问题。
为了描述该算法,我们将假设地图表示为占用网格,每个单元包含范围为[0,100]的值,表示单元中存在障碍物的概率,−1表示未知概率。ROS使用相同的表示。这种表示可以很容易地映射到灰度图像,因此使用图像处理算法是自然的。
我们将通过算法2考虑占用网格灰度图像,反之亦然。在[0,100]范围内的值是相同的,−1在图像中映射为255。这样我们就得到了标准的8位深度灰度图像。算法2提供了所提出算法的概述,下面几节将提供详细的描述。
在这里插入图片描述

2.2 Feature detection

在[BL06]中提出的拼接流水线使用了SIFT特征。SIFT特征已经成功应用于许多应用程序的拼接。一些最近的拼接方法,改进了传统的基于SIFT的算法,也建立在SIFT特征的基础上[XXL+15]。SIFT特征的使用受到美国专利的限制[Low04]。我决定使用ORB特征检测器和描述符,这是由[RRKB11]引入的。ORB算法是免费的,在OpenCV中可用。此外,ORB特征已经被用于占用网格图像[Sch12]和[ANB14]。
其他的特征检测和特征描述方法还没有经过测试。其他用于地图合并的检测器的性能以及检测器的选择对总体合并性能的影响仍有待评估。一些性能良好的特征检测器和描述符有[AOV12]、[AS11]和[CLSF10]。
对于图像拼接,图像通常被缩小以便进一步处理,如图2.1所示。小图像上的特征提取和特征匹配速度快得多,总体精度是可以接受的。我不建议对占用网格进行任何这样的缩减。通过地图获得的网格通常比相机获得的数百万像素的图像要小,因此即使是对全尺寸网格,拼接时间也是合理的。此外,占用网格的特征通常比照片少得多,使得拼接更加困难和不准确。
在联机合并过程中,拼接可以以较低的频率运行,即使更高的地图更新频率需要简单地使用先前估计的网格之间的转换。随着时间的推移,这进一步降低了估算成本。网格之间的转换在大多数情况下是固定的(当SLAM算法工作得相当好时),因为转换只依赖于机器人的起始位置。因此,重用以前的转换不会在很大程度上降低映射质量。
在大多数情况下,仅在初始阶段估计转换更改。在地图中有足够多的重叠区域,使得变换可以得到较高的估计精度后,采用拼接算法估计的变换保持稳定。如果初始阶段的地图质量没有问题,这个特性允许以更低的频率运行重新估计。

2.3 Pairwise matching

成对匹配是算法中资源需求最大的部分。我们匹配所有O(n2)对网格。对于全景图像来说,通过将照片按有序的顺序拍摄,可以将其推至O(n)匹配。那么在图像序列中我们只能匹配k个邻居(对于较小的k),因为只有邻居有重叠区域。
对于多机器人地图场景中的栅格,假设机器人初始姿态的任何顺序都是不现实的。在某些情况下甚至是不可能的,特别是当机器人独立探索给定区域的时候。因此,我们的算法总是匹配所有O(n2)对。
在这里插入图片描述
图2.2给出了4.6节实验中获得的36个占用网格的匹配结果。每一对的计算都是独立的,所以很容易并行地运行所有对的匹配。这种方法用于3.1节中介绍的map merge节点。
由于对的非线性数量,使用简单的蛮力搜索搜索匹配通常在计算上太昂贵(即使它是并行运行的),除非它可以转到GPU。对于CPU上的匹配,最好使用近似方法,这样会快得多。
对于基于向量的特征,如SIFT和Speeded Up Robust feature (SURF),解决方案一直是使用近似的最近邻搜索,但这些现有的算法不适用于二进制特征[ML12]。对于基于二进制的ORB特性,使用[ML12]中提出的并行层次聚类树搜索最近邻居可以为ORB特性提供类似的加速。该方法由同一作者通过近似最近邻快速库(FLANN)使用,该库现在是OpenCV的一部分。
当找到匹配点时,算法估计网格间的变换。传统的图像拼接算法是利用射影空间中的单应性进行图像拼接,这有利于建模视角对摄像机图像的影响。对于占位网格来说,通常情况下这不是一个期望的转换,并且SLAM算法生成的地图存在误差,这些误差不会在射影变换中产生。
对于占用网格,我提出了一种基于仿射变换的不同模型。这是一个四自由度的部分仿射变换。该模型通过允许缩放扩展了[LLL+12]中定义的通常的地图合并问题的定义。缩放允许地图具有不同的分辨率,这可能发生在异构的多机器人系统中。

定义1(简化仿射变换).对于给定矩阵R(旋转),S(缩放),T(平移),其中
R = ( c o s θ − s i n θ s i n θ c o s θ ) (2.1) R=\begin{pmatrix} cos\theta & -sin\theta \\ sin\theta & cos\theta \\ \end{pmatrix} \tag{2.1} R=(cosθsinθsinθcosθ)(2.1) S = ( s 0 0 s ) (2.2) S=\begin{pmatrix} s & 0 \\ 0 & s \\ \end{pmatrix} \tag{2.2} S=(s00s)(2.2) T = ( t x t y ) (2.3) T=\begin{pmatrix}tx \\ ty \\ \end{pmatrix} \tag{2.3} T=(txty)(2.3)
定义简化仿射变换矩阵为:
A = ( R S ∣ T ) = ( c o s ( θ ) s − s i n ( θ ) s t x s i n ( θ ) s c o s ( θ ) s t y ) (2.4) A=(RS|T)=\begin{pmatrix} cos(\theta)s & -sin(\theta)s & tx \\ sin(\theta)s & cos(\theta)s & ty \\ \end{pmatrix} \tag{2.4} A=(RST)=(cos(θ)ssin(θ)ssin(θ)scos(θ)stxty)(2.4)
像往常一样,在表示平移时,我们将在齐次坐标系中使用简化仿射变换,这种变换是同态的。因此我们扩展A
A ′ = ( c o s ( θ ) s − s i n ( θ ) s t x s i n ( θ ) s c o s ( θ ) s t y 0 0 1 ) (2.5) A'=\begin{pmatrix} cos(\theta)s & -sin(\theta)s & tx \\ sin(\theta)s & cos(\theta)s & ty \\ 0&0&1 \end{pmatrix} \tag{2.5} A=cos(θ)ssin(θ)s0sin(θ)scos(θ)s0txty1(2.5)
表示齐次坐标空间中的简化仿射变换。
对于匹配点对 X = ( x 1 , x 2 , 1 ) T , Y = ( y 1 , y 2 , 1 ) T X=(x_1,x_2,1)^T,Y=(y_1,y_2,1)^T X=(x1,x2,1)T,Y=(y1,y2,1)T 我们就能解出
A ′ X = Y (2.6) A'X=Y \tag{2.6} AX=Y(2.6) ( c o s ( θ ) s − s i n ( θ ) s t x s i n ( θ ) s c o s ( θ ) s t y 0 0 1 ) ( x 1 x 2 1 ) = ( y 1 y 2 1 ) (2.7) \begin{pmatrix} cos(\theta)s & -sin(\theta)s & tx \\ sin(\theta)s & cos(\theta)s & ty \\ 0&0&1 \end{pmatrix} \begin{pmatrix}x_1 \\ x_2 \\1 \end{pmatrix} =\begin{pmatrix}y_1 \\ y_2 \\1 \end{pmatrix} \tag{2.7} cos(θ)ssin(θ)s0sin(θ)scos(θ)s0txty1x1x21=y1y21(2.7)
对于 ( c o s ( θ ) s , s i n ( t h e t a ) s , t x , t y ) T (cos(\theta)s,sin(theta)s,tx,ty)^T (cos(θ)s,sin(theta)s,tx,ty)T获取网格之间的变换。这个方程组很容易解,我们只需要两个点就可以得到变换。在二维空间中,采用简化仿射变换对机器人初始位姿进行建模。每个机器人可以在二维空间中从不同的位置出发,在旋转方向上有不同的方向。缩放使占用网格具有不同的分辨率。
我们将(2.6)与RANSAC [FB81]方法结合,得到最终变换。在文献[BL06]提出的图像拼接方法中,使用RANSAC估计单应性。我们用同样的方法对仿射变换进行鲁棒估计。使用RANSAC还有另一个优势。我们可以使用RANSAC的inliers数来估计转换精度。

对于每一对,我们计算变换置信度为 ψ 8 + 0.3 n \psi \over{8+0.3n} 8+0.3nψ,其中n为RANSAC中的匹配数, ψ \psi ψ为inliers数。置信度模型是基于[BL06]中提出的图像匹配验证的概率模型。对于RANSAC,我选择了以下参数:最大迭代次数500,良好的比率0.5。OpenCV内部也使用了相同的参数。如果达到了最大迭代次数,因此无法找到变换,则其置信度设为0。

2.4 Finding largest connected componen

如图2.2所示,在网格之间不能建立一些转换是很常见的。匹配图因此可以有多个连接组件。我们需要处理组件之间的转换缺失,以估计网格的转换。我们可以包含所有组件生成地图,并将它们定位到它们不会覆盖的位置。这种设置将保留所有信息,但生成的地图在拓扑结构上可能不正确。另一种方法是只选择一个连接组件进行最终合并。该方法保持了地图的拓扑精度。我选择了后一种方法。
作为算法的下一步,我们根据选定的概率模型过滤出匹配的准确性。不进一步考虑计算置信度小于或等于1.0的匹配。在匹配被过滤之后,在匹配图中找到最大的组件。转换将只建立在最大连接元件的栅格。
选择最大的连接组件似乎很自然,但这种方法有其缺陷。最大连接组件表示最多机器人之间的匹配,但是来自最多机器人的地图不需要表示地图中最大的区域。这可能是一个问题,特别是在具有异构机器人的系统中,机器人之间的建图性能差别很大。此外,地图的某些部分对机器人来说可能更难探索,尽管在这一区域有大量机器人,但生成的地图可能比其他机器人组生成的地图要小(在图表中表示为较小的组件)。
该算法的改进可以选择在匹配图中寻找加权最大连通分量。权重可以基于每个地图中发现的区域,这样最大的加权连接组件将代表最大的发现区域。
我选择使用未加权的最大连接组件,因为它的计算成本较低(加权网格表示每个网格中的发现区域,需要访问每个网格的每个单元)。使用未加权最大连接组件的算法在测试场景中显示了良好的效果,见4.4节。对于更多的机器人和更大的环境,使用加权组件的方法需要进行评估。

2.5 Estimate final transformation

剩余的图是连通的,可以估计所有网格的转换。我们已经估计了所有网格对之间的转换,但是连接组件中的一些边缘可能丢失了,因为它们在前面的步骤中被过滤掉了。算法的最后一部分是估计每个网格到全局参考坐标系的转换。我们可以选择其中一个网格的参照系作为全局参照系,因为我们感兴趣的是所有网格之间的相对转换合并。这将是合并地图的坐标系。
选择全局坐标系是不够的,因为从被选择的网格到其他网格可能存在多条路径。为了打破这些循环,我们构造了最大生成树。边的权重与inliers的数量,以偏好更强的匹配。该方法通常用于图像拼接,OpenCV中也实现了相同的构造。
最后我们可以遍历生成树来得到最终的变换。现在,从被选为参考坐标系的网格到其他网格只有一条路径。对于每个网格,我们可以沿着路径合成成对的变换来得到最终的结果。当我们在齐次坐标系中工作时,它等价于沿着路径的成对变换的矩阵乘积。通过算法3,这可以在线性时间内完成。
在这里插入图片描述

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值