在機器人智能移動中,SLAM發(fā)揮了無可比擬的作用,SLAM (simultaneous localization and mapping),也稱為CML (Concurrent Mapping and Localization), 主要幫助機器人進行即時定位與地圖構建,或并發(fā)建圖與定位。但SLAM技術并不等于智能導航。為什么這么說呢?原因如下:
SLAM技術主要是解決機器人的地圖構建與即時定位,而機器人進行智能導航主要解決的是機器人與環(huán)境的自主交互,尤其是點到點自主移動的問題,雖然SLAM技術在其中起到了關鍵的作用,但還需要加入路徑規(guī)劃和運動控制。在SLAM技術幫助機器人確定自身定位和構建地圖之后,進行一個叫做目標點導航的能力。通俗的說,就是規(guī)劃一條從A點到B點的路徑出來,然后讓機器人移動過去。
運動規(guī)劃是一個很大的概念,從機械臂的運動、飛行器的飛行,到掃地機的清掃,機器人的移動,其實這些都是屬于運動規(guī)劃的范疇。
SLAM+路徑規(guī)劃和運動控制=機器人智能導航
運動規(guī)劃主要分為: 全局規(guī)劃 、 局部規(guī)劃。
全局規(guī)劃
全局規(guī)劃,顧名思義,是最上層的運動規(guī)劃邏輯,它按照機器人預先記錄的環(huán)境地圖并結合機器人當前位姿以及任務目標點的位置,在地圖上找到前往目標點最快捷的路徑。
局部規(guī)劃
當環(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ī)劃當中,只是當環(huán)境發(fā)生變化時,需要重新規(guī)劃路線。
D* 算法
D*算法則是一種 動態(tài) 啟發(fā)式路徑搜索算法,它事先對環(huán)境位置,讓機器人在陌生環(huán)境中行動自如,在瞬息萬變的環(huán)境中游刃有余。D*算法的最大優(yōu)點是不需要預先探明地圖,機器人可以和人一樣,即使在未知環(huán)境中,也可以展開行動,隨著機器人不斷探索,路徑也會時刻調(diào)整。
上述的幾種算法都是目前絕大部分機器人所需要的路徑規(guī)劃算法,能夠讓機器人跟人一樣智能,快速規(guī)劃A到B點的最短路徑,并在遇到障礙物的時候知道如何處理。但 掃地機器人 作為最早出現(xiàn)在消費市場的服務機器人之一,它需要的路徑規(guī)劃算法更為復雜。
空間覆蓋(space coverage)
掃地機器人所需要的功能跟市面上的機器人有所不同,比如針對折返的工字形清掃,如何有效進行清掃而不重復清掃?如何讓掃地機和人一樣,理解房間、門、走廊這種概念?
針對這些問題,學術界長久以來有一個專門的研究課題,叫做空間覆蓋(space coverage),同時也提出了非常多的算法和理論。其中,比較有名的是Morse Decompositions,掃地機通過它實現(xiàn)對空間進行劃分,隨后進行清掃。
所以,他要實現(xiàn)的不是盡快實現(xiàn)從A到B的算法,為了家里能盡量掃得干凈,要盡量覆蓋從A到B點的所有區(qū)域,實現(xiàn)掃地機器人“掃地”的這個功能。
所以,機器人智能導航技術的發(fā)展還需要更多的技術加以支撐,適用于更多的場景。雖然技術和需求在變,但不變的是,在行業(yè)中取長補短,結合不同新的技術進行融合,這是不會改變的事實。
關鍵字:SLAM,智能导航