雷鋒網按:本文作者SLAMTEC(思嵐科技公號slamtec-sh)技術顧問,專注SLAM及相關感測器研發應用。
智慧服務機器人正成為行業的風口浪尖,從清掃機器人開始,家庭陪伴機器人、送餐機器人等陸續進入公眾視線。
在討論這類機器人是否能解決實際問題時,自主定位導航技術作為機器人智慧化的第一步正不斷引起行業內的重視。同時,作為自主定位導航技術的重要突破口,SLAM技術也成為關注焦點。
正如圖中所示,機器人自主定位導航技術中包括定位、地圖創建與路徑規劃(運動控制),而SLAM本身只是完成機器人的定位和地圖創建,二者有所區別。
那麼,SLAM技術究竟是如何實現的?它有哪些難點?機器人如何實現路徑規劃和自動導航?到底什麼樣的掃地機器人才算智慧?
這些問題,小編將為你一一解答,帶領大家瞭解機器人自主移動的秘密。
今天,我們先從SLAM說起。
SLAM是同步定位與地圖構建(Simultaneous Localization And Mapping)的縮寫,最早由Hugh Durrant-Whyte 和 John J.Leonard提出。
其實,SLAM更像是一個概念而不是一個演算法,它本身包含許多步驟,其中的每一個步驟均可以使用不同的演算法實現。主要用於解決移動機器人在未知環境中運行時即時定位與地圖構建的問題。
當你身處異地,怎麼準確找到想去的地方?在戶外迷路時,怎麼找到回家的路?沒錯,我們有導航軟體和戶外地圖。
和人類繪製地圖一樣,機器人描述環境、認識環境的過程主要就是依靠地圖。它利用環境地圖來描述其當前環境資訊,並隨著使用的演算法與感測器差異採用不同的地圖描述形式。
機器人學中地圖的表示方法有四種:柵格地圖、特徵地圖、直接表徵法以及拓撲地圖。
1、柵格地圖
機器人對環境地圖的描述的方式最常見的為柵格地圖(Grid map)或者稱為Occupancy Map。柵格地圖就是把環境劃分成一系列柵格,其中每一柵格給定一個可能值,表示該柵格被佔據的概率。
這種地圖看起來和人們所認知的地圖沒什麼區別,它最早由NASA的Alberto Elfes在1989年提出,在火星探測車上就用到過,其
本質是一張點陣圖圖片
,但其中每個“圖元”則表示了實際環境中存在障礙物的概率分佈。
一般來說,採用雷射雷達、深度攝像頭、超聲波感測器等可以直接測量距離資料的感測器進行SLAM時,可以使用該地圖。這種地圖也可以通過距離測量感測器、超聲波(早期)、雷射雷達(現在)繪製出來。
2、特徵點地圖
特徵點地圖,是用有關的幾何特徵(如點、直線、面)表示環境,常見於vSLAM(視覺SLAM)技術中。
相比柵格地圖,這種地圖看起來就不那麼直觀了。它一般通過如GPS、UWB以及攝像頭配合稀疏方式的vSLAM演算法產生,優點是相對數據存儲量和運算量比較小,多見於最早的SLAM演算法中。
3、直接表徵法
直接表徵法中,省去了特徵或柵格表示這一中間環節,直接用感測器讀取的資料來構造機器人的位元姿空間。
上圖就是直接記錄了屋子內天花板畫面的圖像地圖。這種方法就像衛星地圖一樣,直接將感測器原始資料通過簡單處理拼接形成地圖,相對來說更加直觀。
4、拓撲地圖
拓撲地圖,是一種相對更加抽象的地圖形式,它把室內環境表示為帶結點和相關連接線的拓撲結構圖,其中結點表示環境中的重要位置點(拐角、門、電梯、樓梯等),邊表示結點間的連接關係,如走廊等。這種方法只記錄所在環境拓撲連結關係,這類地圖一般是由前幾類地圖通過相關演算法提取得到。
比如掃地機器人要進行房間清掃的時候,就會建立這樣的拓撲地圖:
5.小結
在機器人技術中,SLAM的地圖構建通常指的是建立與環境幾何一致的地圖。
一般演算法中建立的拓撲地圖只反映了環境中的各點連接關係,並不能構建幾何一致的地圖,因此,這些拓撲演算法不能被用於SLAM。
直接表徵法類似衛星地圖,它是直接使用感測器(一般是圖像感測器)構建得到。這種方法的資訊冗餘度最大,對於資料存儲是很大的挑戰,同時,機器人要從中提取出有用的資料也要耗費一番周折,因此在實際應用中很少使用。
特徵點地圖又是另一個極端,
雖然資料量少,但是它往往不能反應所在環境的一些必須的資訊,比如環境中障礙物的位置
。vSLAM技術中,多採用這種地圖來解決機器人定位問題。想讓機器人進行自主避障和路徑規劃,還需要額外配置距離感測器,如雷射雷達、超聲波來完成。
柵格地圖,或者Occupancy Map(佔據地圖)恰好介於其中,一方面它能表示空間環境中的很多特徵,機器人可以用它來進行路徑規劃,另一方面,它又不直接記錄感測器的原始資料,相對實現了空間和時間消耗的最優。因此,
柵格地圖是目前機器人所廣泛應用的地圖存儲方式
。
思嵐科技的SLAMWARE系統內部也採用這種地圖方式。
當你打開手機中的導航軟體,在選擇前往目的地的最佳路線之前,首先要做的動作是什麼呢?沒錯,就是
定位
。我們要先知道自己在地圖中的位置,才可以進行後續的路徑規劃。
在機器人即時定位問題中,由於通過機器人運動估計得到的機器人位置資訊通常具有較大的誤差,我們還需要使用測距單元得到的周圍環境資訊更正機器人的位置。
目前,常見的測距單元包括鐳射測距、超聲波測距以及圖像測距三種。其中,憑藉鐳射良好的指向性和高度聚焦性,雷射雷達已經成為移動機器人的核心感測器,同時它也是目前最可靠、最穩定的定位技術。
自1988年被提出以來,SLAM的理論研究發展十分迅速。在實際應用時,除配備雷射雷達外,還需要機器人具有IMU(慣性測量單元)、里程計來為雷射雷達提供輔助資料,這一過程的運算消耗是巨大的,傳統上需要PC級別的處理器,這也成為限制SLAM廣泛應用的瓶頸之一。
那麼,實現SLAM的過程中,都會遇到哪些坑呢?