• [LiteratureReview]A Collaborative Visual SLAM Framework for Service Robots


    Reference:作者来自中科院自动化所和Intel中国,通信作者是史雪松博士(复旦博士,现为高仙机器人SLAM算法总监,其曾在intel研究院担任主任研究员,OpenLORIS系列数据集作者,IROS2019Lifelong Robotic Vision Challenge竞赛主席);IROS2021,Citations:4,代码和数据集未开源

    Overview:提出了一个多机协同的VSLAM框架,利用边缘服务器做维护整个全局地图更新和优化,每个机器人可以注册、更新全局地图;作者设计了多个机器热之间的通信系统,并且提出了一种新的在服务器端landmark的管理和检索的方法,并且每个机器人都可以将其投影到当前帧进行预测,从而增强本地的地图;系统支持RGB-D 和单目相机,并且考虑了相机之间的刚性约束情况。

    Introduction

    Motiviations:一般机器人工作时需要预先建立地图,但是很多情况下场景是会发生改变的,所以机器人也是需要更新并维护地图;多个机器人工作在一个场景中时,需要一个统一的地图去管理。Collaborative SLAM能够让多个独立的agents之间交换信息,从而在定位和建图上达到更高的 robustness, efficiency and accuracy。

    Contributions:

    • 本文提出的方案是一个集中式的方法,每个client只维护一个很小的local map用来real-time pose tracking,地图主要由server进行维护,client能够通过新的观测来优化本地的地图;上传时,这里client向server传输keyframes(包含landmarks)而不是传输image,从而减少了每个机器人在server上的计算成本;下载时,client从server下载的仅仅是 检索client当前视图中的地标(通过位置距离信息和相机内参投影)。loop close上,server只会从所有的keyframe中进行检测回环优化/地图合并。
    • 同时提出了一种新的 landmark组织和检索的方式,该方式允许real-time的信息共享,
    • 该框架允许多台机器人,每台机器人上多台相机的部署。

    Related work

    A. Visual SLAM

    这些提到了一些VSLAM的代表工作,根据视觉信息利用的方式,VSLAM算法可以分为直接法和特征点法,直接法可以生成稠密和半稠密的地图;特征点法虽然往往生成稀疏地图,但是一般更加accurate and robust;该项目的系统是基于OpenVSLAM的,貌似史博在高仙机器人上的VSLAM方案也是基于OpenVSLAM的(可能事因为从商业的角度,ORB-SLAM系列是GPL的,OpenVSLAM是 2-clause BSD license)。

    B. Multi-agent SLAM

    这里提到了一些协同SLAM的工作;multi-agent SLAM允许多台机器人设备构建并且重复使用同一张地图;这里Multi-agent SLAM有基于地面站的、云的(client-server),也有一些分布式的算法。

    针对于分布式算法 本身,计算和通信方面成本更高,并且更容易受到误测量和匹配的影响,因为每个agent只能访问部分和本地信息;所以广泛认为这类算法不太可靠。本文提出的系统和CCM-SLAM非常相像。

    C. Multi-camera SLAM

    Multi-camera SLAM可以看作multi-agent SLAM带有刚性约束的特例;Multi-camera SLAM中如果是由很大overlap的view,可以视作为双目相机系统。

    D. Multi-session SLAM

    Multi-session SLAM(lifelong SLAM in some contexts)目的在于在一个地方重新使用以前的地图信息,可以看作是multi-agent SLAM的sub-topic,ORB-SLAM3称这个为 Atlas表明全局拓扑图可以被多个本地 SLAM 会话有效地构建和重用;Maplab、RTABMap、ORB-SLAM3支持地图重用和合并。

    Methods

    本文的目标在为多个地面机器人构建一个ready-to-use的VSLAM系统,这个系统应该满足以下添加:

    • 允许多个机器人构建和使用一个或者是多个全局的地图,同时应该没有什么的移动假设,

    • 实现机器人之间的及时信息共享,以协同应对场景变化和扩展

    • 允许机器人携带多个摄像头充分利用整个视野。

    同时带有以下的限制约束:

    • 相机没有硬件同步,
    • 每个机器人的有限板载计算和内存成本,
    • 通信不是完美的,可能会有信息损失。

    按照上面的目标,自然的选择使用local的边缘服务器完成连接和地图管理。

    A. System Design

    请添加图片描述

    系统的模块设计如上图所示,这里简略描述各个模块的功能以及其部署在client or server的原因

    • tracking module : tracking module主要是在local map上为每一帧匹配特征点估计pose,应该放在client端以确保实时响应。
    • mapping module: mapping module:负责keyframe的创建,landmarks的创建,Local BA,所以应该也是放到client端上。
    • global optimization module: 主要扶着loop detection 和 map optimization,特点是不需要real-time,但是需要很大的内存,所以放在server端,该模块还负责处理同一个机器人上多个相机的刚性约束。
    • map database : 主要是在server端为每个机器人存储map,map由keyframes and landmarks组成,
    • communication modules : 主要是连接client和server

    上面的模块化设备,整个系统可以部署在any keypoint and keyframe-based SLAM的系统上,这里作者将这个系统部署在OpenVSLAM(支持monocular, stereo and RGB-D)上;和其他的collaborative SLAM的工作需要相同的传感器不同,本文的框架支持不同的相机。 client和server数据传输的内容都是keyframe和landmarks。

    B. Collaborative Mapping

    当clinet开始/从跟踪失败中重新恢复,都会initializes a new session and builds a new local map,这个map和server’s map database同步;

    • Map updates from clients to server:client会将每个新生成的keyframe在local mapping后传给server,传输的信息包括:keyframes and 关联的landmarks(包括 location, observations and descriptor); client只会维护一个用于local BA的小地图,之前的keyframe数据也会清除。
    • Map merging:当有新的keyframes传入给server时,global optimization module会判断是否进行回环,如何是发生在不同地图上的回环,那么这两个地图将会被合并,同时将会对每个回环进行PGO;
    C. Collaborative Localization

    该部分主要是说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。

    • Efficient landmark retrieval:这里作者设计了一种检索方法,大概意思是利用相机内参计算一个区域的landmarks,如下图2,
    • Local map augmentation:这里就是将上一步检索到的landmarks从server发送给client进行匹配增强,从而减少漂移。

    请添加图片描述

    D. Rigid Constraints for Multi-camera Robots

    因为服务机器人可能会面临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是松耦合的关系,所以本文的框架可以支持不同的多个相机。

    Experiment

    本文提出的系统在公开数据集和现实场景中进行了实验测试,公开数据集是 OpenLORIS-Scene datasets,其是在室内场景下由真实的服务机器人收集的。

    A. Multi-agent Multi-map Collaborative SLAM

    该部分在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。

    请添加图片描述

    B. Experiments with a Real Multi-camera Robot

    该部分在真实场景下,一个机器人携带一前一后两个RealSense D455 RGB-D 进行测试,所以并没有overlap;效果见下图4。

    请添加图片描述

    C. Computation and Communication Cost

    作者在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(但是两者的设备并不一样,不能直接比较);未来的工作中将进一步优化网络使用

    请添加图片描述

    Conclusion

    本文提出了一种服务机器人场景的协同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综述

  • 相关阅读:
    CSS -- a:link 失效问题 及 属性选择器
    codeforces (C++ Haunted House)
    推荐一个基于Python开源的文档系统
    friewall/ansible
    密码密钥硬编码检查
    elasticsearch-2.4.5运行和elasticsearch head连接es
    数据结构错题
    SpringBoot整合Redis缓存-JedisPool使用
    完整教程:Java+Vue+Websocket实现OSS文件上传进度条功能
    EasyExcel低版本中数据行中包含空数据会跳过导致数据对应不上的问题解析
  • 原文地址:https://blog.csdn.net/qq_44847636/article/details/126823263