多机器人协同SLAM 技术研究进展
2022-05-14秦明星
刘 鑫,王 忠,秦明星
(火箭军工程大学 基础部,西安 710038)
0 概述
同步定位与建图(Simultaneous Localization and Mapping,SLAM)由SMITH 等[1]于1986 年提出,通过机器人自身所搭载的多传感器获取环境信息,并估计自身位姿完成地图构建,是实现机器人在未知环境下自主定位与导航的关键。目前,单机器人SLAM 技术已经具有一定的鲁棒性,且广泛应用于无人驾驶、机器人、无人机、增强现实(Augmented Reality,AR)等领域。但面对大规模环境建图要求时,全局误差会不断累积,单机器人构建地图的精度会受到影响,甚至会由于计算量过大导致建图失败。此外,在某些特定场景中,单机器人会出现意外故障,无法继续完成建图任务[2]。
随着多智能体、人工智能等理论的发展,无人机、无人车和仿人机器人等各种形状、不同能力的机器人正在被机器人研究人员们设计成能够通过相互协作或与人类合作的方式完成复杂任务的智能体。近年来,各种机器人间的合作显著增加,多机器人被广泛应用于医疗保健、仓储物流、交通系统、应急响应系统、家务劳动等领域[3]。其中,多机器人协同SLAM 以多机器人系统架构为基础,为系统内每个单机器人分配任务,利用多机通信使得机器人之间相互协调配合,共同完成复杂场景下的定位建图需求。
由于单机器人SLAM 在任务中的局限性以及多机器人系统表现出的较强的灵活性和适应性,使多机器人协同SLAM 受到越来越多的关注。目前,国内外关于多机器人协同SLAM 的研究相对单机器人SLAM 较少,且多数以多机器人协同SLAM 的某一关键问题研究为主,系统的相关技术研究成果较少。本文结合近年来多机器人协同SLAM 的研究成果,对其实现过程中的关键问题进行总结分析,并对多机器人协同SLAM 的发展趋势进行展望。
1 多机器人协同SLAM 发展现状
SLAM 问题自提出以来到现在已经发展了三十多年,随着计算机硬件和相应传感器的快速发展,使很多SLAM 算法理论得以实现。如目前单机器人常用的激光 SLAM 算法有 Gmapping[4]、Hector[5]、Cartographer[6],视 觉SLAM 算法有SVΟ-SLAM[7]、ΟRB-SLAM[8]等。在单机器人SLAM 算法的发展相对成熟下,研究人员们开始将研究方向转移至多机器人SLAM 算法,以便迎合未来大规模场景建图导航与定位的需求。
多机器人协同SLAM 实现的基础是多机器人系统。多机器人系统通常采用集中式、分布式和分布-集中式3 种架构。目前,多机器人系统的相关理论研究成果较为丰富,但实际开发和应用中仍有很多问题有待解决[9]。多机器人协同SLAM 关键在于如何生成全局一致性地图,其中又涉及机器人间的位姿估计、通信等问题。对于多机器人协同SLAM,目前已有一些解决方法被提出,如基于拓展卡尔曼滤波(EKF-SLAM)、基于粒子滤波(PF-SLAM)、图优化(Graph SLAM)等算法。
基于拓展卡尔曼滤波的SLAM 是协同SLAM 中应用最广泛的一种解决方法。2014 年,SCHMIDT[10]提出基于拓展卡尔曼滤波的多机器人视觉SLAM 系统,在MonoSLAM 的基础上引入机器人交互观测机制,测量机器人间的相对位姿。通过拓展卡尔曼滤波不断更新状态估计,以允许多个异构机器人进行协同SLAM。2016 年,PIASCΟ 等[11]设计一种基于拓展卡尔曼滤波的传感器融合方案,从分布式的测量数据中估计所有无人机的位置和方向,完成了具有多个无人机的分布式立体视觉协同定位。但拓展卡尔曼滤波是将非线性系统线性化来估计位姿,会出现不可避免的增量误差。为了获取理想的滤波效果和减少状态估计误差,2021 年,ZHΟU 等[12]提出一种含有遗传因子的改进拓展卡尔曼滤波算法,将当前步骤的状态更新拓展为当前和之前两个步骤的状态更新,并引入遗传因子来降低之前步骤状态更新的影响,该算法提高了拓展卡尔曼滤波的定位精度。
拓展卡尔曼滤波在更新位姿状态时需要计算雅可比矩阵,由于雅可比矩阵的计算复杂性,基于拓展卡尔曼滤波的SLAM 算法无法满足实时性要求,不能生成大的环境地图。为了解决该问题,研究人员引入了不计算雅可比矩阵的粒子滤波。2002 年,MΟNTEMERLΟ 等[13]提出Fast SLAM 算法,采用粒子滤波算法解决定位问题,采用拓展卡尔曼滤波算法解决地图创建问题,实现了实时输出栅格地图。但粒子滤波中粒子重采样的随机性会导致粒子的多样性散失,粒子耗散也随着采样次数不断加剧,进而影响地图构建精度。为了解决这一问题,2014 年,TANG 等[14]提出基于粒子群优化的SLAM 算法,在采样前调整粒子位置,增强建议分布,提高定位精度。2021 年,LIU[15]提出在标准粒子滤波中引入基于点线一致性的增量式地图构建方法,该方法保留了每个粒子中线段特征地图的假设,并对观测信息引入重要性函数。在此基础上,提取局部地图的ΟRB 特征,寻找最佳匹配点并计算其点集的变换矩阵,从而完成高精度的地图融合,实现多机器人协同SLAM。
图优化是一种平滑的SLAM 算法,可以将该算法分为前端和后端两个部分。前端以机器人位姿为顶点、位姿关系为边来构建位姿图,后端调整机器人位姿顶点来满足位姿关系边的约束。图优化SLAM通过最大后验概率估计将SLAM 问题转化为最小二乘优化问题,由于先前的所有状态和观测到的数据都参与了优化[16],机器人姿态估计的精度有了明显提高。2010 年,KIM 等[17]通过描述多个位姿图之间的关系,提出增量式平滑和建图(Incremental Smoothing and Mapping,ISAM)算法优化不同的相对位姿图,实现多机器人协同建图。
近年来,随着人工智能的深入研究,研究人员们将深度学习与SLAM 技术相结合,出现了基于深度学习的AI SLAM 算法[18-19]。目前,深度学习与SLAM 的结合主要体现在帧间估计[20]、闭环检测[21]和语义地图[22]3 个方面。结合了深度学习的帧间估计较传统算法避免了复杂计算,更加简洁;在闭环检测方面,准确度、鲁棒性、智能化程度都比传统闭环检测方法高;融合了深度学习的语义地图丰富了地图信息,尤其是室内SLAM 使物体标签化,极大地促进了机器人和环境间的交互[23]。目前主流的多机器人协同SLAM 算法对比如表1 所示。
表1 主流的多机器人协同SLAM 算法对比Table 1 Comparison of mainstream multi-robot collaborative SLAM algorithms
2 多机器人协同SLAM 分类
目前,多机器人协同SLAM 是建立在多机器人系统以及单机器人执行建图任务的基础上。因此,根据单机器人自身所搭载的传感器不同,可以将多机器人协同SLAM 主要分为激光协同SLAM、视觉协同SLAM 和激光视觉融合SLAM 三大类。
2.1 激光协同SLAM
当前,多机器人激光协同SLAM 框架主要基于单机器人激光SLAM 进行建图任务,并保证所创建局部地图的精度。通过多机器人系统架构进行通信,对局部地图进行关联匹配,闭环检测。最终进行地图融合,并对融合后的全局地图进行优化。多机器人激光协同SLAM 框架如图1 所示。
图1 多机器人激光协同SLAM 框架Fig.1 Multi-robot laser collaborative SLAM framework
在单机器人激光SLAM 中,2D/3D 激光雷达作为主要传感器。为了保证建图精度,一般还会搭载惯性测量单元(Inertial Measurement Unit,IMU)、里程计等传感器辅助激光雷达进行多传感器数据融合。通常在简单的室内场景下采用2D 激光雷达,复杂的室外场景采用3D 激光雷达,结合IMU 计算角度信息、里程计计算位置信息来完成单机器人SLAM。
如图1 所示,可将激光SLAM 主要分为扫描匹配、后端优化、闭环检测3 个关键模块。扫描匹配是通过相邻帧之间的关系在已知前一帧位姿的条件下估计当前帧位姿,进而生成短时间内的位姿和地图。目前常用的扫描匹配算法有迭代最近点(Iterative Closest Point,ICP)、相关性 扫描匹 配(Correlation Scan Match,CSM)、正态分布变换(Normal Distribute Transformation,NDT)等[24-26]。后端优化主要是解决不可避免的局部误差累积,目前以基于滤波的优化和基于图优化的后端优化算法为主。闭环检测是对激光数据扫描匹配的相似性进行检测,判断当前所处位置是否为曾经访问过的位置,从而对当前构建的地图进行优化。目前主要有帧与帧之间检测、帧与子图之间检测、子图与子图之间检测等方法。
自1987 年SMITH 等[27]引出SLAM 概念 并基于扩展卡尔曼滤波提出EKF-SLAM 算法以来,激光SLAM 算法的研究便被越来越多的研究人员所关注。2016 年,谷歌公司提出新的开源SLAM 算法Cartographer[6],融合IMU、里程计等传感器数据,不断更新优化前端扫描匹配所创建的子图,后端加入闭环检测并对子图再次优化,得到全局地图。2020 年,仇昌成[28]在谷歌公司的Cartographer 算法基础上,提出基于ΟctoMap 的多机器人SLAM 算法。该算法首先保存单机器人在给定的环境中所创建的子地图序列,通过ΟctoMap 关联算法对子图进行数据关联和子地图的闭环检测;然后选取子地图中匹配特征数量最多的变换矩阵作为单机器人之间的位姿变换,选择全局坐标系,提取多机器人的正确闭环,创建多机器人的全局优化函数;最后基于L-M 算法求解全局优化函数的最优解,得到子地图之间的最优变换矩阵,通过ΟctoMap 融合算法创建全局地图。
目前,将成熟的单机器人激光SLAM 算法拓展到多个机器人来解决多机器人协同激光SLAM 问题是常见的解决方案。2019 年,ZHANG 等[29]提出一种仅基于3D 激光雷达传感器的多车协同SLAM 算法。首先使单机器人通过LΟAM-SLAM[30]算法生成自身局部地图;其次提取观察帧的地面特征,生成多个特征帧对两个机器人经过的相同场景进行识别;最后从所提取的相同场景区域的所有帧对中提取点云,为每个单机器人建立子图,计算位姿变换矩阵,创建全局一致性地图。
2.2 视觉协同SLAM
相对于激光雷达,相机以小体积、低功耗、获取信息丰富等特点已成为SLAM 问题的主要传感器之一。目前,视觉协同SLAM 的主体实现框架和激光协同SLAM 大致相同,主要基于单机器人视觉SLAM 以及多机器人系统来完成多机器人视觉协同SLAM。多机器人视觉协同SLAM 的框架如图2 所示。
图2 多机器人视觉协同SLAM 框架Fig.2 Multi-robot visual collaborative SLAM framework
在单机器人视觉SLAM 中,相机作为主要传感器。根据不同的相机特点,可以将视觉SLAM 分为仅搭载一个相机的单目视觉SLAM、搭载多个相机的立体视觉SLAM 和搭载深度相机的RGB-D SLAM[31]。相对激光SLAM 而言,视觉SLAM 对环境的描述更为精细,但将相机作为唯一的传感器仍会受到复杂环境的影响。为了达到更好的建图与定位效果,研究人员们在视觉SLAM 中也融合了IMU、里程计等传感器数据,提高了视觉SLAM 在面对复杂环境时的鲁棒性[32-33]。
如图2 所示,可将视觉SLAM 主要分为视觉前端、后端优化和回环检测三大部分。视觉前端主要分为直接法和特征点法,由于直接法很难匹配多机器人相机间的像素建立对应关系,因此在多机器人视觉SLAM 中,视觉前端一般选择特征点法,包含特征检测与提取、特征匹配和帧间配准。目前主流的特征提取方案主要有尺度不变特征变换(Scale-Invariant Feature Transform,SIFT)、加速稳健特征(Speeded Up Robust Features,SURF)、ΟRB(Οriented FAST and Rotated BRIEF)特征提取[34]等。特征匹配是用来建立相邻帧之间的相同空间点线特征的对应关系,一般通过快速近似最近邻搜索库(Fast Library for Approximate Nearest Neighbors,FLANN)或K 最近邻(K-Nearest Neighbors,KNN)等算法进行匹配,对于误匹配或匹配失败的特征点可以通过随机抽样一致(Random Sample Consensus,RANSAC)算法进行滤除[35]。帧间配准通过相邻帧之间配对成功的特征点来初步确定相邻帧的相对运动,通常选择迭代最近点(Iterative Closest Point,ICP)算法对帧间运动关系进行求解。
在后端优化方面,视觉SLAM 一般也是基于滤波算法和基于图优化两种方法进行优化处理。由于时间和帧数的不断增加,视觉前端的累计误差也会随之增长,这将使得SLAM 的效果很差,无法建立全局统一的地图。回环检测可以在当前数据和历史数据之间建立关联,通过将当前关键帧和历史所有帧进行比较,保证了在一定时间内位姿估计和所建地图的准确性。同时,这也使得多机器人协同SLAM在面临大规模地图环境时,检测时间会很长,进而导致建图效率过低等问题。在回环检测对整体SLAM效率和效果的影响问题上,有许多科研工作者设计了不同的改进算法[36-38],这对多机器人视觉协同SLAM 有较大帮助。
2007 年,DAVISΟN 等[39]提出MonoSLAM 算法,该算法将单目相机和拓展卡尔曼滤波优化算法相结合,该算法的提出拓展了视觉SLAM 的解决方案。与激光协同SLAM 相同,多机器人视觉协同SLAM的算法多数是对某种单机器人视觉SLAM 算法的拓展延伸。2019 年,SCHMUCK 等[40]提出的CCMSLAM 多机器人协同SLAM 框架便是基于单机器人的视觉SLAM 算法ΟRB-SLAM 而实现的视觉协同SLAM 算法。该算法系统框架由一个服务器和若干单机器人子端构成,单机器人仅保留基本的视觉里程计,以保证能够在环境中独立建图和定位,单机器人和服务器之间通过无线网络进行通信。在通信期间,单机器人子端负责将所建立的地图信息发送至服务器端,单机器人只保存最近的N个关键帧,由服务器存储管理每个单机器人子端的历史地图信息。同时,服务器也向单机器人子端发送地图信息,以便子端重复到达某一位置时,为单机器人子端提供历史地图信息,进一步优化本地地图。最终由服务器完成相对位姿确定、地图融合、冗余检测和全局优化、生成全局一致性地图等工作。
2.3 激光视觉融合协同SLAM
目前,多机器人协同SLAM 多数仅利用激光或视觉数据。由于单一的激光或视觉SLAM 存在一定的局限性,如激光SLAM 在又长又直的长廊中或是动态变化大的环境中容易发生定位丢失,视觉SLAM 对光照的依赖度较高以致于在暗处或无纹理区域无法进行工作,这使得多机器人SLAM 在面对大规模动态环境时呈现出较低的效率和鲁棒性,因此将能够直接检测障碍物的激光SLAM 和能够从图像中提取丰富信息的视觉SLAM 相融合,以实现高性能的多机器人协同SLAM是一个较好的解决方法。
在单机器人实现激光和视觉融合SLAM 算法中:2006 年,NEWMAN 等[41]利用SIFI 特征实现闭环检测,然后触发基于激光的扫描匹配来实现SLAM,但该算法存在计算成本高的缺点;2015 年,ZHANG等[42]开发了一个将视觉和激光结合的通用框架,该框架首先通过视觉里程计估计自身位姿并配准来自激光雷达获取的点云数据,再利用基于激光雷达里程计细化位姿估计和点云配准。
与单一的激光或视觉协同SLAM 算法相似,多机器人融合协同SLAM 是基于单机器人融合SLAM来实现的。2019 年,CHEN 等[43]提出一个多机器人融合SLAM 算法。该算法首先将激光雷达前端获取的激光数据进行帧间扫描匹配,生成位姿图并基于滑动窗口对其优化和映射;然后将视觉所获取的信息进行闭环检测并发送闭环信号至激光雷达前端,激光数据对该视觉闭环进行判断和修正,以实现高效的环路检测和闭合;最后通过局域网使得多个机器人能够及时传输数据,将单个位姿图转换为同一坐标系下对不同机器人间的位姿图建立约束连接,通过最小二乘法对其进行优化,便得到了由多机器人构建的全局地图。
结合多机器人激光协同SLAM、多机器人视觉协同SLAM 以及多机器人激光视觉融合协同SLAM 的实现过程和主传感器差异,3 种算法在对环境的适应性、计算量、建图质量等方面都有所不同。表2 列出了3 种主传感器下多机器人协同SLAM 算法的性能比较。
表2 3 种主传感器下多机器人协同SLAM 算法的性能比较Table 2 Performance comparison of multi-robot cooperative SLAM algorithms under three main sensors
3 协同SLAM 的关键问题
多机器人协同SLAM 相对单机器人SLAM 有着效率高、容错性强、精准度高等优势,但同时也面临一些问题和挑战。在多机器人协同SLAM 中,单机器人在构建局部地图的同时需要整合所有可用数据来辅助自己在全局环境中进行精准定位,通过多机器人系统之间的通信进行数据关联,相互协调构建一致的全局地图。所涉及的架构选择和任务分配、相对位姿确定、通信和数据关联、地图融合和后端优化等都是多机器人协同SLAM 的关键问题。
3.1 架构选择和任务分配
对于多机器人协同建图,首先需要对总体任务进行了解,根据单机器人的整体性能,选择适合本次任务的多机器人系统。多机器人系统是多机器人协同SLAM 的基础,多机器人系统需要根据环境约束、任务规模等因素来选择不同的架构,从而更好地实现任务分配和协同作业。目前,根据不同的控制方式,可以将多机器人系统架构分为集中式、分布式、分布-集中式3 种,如图3 所示。
图3 多机器人系统架构Fig.3 Multi-robot system architecture
1)集中式,通常采取服务端和客户端模式,设置计算力较高的中央控制端作为服务端,单机器人作为客户端。单机器人与中央控制端通过局域网或移动网进行通信,单机器人传输自身获取的环境信息给中央控制端,中央控制端给单机器人发布任务和其他指令。中央控制端可以根据系统中所有单机器人观测到的环境信息构建全局地图,由于所有的任务都由中央控制端处理和发布,单机器人只需完成自身SLAM 问题即可,单个机器人成本低,执行效率高[44-45]。但为了保证机器人与中央控制端之间必要的数据传输,集中式要求单个机器人必须在中央控制端的通信范围内开展建图任务。随着云计算、5G通信等技术的发展,将中央控制计算单元设在云端,通过全覆盖的5G 网络达到实时通信的集中式架构也正在研究中[46]。
2)分布式,该系统中的每个机器人在建立自身局部地图的同时,还可以与系统中其他机器人进行通信。在通信过程中,选择计算力较强的单机器人来融合系统中其他机器人的局部地图,从而生成全局地图[47-49]。相对集中式而言,虽然分布式系统的鲁棒性更强,不受通信范围的约束,但实际应用在多机器人协同SLAM 中也更为复杂。分布式要求系统为每个拥有不同计算力的机器人分配不同任务,计算力的不同也影响到单机器人间所交流的信息量大小不一[50-51]。因此,分布式系统中两两机器人间的通信负载也不尽相同,这便要求分布式系统中的通信带宽需设置在一个合适的范围内。
3)分布-集中式,可以将系统中的机器人进行分组,在分组内采用分布式控制方式生成局部地图,之后通过中央管理模块生成全局地图。或者在通信范围内选择集中式控制方式,当超出通信范围时转换为分布式控制方式,以实现多机器人系统架构的稳定性。分布-集中式既具备集中与分布两种系统的优势,又保持了一致性[52]。在许多分布-集中式的架构中,中央管理模块承担较多的计算量,在给子端发送命令时也会将部分任务分配给单机器人来处理[53-54]。
3.2 多机通信和数据关联
多机器人间的通信对多机器人协同SLAM 是至关重要的,机器人之间的数据可以通过当前任务所处环境中稳定可用的通信信道进行共享处理。对某一环境而言,当前通信的带宽和覆盖范围代表着该环境下的通信质量和稳定性。因此,多机通信的带宽和覆盖范围决定了多机器人协同SLAM 的质量。数据的交换共享可以是机器人与机器人(分布式)或中央控制端(集中式)之间的原始数据,如雷达、摄像头里程计等传感器直接获取的数据[55]。但在多数情况下,交换的数据信息是机器人所构建的局部地图、当前位姿等已加工数据[56],在这种情况下所交换的数据量也会成倍增长,对带宽和通信范围有了更高的要求。
目前,为解决基本的带宽需求问题,MΟHANARAJAH等[57]提出在机器人间只发送压缩的关键帧和更新的关键帧位姿,GUPTA 等[58]建议通过改进协议和路由的方法来满足带宽需求,MARCΟTTE 等[59]还提出通过机器人决策交换数据的优化算法来动态地适应当前带宽的解决方法。在现实的环境中,多机器人协同工作期间,机器人可能会出现故障、被攻击、超出通信范围等情况,从而出现网络被分割等问题。在多机器人系统SLAM 中所涉及的通信延迟、中断容忍度、网络动态性、无缝切换、通信安全等问题也将在接下来的研究中进一步考虑。
数据关联一直是实现SLAM 的关键问题,在多机器人协同SLAM 中尤为重要。成功的数据关联需要将正确的测量和正确的状态相关联,初始化新的轨迹,检测和拒绝虚假的测量[60]。数据关联问题中一种常见的解决方案为最大似然估计[61],在给定位姿和基准标记的初始估计的情况下,计算最大似然数据关联集合,并随着机器人状态改变不断更新。另一种解决方案是概率数据关联,采用多假设的方法,保留并关联多个概率数据,形成并计算多个假设分支的得分,在多个假设分支中选择最高得分的分支[62]。
3.3 多机器人间的相对位姿
在单机器人SLAM 中,单机器人依据自身搭载的一系列传感器获取自身位姿,创建局部坐标系和局部地图。当单机器人进行地图更新时,由于传感器误差和环境的不确定性会造成自身位姿的不确定。在多机器人协同SLAM 中,多机器人系统需要对单机器人当前所处环境及位姿进行分析,并计算多机器人系统中每个机器人的相对位姿。由于单机器人本身存在一定的位姿不确定性,再加上机器人系统中存在多个机器人,因此相对位姿的确定是非常困难的。
在解决多机器人相对位姿问题时,通常有以下两种方案:
1)依赖于机器人之间的直接相对位姿约束,假设机器人能够共享它们之间的3D 点云数据,或者识别环境中的基准标记,通过雷达、摄像头等传感器对彼此的姿态进行直接观察估计[63]。在任务中与其他机器人相遇时,推测彼此在当前时间下的相对姿态并相应地更新它们的位姿估计[64]。2018 年,TSΟUKALAS 等[65]提出在无人机顶端添加一个由17 个小平面组成的菱形基准标记,该标记可以被无人机所搭载的视觉传感器所识别,进而在无人机之间优化更新相对位姿的估计。
2)依赖于机器人之间的间接相对位姿约束,当多个机器人观察到同一场景时会形成闭环约束[66]。此外,可以在不同时间多个机器人之间建立该约束,不需要机器人之间的直接视线和相遇。2018 年,CHEN 等[50]通过计算当前关键帧的视觉单词,并在由DBoW2 构成的视觉词汇树中获取与当前关键帧相似的候选帧。对匹配度较高的候选帧进行Sim3变换,RANSAC 算法迭代计算相似变换,将回环检测的思想应用于帧间匹配,进而估计相对位姿。
3.4 地图融合
在多机器人协同SLAM 中,单机器人在给定的任务范围内建立局部地图,协同SLAM 需要将所有单机器人建立的局部地图融合起来生成全局地图。但由于每个单机器人在生成局部地图时的坐标系不统一,因此不能对局部地图直接进行合并。针对该问题通常有以下两种情况:
1)已知初始相对位姿的情况:直接利用初始位姿关系得到局部地图之间的变换关系,但该方法的误差会随着时间不断累积[67]。为了使误差尽可能最小,通过梯度下降法寻找最优变换,或者通过粒子滤波算法进行优化[68]。
2)未知初始相对位姿的情况:通过机器人计算机器人间的直接相对位姿约束,进而得到所生成局部地图之间的变换关系[69]。另外,在单机器人所生成的局部地图间进行重叠检测,寻找重叠区域,从而得到变换关系[70]。并且,基于点、线或者其他特征进行匹配,对匹配的特征进行可靠性分析,以此来计算局部地图之间的变换关系[71]。
3.5 后端优化
在多机器人协同SLAM 中,后端优化是极其重要的环节,主要根据多机器人协同SLAM 前端所构建的相关约束,形成多机器人协同SLAM 的全局误差目标函数。接着通过优化算法对目标函数求出最优解,将全局误差降至最小,并创建全局一致性地图。
根据后端优化时算法的不同,多机器人SLAM算法主要分为基于滤波器和基于图优化的算法。在基于滤波器的算法方面,2006 年,ZHΟU 等[72]基于卡尔曼滤波对机器人的位姿和标志点信息进行滤波,提出EKF-SLAM 算法来解决多机器人建图问题。由于该算法需要不断更新协方差矩阵(其计算量与特征点数量成正比)来表示机器人之间相对位姿的不确定性,当面临复杂环境时,EKF-SLAM 算法的计算量会比较大。2005 年,THRUN 等[73]提出基于稀疏特征的扩展信息滤波算法SEIF-SLAM,采用可加性的信息矩阵替换协方差矩阵来降低多机器人SLAM 的计算 复杂性。2006 年,HΟWARD[74]在THRUN 等研究基础上提出基于Rao-Blackwellised粒子滤波的多机器人SLAM 算法,假设每个机器人在执行任务时至少相遇一次,相遇时测量其相对位姿,通过两个队列来记录机器人相遇前后的观测数据和运动数据并创建全局地图。但基于滤波的SLAM 算法计算量比较大,特别是在复杂环境下对机器人的计算能力有较高要求。基于图优化的SLAM 算法以计算量小、精准度高等优点逐渐被广大研究人员所关注。2016 年,DEUTSCH 等[75]提出了单机器人图优化SLAM 算法获取局部位姿图,通过软件进行聚合生成全局位姿图的多机器人协同SLAM 框架,该框架可以与各种SLAM 算法协同工作。同年,CAMPΟS 等[76]将光学轨迹与机器人的度量轨迹相融合,并进行图优化,基于多机器人对水下环境进行了3D 建图。2020 年,BΟNIN-FΟNT 等[77]提出在单个基于姿态的图中连接不同机器人在相同场景下的多条轨迹,然后通过HALΟC 回环检测算法在不同机器人的轨迹图像之间寻找循环闭合,并向全局图添加附加约束,基于图优化的算法实现了多机器人水下协同SLAM。
4 未来研究展望
当前,对多机器人协同SLAM 而言,由于发展时间稍短,其算法的成熟度仍不如单机器人SLAM。在多机器人协同SLAM 的关键问题上,研究人员展开了系列研究,使多机器人协同SLAM 较前些年有了一定的进步。结合目前研究现状,笔者认为多机器人协同SLAM将在以下6 个方面做进一步的研究与探索:
1)异构机器人协同技术下的多种地图合并。在未知的复杂环境中,单纯地依靠一种类型的机器人俨然不能满足任务需要。如只通过无人机对地面环境进行建图时,对环境的描述是相对粗糙的,若将地面机器人与无人机相结合,其整体对环境的描述将会更加细腻。机器人多样化是多机器人的发展趋势。对于不同类型的机器人,所生成的地图类型也不尽相同,如栅格地图、拓扑地图、语义地图等。如何融合多种机器人的传感器数据和多种类型的地图,创建一致性的环境地图是多机器人协同SLAM未来要解决的关键问题。
2)多样性环境下稳定且高效的通信技术。在多机器人协同SLAM 中,容错性仍是一个关键问题,持续且良好的通信保障能够有效提高协同SLAM 的容错性。环境的多样性决定了通信介质的多样性,如水下环境中的高干扰和较差的信号传播条件,直接影响了通信的可靠性。如何在多样性的环境下保持良好的通信,以及在数据丢失的情况下建立高质量的地图对于多机器人协同SLAM 而言是一项挑战。
3)大范围未知环境条件下的协同SLAM 算法。当前,许多协同SLAM 算法在创建全局一致性地图时通常是对已完成的局部地图进行融合,这导致了在特征类似或缺失的环境中算法表现较差。在地图融合的过程中考虑加入时间戳机制或一定时间内进行一次局部地图融合,有利于在动态的环境中进行SLAM。大范围环境中进行SLAM 对机器人间的协调而言是具有挑战性的,尤其对于多机器人系统架构。将协同SLAM 应用场景由小范围静态转变为大范围动态既是多机器人协同SLAM 的发展趋势,也是一大挑战。
4)不同机器人数量的弹性变换协同技术。目前多数多机器人协同SLAM 算法是在某一特定场景下执行,其机器人的数量也是提前设定好的,这样的协同SLAM 算法面对不同环境时会很大程度影响整体效果和效率。因此,在设计协同SLAM 算法时,考虑算法中机器人的数量可以随着环境变化而弹性增减,能够提高算法的鲁棒性和效率。
5)深度学习与语义SLAM。随着深度学习和计算机硬件的快速发展,将目标检测等算法应用在机器人上已经成为现实。将目标识别检测与语义SLAM 相结合,使得机器人对环境中的物体标签化,一方面可以辅助机器人确定自身位姿,另一方面也可以加强机器人与环境中物体的交互性。
6)统一的多机器人协同SLAM 性能评估技术。在多机器人协同SLAM 得到越来越多科研工作者关注的情况下,协同SLAM 的解决方案也在不断增长。因此,亟需选择定位建图精度、工作效率、鲁棒性等多个性能评价指标对不同算法进行客观评估。
5 结束语
针对单机器人SLAM 在实际应用中的局限性,本文引入多机器人协同SLAM 概念并介绍其发展现状,明确多机器人协同已经成为SLAM 的主要发展趋势。随着研究的不断深入,多机器人协同的关键问题逐渐被解决,异构多机器人协同和语义SLAM作为主要发展趋势,不仅能够拓展SLAM 应用的空间维度,而且为机器人与环境之间的深度交互提供了新思路。但若将多机器人协同技术广泛应用于SLAM 领域,则其算法细节与鲁棒性仍有待提升,因此下一步将对此进行深入研究。