论文部分内容阅读
同步定位与地图构建(SLAM)是移动机器人实现自主行为的前提和基础,其解决方案具有高度数据密集和计算密集的特点。在传统机器人架构中,SLAM的实现完全依赖机器人板载计算机自带的计算和存储资源,导致其效能严重受限。近年来。“云端融合”这一新兴计算模式的兴趣,使得作为“端”的机器人有可能利用“云”的计算资源,而“云”上的大量数据及数据共享能力也有助于提高“端”在SLAM过程中的效能。这一思路催生了“云机器人”等新兴机器人计算范型的出现。但是,由于机器人应用具有与物理世界紧密结合、对计算时效性高度敏感的特点,简单地将“云”和“端”连接在一起是远远不足的。在大规模复杂任务场景中,现有工作面临巨大挑战,突出表现为:(1)现有计算迁移方法的适应性在动态规模化场景中呈现诸多问题。它们中大多面向某一类具体的SLAM算法,受到任务规模或传感器输入类型的限制。而通用方法在动态环境也面临鲁棒性无法满足服务质量的难题,在网络不稳定或云平台服务质量下降时,任务处理能力遭遇显著降级;(2)在开放和多变的环境中,由于可用的地图数据难以满足任务对环境的感知要求,基于视觉的SLAM方法的SLAM子优化过程常常出现性能和精度下降。虽然云平台赋予了SLAM任务共享多机器人地图数据能力,但是在现有的初步探索中,基于云平台的方法难以高效利用共享数据,同时缺乏和这些本地子优化过程融合的有效途径。本文基于“云端融合”这一新兴计算模式,围绕“如何赋予现有的SLAM算法与云平台进行高效协同的能力”这一问题,针对上述挑战展开初步探索。本文的主要工作包括:(1)提出了面向服务质量的SLAM计算任务透明迁移机制计算迁移是实现”云端融合“同步定位和地图构建的重要环节。针对现有的机器人应用程序难以有效地部署到云平台中的难题,本文提出了透明的服务化封装机制,其目的是赋予机器人应用程序透明地迁移计算模块到云平台的能力,并能够和本地机器人进行实时通信,而无需进行代码修改。为了满足机器人应用所需的服务质量和稳定性,在此基础上在云平台和机器人端设计了协同的服务质量保障机制,以应对机器人和云之间网络故障等性能抖动。(2)面向多机器人协同SLAM的多层次通信迁移方法多机器人协同SLAM应用中,实体之间密集的数据交换成为新的性能瓶颈。针对此问题,本文首先对多机器人点对点通信为基础的软件架构的计算和通信模型进行形式化,并对本地原生和计算迁移性能对比观察和分析,进而从中抽象出三种消息的通信瓶颈模式,并对于每种不同的通信瓶颈模式,依次提出不同层次的优化机制通过这些方法,所依托的框架达到动态优化网络拓扑上的数据传输路径,和透明地减少机器人和云平台之间冗余的消息的目的,从而对协同SLAM任务的通信效率和整体性能带来显著提升。(3)利用云端融合的大规模机器人协同SLAM方法为了有效利用”云端融合“模式下”云“的计算能力、提高多机器人协同SLAM的可伸缩性,本文进一步提出了利用云平台多主机并行处理SLAM任务的方法。为了应对多机器人大规模协同SLAM的实时性和精度要求,本文在云平台的通信和一致性方面分别提出了相应的并行优化方法。在通信优化上,提出的Multicut算法将机器人在集群内部分组和面向不同消息类型的高带宽低延迟通信模式;在一致性方面,为了满足不同类型数据的共享和延迟要求,提出基于血统的一致性维护方法。所提出方法在充分利用分布式集群的并行处理能力的前提下,对协同SLAM的可扩展性的提升取得显著效果。(4)云共享的先验地图知识与SLAM的高效融合为了高效利用“云端融合”模式中“云”的数据共享能力,本文以SLAM中回环检测和重定位为研究对象,分别提出了地图共享与现有SLAM算法高效融合的方法。基于回环检测中出现的空间位姿关系模式,本文提出了基于空间临近关系的可嵌入的回环检测优化算法,旨在改善具有内存约束的SLAM方法中检测回环的过程中匹配过少的问题;同时,在基于关键帧的SLAM算法中,也相应提出了基于云平台共享的的重定位候选帧扩展方法,以提升现有的重定位方法的定位速度。以上融合方法,在提高了子过程处理能力的同时,保持了现有SLAM框架的低内存占用和后端位姿优化图限制大小的性质,同时避免引入额外的性能开销,达到了优化的效果。上述工作最终物化以Cloudroid/Cloudroid Swarm任务协作框架和基于云平台的算法具体实现:前者以所提出的计算迁移和协同迁移方法为基础的任务迁移平台,后者为高效利用云平台辅助SLAM任务提供了具体的优化策略。本文成果已在所描述的大量的实际物理场景中的SLAM实验和以ORB-SLAM,RTAB-Map和RGBDSLAM等典型SLAM方法为代表的测试用例中得到验证。