SLAM主要解決機器人的實時定位與自動建圖問題,那么,在實際應(yīng)用時,SLAM究竟是如何實現(xiàn)的呢?在實現(xiàn)過程中有哪些難點?
這是一個完整的SLAM和導(dǎo)航系統(tǒng)的主要架構(gòu)圖:
7.jpg (48.44 KB, 下載次數(shù): 100)
下載附件
2017-8-11 10:55 上傳
其中,SLAM核心過程包括3個步驟,第一步稱為預(yù)處理。我們知道,激光雷達和其他雷達設(shè)備一樣,某一個時刻只能獲取它所在位置的環(huán)境信息。
這就是我們所說的點云,它只能反映機器人所在環(huán)境中的一個部分。第一步預(yù)處理就是對激光雷達原始數(shù)據(jù)進行優(yōu)化,剔除一些有問題的數(shù)據(jù),或者進行濾波。
8.jpg (30.19 KB, 下載次數(shù): 119)
下載附件
2017-8-11 10:55 上傳
第二步是匹配,也就是說把當前這一個局部環(huán)境的點云數(shù)據(jù)在已經(jīng)建立地圖上尋找到對應(yīng)的位置,這個步驟非常關(guān)鍵。
9.gif (846.29 KB, 下載次數(shù): 99)
下載附件
2017-8-11 10:55 上傳
這個是ICP的點云匹配算法,用于實現(xiàn)匹配。說這個過程關(guān)鍵,就是因為它的好壞,直接影響了SLAM構(gòu)建地圖的精度。這個過程和我們玩拼圖游戲有點類似,就是在已經(jīng)拼好的畫面中找到相似之處,確定新的一個拼圖該放在哪里。
在SLAM過程中,需要將激光雷達當前采集的點云(紅色部分)匹配拼接到原有地圖中。
10.jpg (22.98 KB, 下載次數(shù): 67)
下載附件
2017-8-11 10:55 上傳
如果不進行匹配過程,所構(gòu)建的地圖可能就亂成一團,變成這樣。
11.jpg (69.25 KB, 下載次數(shù): 69)
下載附件
2017-8-11 10:55 上傳
在這個部分完畢以后,就進行第三步,地圖融合,也就是將這一輪來自激光雷達的新數(shù)據(jù)拼接到原始地圖當中,最終完成地圖的更新。
就像這個圖一樣,這個過程是永遠伴隨SLAM過程的。
12.jpg (17.45 KB, 下載次數(shù): 88)
下載附件
2017-8-11 10:55 上傳
數(shù)據(jù)融合和簡單的貼圖是有很大的差異的。因為實際上傳感器描繪的世界存在一定的誤差,或者正巧在這個時間環(huán)境有了變化,例如機器人旁邊闖入了一只小貓。
因此,實際要進行的過程會更加復(fù)雜,需要用很多概率算法,并采用濾波的方式進行融合。將上述這個過程逐次執(zhí)行,就最終產(chǎn)生了我們看到的柵格地圖。
13.gif (1.35 MB, 下載次數(shù): 79)
下載附件
2017-8-11 10:55 上傳
這個過程聽起來其實并不復(fù)雜,但是要處理好有很大難度。這里舉幾個例子,比如叫做Loop Closure(回環(huán))問題。如果匹配算法不足夠優(yōu)秀,或者環(huán)境中存在很不巧的干擾,當機器人繞著環(huán)境一圈后,就會發(fā)現(xiàn)原本是應(yīng)該閉合的一個環(huán)形走廊斷開了。
比如正常地圖應(yīng)該這樣:
14.jpg (14.73 KB, 下載次數(shù): 92)
下載附件
2017-8-11 10:55 上傳
如果處理不好,實際地圖就成這樣:
15.jpg (24.97 KB, 下載次數(shù): 90)
下載附件
2017-8-11 10:56 上傳
對于環(huán)境比較大的場景,回環(huán)問題是不得不面對的,但現(xiàn)實總是不完美的,即使是激光雷達這種高精度傳感器,也難免存在誤差。而回環(huán)問題的難點恰恰在于在一開始出現(xiàn)少許誤差的時候,并不會被發(fā)覺,直到機器人繞著環(huán)路一圈,隨著誤差的累加,發(fā)現(xiàn)環(huán)路已經(jīng)無法閉合時,此時已經(jīng)釀成大錯,一般很難回天。 當然這個問題并不是無解,一個好的商用化SLAM系統(tǒng),回環(huán)問題是否能很好的解決,就成為評判這個系統(tǒng)實力的指標了。
這是前兩天在我們辦公室進行的測試,左邊的視頻是基于開源的ROS機器人操作系統(tǒng)進行的地圖構(gòu)建,右邊的是基于SLAMWARE構(gòu)建的地圖。 插入的視頻:ROS構(gòu)建地圖和SLAMWARE構(gòu)建的地圖
當機器人已經(jīng)繞場一周后,ROS構(gòu)建的地圖出現(xiàn)了中斷,而SLAMWARE構(gòu)建的地圖是一個完美的閉環(huán),它與我們辦公室的設(shè)計圖完美重合。
16.png (595.57 KB, 下載次數(shù): 95)
下載附件
2017-8-11 10:56 上傳
除了算法層面的回環(huán)問題,SLAM實際應(yīng)用中還有很多這種坑,比如走廊問題與外界干擾問題。
以外界干擾問題來說,通常,激光雷達作為機器人的眼睛,一般是安裝在底盤上的,它能看到的視野很有限。當受到外界干擾(人類或者寵物等等)后,機器人很容易丟失定位精度,無法正常完成后續(xù)的建圖工作。
當機器人安裝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算法本身是一個對于外部系統(tǒng)有著多種依賴的算法,這是一個切實的工程問題。
很多機器人,比如掃地機是不可能裝一個PC進去的,為了讓SLAM能在這類設(shè)備里運行,除了解決激光雷達成本外,還要對SLAM算法做出很好的優(yōu)化。
這也是我們思嵐科技SLAMTEC主要的努力方向,一方面,我們這7年多很好的解決了各類實際SLAM算法難點,另一方面,我們把SLAM這個復(fù)雜的系統(tǒng)做了很大的優(yōu)化,可以放到一個硬幣那么大的模塊內(nèi)部,降低尺寸功耗。此外,它還集成了IMU等配套傳感器,力求做到對于SLAM的使用便捷性。
17.jpg (23.94 KB, 下載次數(shù): 99)
下載附件
2017-8-11 10:56 上傳
那么,機器人利用SLAM技術(shù)得到了有效的空間信息后,它是怎樣實現(xiàn)路徑規(guī)劃的?SLAM和路徑規(guī)劃之間關(guān)系是怎樣的?下期,我們再見。
|