《论文笔记》Multi-UAV Collaborative Monocular SLAM
時間: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的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: Unix domain socket 简
- 下一篇: Linux系统编程:mmap介绍和使用m
