當前位置: 華文問答 > 數位

當使用視覺SLAM對一個環境建圖之後,如何讓機器人能夠「理解」地圖並導航呢?

2017-03-07數位

這個問題推播我好幾次了,實在忍不住回答一下。話說我一直把知乎當知網用的,發評論感覺怪怪的。哈哈哈

看到已有的回答大多數都是研一研二的,剛入門這個領域,有這樣的疑問挺正常哈。

大體上這個問題是這樣的,從移動機器人導航的角度來講,slam跑出來結果一般只用地圖。當然傳感器不同地圖型別也不一樣,二維雷射雷達可建二維占據柵格地圖用於導航;三維雷射建立的點雲,八叉樹處理後可用於三維導航;視覺orbslam等特征法建出是稀疏特征地圖,沒法直接用於導航;視覺rgbd-slam、直接法lsd等可建立稠密地圖用於導航。

咦,我好像還沒回答問題。那繼續。。

有了slam建立出的,可用於導航的地圖就可以做後續的工作了。當然我們這裏談論的這個問題是傳統的導航方法,就是說要先建好地圖。至於active-slam那種可以邊建圖邊定位導航的不是我們所討論的哈。還有那種現在無人車常用的尋車道線,然後場景辨識分類,找紅綠燈,找人找車避障什麽的也不是我們討論的哈(不要深究無人車還有全域定位,還有高精度地圖,跑遠了哈)。

好像話說多了,總之就是說,我們討論的是已有導航地圖下移動機器人的導航問題。那麽關鍵來了,問:還要做什麽?才能讓他動!

答:需要解決兩大關鍵問題!

1 既然已經有地圖了,那麽就需要接著進行路徑規劃,路徑規劃分兩種:全域與局部。全域解決怎麽從A走到B。這塊的方法很多也很成熟,自己搜搜吧;局部解決如何在A到B的過程中避免碰撞。當然環境是靜態的,地圖又很完整,做全域就行了。路徑規劃到機器人的尋跡(按你規劃的路徑走)還有軌跡規劃和控制執行要做,這裏要對移動機器人運動學動力學建模(大體就是地面式輪式 履帶 空中無人機這樣幾大類,一般導航任務的話通用模型標定測量好就行 )。

2 光有上述運動規劃也不行,還要有定位是吧。對於這種已有地圖的導航問題就是要解決重定位這一關鍵問題。這裏就有很多方法思路啦,不同環境下,不同傳感器方法也不同。比如二維雷射雷達可以用粒子濾波進行重定位,也可以叫蒙地卡羅定位。當然也可以多傳感器融合著來,比如你用三維雷射雷達建的圖(雷射不好做重定位),然後用視覺orbslam做重定位(orbslam地圖太稀疏)。

好了,相信大體解釋清楚了吧。