SLAM全稱Simultaneous Localization and Mapping,中文名曰「同步定位與地圖構(gòu)建」,主要用于解決機器人在未知環(huán)境運動時的定位和地圖構(gòu)建問題。
當你身處一個陌生的地方,要準確找到目的地和路線,十有八九會打開手機上的地圖app,然后定位、輸入目的地、規(guī)劃路線、導航。
機器人也一樣。當它們身處未知環(huán)境時,同樣需要通過以上步驟才能做出正確的運動。只不過,機器人靠的不是手機地圖 app,而是 SLAM技術(shù)。
SLAM 全稱 Simultaneous Localization and Mapping,中文名曰「同步定位與地圖構(gòu)建」,主要用于解決機器人在未知環(huán)境運動時的定位和地圖構(gòu)建問題。這更像一個概念,而不是某種算法。它本身包含許多步驟,其中的每一個步驟均可以使用不同的算法實現(xiàn)。
機器人、無人車、無人機、AR,無所不能的 SLAM
兩年前,SLAM 最流行的應(yīng)用場景還只是我們家里的掃地機器人。近幾年,隨著無人機、無人駕駛、服務(wù)機器人、倉儲機器人以及 AR 的興起,SLAM 作為其中核心技術(shù)的一種,正變得越來越重要。
雷鋒網(wǎng)的一篇報道曾引用 SLAM 技術(shù)發(fā)燒友 Guang Ling 的話,來強調(diào) SLAM 技術(shù)的重要性:
一個機器人也好,無人汽車也好,其中最核心,最根本的問題有四個,定位技術(shù)、 跟蹤技術(shù)、 路徑規(guī)劃技術(shù)(Path Planning), 還有就是控制技術(shù)(Controlling)。
而這四個問題中的前三個,SLAM 都扮演了最核心的功能。打個比方,若是手機離開了 wifi 和數(shù)據(jù)網(wǎng)絡(luò),就像無人車和機器人,離開了 SLAM 一樣。
也許有讀者好奇,為什么無人車也非常依賴 SLAM?因為無人車被看作移動機器人的一種,也需要首先解決定位、避障和導航的問題。目前用在無人駕駛汽車上的 SLAM 主要是基于激光雷達傳感器,后面會詳細提到。
天上飛的的無人機同樣需要 SLAM 來「添翼」。SLAM 能讓無人機知道障礙物在哪里,進而實現(xiàn)自動避障的功能。
香港科技大學助理研究員徐梟涵曾在知乎上如此形容 SLAM 對無人機的重要性:
所有的關(guān)于無人機的夢想都建立在 SLAM 之上,這是無人機能飛(具有定位,姿態(tài)確定以后)的時代以后,無人機最核心的技術(shù)。也是現(xiàn)代無人機和玩具的區(qū)別。
無人車、無人機,都可以算作機器人的一種,依賴 SLAM 很好理解。但與機器人沒什么關(guān)系的 AR 設(shè)備,其實也是 SLAM 的一個重要應(yīng)用。
如果沒有 SLAM 加持,所有頭戴眼鏡就只是一個近眼投影設(shè)備。有了 SLAM,AR 眼鏡才能知道自己的空間坐標和相對于室內(nèi)各種障礙物的位置,同時識別出各種室內(nèi)擺件的形狀。這是 AR 設(shè)備人機交互的基礎(chǔ)。
由于 AR 是將虛擬圖像疊加在真實物體上,所以 SLAM 的應(yīng)用講究局部精度,要求避免出現(xiàn)漂移、抖動的現(xiàn)象,虛擬與真實才能完美地融合在一起。另外,AR 對幀率、硬件體積、計算量、功率、成本等問題都更敏感。
激光雷達、單目、雙目、RGBD,SLAM 傳感器的分類
實現(xiàn) SLAM 的第一步,是選擇傳感器的形式和安裝方式。傳感器分為激光雷達和視覺兩大類,視覺下面又分三小方向。
激光雷達
激光雷達能以很高精度測出機器人周圍障礙點的角度和距離,而且速度快,計算量也不大,容易做成實時 SLAM。激光雷達一般用于掃描一個平面內(nèi)的障礙物,適用于適用于平面運動的機器人(如無人車、掃地機器人)。
許多行業(yè)分析師認為,激光雷達是實現(xiàn)全自動駕駛的關(guān)鍵傳感器,其產(chǎn)品被以 Google、百度為代表的企業(yè)認可。
不過,激光雷達制造成本高,價格十分昂貴,比如 Google 無人車目前使用的激光傳感器單個定制成本在8萬美元左右,百度采購一臺激光雷達也要 70 萬人民幣。
成本已然成為激光雷達普及最大的攔路虎。2016 年 8 月福特和百度一起投資了激光雷達廠商 Velodyne LiDAR 1.5 億美元,目的就是幫助 Velodyne 降低激光傳感器的成本。Velodyne 希望將激光雷達的價格降到 300 到 500 美元之間,以滿足大眾汽車市場。
視覺 SLAM
視覺 SLAM 是 21 世紀 SLAM 研究熱點之一。CPU、GPU 處理速度的增長和硬件的提高,讓許多以前被認為無法實時化的視覺算法,得以在 10 Hz 以上的速度運行。
按照攝像頭的數(shù)量和種類分,視覺 SLAM 分 3 個子方向:單目、雙目(或多目)、RGBD。此外,還有魚眼、全景等特殊攝像頭,但是都屬于少數(shù)。
單目相機 SLAM 只需要一個普通的 2D 攝像頭,成本優(yōu)勢大。但普通 2D 攝像頭沒法獲取深度信息,它捕獲的僅僅是一張 2D 圖像。深度信息缺失有什么影響?引用知乎用戶「半閑居士」的一個回答:
沒有距離信息,我們不知道一個東西的遠近——所以也不知道它的大小。它可能是一個近處但很小的東西,也可能是一個遠處但很大的東西。只有一張圖像時,你沒法知道物體的實際大?。⊿cale)。
另一方面,單目相機也無法依靠一張圖像獲得圖像中物體離自己的相對距離。
但這兩個問題都有對應(yīng)的解決辦法。比如,通過借助 GPU 和 IMU(Inertial Measurement Unit,慣性測量器件)確定物體的大小,依靠運動中的三角測量,來求解相機運動并估計像素的空間位置。
雙目 SLAM 消除了單目的很多麻煩。雙目視覺和人眼類似,通過左右眼圖像的差異來計算距離——也就是所謂的立體視覺(Stereo)。
但雙目 SLAM 的計算量非常大,通常需要用到可編程門陣列 FPGA。而且其其深度量程也受雙目的基線與分辨率限制。
RGBD SLAM 的傳感器是深度攝像頭,能直接記錄深度信息。深度攝像頭通過把光投射到物體表面,再測量反射的信息來計算距離,具體原理有兩種:結(jié)構(gòu)光或 Time-of-Flight。它比傳統(tǒng)相機能夠提供更豐富的信息,也不必像單目或雙目那樣費時費力地計算深度。Kinect 就是一種比較常見的深度攝像頭。不過,現(xiàn)在多數(shù) RGBD 相機還存在測量范圍窄、噪聲大、視野小等諸多問題。
總的來說,SLAM 的實現(xiàn)方法多種多樣,應(yīng)用場景也不斷打開。但「由于產(chǎn)品和硬件高度差異化,而 SLAM 相關(guān)技術(shù)的整合和優(yōu)化又很復雜,導致算法和軟件高度碎片化,所以市場上目前還沒有一套通用普適的解決方案,在短時間內(nèi)也不會有」。
2025-07-02 10:48
2025-07-02 10:46
2025-07-02 10:44
2025-07-01 10:21
2025-06-30 12:00
2025-06-30 11:58
2025-06-30 11:38
2025-06-30 11:35
2025-06-28 10:51
2025-06-27 13:50