Open Source Robotics

精選高品質的開源機器人專案、工具與軟體,推動機器人社群向前發展。

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)
  • 因子圖最佳化
  • 感測器融合

相關術語

  • ROS

相關專案

  • 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

維基百科

  • 同时定位与地图构建

本網站需要 JavaScript 才能正常運作。請啟用 JavaScript 以瀏覽我們的開源機器人專案。