經(jīng)歷了近30余年的發(fā)展,SLAM技術(shù)已日益成熟,從最早在軍事中應(yīng)用,如勇氣號火星探測車,為了執(zhí)行任務(wù),借助SLAM技術(shù)在無法實時遙控的未知行星上來進行導(dǎo)航與避障。到如今,SLAM技術(shù)已廣泛應(yīng)用于民用場所,小到家庭中的掃地機,大到無人駕駛的汽車都應(yīng)用了SLAM技術(shù),以及在AR及VR領(lǐng)域均有SLAM技術(shù)的身影。
SLAM,自主移動的核心技術(shù)
正常來說,凡涉及到自主移動的機器人都離不開SLAM技術(shù),SLAM通過傳感器獲取的信息來進行當(dāng)前位姿的推算、軌跡估計與環(huán)境建圖,相比傳統(tǒng)的衛(wèi)星導(dǎo)航、慣性導(dǎo)航、路標導(dǎo)航等定位方式,SLAM技術(shù)的所有算法都是圍繞傳感器收集的信息來展開的。
總體來說,SLAM技術(shù)大致包含了感知、定位、建圖三個過程:
感知——機器人通過傳感器(激光雷達或視覺傳感器)來獲取周圍環(huán)境的信息。
定位——通過傳感器實時獲取自身位置及姿態(tài)。
建圖——根據(jù)自身位置及傳感器獲取的信息,描述出當(dāng)下所在環(huán)境的地圖
感知是實現(xiàn)SLAM的必要條件,只有先感知到周圍的環(huán)境信息,才能可靠確定定位及構(gòu)建環(huán)境地圖。
當(dāng)下主流的SLAM技術(shù)
在SLAM技術(shù)中包含了激光SLAM與視覺SLAM兩大類,其中激光SLAM是目前應(yīng)用最廣泛也最為成熟的SLAM技術(shù),在掃地機器人、送餐機器人、導(dǎo)購機器人等服務(wù)機器人中普遍搭載了激光SLAM,激光雷達的出現(xiàn)使得測量更快更精準,信息也更為豐富。
激光雷達可對周圍物體實現(xiàn)360度全方位掃描測距,其采集到的物體信息會呈現(xiàn)出一系列分散的、具有準確角度和距離信息的點,被稱為點云。通常激光SLAM系統(tǒng)通過對不同時刻兩片點云的匹配與比對,計算激光雷達相對運動的距離和姿態(tài)的改變,也就完成了對機器人自身的定位。
相對來說,激光雷達距離測量比較精準,誤差模型簡單,在強光直射外的環(huán)境中運行穩(wěn)定、點云的數(shù)據(jù)處理也較為容易,因點云信息本身包含直接的幾何關(guān)系,所以機器人的路徑規(guī)劃及導(dǎo)航也變得更為直觀。
總體來說,激光SLAM理論研究更為成熟、落地也更為豐富。
SLAM技術(shù)是如何實現(xiàn)的?
以下是一個完整的SLAM和導(dǎo)航系統(tǒng)的主要框架圖:
在SLAM技術(shù)核心過程主要包含:預(yù)處理、匹配、地圖融合這3個主要步驟。
1.預(yù)處理
激光雷達和其他類似設(shè)備一樣,在某一時刻只能獲取它所在位置的環(huán)境信息。
上圖就是我們所說的點云,它只能反映機器人所在環(huán)境中的一個部分。而預(yù)處理主要是對激光雷達原始數(shù)據(jù)進行優(yōu)化,并將一些有問題的數(shù)據(jù)進行剔除,或進行濾波。
2.匹配
匹配是很關(guān)鍵的一步,它的好壞將會直接影響SLAM構(gòu)建的地圖精度,其主要是把當(dāng)前在局部環(huán)境上的一個點云數(shù)據(jù),在已經(jīng)建立地圖上尋找到對應(yīng)的位置。與我們玩的拼圖游戲有點相似,就是在已經(jīng)拼好的畫面中找到相似之處,確定新的拼圖該放的位置。而在SLAM過程中,需要將激光雷達當(dāng)前采集的點云(紅色部分)匹配拼接到原有地圖中。
如果不進行匹配的過程,所構(gòu)建的地圖可能就亂成一團,導(dǎo)致機器人無法使用。
?3.地圖融合
地圖融合就是將來自激光雷達的新數(shù)據(jù)拼接到原始地圖中,最終完成地圖的更新。
如下圖,該過程是永遠伴隨SLAM過程的。
數(shù)據(jù)融合與簡單的貼圖是有很大差異的,因為外部環(huán)境不僅有靜態(tài)的,還有動態(tài)的,此時,如果在機器人旁邊闖入了一只小狗,實際在進程數(shù)據(jù)融合的過程會更為復(fù)雜,需要用到很多概率算法,且處理難度很大。
舉例來說,如果遇到回環(huán)問題,匹配算法不夠優(yōu)秀,或者在環(huán)境中存在很不巧的干擾,當(dāng)機器人繞著環(huán)境走一圈后,便有可能出現(xiàn)原本應(yīng)該閉合的一個環(huán)形走廊斷開了。
比如正常地圖應(yīng)該這樣:
?但如果處理不好,實際地圖就有可能變成這樣:
?
在環(huán)境較大場景,回環(huán)問題是不得不面對的,但現(xiàn)實總是不理想,即使擁有了高精度的激光雷達傳感器,也難免存在一定誤差,而回環(huán)的難點在于,在一開始的少許誤差并不會被發(fā)覺,直到機器人走完一圈后,隨著誤差的不斷累積,導(dǎo)致了環(huán)路無法閉合,出現(xiàn)這種情況一般很難回天。
當(dāng)然,并不是說出現(xiàn)該問題就沒有解決方法了,一個好的商用化SLAM系統(tǒng)就能很好的解決環(huán)境問題。
以下是思嵐科技員工在他們辦公室進行的測試,當(dāng)機器人已經(jīng)繞場一周后,ROS構(gòu)建的地圖出現(xiàn)了中斷,而利用SLAMWARE模塊構(gòu)建的地圖是一個完美的閉環(huán),它與思嵐科技辦公室的設(shè)計圖完美重合。
除了算法層面的回環(huán)問題,SLAM技術(shù)實際應(yīng)用中還會碰到其他坑,比如走廊問題與外界干擾問題。以外界干擾問題來說,通常,激光雷達作為機器人的眼睛,一般是安裝在底盤上的,它能看到的視野很有限。當(dāng)受到外界干擾(人類或者寵物等等)后,機器人很容易丟失定位精度,無法正常完成后續(xù)的建圖工作。
當(dāng)機器人安裝SLAMWARE后,機器人受到干擾,可以完全不受影響,照樣能夠正常工作。目前,SLAM的開源實現(xiàn)代表多為學(xué)術(shù)界,實際應(yīng)用有很多corner case要處理,需要傳感器、系統(tǒng)參數(shù)、其他輔助設(shè)備的聯(lián)合調(diào)優(yōu)。
一般來說,上述的SLAM過程對于運算消耗是巨大的,雖然并沒有達到像訓(xùn)練神經(jīng)網(wǎng)絡(luò)動用服務(wù)器集群那種地步,但傳統(tǒng)上需要PC級別的處理器。
除配備激光雷達外,還需要機器人具有IMU(慣性測量單元)、里程計來為激光雷達提供輔助數(shù)據(jù),否則SLAM系統(tǒng)也難以得到運行??偟膩碚f,SLAM技術(shù)本身是一個對于外部系統(tǒng)有著多種依賴的算法,這是一個切實的工程問題。我們知道很多機器人,比如掃地機是不可能裝一個PC進去的。為了讓SLAM能在這類設(shè)備里運行,除了解決激光雷達成本外,還要對SLAM技術(shù)做出很好的優(yōu)化。
思嵐科技一直在朝這個方向努力,一方面在SLAM算法上很好的解決了各類實際算法難點,另一方面,把SLAM這個復(fù)雜的系統(tǒng)做了很大的優(yōu)化,可以放到一個硬幣那么大的模塊內(nèi)部,降低尺寸功耗。此外,還集成了IMU等配套傳感器,力求做到對于SLAM的使用的便捷性。
另外,為了幫助機器人適應(yīng)多種應(yīng)用環(huán)境,思嵐科技日前已推出了全新的SLAM 3.0系統(tǒng),即使面對復(fù)查的大場景,機器人也能輕松完成導(dǎo)航任務(wù),相比傳統(tǒng)SLAM,升級后的SLAM 3.0系統(tǒng)采用了圖優(yōu)化方式進行構(gòu)圖,能實現(xiàn)百萬平米級別的地圖構(gòu)建能力,同時擁有主動式回環(huán)閉合糾正能力,能很好消除長時間運行導(dǎo)致的里程累計誤差,成為目前行業(yè)中最受歡迎的定位導(dǎo)航方式。目前在SLAMWARE及思嵐科技最新平臺產(chǎn)品均采用了最新的SLAM 3.0技術(shù),配合激光雷達在商用復(fù)雜環(huán)境中應(yīng)用已逐漸普及。
關(guān)鍵字:SLAM技术,SLAM技术的具体实现,SLAM技术的实现步骤