SLAM
- 又稱: Simultaneous Localization and Mapping
- 類別: State estimation & navigation › Localisation
- 標籤: perception, navigation, mapping, localization, autonomous
在建構地圖的同時追蹤機器人位置的演算法。
定義
SLAM(Simultaneous Localization and Mapping,同步定位與建圖)是一個計算問題:在未知環境中建構地圖,同時追蹤機器人在其中的位置。它解決了根本的「雞生蛋、蛋生雞」難題:機器人需要地圖才能定位自己,卻又需要知道自己的位置才能建出準確的地圖。SLAM 系統處理感測器資料(攝影機、光達(LiDAR)、IMU),即時產生環境地圖與位姿估計。常見的做法包括視覺 SLAM(使用攝影機)、光達 SLAM(使用雷射掃描儀),以及視覺慣性 SLAM(結合攝影機與 IMU,以獲得穩健的追蹤)。
為何重要
SLAM 解決了一個循環問題:要建地圖,你得知道自己在哪裡;要知道自己在哪裡,你又需要地圖。同時解決這兩者,機器人才能進入一棟陌生的建築,然後帶著一張可用的地圖以及自己在其中的位置出來,不需要經過測量的信標或預先安裝的基礎設施。每一台自主掃地機器人、倉儲機器人與室內配送機器都仰賴它。它也是感測器選擇、運算預算與環境之間衝突最激烈的地方:同一套演算法在雜亂的實驗室裡運作良好,在一條缺乏特徵的長走廊裡卻可能完全失效。
主要應用
- 室內移動機器人:掃地機器人、服務型機器人與巡檢平台,在沒有事先測量的空間中建圖
- 倉儲與物流車隊:為大型、不斷變化的環境維護共用地圖
- 在無 GPS 空間中的無人機導航:室內、橋下或結構物內部
- 用於建築測量與竣工文件的手持式與背包式掃描系統
- 在作物行間作業、單靠 GPS 不足的農業與野外機器人
- 擴增實境頭戴裝置,它們以不同的名稱處理同一個問題
實際應用
室內機器人通常在 ROS 2 下執行 SLAM Toolbox 或 Cartographer 等 2D 光達(LiDAR)SLAM 套件,把掃描資料與輪式里程計及 IMU 融合。迴路閉合是最重要也最不顯眼的部分:當機器人認出自己曾經到過的地方時,整張地圖會被調整,讓兩次觀測一致,這就是為什麼地圖在繞完一大圈後會明顯地「啪」一下對齊。ORB-SLAM3 等視覺 SLAM 系統以攝影機影像完成同樣的工作,以光達在度量上的確定性,換取便宜得多的硬體,但對光線與紋理的敏感度也高得多。
常見誤解
- SLAM 是已解決的問題:它在條件良好的室內空間中已經解決;動態人群、重複的走廊與缺乏特徵的環境仍會讓量產系統失效
- SLAM 需要光達(LiDAR):視覺 SLAM 與視覺慣性 SLAM 只用攝影機就能運作,代價是在光線不佳與空白牆面前較不穩健
- 地圖一旦建好就一直有效:家具、棧板與人都會移動,大多數系統必須持續更新或定期重建地圖
- 更好的感測器就能解決 SLAM 失效:長走廊與對稱的房間是因為缺乏可辨識的結構而讓 SLAM 失效,這是任何感測器升級都無法提供的
誰需要了解
- 任何把移動機器人部署到會變化或從未測量過之空間的人
- 選擇導航堆疊及其感測器需求的開發者
- 排查機器人在走廊、中庭或倉儲走道中迷路問題的工程師
- 評估機器人在建築中工作前需要建築提供什麼的設施管理人員
- 想了解為何定位與建圖被當成一個問題而非兩個問題來教的學生
相關技術
- 光達(LiDAR)
- 視覺里程計
- 迴路閉合偵測
- 佔據網格建圖
- ORB-SLAM
- Cartographer(Google)
- 因子圖最佳化
- 感測器融合
相關術語
相關專案
- LingBot-Map: Streaming 3D reconstruction from one camera: pose and depth for every frame, live
- Open3D: Modern library for 3D point cloud processing, mesh operations, and 3D machine learning
- PCL: Industry-standard C++ library for point cloud processing in robotics perception
- Cartographer: Google's real-time 2D and 3D SLAM system for multi-platform robotics
- OpenMower: Open-source project converting commercial mowers into autonomous RTK-GPS guided robots
- OpenDroneMap: Open-source photogrammetry toolkit that turns drone images into maps and 3D models
影片
- SLAM Robot Mapping - Computerphile: Computerphile
- SLAM - 5 Minutes with Cyrill: Cyrill Stachniss