时间:2017

作者:

实现条件:

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

分工

  agent工作:采集数据+建立局部地图+传送数据
  服务器工作:place recognition(位置识别),map fusion(地图融合),bundle adjustment(束调整)
  注:agent和server通信频率不是固定的

物理结构:

  多资源有限无人机(配置单目摄像头,单机ORB-SLAM2算法)+中心资源控制
  中心型相较于分布式优点(在节点资源有限情况下):
    1)保持数据一致性、避免重复计算信息
    2)大计算任务/对时延不敏感任务交给server,资源有限初计算关键任务

理论结构:


  agent包括
    1)VO:用来处理图像信息,形成KF
    2)Communication:与server进行通信(帧的传输)
    3)Local map:通过VO方式自身维护局部地图,设置最多k个KF,通过Trimming过程决定维护的k个KF(有缓冲区机制)
  server包括
    1)agent Handler(数量同agent):包括communication(帧的传输)和Intra-MapPlicae(匹配自身的Server Map)。解决数据传输和数据转换的问题
    2)Global Map Stack:用于存储每个agent的Server Map(初始化数量与agent相同),单一agent反馈信息改进该agent对应的Server Map,多agent遇到特征点相同时Server Map彼此融合。
    3)Place Recognition Database:存储所有agent采集的所有关键帧,用于进行匹配,为匹配数据库(因agent资源有限,每个agent只能保存N个KF,而数据库不限制)
    4)Inter-Map Place(匹配其他的Server Map, 匹配成功说明两个Server Map可融合)
    5)Map Fusion:地图融合模块,操作对象是Server Map(两层:单一agent融合,多agent融合)
    6)Global BA:对全局地图进行优化。发生Global BA有两种情况:(1)map fusion (2)检测到回环。发生Global BA过程中传输来的KF不予考虑。

通信模型:

  1)server→agent
  2)agent→server→agent(当server识别到agent有共同特征时,利用已知的其他agent信息反馈给原agent)
  agent和server基于ROS的消息传递机制进行通信,对实时性没有要求。无线网络传输,连接时一切正常,agent和server断开连接时不再交流。为了传输时减少loss,设置信息阈值,进行切割。
  agent发给server有确认接受机制,两类信息:Ppred和Ppar,用当前信息用于确保agent上一个发给server的成功接受。对于server发给agent的信息不用确认接受机制

本文创新点及思想:

  提出了一种协同SLAM框架可实现更好的感知。试验使用单目视觉SLAM完成,每个agent采集数据,数据以KF(keyframe关键帧)为数据结构基本单位。采集一帧后传给server。由server做place recognition,如果从两帧中提取到大量相同特征认为两agent走过相同地方。用B的经验传给A,用A的经验传给B以实现agent之间的交流(同时发生),强化agent的局部地图完整。同时server处会进行一次BA(bundle adjustment,束调整)。利用两帧数据强化全局地图中这部分的细节。

实验证明:


  上图agentB(蓝)形成自己的识别轨迹,agentA(黑)形成的轨迹被用于加强B的轨迹。可明显看出左侧红色点分布更密集,说明此处B的缺失数据被A进行补齐。实现了更好的全局地图。

备注:

  1.KF(Key Frame)和MP(Map Point)之间的关系?
  每次agent采集到的数据叫帧(frame),tracking thread会决定frame是否为KF(Key Frame)。local map中将每个KF作为一个点,两个KF若有多个匹配MP则将两个KF进行连线,组成graph
  2.Trimming机制:若缓冲区为空,则取之前最新的k-1个KF+新到KF。若缓冲区满,则优先排除(借助serve)从其余agent处传递来的KF,若排除全部其余agent仍大于K,按时间排列,扔掉旧的。k的大小看资源条件。越大越健壮
  3.server mapping分了三个步骤:(1)把KF送到三个操作KF的部分 (2)在KF和MP之间建立联系 (3)进行KF rejection
  4.KF rejection:也叫redundarcy dectection,用于处理同一位置不同视角,减少KF的冗余度,以便更好的Global BA。不是全部情况都发生,只有需要Global BA的时候才有。思想是使server map越小越好
  5.Sim(3)-transformation发生情况有两种:(1) agent发给server KF时,经过转化进入server map stack (2)map merging时,两个来自server map stack的map合并
  6.关于这篇文章还有一个扩展的版本:CCM-SLAM: Robust and Efficient Centralized Collaborative Monocular SLAM for Robotic Teams。两篇文章的作者相同,这篇相比本文谈到这个篇幅更多,介绍了更多的实现细节,没有太多新的东西。本篇博客的内容一部分参考这个。

配套资料:

  源码网址:https://github.com/VIS4ROB-lab/ccm_slam
  示例视频网址:https://www.youtube.com/watch?v=L9rHht8fE5E

