1. 程式人生 > >鐳射slam 理論詳解(一)

鐳射slam 理論詳解(一)

什麼是slam 技術

  slam (Simultaneous Localization and Mapping)叫即時定位與建圖,它主要的作用是讓機器人在未知的環境中,完成定位(Localization),建圖(Mapping)和路徑規劃(Navigation)。

鐳射slam簡要介紹

   主流的slam技術應用有兩種,分別是鐳射slam(基於鐳射雷達lidar 來建圖導航)和視覺slam(vslam,基於單/雙目攝像頭視覺建圖導航),在此主要先介紹鐳射slam,它有分為基於濾波的 filter-based 的SLAM,和基於圖優化Graph-based的SLAM

(1)基於Graph-based的代表是cartographer,karto_slam,可以修復 t 時刻之前的誤差分為兩部分Front-end ,和Back-end。

(2)基於(粒子濾波)PF的代表gmapping,只能估計X(t)當前時刻的位姿,不能修復之前時刻產生的誤差。在大面積的情況下,就無法建圖了。

slam演算法實現的幾個要點

1. 地圖表示問題,比如dense和sparse都是它的不同表達方式,這個需要根據實際場景需求去抉擇

(A)覆蓋珊格地圖 和點雲地圖

2. 資訊感知問題,需要考慮如何全面的感知這個環境,RGBD攝像頭FOV通常比較小,但鐳射雷達比較大

   (A)主要使用感測器慣性測量單元——陀螺儀(Imu)測角度,輪子編碼器測里程計odom,及鐳射雷達

3. 資料關聯問題,不同的sensor的資料型別、時間戳、座標系表達方式各有不同,需要統一處理

4. 定位與構圖問題,就是指怎麼實現位姿估計和建模,這裡面涉及到很多數學問題,物理模型建立,狀態估計和優化

5.迴環檢測問題

(A)分支定界Branch and Bound&lazy Decison(延遲決策) ,代表:cartographer

(B)Scan-to-Map

6.探索問題(exploration)

7.綁架問題(kidnapping)

8.幀間匹配演算法

    (A)PI-ICP

    (B)CSM(Correlation Scan Match)

    (C)梯度優化的方法:Hector—SLAM

    (D)CSM+梯度優化:cartographer

2Dslam 技術發展

  

(A)EKF-SLAM構建的是feature 地圖,而不是grid柵格地圖,所以無法用於導航,只能用於定位。

(B)gmapping是Grid版本的FastSLAM,加入了scan-match。

(C)在Optimal RBPF在gmapping上做了優化,是MRPT上的一個開源演算法。