淺談SLAM方法
1.什麼是SLAM?
Slam(Simultaneous Localization And Mapping,同時定位和同時建圖),即利用感測器來進行機器人(如AGV)的自身定位以及對周圍環境的建圖。當機器人來到一個陌生的環境中時,它需要迅速的建立自身與環境的關係,「我現在在哪裡?」「我要去哪裡?」「我從哪裡來?」,「我現在要幹什麼?」「我現在看到的世界是什麼樣子」「我能在已有的抽象世界中定位我的位置嗎?」等一系列問題,依據這些問題,機器人能完美的做出回答即是SLAM方法需要解決的。
2.SLAM方法實現的4要素
SLAM方法在實現的時候主要要考慮以下4個方面:
地圖表示問題,這個需要根據實際場景需求去抉擇
信息感知問題,需要考慮如何全面的感知外界環境,一般SLAM使用外界環境感知感測器分為視覺導航感測器,如攝像機,激光導航感測器,如激光掃描儀。
數據關聯問題,不同的感測器的數據類型、時間戳、坐標系表達方式各有不同,需要統一處理。
定位與構圖問題,就是指怎麼實現位姿估計和建模,這裡面涉及到很多數學問題,物理模型建立,狀態估計和優化等。
.SLAM分類
SLAM大概可分為激光SLAM(也分2D和3D)和視覺SLAM兩大類。
關於激光SLAM 2D, 就是SLAM定位時,僅用單線激光感測器,在激光感測器掃描的這一個平面上進行二維定位,在獲取精密的二維定位后,在此基礎上解算三維激光點雲,成為一個完整的空間三維數據。
同理,激光SLAM 3D,就是要用三維激光感測器,獲取三維數據,然後通過三維數據的特徵點匹配進行定位,然後在三維定位基礎上,來計算和匹配完整的三維數據,最後得到其位姿。
關於視覺SLAM系統主要分為四個模塊:攝像頭、後端、建圖、迴環檢測。其過程為,視覺SLAM靠一個攝像頭來感知周圍的世界並評估自身的位姿,它需要利用視覺里程計來通過相鄰兩張相片計算姿態參數估算距離角度以及恢復圖像上各點的位置,由於有累積誤差需要後端優化,對於周圍環境的感知需要地圖構建並配准,然後需要迴環檢測計算閉合誤差並修正,最後得到準確的機器人位姿。
4.SLAM的未來
SLAM將來的發展趨勢有兩大類:一是朝輕量級、小型化方向發展,讓SLAM能夠在嵌入式或手機等小型設備上良好運行,然後考慮以它為底層功能的應用。因為在絕大多數場合中,真正目的都是實現機器人、AR/VR設備的功能,比如說運動、導航、教學、娛樂,而SLAM是為上層應用提供自身的一個位姿估計。在這些應用中,我們不希望SLAM佔用所有計算資源,所以對SLAM的小型化和輕量化有非常強烈的需求。另一方面則是利用高性能計算設備,實現精密的三維重建、場景理解等功能。在這些應用中,我們的目的是完美地重建場景,而對於計算資源和設備的便攜性則沒有多大限制。