SLAM學習之路#1 簡介

CK Wang
3 min readApr 12, 2019

--

SLAM為simultaneous localization and mapping的英文縮寫,也就是同時定位與建圖,localization在討論的是求出感測器自身的位置,mapping在研究的是環境周遭的模型,用一個更具體的例子來解釋SLAM的研究內容:

以前去外地念書的時候,剛搬進宿舍,環境都還不熟通常我們都會1.先觀察附近的環境,看什麼東西跟地標(特徵提取)2.在腦袋中記住並重現那些東西跟地標(建圖)3.邊走邊觀察環境,同時根據那些地標更新地圖(kalman filter)4.同時也要根據路上的特徵確定自己的位置(trajectory)5.走了一段時間,和腦袋中的地圖進行匹配,看現在走的地方之前走過了沒(closed loop detection)。而構建地圖跟確認自己的位置這兩件事是同時進行的,所以用simultaneous。藉由這個小故事我們可以得知:人的眼睛就是某種感測器,我們在不了解環境的情況下,在運動過程中建立環境模型,同時估計自己的運動(軌跡),這就是SLAM研究的課題。

經過剛才的介紹,我們大概可以把視覺SLAM分成幾個部分:1.Visual Odometry or Front End,估計相鄰畫面(圖片)間感測器的的運動關係,2.Optimization,透過狀態估計來表達自身及環境的不確定性,並採用濾波器去估計狀態的均值和不確定性,3.Closed Loop Detection,透過感測器能識別曾經來到過此地方的特性,解決隨時間漂移的情況,4.Mapping,根據估計的軌跡,建立對應的地圖。

目前為止,大致可以了解SLAM研究的內容,接著我們在討論幾個重要的名詞,運動方程:考慮從k-1到k時刻,感測器位置x是如何變化的(u是感測器的數據,w是雜訊);觀測方程:當感測器在位置x上觀測到的路標點y,產生的觀測數據z(v是雜訊)。

我們藉由運動方程及觀測方程,在知道u(感測器數據)及z(觀測數據)的情況,求解x(感測器位置)及y(實際路標點),也就是個定位及建圖的問題。

此時,我們已經把原本的SLAM問題變成了一個狀態估計問題,狀態估計問題的求解,依照這兩個方程式線性與否及雜訊是否成高斯分佈,分為四種系統,四個系統的最優估計會使用不同的方法,例如線性高斯系統可使用Kalman Filter,而非線性非高斯則會使用Extended Kalman Filter。

Reference:

  1. 視覺SLAM 14講
  2. https://www.zhihu.com/question/35823479

--

--