1. 程式人生 > >SLAM≠機器人自主定位導航

SLAM≠機器人自主定位導航

SLAM技術作為機器人自主移動的關鍵技術,讓很多人都誤解為:SLAM=機器人自主定位導航。

 

其實,SLAM≠機器人自主定位導航 ,不解決行動問題。

 

頭圖2 .PNG

 

SLAM如其名一樣,主要解決的是機器人的地圖構建和即時定位問題,而自主導航需要解決的是智慧移動機器人與環境進行自主互動,尤其是點到點自主移動的問題,這需要更多的技術支援。

 

要想解決機器人智慧移動這個問題,除了要有SLAM技術之外,還需要加入路徑規劃和運動控制。在SLAM技術幫助機器人確定自身定位和構建地圖之後,進行一個叫做目標點導航的能力。通俗的說,就是規劃一條從A點到B點的路徑出來,然後讓機器人移動過去。

 

機器人自主定位導航= SLAM+路徑規劃和運動控制

 

運動規劃是一個很大的概念,從機械臂的運動、飛行器的飛行,到掃地機的清掃,機器人的移動,其實這些都是屬於運動規劃的範疇。

 

運動規劃主要分為:全域性規劃區域性規劃。

 

全域性規劃

 

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

全域性規劃.gif

 

區域性規劃

 

當環境出現變化或者上層規劃的路徑不利於機器人實際行走的時候(比如機器人在行走的過程中遇到障礙物),區域性路徑規劃將做出微調。

 

與全域性規劃有所區別的是,區域性規劃可能並不知道機器人最終要去哪,但是對於機器人怎麼繞開眼前的障礙物特別在行。

 

避障1.gif

 

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

 

A*演算法

 

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

 

A演算法.PNG

 

D*演算法

 

D*演算法則是一種動態啟發式路徑搜尋演算法,它事先對環境位置,讓機器人在陌生環境中行動自如,在瞬息萬變的環境中游刃有餘。D*演算法的最大優點是不需要預先探明地圖,機器人可以和人一樣,即使在未知環境中,也可以展開行動,隨著機器人不斷探索,路徑也會時刻調整。

 

D.gif

 

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

 

 空間覆蓋(space coverage)

 

掃地機器人所需要的功能跟市面上的機器人有所不同,比如針對折返的工字形清掃,如何有效進行清掃而不重複清掃?如何讓掃地機和人一樣,理解房間、門、走廊這種概念?

 

針對這些問題,學術界長久以來有一個專門的研究課題,叫做空間覆蓋(space coverage),同時也提出了非常多的演算法和理論。其中,比較有名的是Morse Decompositions,掃地機通過它實現對空間進行劃分,隨後進行清掃。

 

全覆蓋.png

 

所以,他要實現的不是儘快實現從A到B的演算法,為了家裡能儘量掃得乾淨,要儘量覆蓋從A到B點的所有區域,實現掃地機器人“掃地”的這個功能。

 

掃地機.jpg

 

所以,機器人自主定位導航技術的發展還需要越來越多的技術加以支撐,適用於更多的場景。雖然技術和需求在變,但不變的是,在行業中取長補短,結合不同新的技術進行融合,這是不會改變的事實。