因作者水平有限,如有错误之处,请在评论区下方指出,谢谢!

《论文笔记》Multi-UAV Collaborative Monocular SLAM相关推荐

  1. 【论文笔记】SA-LOAM:Semantic-aided LiDAR SLAM with Loop Closure

    [论文笔记]SA-LOAM:Semantic-aided LiDAR SLAM with Loop Closure ~~~   ~~~~    基于 LiDAR 的 SLAM 系统无疑比其他系统更准确 ...

  2. 论文笔记(Neural Collaborative Filtering)

    神经协同过滤 论文链接:Neural Collaborative Filtering, WWW'17 原理:融合 GMF 和 MLP 1. 摘要 虽然最近的一些研究使用深度学习作为推荐,但他们主要是用 ...

  3. 《论文笔记》Collaborative Monocular SLAM with Multiple Micro Aerial Vehicles

    时间:2013 作者: 工作方式:   多agent(资源受限,但能自主完成VO)+中心化server(无限资源) 协同感知原理:   server为每个agent创建一个local map,出现交集 ...

  4. 论文笔记【Neural Collaborative Filtering】

    标题 * 表示未完成 论文原文 本文使用基于神经网络的模型来分析 user 和 item 的潜在特征,最终设计出了一个基于神经网络的协同过滤通用框架(NCF).此框架融合了线性MF和非线性MLP模型. ...

  5. 论文笔记:Neural Collaborative Filtering(NCF)

    前言 论文链接:https://arxiv.org/abs/1708.05031 github:https://github.com/yihong-chen/neural-collaborative- ...

  6. 论文笔记-Towards Scene Understanding-Unsupervised Monocular Depth Estimation

    论文信息 标题: Towards Scene Understanding: Unsupervised Monocular Depth Estimation with Semantic-aware Re ...

  7. 论文笔记:Neural Collaborative Filtering

    一.基本信息 论文题目:<Neural Collaborative Filtering> 发表时间:WWW 2017 作者及单位: 二.摘要 In recent years, deep n ...

  8. 论文笔记-Digging Into Self-Supervised Monocular Depth Estimation

    论文信息 标题: Digging Into Self-Supervised Monocular Depth Estimation 作者:Clement Godard, Oisin Mac Aodha, ...

  9. 论文笔记《Item-based Collaborative Filtering Recommendation Algorithms》基于物品的协同过滤算法

    这是一篇很经典的论文,2001年发表的.如果你已经很熟悉基于item的CF,那么这篇论文看起来就很舒适,很简单. 读完这篇论文还是能收获很多实验设计上知识,实验严谨性和论证.值得一读.

最新文章

  1. PHP利用Gearman来处理并行多进程问题
  2. ksql中定义的本体在dataModel中不存在
  3. sysbench 性能测试
  4. WEB标准页面CSS命名参考
  5. vue项目没有router文件夹_vueRouter没有报错,但是页面渲染空白
  6. 这些 JS 中强大的操作符,总有几个你没听说过
  7. Jenkins远程命令执行漏洞(CVE-2018-1000861复现)
  8. 如何给MindSpore添加一个新的硬件后端?快速构建测试环境!
  9. python数据库操作常用功能使用详解(创建表/插入数据/获取数据)
  10. 如何对动态创建控件进行验证以及在Ajax环境中的使用
  11. CAF(C++ actor framework)使用随笔(unbecome与keep_behavior用法)
  12. 基于遥感图像的船舶目标识别技术
  13. msvcr100.dll丢失修复方法
  14. 【python基础】h5py库的基本使用
  15. c语言如何开发应用程序,怎样用c语言编写软件?如许多小的程序。
  16. 基于微信小程序的毕业设计题目(32)求职招聘小程序(含开题报告、任务书、中期报告、答辩PPT、论文模板)
  17. 2021年下半年软考真题软件设计师真题答案(上午题)
  18. 基于JAVA高速公路收费管理计算机毕业设计源码+数据库+lw文档+系统+部署
  19. vbs 合并 excel 表格
  20. java制作海报一:java使用Graphics2D 在图片上写字,文字换行算法详解

热门文章

  1. 开篇-----勉励篇
  2. NOI大纲 CSP初赛篇·知识大纲 CSP-入门级-NOI大纲
  3. 1.9 编程基础之顺序查找 01 查找特定的值 python AC
  4. mysql内存报警_[MySQL生产环境] Innodb存储引擎内存报警问题处理过程_MySQL
  5. 基于JavaFX实现的数据库学生管理系统
  6. Python笔记-类的单例模式及重载打印
  7. 信息安全工程师笔记-入侵检测技术原理与应用
  8. C++ opengl 深度缓冲区
  9. C/C++认识标准win32应用程序
  10. django 配置mysql_Django配置MySQL数据库方法