slam技術在實際應用中是如何實現的?

SLAM做爲機器人自主定位導航的重要突破口正不斷引發業內重視,它是實現機器人自主行走的關鍵技術,可幫助機器人實現即時定位與地圖構建,在實際應用中,SLAM技術究竟又是如何實現的呢?一塊兒來探個究竟。算法

在這一技術實現過程當中主要包含預處理、匹配及地圖融合三大步驟:segmentfault

預處理測試

預處理是對激光雷達原始數據進行優化,剔除一些有問題的數據,或進行濾波。咱們都知道機器人想要完成定位及建圖,須要搭配激光雷達來實現,激光雷達可獲取它所在位置的環境信息,也就是咱們一般說的點雲,但它只能反映機器人所在環境中的一個部分。優化

SLAM技術實現

匹配url

匹配是一個很是關鍵的步驟,是指將當前一局部環境的點雲數據在已創建的地圖上尋找到對應的位置。說其關鍵是由於它直接影響了SLAM地圖構建的精度,這與拼圖遊戲有點相似,就是在已拼好的畫面中找到類似之處,肯定新的一個拼圖該放在哪裏。而在SLAM過程當中,須要將激光雷達採集到的點雲匹配拼接到原有的地圖中,以下圖的紅色部分:spa

若是未進行匹配,所構建的地圖便會很混亂,就像下圖這樣:操作系統

SLAM技術在實際應用中如何實現

地圖融合設計

在匹配這一步驟完成後即可直接進入地圖融合了,地圖融合就是未來自激光雷達的新數據拼接到原始地圖當中,並最終完成地圖的更新。以下圖,該過程是永遠伴隨着SLAM過程的。視頻

固然,在實際應用過程當中,傳感器所描繪的世界與實際狀況會有所偏差,機器人所在環境很容易出現變化,例如忽然走進一我的或闖入一隻小貓。面對複雜的應用環境,須要用到不少機率算法,並採用濾波的方式進行融合,將以上過程依次執行後,最終就產生了咱們所看到的柵格地圖。遊戲

柵格地圖就是把環境劃分紅一系列柵格,其中每一柵格給定一個可能值,表示該柵格被佔據的機率。這種地圖看起來和人們所認知的地圖沒什麼區別,它最先由 NASA 的 Alberto Elfes 在 1989 年提出,在火星探測車上就用到過,其本質是一張位圖圖片,但其中每一個「像素」則表示了實際環境中存在障礙物的機率分佈。

slam技術格柵地圖

以上過程聽起來彷佛並不複雜,但要處理好仍是有很大難度的,好比實現機器人迴環問題時,若是匹配算法不夠精準,或在現實環境中存在不少干擾,可能出現繞環境一圈後,本來該閉合的一個環形走道被斷開了。

地圖融合

好比正常地圖應該像左邊圖這樣,但若是處理很差,就有可能變成右邊圖的樣子。

在環境較大的場景中,迴環問題是不得不面對的,但在現實中即便是像激光雷達這種高精度的傳感器,也不免會存在一些偏差。該問題的難點在於在剛開始出現些許偏差時並不易發掘,直到機器人繞着環路一圈,才發現偏差的累加,但此時發現已經晚了,環路閉合問題已很難解決了。固然該問題也並非徹底無解,一個好的商用化SLAM系統便能很好的解決迴環問題。迴環問題可否很好的解決,也成爲評判該系統實力的指標了。

SLAM技術實現

以上是思嵐科技工做人員在辦公室進行的測試,左邊的視頻是基於開源的ROS機器人操做系統進行的地圖構建,右邊的是基於SLAMWARE構建的地圖。當機器人繞場一週後,ROS構建的地圖出現了中斷,而SLAMWARE構建的地圖是一個完美的閉環,它與思嵐科技辦公室的設計圖完美重合。

相關文章
相關標籤/搜索