SPM-SLAM(Squared Planar Marker SLAM)與傳統SLAM的區別

更新,SPM-SLAM官方終於出論文啦!

SPM-SLAM: Simultaneous Localization and Mapping with Squared Planar Markers

  在ArUco的官方網頁,SPM-SLAM(Squared Planar Marker SLAM)被解釋爲 Real time creation of marker maps;MarkerMapper被解釋爲 Cost-effective localization system using squared markers。SPM-SLAM是利用g2o(General Graph Optimization)做的 local BA + global BA,而MarkerMapper只有最後的 global BA(Bundle Adjustment)。MarkerMapper可以準確地構建出三維空間中的地圖,SPM-SLAM在它的基礎上實現了真正意義上的SLAM。這裏所謂的地圖只是未知環境中二維碼的分佈圖,這也正是它相對於傳統SLAM的侷限性。現在,不知不覺中我們就由基於ArUco的室內視覺定位與導航問題演變成了SLAM問題。

  傳統的SLAM(這裏主要考慮特徵點法)對環境是完全未知的,而用ArUco實現的SLAM則需要知道環境中的一個條件:那就是二維碼的邊長。所以,如果單純利用ArUco做SLAM,侷限性比較大,因爲我們必須保證在運動過程中未知二維碼要與任意已知二維碼出現在同一幀圖像中,不然會出現跟丟的情況(如果跟丟一個二維碼則無所謂,是怕相機位姿跟丟了)。目的就是來確定二維碼之間的相對位置關係(建圖用),這樣便可以推算出相機在當前環境(其實是針對二維碼來說)中的位置以及它相對於初始位置的位姿。這對環境的要求應該說是蠻高的,因爲受相機視野與焦距的影響,我們無法保證未知的二維碼一定會與已知的二維碼出現在同一幀,再加上有時相機移動速度較快,則很容易跟丟。

  理想情況下,SPM-SLAM與傳統視覺SLAM是一樣的原理,都需要個根據特徵點來估計相機位姿。而對於前者來說,由於二維碼的邊長已知,根據三角形相似原理則很容易求出特徵點(二維碼角點)的深度。這樣一來,SPM-SLAM更像是一個基於RGB-D相機的SLAM,所以它不像傳統的單目SLAM一樣需要初始化。總結來說,SPM-SLAM利用二維碼實現SLAM,傳統SLAM利用空間中任意的特徵點實現SLAM,二者都可以在估計相機位姿的同時構建地圖(SPM-SLAM以二維碼的分佈作爲地圖,傳統視覺SLAM以稠密或稀疏的特徵點雲作爲地圖)。由於SPM-SLAM的侷限性,考慮是否可以將ArUco與傳統視覺SLAM相結合。我設想,在僅已知環境中二維碼分佈圖的情況下進行SLAM,最後可以得到二維碼分佈圖與視覺點雲地圖的融合地圖,姑且稱之爲融合SLAM。這樣在導航過程中以傳統SLAM爲主要視覺里程計信息,二維碼在其中起一定的修正與補償作用。

  實際上,利用MarkerMapper我們已經得到了比較準確的全局優化地圖,並可以獲得相機在地圖中的位姿,接下來要做的就是如何利用地圖進行導航並提高導航過程中相機定位的精度。導航問題就是機器人如何利用自身的傳感器自主的由初始位置移動到目標位置,且過程中可以準確地避開障礙物。與傳統的SLAM不同,由於我們的定位方式完全依賴二維碼,對環境的依賴性較高,所以有必要加入一些其他的傳感器,比如IMU(計算偏航角)和編碼器(計算位移)。目的有二,一是在相機出現盲區時利用IMU和編碼器進行短距離的位姿估計,二是利用多傳感器信息融合在一定程度上提升機器人定位的精度。這種導航方法是以SPM-SLAM爲主要里程計信息,輔以其他傳感器進行修正與補償,相對上面提到的融合SLAM成本較高。對於避障問題,在靜態環境中可以利用軌跡規劃,而在動態環境中可能還需要藉助其他的避障傳感器。

  IMU和編碼器作里程計,視覺二維碼作觀測器,多傳感器融合。視覺算出機器人在世界座標系的位姿後生效,但此時機器人的位姿不一定準確,後面需要優化。

以上純屬個人總結,未完待續。。。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章