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综述

[LiteratureReview]A Collaborative Visual SLAM Framework for Service Robots相关推荐

  1. vslam论文5:OpenVSLAM: A Versatile Visual SLAM Framework

    ABSTRACT OpenVSLAM,这是一个具有高可用性和可扩展性的视觉 SLAM 框架,然而,传统的开源视觉SLAM框架并没有适当地设计为第三方程序调用的库.为了克服这种情况,我们开发了一种新的视 ...

  2. Visual SLAM: What are the Current Trends and What to Expect?

    引自 Tourani A, Bavle H, Sanchez-Lopez J L, et al. Visual SLAM: What are the Current Trends and What t ...

  3. 【每日论文阅读】Collaborative Visual Inertial SLAM for Multiple Smart Phones

    文章目录 论文阅读:Collaborative Visual Inertial SLAM for Multiple Smart Phones 摘要 主要贡献 算法逻辑 算法结果 论文阅读:Collab ...

  4. Comparison of Laser SLAM and Visual SLAM

    Comparison of Laser SLAM and Visual SLAM 目前,SLAM技术广泛应用于机器人.无人机.无人机.AR.VR等领域,依靠传感器可以实现机器的自主定位.测绘.路径规划 ...

  5. 什么是视觉Visual SLAM

    什么是视觉Visual SLAM What Is Visual SLAM? What are the origins of visual SLAM? and what are some other a ...

  6. Visual SLAM

    Visual SLAM 追求直接SLAM技术,而不是使用关键点,直接操作图像强度的跟踪和映射. 作为直接方法,LSD-SLAM使用图像中的所有信息,包括边缘,而基于关键点的方法只能在拐角处使用小块.这 ...

  7. 三维重建7:Visual SLAM算法笔记

    VSLAM研究了几十年,新的东西不是很多,三维重建的VSLAM方法可以用一篇文章总结一下. 此文是一个好的视觉SLAM综述,对视觉SLAM总结比较全面,是SLAM那本书的很好的补充.介绍了基于滤波器的 ...

  8. 《论文笔记》Multi-UAV Collaborative Monocular SLAM

    时间:2017 作者: 实现条件:   多agent+一中心服务器.每一个agent自带单目摄像头,中心服务器可与所有agent通信.agent没有任何先验知识.不考虑任何的传输延时所带来的不良影响. ...

  9. 关于视觉SLAM的最先进技术的调查-A survey of state-of-the-art on visual SLAM

    原文见文章末尾: 今天读了一篇视觉slam的综述,真的是读了一天,记录一下.我比较关注的是特征提取和匹配和深度学习有关的章节.好久,但是还算是有收获的吧. 摘要: 本文概述了视觉同步定位和测绘(V-S ...

  10. DROID-SLAM: Deep Visual SLAM for Monocular, Stereo, and RGB-D Cameras论文阅读笔记

      这篇博客分享的是ECCV 2020最佳论文原班人马邓嘉团队的最新力作<DROID-SLAM: Deep Visual SLAM for Monocular, Stereo, and RGB- ...

最新文章

  1. maven中打包项目为war包的pom.xml配置
  2. Nova Suspend/Rescue 操作详解 - 每天5分钟玩转 OpenStack(35)
  3. 关系数据库——视图/存储过程/触发器
  4. 轻量级过程改进项目启动
  5. java参数传递时,究竟传递的是什么
  6. 查询软件和硬件列表清单[将文章里代码另存为 list.vbs,双击运行就会出现一个html页面]...
  7. MySQL 管理工具:Navicat for MySQL 8.0.19 中文版(破解版)
  8. 爬虫基本操作+获取豆瓣250top电影信息
  9. A-Z,所有汽车品牌完整json格式
  10. Java实现系统统一对外开放网关入口设计
  11. CC13X0CC26X0EvaluationBoard
  12. 跟我学-域名解析故障排查技巧
  13. Java实验:教练和运动员案例
  14. Protein-protein interaction site prediction through combining local and global features 文章梳理
  15. 用cocos实现的《我的世界》已经上线微信小游戏,分享一下主要技术
  16. py-fater-rcnn中config.py參數的調整
  17. PKI(公、私钥加密,数字签名、数字证书)技术理解
  18. 关于功放的正确调整及安全匹配音箱方法的计算及说明
  19. electron exec 神坑
  20. X-Powered-by

热门文章

  1. 地址转经纬度(百度)function
  2. pip换源工具pqi
  3. dnw驱动更新,支持全系统(xp,win7,win8/win10)
  4. 圆形谷仓Circular Barn_Silver---(DP优化 / )队列 + 贪心(复杂度O(2n))---DD(XYX)​​​​​​​的博客
  5. CarEye GT1078 转GB28181 方案
  6. rdt协议的java实现_rdt3.0发送方程序(Java实现)
  7. Uncaught Error: Rendered fewer hooks than expected. This may be caused by an accidental early return
  8. python_while 循环_珠穆朗玛峰
  9. win10网络适配器不见了_win10设备管理器里没有网络适配器的原因及处理方法
  10. 给手机安装sqlite3