從單機(jī)到多機(jī)的無人機(jī)與機(jī)器人集群的SLAM綜述
本文經(jīng)自動(dòng)駕駛之心公眾號(hào)授權(quán)轉(zhuǎn)載,轉(zhuǎn)載請(qǐng)聯(lián)系出處。
前言
在本系列,我將會(huì)更新我的博士畢業(yè)論文“Decentralized and Distributed Collaborative Simultaneous Localization and Mapping System for Aerial Swarms”的中文科普版,有別于更專業(yè)的原版,這一版本主要包括更多的圖片,相關(guān)工作帶有的評(píng)述和思考,結(jié)果展示;降低一部分算法細(xì)節(jié)。本系列文章大概會(huì)是中文互聯(lián)網(wǎng)最適合入門多機(jī)SLAM的論文之一;讀者也可以通過本系列文章對(duì)移動(dòng)機(jī)器人感知進(jìn)行一些了解。
由于工程量巨大(我的thesis大概有150多頁),所以請(qǐng)讀者做好本系列文章會(huì)更新到夏季的心理準(zhǔn)備。一個(gè)比較好的預(yù)期是每周或者每半個(gè)月會(huì)寫一篇。也請(qǐng)關(guān)注我的專欄方便接收更新。
什么是SLAM?為什么我們需要多機(jī)SLAM?
一個(gè)良好的科普通常從生活中的現(xiàn)象開始,本文也不例外。到2023年,掃地機(jī)器人已經(jīng)走入了千家萬戶。
一個(gè)良好的掃地機(jī)器人不僅僅能夠靈活的繞開障礙物,也能自動(dòng)返回到充電器附近對(duì)自己進(jìn)行充電。實(shí)現(xiàn)這一技術(shù)的核心就是SLAM(實(shí)時(shí)定位與地圖構(gòu)建,由于這個(gè)中文名實(shí)在太長,后文簡稱SLAM)
使用D^2SLAM估計(jì)出的不同機(jī)器人移動(dòng)軌跡
使用D2SLAM構(gòu)建出的稠密地圖
大家可能都知道GPS能確定自己的位置,然而GPS很容易受到干擾,在室內(nèi)環(huán)境中更完全無法使用,其基本原理又限制了精度。SLAM技術(shù)就像是人類的眼睛+小腦,是幾乎一切移動(dòng)機(jī)器人的基礎(chǔ)。其目標(biāo)包括了兩個(gè):確定機(jī)器人自身在三維空間中的位置和姿態(tài),并且構(gòu)建出周邊環(huán)境的地圖。這是人類和動(dòng)物與生俱來的本能,在機(jī)器人上是相當(dāng)復(fù)雜的。
隨著國內(nèi)機(jī)器人產(chǎn)業(yè)的大發(fā)展,SLAM技術(shù)也在這兩年逐漸普及開來,典型的應(yīng)用幾乎涵蓋了正在改變世界的大部分工業(yè)產(chǎn)品:正大量出貨的自動(dòng)駕駛汽車,逐漸普及開的VR/MR虛擬現(xiàn)實(shí)設(shè)備和“元宇宙”,市面上的高價(jià)無人機(jī),各家各戶的掃地機(jī)器人,海底撈的送貨小車等等。
坦白的說,時(shí)至今日,隨著視覺,Lidar(激光雷達(dá))兩開花,現(xiàn)在的SLAM技術(shù)已經(jīng)趨于成熟,請(qǐng)看下面香港大學(xué)林博 @ziv.lin 的工作。
香港大學(xué)林博的杰作,激光視覺融合的SLAM:https://github.com/hku-mars/ImMesh
香港大學(xué)林博的杰作,激光視覺融合的SLAM:https://github.com/hku-mars/ImMesh
在單機(jī)slam逐漸成熟的同時(shí),研究屆也正在轉(zhuǎn)向一些更加困難的課題,這其中就包括了多機(jī)SLAM。
為什么我們需要多機(jī)SLAM?
設(shè)想我們有一群無人機(jī)
我們希望他們能在狹窄的室內(nèi)環(huán)境或者森林中自由飛翔,去執(zhí)行救災(zāi),探險(xiǎn)等任務(wù)。那么想要這些無人機(jī)不要在物理上打成一片,我們就必須做到幾點(diǎn):
- 確定每個(gè)無人機(jī)自身在空間中的位置。
- 確定其他無人機(jī)相對(duì)于無人機(jī)自身在空間中的位置。
- 每個(gè)無人機(jī)對(duì)周圍的環(huán)境進(jìn)行感知。確定障礙物的位置。
比較早期的研究者和商業(yè)公司,選擇了一種粗暴的方式解決這一問題,使用外部定位設(shè)施,包括昂貴的動(dòng)作捕捉系統(tǒng)(對(duì),就是拍電影和Vtuber出道要用的那個(gè)),UWB基站,或在在寬闊的室外架設(shè)基站,使用rtk-gps來飛行,幾乎所有已經(jīng)商業(yè)化的無人機(jī)集群(表演)都使用了這一技術(shù)。
然而,非常精確的動(dòng)作捕捉設(shè)備不僅僅昂貴,也局限于實(shí)驗(yàn)室環(huán)境--你不能指望無人機(jī)去參加救災(zāi)活動(dòng)的時(shí)候先花幾個(gè)小時(shí)假設(shè)一套動(dòng)捕或者UWB基站吧?GPS說過了,容易被干擾且局限于室外,那么有什么比較好的辦法解決這一問題呢?
答案就是多機(jī)的相對(duì)定位以及多機(jī)SLAM技術(shù)。
截至2023年,這一類技術(shù)已經(jīng)替代了用了20年的動(dòng)捕,逐漸成為了無人機(jī)集群的標(biāo)配。正是相對(duì)定位/多機(jī)SLAM技術(shù)的發(fā)展,使得真正完全自主的無人機(jī)集群成為了可能,相關(guān)工作的視頻有兩個(gè)值的一看。一個(gè)是高飛師兄組的science robotics大作,aerial swarm in the wild[1],這篇文章是全世界第一個(gè)完整展現(xiàn)了自然環(huán)境中的高度自主的無人機(jī)集群的演示,使用的多機(jī)技術(shù)互相定位技術(shù)正是參考了(或者說受啟發(fā)?)接下來要介紹的我的工作Omni-swarm[2]
www.bilibili.com/video/BV1pv4y1K7zS/?spm_id_from=333.337.search-card.all.click&vd_source=5b500ce27249089310ee479674dfb683
其次是 @周博宇 博士和我合作的工作,Racer[3],這一工作展現(xiàn)了多個(gè)無人機(jī)集群對(duì)未知環(huán)境的探索。其定位方案則是直接使用的Omni-swarm
www.bilibili.com/video/BV1F14y1g7cG/?spm_id_from=333.337.search-card.all.click&vd_source=5b500ce27249089310ee479674dfb683
多機(jī)SLAM技術(shù)都有哪些?
在正式進(jìn)入話題之前,我們要簡單的回顧一下現(xiàn)有的工作。目前的相對(duì)定位方案包括了如下幾類:
視覺方案
使用視覺進(jìn)行,例如捕捉紅外燈光,marker,直接對(duì)其他無人機(jī)進(jìn)行visual detection等;優(yōu)勢(shì)是視覺測(cè)量精確的相對(duì)定位,缺點(diǎn)是歧義性:搞明白哪個(gè)飛機(jī)是哪個(gè)是最大的問題。對(duì)于這一問題,解決方案包括不同的燈光組合[4][5],算法硬解等[6]
UWB 信息
UWB可以提供十厘米上下精度的測(cè)距信息。使用UWB測(cè)距信息也可以用于輔助定位,但是單一uwb信息并不可觀,也缺乏定向信息。這使得我們需要和其他方法的融合[7]。
地圖環(huán)境
使用環(huán)境地圖方案進(jìn)行相對(duì)和絕對(duì)定位通常是一個(gè)不錯(cuò)的想法[8],但是僅僅適用于環(huán)境特征較為稠密的室內(nèi),在室外則有諸多局限性。地圖環(huán)境定位的另一個(gè)問題是需要較大的通信帶寬。
我們的方案
這里給出我們方案思路的簡述,在后續(xù)文章會(huì)逐漸分析。
UWB-視覺去中心化定位
首先是針對(duì)相對(duì)定位和絕對(duì)定位這一問題,我首先研究了使用UWB-視覺融合的方法,不僅僅使用uwb和odometry(里程計(jì))融合,同樣引入了精度更高的視覺檢測(cè)方法對(duì)精度進(jìn)行增強(qiáng)。該方法已經(jīng)在實(shí)驗(yàn)中展現(xiàn)出了厘米級(jí)別的精度;并且是第一個(gè)在環(huán)境狹窄的室內(nèi)實(shí)現(xiàn)緊密配合情況下飛行的無人機(jī)集群。后來高飛組在science robotics中使用的方案就和這一方案類似。
該文章發(fā)表在機(jī)器人研究頂會(huì)ICRA上,文章鏈接是 http://www.xuhao1.me/files/ICRA2020hao.pdf
www.bilibili.com/video/BV1y7411y7Qx/?spm_id_from=333.999.0.0&vd_source=5b500ce27249089310ee479674dfb683
更全能的Omni-swarm
在前文所做的實(shí)驗(yàn)中,最令人頭疼的事情之一是狀態(tài)感知的初始化,作為一個(gè)高度自主的集群,我們希望他們能夠只依賴自己而不是預(yù)先輸入的信息完成初始化。于是后續(xù)對(duì)此方法進(jìn)行了進(jìn)一步改進(jìn),地圖方案也被融入,于是不僅僅能完成相對(duì)定位,更展現(xiàn)出了全局一致性,并且針對(duì)初始化問題和可觀測(cè)性進(jìn)行了優(yōu)化(ICRA版本需要運(yùn)動(dòng)來初始化,或者已知初始位置),這篇工作的名稱是Omni-swarm。Omni意為全向和全能,我們還發(fā)現(xiàn)了對(duì)無人機(jī)集群很重要的事情:使用全向攝像頭可以顯著的改善可觀測(cè)性。該文章也包含了迄今所有無人機(jī)相對(duì)定位的主流方案,所以被稱作“Omni”。該文章發(fā)表于機(jī)器人研究頂刊,IEEE Transaction on Robotics (TRO)上,https://ieeexplore.ieee.org/document/9813359,
代碼已經(jīng)開源在:GitHub - HKUST-Aerial-Robotics/Omni-swarm: A Decentralized Omnidirectional Visual-Inertial-UWB State Estimation System for Aerial Swar.
www.bilibili.com/video/BV1FV411H7Kg/?spm_id_from=333.999.0.0
Racer:未知環(huán)境的無人機(jī)群探索
在Omni-swarm的基礎(chǔ)上,我們進(jìn)行了現(xiàn)實(shí)環(huán)境的無人機(jī)探索任務(wù),這是世界第一個(gè)完全去中心化的無人機(jī)群自主探索研究,正是去中心化且全能的“omni-swarm”,是這種任務(wù)成為了可能。這篇文章同樣發(fā)表于TRO上,https://ieeexplore.ieee.org/abstract/document/10038280
Racer飛行測(cè)試時(shí)的地面站截圖,該地面站由我本人開發(fā)。
www.bilibili.com/video/BV1F14y1g7cG/?spm_id_from=333.337.search-card.all.click&vd_source=5b500ce27249089310ee479674dfb683
在Racer的研究中,我又得到了不少啟發(fā):1,自主無人機(jī)群僅僅在無人機(jī)互相距離較近的時(shí)候有相互高精度定位的必要,飛遠(yuǎn)了自然也沒有必要互相避障了,這時(shí)候相對(duì)定位精度的重要性自然降低。2.當(dāng)無人機(jī)相距較遠(yuǎn)的時(shí)候,互相并不碰面,這時(shí)候我們更關(guān)注的是全局一致性:也就是地圖不能隨著飛行軌跡的飛行而飄移,要飛一圈回來,飛機(jī)仍然在之前的地方,這樣地圖才能進(jìn)行后續(xù)的應(yīng)用。3.是uwb和視覺檢測(cè)用起來有時(shí)候很麻煩,容易被復(fù)雜環(huán)境干擾。我們需要一個(gè)更加可靠且通用的方案,UWB也好,視覺檢測(cè)也好,可以作為“dlc”掛進(jìn)去,也可以根據(jù)環(huán)境的不同不去掛載。
D2SLAM:分布式,更高精度和全局一致性
在這些思考的基礎(chǔ)上,我又加入了分布式計(jì)算的思想,做出了我博士期間的最后一個(gè)工作 SLAM。分布式和去中心化的聯(lián)合SLAM系統(tǒng)。SLAM根據(jù)前文做出的反思引入了兩個(gè)(在我看來比較重要的)觀念:
- 無人機(jī)群的“近場(chǎng)“狀態(tài)估計(jì)(near-field state estimation),當(dāng)無人機(jī)集群中的飛機(jī)距離較近,通信良好的時(shí)候,我們有必要(為了互相避障和緊密協(xié)作)也有能力建立高精度的局部定位(自身狀態(tài)估計(jì))和無人機(jī)的互相定位。我把這部分能力稱作近場(chǎng)估計(jì)
- “遠(yuǎn)場(chǎng)“狀態(tài)估計(jì)(far-field state estimation),當(dāng)無人機(jī)群中的飛機(jī)互相距離較遠(yuǎn)時(shí),為了任務(wù)的完整性,我們關(guān)注的是地圖全局一致性,也就是地圖不能亂跑,這種能力被我稱作遠(yuǎn)場(chǎng)估計(jì)。
SLAM的貢獻(xiàn)在于良好的解決了上面的兩種問題;在延續(xù)了我們已有的全向視覺的思想的同時(shí),引入了分布式計(jì)算來改善計(jì)算效率。這篇文章已經(jīng)投稿至TRO(是的我們就是這么熱愛TRO), 預(yù)印本已經(jīng)放在,https://arxiv.org/abs/2211.01538, 并且代碼開源在了 https://github.com/HKUST-Aerial-Robotics/D2SLAM (文檔和數(shù)據(jù)集逐步完善中)
www.bilibili.com/video/BV1eY4y1Q7j1/?spm_id_from=333.999.0.0
使用D2SLAM重建的實(shí)驗(yàn)室
本系列文章后續(xù)會(huì)略微詳細(xì)介紹我們的算法,和我個(gè)人的一些思考,時(shí)間有限更新不一定穩(wěn)定。敬請(qǐng)關(guān)注。感興趣的也可以先下載對(duì)應(yīng)的論文。
小結(jié)
無人機(jī)群的狀態(tài)估計(jì)是構(gòu)建一個(gè)自主集群的最關(guān)鍵的基礎(chǔ)技術(shù)之一,并且還在不斷的發(fā)展中,有大量的問題未被解決。相比于路徑規(guī)劃,互相避障,環(huán)境探索等任務(wù),被大眾所知的程度也更低一些。本系列文章從我個(gè)人的研究出發(fā),希望能給大家一個(gè)對(duì)此問題的基礎(chǔ)認(rèn)知。也希望更多朋友參與到這一問題的研究中來。