SLAM:機器人如何在未知地形中導航

想像一下在一片陌生的沙漠中,艱難地尋找安全的出路。一直以來,對於人類和機器人而言,穿越陌生的地形都是一大挑戰。機器人或自駕車的傳統導航方式需要預存地圖,但若是在沒有穿越過的未知領域,無法取得此類地圖。 這呈現出機器人技術中的一個經典困境,通常被稱為「先有雞還是先有蛋」的問題。機器人如何在沒有地圖的情況下,在未知環境中導航?以及如何在尚未導航過的環境中建立地圖?

使用視覺 SLAM 技術,建立 3D 視覺 SLAM 地圖 (或稱為 SLAM 地圖)。(圖轉載自 www.flyability.com,圖片來源:Sigmoidal.ai)

同步定位與建圖 (SLAM) 概念在此發揮作用。SLAM 由 Hugh Durrant-Whyte 和 John J. Leonard 等研究人員開發,此技術可讓機器人即時自主導航和繪製未知環境。SLAM 不依賴預先存在的地圖,而是讓機器人自行建立周圍環境的地圖,同時判定在地圖中的位置。SLAM 的核心涉及兩個主要流程:建圖和定位。建圖是指建立環境的空間表示,而定位判定機器人在該地圖內的位置。這些過程相互交織,機器人根據感測器資料不斷更新其地圖,並且對應調整其推論的位置。

實作 SLAM 涉及幾個關鍵步驟,在整個過程中,每個步驟都提供重要的作用。這些步驟包括地標擷取、資料關聯、狀態估計、更新。「地標擷取」識別環境中可用作繪圖和定位參考點的獨特特徵或地標。「資料關聯」將感測器測量結果與地圖中的特徵進行匹配,而「狀態估計」會採用感測器資料,估算機器人的位置和方向。最後,「更新」會根據新的感測器測量結果,細化地圖和位置估計。

決定 SLAM 效率的關鍵要素之一是所使用的感測器類型。不同的感測器會提供不同等級的準確度和資訊,這可能會影響建圖和定位估算的品質。例如,視覺 SLAM (vSLAM) 使用攝影機作為主要感測器,讓機器人從周圍環境擷取視覺資訊。此視覺資訊包括邊緣、角落、紋理等特徵,用作建圖和定位的地標。此外,攝影機還提供豐富的語意資訊,可協助物體偵測和識別等任務。另一方面,採用光達 (LiDAR) 架構的 SLAM 運用光達感測器 (如 SparkFun 的 SLAMTEC SEN-15870) 發射雷射光束,測量在環境中到達物體的距離。光達感測器具有高準確度和精密度,因此非常適合複雜幾何的建圖環境。然而,光達感測器價格昂貴且運算密集,這可能會限制其在某些場景中的適用性。

依據攝影機類型,vSLAM 有多個子類別。其中包括單目 SLAM、立體 SLAM、RGB-D SLAM。單目 SLAM 使用單一攝影機來估計機器人的運動和環境結構。立體 SLAM 採用立體攝影機配置,包含兩台放置在已知相對基線距離的攝影機。此配置可對視覺特徵進行三角測量,進而提升深度估計和建圖準確度。最後,RGB-D SLAM 將傳統 RGB 攝影機結合深度感測器,例如 Microsoft Kinect 或 Intel RealSense 攝影機。這些添加的深度資訊可提供更準確的 3D 建圖和定位。

vSLAM 的每個子類別都有個別優勢和侷限,實際取決於成本、運算複雜性和環境條件等因素。例如,單目 SLAM 由於簡易和低成本,受到廣泛使用。然而,由於無法直接估計環境的尺度,具有尺度模糊性。立體 SLAM 運用視覺特徵的三角測量以估計深度和尺度,可解決這個問題。同時,RGB-D SLAM 憑藉 RGB 影像和深度資訊的結合,提供最高等級的準確度和細節。

SLAM 除了運用於機器人領域之外, 在各產業中也有大量的實際應用。在機器人技術中,SLAM 可讓機器人自主導航並探索動態環境,例如倉庫、工廠、災區。在自駕車中,SLAM 用於建立高解析度道路地圖,並在這些地圖中為車輛定位。SLAM 也應用於擴增實境 (AR) 和虛擬實境 (VR);透過將虛擬物件疊加到現實世界的環境中,建立沈浸式體驗。

儘管 SLAM 有眾多優點,但也不是完全沒有缺點。SLAM 的主要挑戰之一是處理感測器資料和即時更新地圖所涉及的複雜運算。這在具有大量資料或有限運算資源的環境中,尤其具有挑戰性。此外,SLAM 非常依賴環境中獨特的特徵和地標。在地形單一或無特徵的環境中,SLAM 可能難以建立準確的地圖或有效定位機器人。

總之,同步定位與建圖 (SLAM) 是一項強大的技術,可讓機器人即時自主導航和繪製未知環境。SLAM 將建圖和定位相結合,允許機器人在沒有先前知識或預存地圖的情況下,探索和瞭解周圍環境。雖然 SLAM 有其自身的一系列挑戰和侷限,但其應用廣泛且多樣,跨越機器人、自駕車、AR 和 VR 等產業。技術不斷進步,SLAM 也在塑造機器人和自動化的未來扮演越來越重要的角色。

參考資料:

  1. 什麼是同步定位與建圖?(SLAM) (vercator.com)
  2. 同步定位與建圖 (SLAM) 簡介 | Ouster
  3. 30 分鐘從零開始瞭解 SLAM:互動工作坊 | Ouster
  4. 什麼是同步定位與建圖 (SLAM) – MATLAB & Simulink - MATLAB & Simulink (mathworks.com)
  5. SLAM;定義與演進 - ScienceDirect
  6. SLAM 使用的關鍵演算法簡介 - 技術文章 (control.com)
  7. 定位 - 機器人與感知簡介 (roboticsbook.org)

關於作者

Image of Aswin S Babu

Aswin 是一名軟體工程師,專門研究機器人和 AI。他熱衷於將這些技能應用於社會公益。他的經歷涵蓋家庭自動化領域的社會企業到機器人工程師。他曾參與過創新專案,例如機器人定位用的單眼視覺里程計系統。此外,他也擁有教學經驗,曾向各年齡層的學生教導機器人與 AI 知識。他喜歡公開演講、養蜂、園藝,以及擔任社會公益志工。

More posts by Aswin S Babu
 TechForum

Have questions or comments? Continue the conversation on TechForum, Digi-Key's online community and technical resource.

Visit TechForum