從零開始搭建一套SLAM系統
第一天:整體算法框架簡介以及學習建議
SLAM是什么
-
SLAM 和 SFM 是什么關系
- 不同點:
- SFM (Structure From Motion),稱之為傳統三維重建,這是一門計算機視覺學科的分支,特點是把圖片數據集集回來,離線慢慢精細化處理。常見應用就是重建某建筑物的3d地圖,比較炫的成果可以見 rome_paper.pdf (washington.edu) (一天重建羅馬城)。
- 提起SLAM就要提到ROS。ROS是機器人操作系統,用一堆雜七雜八的傳感器組裝好一套硬件,采集各個傳感器的數據,傳送給ROS的處理節點。SLAM會處理這些數據進行實時建圖與定位,要做到的是低運算量!2107.00822 (arxiv.org)
- 二者所屬學科不同,應用側重點不同。
- 相同點:
- SFM為SLAM提供了強有力的理論支持,二者的數學理論相似。
- 不同點:
-
SLAM 和 Deep Learning 是什么關系
- SLAM是和Deep Learning互補的算法。SLAM專注于幾個問題,通過構建周圍世界的3d或2d地圖,并確定robot所在的位置和方向,Deep Learning主要解決感知與識別。
- 如果想讓機器人走到冰箱而不撞墻,你需要SLAM;如果要識別冰箱內的物體,你需要神經網絡。
SLAM的前端后端
-
首先明確三個問題:
- SLAM可以使用大量不同的硬件
- SLAM是一個概念不是算法
- SLAM包含多個模塊,每個模塊都有多種算法
-
SLAM框架可以分為前端和后端。
-
前端:涉及傳感器的選擇以及傳感器數據處理,比如里程計時間戳和Lidar點云時間戳的對齊等。位姿粗估計。
- 移動系統:里程計、GPS、IMU慣導等
- 移動系統中的傳感器可以選擇一種或多種,甚至“沒有”(參考純視覺里程計VO或者純激光里程計LO)。
- 前端狀態估計
- IMU積分或輪速DR
- 對極幾何
- 點云配準
- 前端狀態估計
-