SLAM技術(shù)作為機器人自主移動的關(guān)鍵技術(shù),讓很多人都誤解為:SLAM=機器人自主定位導(dǎo)航。
其實,SLAM≠機器人自主定位導(dǎo)航 ,不解決行動問題。
SLAM如其名一樣,主要解決的是機器人的地圖構(gòu)建和即時定位問題,而自主導(dǎo)航需要解決的是智能移動機器人與環(huán)境進行自主交互,尤其是點到點自主移動的問題,這需要更多的技術(shù)支持。
要想解決機器人智能移動這個問題,除了要有SLAM技術(shù)之外,還需要加入路徑規(guī)劃和運動控制。在SLAM技術(shù)幫助機器人確定自身定位和構(gòu)建地圖之后,進行一個叫做目標(biāo)點導(dǎo)航的能力。通俗的說,就是規(guī)劃一條從A點到B點的路徑出來,然后讓機器人移動過去。
機器人自主定位導(dǎo)航= SLAM+路徑規(guī)劃和運動控制
運動規(guī)劃是一個很大的概念,從機械臂的運動、飛行器的飛行,到掃地機的清掃,機器人的移動,其實這些都是屬于運動規(guī)劃的范疇。
運動規(guī)劃主要分為:全局規(guī)劃、局部規(guī)劃。
全局規(guī)劃
全局規(guī)劃,顧名思義,是最上層的運動規(guī)劃邏輯,它按照機器人預(yù)先記錄的環(huán)境地圖并結(jié)合機器人當(dāng)前位姿以及任務(wù)目標(biāo)點的位置,在地圖上找到前往目標(biāo)點最快捷的路徑。
局部規(guī)劃
當(dāng)環(huán)境出現(xiàn)變化或者上層規(guī)劃的路徑不利于機器人實際行走的時候(比如機器人在行走的過程中遇到障礙物),局部路徑規(guī)劃將做出微調(diào)。
與全局規(guī)劃有所區(qū)別的是,局部規(guī)劃可能并不知道機器人最終要去哪,但是對于機器人怎么繞開眼前的障礙物特別在行。
這兩個層次的規(guī)劃模塊協(xié)同工作,機器人就可以很好的實現(xiàn)從A點到B點的智能移動了。不過實際工作環(huán)境下,上述配置還不夠。因為運動規(guī)劃的過程中還包含靜態(tài)地圖和動態(tài)地圖兩種情況。
A*算法
A*(A-Star)算法是一種靜態(tài)路網(wǎng)中求解最短路徑最有效的直接搜索方法,也是解決許多搜索問題的有效算法。算法中的距離估算值與實際值越接近,最終搜索速度越快。但是,A*算法同樣也可用于動態(tài)路徑規(guī)劃當(dāng)中,只是當(dāng)環(huán)境發(fā)生變化時,需要重新規(guī)劃路線。
D*算法
D*算法則是一種動態(tài)啟發(fā)式路徑搜索算法,它事先對環(huán)境位置,讓機器人在陌生環(huán)境中行動自如,在瞬息萬變的環(huán)境中游刃有余。D*算法的最大優(yōu)點是不需要預(yù)先探明地圖,機器人可以和人一樣,即使在未知環(huán)境中,也可以展開行動,隨著機器人不斷探索,路徑也會時刻調(diào)整。
上述的幾種算法都是目前絕大部分機器人所需要的路徑規(guī)劃算法,能夠讓機器人跟人一樣智能,快速規(guī)劃A到B點的最短路徑,并在遇到障礙物的時候知道如何處理。但掃地機器人作為最早出現(xiàn)在消費市場的服務(wù)機器人之一,它需要的路徑規(guī)劃算法更為復(fù)雜。
空間覆蓋(space coverage)
掃地機器人所需要的功能跟市面上的機器人有所不同,比如針對折返的工字形清掃,如何有效進行清掃而不重復(fù)清掃?如何讓掃地機和人一樣,理解房間、門、走廊這種概念?
針對這些問題,學(xué)術(shù)界長久以來有一個專門的研究課題,叫做空間覆蓋(space coverage),同時也提出了非常多的算法和理論。其中,比較有名的是Morse Decompositions,掃地機通過它實現(xiàn)對空間進行劃分,隨后進行清掃。
所以,他要實現(xiàn)的不是盡快實現(xiàn)從A到B的算法,為了家里能盡量掃得干凈,要盡量覆蓋從A到B點的所有區(qū)域,實現(xiàn)掃地機器人“掃地”的這個功能。
所以,機器人自主定位導(dǎo)航技術(shù)的發(fā)展還需要越來越多的技術(shù)加以支撐,適用于更多的場景。雖然技術(shù)和需求在變,但不變的是,在行業(yè)中取長補短,結(jié)合不同新的技術(shù)進行融合,這是不會改變的事實。
|