服務機器人技術 —— 自主定位導航

今天,我們不聊底盤,我們來說說導航技術,因爲導航搞不好,移動也白搭,底盤就失去了價值,沒有任何實用性

 

大家都知道,自主定位導航包含了定位、建圖與路徑規劃。說到定位導航,必然會聯想到SLAM,但SLAM只是完成定位與地圖創建這兩件事,它並不完全等同於自主定位導航。

 

定位

不管你有沒有地圖,在前往目的地前,你肯定要知道自己的定位,機器人也是如此。只不過,我們定位靠眼睛,機器人則靠“激光雷達”。

 

▲激光雷達掃描輪廓數據

 

這就是激光雷達獲取的周圍環境信息,也就是我們所說的點雲,它能反映機器人所在環境中“眼睛”能看到的一個部分。

 

建圖

我們身處陌生的環境時,導航軟件和戶外地圖成爲我們找路最有利的工具,服務機器人和人類一樣也需要依靠地圖來感知外部的環境,通過算法與傳感器差異的不同機器人會採取不同的地圖描述形式。

 

SLAM建圖主要有三個過程:

 

(1)預處理:對雷達形成的點雲原始數據進行優化,剔除一些有問題的數據,或者進行濾波。

(2)匹配:把當前這一局部環境的點雲數據在已經建立的地圖上尋找對應的位置,進行匹配。

(3)地圖融合:將來自激光雷達的新一輪數據拼接到原始地圖當中,最終完成地圖的更新。

 

▲地圖預處理、匹配和融合的過程

 

目前,柵格地圖是機器人使用最廣泛的地圖存儲方式。

 

 

柵格地圖就是把環境劃分成一系列柵格,其中每一柵格給定一個可能值,表示該柵格被佔據的概率,其中每個“像素”則表示了實際環境中存在障礙物的概率分佈。

 

▲ 柵格地圖的形成

 

這個過程聽起來其實並不複雜,但是還是會遇到很多未知問題。比如建圖閉環,如果匹配的算法不足夠優秀,又或者是環境中遇到長直走廊、大場景建圖干擾時,機器人繞着環境走一圈後,可能會發現原本應該閉合的一個環形走廊斷開了。

 

▲ 環形走廊閉合斷開

 

19年初,思嵐科技就已經推出了SLAM 3.0系統來應對這種問題,當機器人運動到已經探索過的原環境時, SLAM 3.0可依賴內部的拓撲圖進行主動式的閉環檢測。當發現了新的閉環信息後,SLAM 3.0使用Bundle Adjuestment(BA)等算法對原先的位姿拓撲地圖進行修正(即進行圖優化),從而能有效的進行閉環後地圖的修正,實現更加可靠的環境建圖。

▲閉環修正

 

路徑規劃與運動控制

當定位和建圖搞定之後,下一個就要解決移動的問題了,即目標點A到B之間的導航規劃能力。

 

路徑規劃分爲:全局規劃和局部規劃

 

全局規劃:是最上層的運動規劃邏輯,它按照機器人預先記錄的環境地圖並結合機器人當前位姿以及任務目標點的位置,在地圖上找到前往目標點最快捷的路徑。

 

 

局部規劃:當環境出現變化或者上層規劃的路徑不利於機器人實際行走的時候(比如機器人無法按照規劃的路徑完成特定轉彎半徑的轉向),局部路徑規劃將做出微調。
 

▲分層級的運動規劃框架以及對應輸出數據

 

這兩個層次的規劃模塊協同工作,機器人就可以很好的實現從A點到B點的智能移動了。不過實際工作環境下,上述配置還不夠。因爲運動規劃的過程中還包含靜態地圖和動態地圖兩種情況。

 

A*算法

 

A*(A-Star)算法是一種靜態路網中求解最短路徑最有效的直接搜索方法,也是解決許多搜索問題的有效算法。算法中的距離估算值與實際值越接近,最終搜索速度越快。但是,A*算法同樣也可用於動態路徑規劃當中,只是當環境發生變化時,需要重新規劃路線。

 

 

D*算法

 

D*算法是目前的一種主流算法,最大優點是不需要預先探明地圖,機器人可以和人一樣,即使在未知環境中,也可以展開行動,隨着機器人不斷探索,路徑也會時刻調整。

 

 

 

上述的幾種算法都是目前絕大部分機器人所需要的路徑規劃算法,能夠讓機器人跟人一樣智能,快速規劃A到B點的最短路徑,並在遇到障礙物的時候知道如何處理。但掃地機器人作爲最早出現在消費市場的服務機器人之一,它需要的路徑規劃算法有點不一樣。

 

 

所以,針對不同場景應用的機器人,自主定位導航技術還需要不斷升級更新,足以支撐更多場景應用。只有導航技術做好了,機器人整體纔能有一個質的飛躍,機器人從0-1的佈局才能越來越快。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章