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