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