SLAM作為機器人自主定位導航的重要突破口正不斷引起業內重視,它是實現機器人自主行走的關鍵技術,可幫助機器人實現即時定位與地圖構建,在實際應用中,SLAM技術究竟又是如何實現的呢?一起來探個究竟。
在這一技術實現過程中主要包含預處理、匹配及地圖融合三大步驟:
預處理
預處理是對激光雷達原始數據進行優化,剔除一些有問題的數據,或進行濾波。我們都知道機器人想要完成定位及建圖,需要搭配激光雷達來實現,激光雷達可獲取它所在位置的環境信息,也就是我們通常說的點云,但它只能反映機器人所在環境中的一個部分。
匹配
匹配是一個非常關鍵的步驟,是指將當前一局部環境的點云數據在已建立的地圖上尋找到對應的位置。說其關鍵是因為它直接影響了SLAM地圖構建的精度,這與拼圖游戲有點類似,就是在已拼好的畫面中找到相似之處,確定新的一個拼圖該放在哪里。而在SLAM過程中,需要將激光雷達采集到的點云匹配拼接到原有的地圖中,如下圖的紅色部分:
如果未進行匹配,所構建的地圖便會很混亂
地圖融合
在匹配這一步驟完成后便可直接進入地圖融合了,地圖融合就是將來自激光雷達的新數據拼接到原始地圖當中,并最終完成地圖的更新。如下圖,該過程是永遠伴隨著SLAM過程的。
當然,在實際應用過程中,傳感器所描繪的世界與實際情況會有所誤差,機器人所在環境很容易出現變化,例如突然走進一個人或闖入一只小貓。面對復雜的應用環境,需要用到很多概率算法,并采用濾波的方式進行融合,將以上過程依次執行后,最終就產生了我們所看到的柵格地圖。
柵格地圖就是把環境劃分成一系列柵格,其中每一柵格給定一個可能值,表示該柵格被占據的概率。這種地圖看起來和人們所認知的地圖沒什么區別,它最早由 NASA 的 Alberto Elfes 在 1989 年提出,在火星探測車上就用到過,其本質是一張位圖圖片,但其中每個「像素」則表示了實際環境中存在障礙物的概率分布。
以上過程聽起來似乎并不復雜,但要處理好還是有很大難度的,比如實現機器人回環問題時,如果匹配算法不夠精準,或在現實環境中存在很多干擾,可能出現繞環境一圈后,原本該閉合的一個環形走道被斷開了。
比如正常地圖應該像左邊圖這樣,但如果處理不好,就有可能變成右邊圖的樣子。
在環境較大的場景中,回環問題是不得不面對的,但在現實中即使是像激光雷達這種高精度的傳感器,也難免會存在一些誤差。該問題的難點在于在剛開始出現些許誤差時并不易發掘,直到機器人繞著環路一圈,才發現誤差的累加,但此時發現已經晚了,環路閉合問題已很難解決了。當然該問題也并不是完全無解,一個好的商用化SLAM系統便能很好的解決回環問題。回環問題能否很好的解決,也成為評判該系統實力的指標了。
以上是思嵐科技工作人員在辦公室進行的測試,左邊的視頻是基于開源的ROS機器人操作系統進行的地圖構建,右邊的是基于SLAMWARE構建的地圖。當機器人繞場一周后,ROS構建的地圖出現了中斷,而SLAMWARE構建的地圖是一個完美的閉環,它與思嵐科技辦公室的設計圖完美重合。
責任編輯:haq
-
機器人
+關注
關注
211文章
28524瀏覽量
207568 -
SLAM
+關注
關注
23文章
425瀏覽量
31865
發布評論請先 登錄
相關推薦
評論