SLAM
傳感器分類
- 二維激光
- 三維激光
- 視覺傳感器
- 聲納傳感器
后端處理分類
- 圖優化(Graph-based,優化全部位姿,屬於全局優化,可能存在計算量的問題,影響實時性???)
- 滑動窗口方法(sliding-window優化固定數目的位姿,常用於VIO方法,MSCKF)
- 濾波器方法(filter-based, 卡爾曼濾波,EKF,UKF)
Graph-based SLAM architecture
- 前端匹配(幀間匹配)
- 回環檢測
- 后端優化(非線性最小二乘,構建約束最小化代價方程)
圖結構
- Graph:SLAM 進程
- Node: 機器人位姿
- Edge: 節點之間的空間約束關系
激光SLAM流程
- 數據預處理(激光雷達去畸變,里程計標定)
- 激光幀間匹配(計算相對位姿)
- 回環檢測(loop closure)
- 后端優化(pose-graph,非線性最小二乘)
數據預處理
里程計標定: 機械標定存在誤差/累計誤差/存在漂移問題; 提供初始解
激光雷達運動畸變去除:激光數據采集需要時間/傳感器移動
幀間匹配算法(核心部分)
ICP/PI-ICP/NICP/NDT/CSM
回環檢測
- scan-to-scan(逐幀匹配,有歧義,計算量小)
- scan-to-map(幀組合成子圖,當前幀與子圖匹配)
- map-to-map(子圖與子圖進行匹配,基本無歧義,計算量大)
后端優化
高斯牛頓/LM方法
2D SLAM
輸入
IMU/里程計/2D激光雷達數據
輸出
覆蓋柵格地圖/機器人軌跡(建圖*定位)
幀間匹配方法
PL-ICP: 點到線的距離,符合室內結構化場景,依賴初始解
CSM(Correlation Scan Match):暴力搜索
Optimization-Based:依賴地圖的梯度,可以輕易的引入額外約束
State-of-Art: CSM+梯度優化
回環檢測方法
- scan-to-map
- map-to-map
- Branch and Bound&Lazy Decision(延遲決策)
主要方法
Filter-based
- EKF
- FastSLAM 粒子濾波
- Gmapping
- Optimal RBPF
Graph-based
- Karto-SLAM(首個開源算法,經典)
- Cartographer(與Karto-SLAM 類似)
應用中的問題
數據預處理(最重要的部分)
- 里程計
- 激光雷達運動畸變
- 不同系統間的時間同步
實際環境中的問題
動態物體/環境變化/幾何結構相似環境
3D SLAM
與2D激光不同: 3D激光雷達數據
幀間匹配方法
Point-to-Plane ICP: 點到面的ICP
Plane-to-Plane ICP:面到面的距離
NDT:划分網格,擬合高斯分布
NICP:在ICP基礎上引入法向量信息
IMLS-ICP:點雲進行局部曲面擬合,曲面匹配
Feature-Based: 提取特征點和描述符進行匹配
應用
預處理
同2D SLAM,但預處理任務更重
與視覺融合
3D雷達提供深度信息,輔助回環和提供里程信息,消除運動畸變
激光SLAM問題
退化環境(Degeneration Environment)
空曠的環境
地圖的動態更新
全局定位
動態環境定位
動態物體濾除,檢測與跟蹤