Reference:作者来自中科院自动化所和Intel中国,通信作者是史雪松博士(复旦博士,现为高仙机器人SLAM算法总监,其曾在intel研究院担任主任研究员,OpenLORIS系列数据集作者,IROS2019Lifelong Robotic Vision Challenge竞赛主席);IROS2021,Citations:4,代码和数据集未开源
Overview:提出了一个多机协同的VSLAM框架,利用边缘服务器做维护整个全局地图更新和优化,每个机器人可以注册、更新全局地图;作者设计了多个机器热之间的通信系统,并且提出了一种新的在服务器端landmark的管理和检索的方法,并且每个机器人都可以将其投影到当前帧进行预测,从而增强本地的地图;系统支持RGB-D 和单目相机,并且考虑了相机之间的刚性约束情况。
Motiviations:一般机器人工作时需要预先建立地图,但是很多情况下场景是会发生改变的,所以机器人也是需要更新并维护地图;多个机器人工作在一个场景中时,需要一个统一的地图去管理。Collaborative SLAM能够让多个独立的agents之间交换信息,从而在定位和建图上达到更高的 robustness, efficiency and accuracy。
Contributions:
这些提到了一些VSLAM的代表工作,根据视觉信息利用的方式,VSLAM算法可以分为直接法和特征点法,直接法可以生成稠密和半稠密的地图;特征点法虽然往往生成稀疏地图,但是一般更加accurate and robust;该项目的系统是基于OpenVSLAM的,貌似史博在高仙机器人上的VSLAM方案也是基于OpenVSLAM的(可能事因为从商业的角度,ORB-SLAM系列是GPL的,OpenVSLAM是 2-clause BSD license)。
这里提到了一些协同SLAM的工作;multi-agent SLAM允许多台机器人设备构建并且重复使用同一张地图;这里Multi-agent SLAM有基于地面站的、云的(client-server),也有一些分布式的算法。
针对于分布式算法 本身,计算和通信方面成本更高,并且更容易受到误测量和匹配的影响,因为每个agent只能访问部分和本地信息;所以广泛认为这类算法不太可靠。本文提出的系统和CCM-SLAM非常相像。
Multi-camera SLAM可以看作multi-agent SLAM带有刚性约束的特例;Multi-camera SLAM中如果是由很大overlap的view,可以视作为双目相机系统。
Multi-session SLAM(lifelong SLAM in some contexts)目的在于在一个地方重新使用以前的地图信息,可以看作是multi-agent SLAM的sub-topic,ORB-SLAM3称这个为 Atlas,表明全局拓扑图可以被多个本地 SLAM 会话有效地构建和重用;Maplab、RTABMap、ORB-SLAM3支持地图重用和合并。
本文的目标在为多个地面机器人构建一个ready-to-use的VSLAM系统,这个系统应该满足以下添加:
允许多个机器人构建和使用一个或者是多个全局的地图,同时应该没有什么的移动假设,
实现机器人之间的及时信息共享,以协同应对场景变化和扩展
允许机器人携带多个摄像头充分利用整个视野。
同时带有以下的限制约束:
按照上面的目标,自然的选择使用local的边缘服务器完成连接和地图管理。
系统的模块设计如上图所示,这里简略描述各个模块的功能以及其部署在client or server的原因:
上面的模块化设备,整个系统可以部署在any keypoint and keyframe-based SLAM的系统上,这里作者将这个系统部署在OpenVSLAM(支持monocular, stereo and RGB-D)上;和其他的collaborative SLAM的工作需要相同的传感器不同,本文的框架支持不同的相机。 client和server数据传输的内容都是keyframe和landmarks。
当clinet开始/从跟踪失败中重新恢复,都会initializes a new session and builds a new local map,这个map和server’s map database同步;
该部分主要是说collaborative SLAM是如何利用agent的信息,帮助每个agent进行定位的,这也是collaborative SLAM问题和单个SLAM的优势点;在 client-server框架中,可以让server sending the global map to each client 或者 更高效的只发送靠近client当前keyframe的keyframes and landmarks过去。但是找到这些 靠近的keyframes and landmarks 挺麻烦的,CCM-SLAM检索具有最强共视关系的关键帧,[18]使用voxel map索引来有效地检索给定相机视图中的landmarks。
因为服务机器人可能会面临featureless walls or serious occlusion的问题,所以一般的服务机器热上会装配多个camera,这种装配会自然形成一种刚性的约束,当一个相机tracking lost的是,其他的camera keep tracking,所以这个相机因为刚性约束还是能估计出pose使得不是真正的lost;这里作者将这种情况也添加进入整个collaborative SLAM算法框架中,并做了刚性约束这块的实现。
这里有些细节:
keyframe在client上是独立的,所以实际上在非常close的时间生成两个keyframe非常少见,这里使用一个client为一个生成一个虚拟的keyframe(相同的时间戳),然后将这个虚拟的keyframe插在最近的两个keyframe之前进行约束上的实现。
因为如何直接给两个keyframe添加刚性约束,则可能会像回环检测一样触发 map merging/PGO,为了避免这种频繁的优化,这里设置只有当两个关键帧之间的相对位姿从约束偏离到某个阈值时,它们才会被触发,
因为多个相机的client是松耦合的关系,所以本文的框架可以支持不同的多个相机。
本文提出的系统在公开数据集和现实场景中进行了实验测试,公开数据集是 OpenLORIS-Scene datasets,其是在室内场景下由真实的服务机器人收集的。
该部分在OpenLORIS-Scene datasets上用了8个RGB-D序列进行了测试,场景可以分为:market、corridor、cafe,client主要是三种设备的机器人:Intel NUC mini-PC with i7-8809G、desktop with i7-7820X、Dell laptop with i5-6300HQ,server是另一个NUC,局域网连接;下图3显示了过程效果:
八个client下,server的CPU占用率是 100%-150%,说明这台四核的设备可以支持更好的clients。
作者将该方法和 OpenVSLAM比较了定位的精度,测试了market序列,下图1显示了效果;本文的系统在market1-1 and market1-2展示出更好的精度,很可能原因是这两个序列上没有self-loop。
该部分在真实场景下,一个机器人携带一前一后两个RealSense D455 RGB-D 进行测试,所以并没有overlap;效果见下图4。
作者在market序列上利用三个client测试了real-time performance,time cost如下图二所示,数值是设备Intel NUC mini-PC with Intel Core i7-8809G 三次运行的平均值,结果表明client能支持30 FPS RGB-D的设备;server端的计算量更是很低,因为map updating and landmark retrieval只对keyframe进行,而map merging and pose graph optimization频率非常低。提出的landmark retrieval方法cost只有1.7ms,可以忽略。
每个client和server之间的网络流量负载如下图 5 所示,平均每个client是0.5 MB/s for uplink and 0.1 MB/s for downlink,CCM-SLAM 的0.37 MB/s for uplink and 0.52 MB/s for downlink(但是两者的设备并不一样,不能直接比较);未来的工作中将进一步优化网络使用
本文提出了一种服务机器人场景的协同SLAM框架,在边缘服务器和多台机器人之间使用 client-server 通信框架进行通信,该框架可以支持多个机器人协作构建和重复使用地图;同时本文提出了新的landmark检索方法,并实时在agent之前共享;系统支持异构摄像头和多摄像头机器人。
引用论文:
Edge-SLAM: edge-assisted visual simultaneous localization and mapping
Maplab: An open framework for research in visual-inertial mapping and localization
Simultaneous localization and map building in large-scale cyclic environments using the atlas framework
Redesigning SLAM for arbitrary multi-camera systems
Visual SLAM with a multi-camera rig . 设计了8个摄像头均匀分布在一个圆内。
Video-rate localization in multiple maps for wearable augmented reality . 将PTAM扩展到多相机设备中,表明多台设备可以在一张地图上工作。
MOARSLAM: Multiple operator augmented RSLAM . 每个agent单独构建地图,并将地图和远程服务器进行同步,一旦检测到回环的情况就连接两个地图。
C2TAM: A cloud framework for cooperative tracking and mapping . 云端的协同SLAM框架
Collaborative monocular SLAM with multiple micro aerial vehicles . 在MAV上提出Collaborative Structure from Motion,每台无人机运行一个VIO,并将image features and keyframe poses发送给基站进行集中建图。
Collaborative visual SLAM for multiple agents: A brief survey 邹丹平的Collaborative visual SLAM综述