從零開始一起學習SLAM | SLAM有什么用?
點擊上方“小白學視覺”,選擇加"星標"或“置頂”
重磅干貨,第一時間送達
SLAM是 Simultaneous Localization And Mapping的 英文首字母組合,一般翻譯為:同時定位與建圖、同時定位與地圖構建。
「同時定位與地圖構建」這幾個詞,乍一聽起來非常拗口,為了不在一開始就嚇跑讀者,我們先不對其進行專業(yè)的解釋,用一個日常生活中形象的例子來進行說明。
我們知道現(xiàn)在有不少家用的掃地機器人,可以代替人對室內進行自動清掃。早期的掃地機器人并不智能,它只是具有簡單的避障功能,在室內隨機游走,遇到障礙物就轉彎,這樣會導致有很多地方會漏掉,掃地效率非常低。

而現(xiàn)在隨著SLAM技術在掃地機器人中的應用,現(xiàn)在的掃地機器人已經(jīng)變的非常智能,可以通過自身的傳感器對室內進行掃描建圖,根據(jù)當前的定位進行Z字形規(guī)劃清掃,還能實現(xiàn)自動回充、斷點續(xù)掃等高級功能。
根據(jù)前面介紹,我們總結一下,要想真正實現(xiàn)智能的清掃,掃地機器人至少需要知道以下幾件事情:
1、我在哪里?也就是掃地機器人在工作過程中要知道自己在房間的具體位置。對應的術語叫:定位(Localization)。
2、我周圍的環(huán)境是什么樣子?也就是掃地機器人需要知道整個房間的地面結構信息。對應的術語叫:建圖(Mapping)。
3、我怎樣到達指定地點(充電器)?當掃地機器人電量不足時,如何以最短的路徑到達充電器所在位置進行自動充電。對應的術語叫:路徑規(guī)劃(Route Planning)。

有了以上的幾個能力,掃地機器人就變的非常智能了,不再像無頭蒼蠅一樣在室內亂跑,而是可以從任意位置出發(fā),按照建立好的地圖進行規(guī)劃清掃。當然房間里的物品擺放也會發(fā)生變化,所以掃地機器人每次清掃也會根據(jù)當前的定位及掃描情況,在建好的地圖基礎上對進行更新。隨著使用時間的增長,掃地機器人建立的地圖會越來越準確,規(guī)劃的清掃路線越來越高效,變的越來越智能。
看明白了上面的例子,我們給出SLAM的定義。SLAM是指當某種移動設備(如機器人、無人機、手機等)從一個未知環(huán)境里的未知地點出發(fā),在運動過程中通過傳感器(如激光雷達、攝像頭等)觀測定位自身位置、姿態(tài)、運動軌跡,再根據(jù)自身位置進行增量式的地圖構建,從而達到同時定位和地圖構建的目的。定位和建圖是兩個相輔相成的過程,地圖可以提供更好的定位,而定位也可以進一步擴建地圖。需要說明的是,上述掃地機器人例子中,定位和建圖是SLAM的基本要求,而路徑規(guī)劃是在此基礎上的高級功能,不屬于SLAM的討論范疇。
SLAM所使用的傳感器主要分為激光雷達和視覺兩大類。在SLAM研究史上,早期SLAM研究幾乎全使用激光雷達作為傳感器,其優(yōu)點是精度高,解決方案相對成熟。但是缺點也非常明顯,比如價格貴、體積大,信息少不夠直觀等。
視覺SLAM就是用攝像頭作為主傳感器,用拍攝的視頻流作為輸入來實現(xiàn)同時定位與建圖。視覺SLAM廣泛應用于AR、自動駕駛、智能機器人、無人機等前沿領域。我們知道SLAM的兩大核心:定位和建圖。下面分別進行說明。
SLAM在自動駕駛中最主要的功能就是更加精確的確定汽車自身的位置(當然建圖也很重要)。說到這里,很多人會有疑問:現(xiàn)在手機上的百度/高德/騰訊等地圖類App就可以定位,為什么還需要SLAM來定位呢?
原因是這樣的:目前地圖類App在室外定位、導航方面確實做的很不錯,而且衍生出很多基于地理位置的游戲、社交、生活類應用。不過現(xiàn)在的定位系統(tǒng)仍然存在以下兩個主要問題。
1、地圖類App背后使用的是GPS技術,但民用GPS最多也就達到幾米的定位精度,駕車的讀者應該深有體會:這些地圖類App導航時并不知道當前車輛在哪個車道上。
2、GPS只能在室外使用。而在建筑物內、洞穴、海底等很多地方,GPS會失效。而往往這些地方對于定位的需求很強烈,要想解決GPS失效區(qū)域的定位,目前最有效的就是SLAM技術。
如下圖所示是著名開源算法ORB-SLAM2使用架設在汽車上的攝像頭進行定位的結果。從圖中不難看出,算法非常清晰的展現(xiàn)了汽車當前所在的車道。

同樣的,對于室內使用的自主移動機器人來說,定位也完全依賴SLAM技術。如下圖是單目SLAM的過程。此外像京東,阿里這種大型的電商已經(jīng)在自己的倉庫配備了倉儲機器人,也稱AGV(Automated Guided Vehicle),可以根據(jù)建立的地圖確定自身的位置,然后根據(jù)任務需求進行路徑規(guī)劃來搬運貨物。

比如使用手機上的單目攝像頭可以對物體進行掃描,生成對應的三維模型。這稱為小尺度下的三維建模。當然,也可以對較大尺度的場景進行三維重建,比如下圖下就是Google project tango利用魚眼攝像頭對室外的大場景進行的三維重建。

最近幾年,隨著消費級RGB-D相機的普及,室內場景的三維重建也是一個非常熱門的方向。利用重建的結果可以實現(xiàn)很多 功能,比如室內移動機器人可以根據(jù)重建結果判斷障礙物距離、識別理解環(huán)境,進行導航;比如可以根據(jù)重建結果在家里玩增強現(xiàn)實游戲;還可以將二維圖片和重建結果進行融合實現(xiàn)三維漫游等。

交流群
歡迎加入公眾號讀者群一起和同行交流,目前有SLAM、三維視覺、傳感器、自動駕駛、計算攝影、檢測、分割、識別、醫(yī)學影像、GAN、算法競賽等微信群(以后會逐漸細分),請掃描下面微信號加群,備注:”昵稱+學校/公司+研究方向“,例如:”張三?+?上海交大?+?視覺SLAM“。請按照格式備注,否則不予通過。添加成功后會根據(jù)研究方向邀請進入相關微信群。請勿在群內發(fā)送廣告,否則會請出群,謝謝理解~
