鄧朝陽,陸靜平,蘇文桂,肖 威
(廣西大學 機械工程學院,廣西 南寧 530004)
導航系統是移動機器人的核心。由于自主導航過程是以最短路徑為路徑規劃目標,最短路徑卻不一定是最適合物流需求的規劃目標。當移動機器人執行任務時會駛入動態變化的環境中,如暫存區等,而動態加入的障礙物容易造成機器人在動態環境中進行多次的路徑規劃,從而導致導航失敗甚至使得機器人在原地旋轉或者左右抖動造成機器人處于“假死”狀態,這極大降低機器人的工作效率。當機器人在執行搬運任務時,期望其貨物流通是在物流通道內進行,這樣會保障流通的有序高效和安全可靠。
目前,機器人導航主要依賴多層代價地圖,它是以柵格地圖為基礎,將地圖相關數據信息根據語義信息進行分層處理[1-2]。柵格地圖只能輸出顯示該位置信息是否占有的狀態,不能獲得更深層次的信息。而多層代價地圖對不同類型障礙信息的分類處理及地圖更新也更具靈活性,如今被廣泛使用,如文獻[3-5]均提出對代價地圖的自定義方法,通過添加虛擬的障礙物或者擴大膨脹半徑,避免了機器人與真實障礙發生碰撞,也改變機器人的導航結果。而實體的人工路標的導航方法在機器人行駛的路徑中鋪設人工標志,用路標引導機器人運動,不受周圍環境變化影響,但人工標志必須設置到環境中,這限制了機器人的靈活性和使用范圍[6-9]。
針對上述問題,提出在動態環境的多層代價地圖中建立虛擬標志,用于引導機器人運動,使得機器人在物流通道內進行貨物搬運任務。在代價地圖中添加的虛擬標志,通過實時檢測機器人周圍的地圖數據從而識別虛擬標志的信息,并根據標志信息發送運動指令引導機器人運動。其優點是虛擬標志不用添加到真實的環境中,而是添加在導航需要使用的代價地圖中,具有極大的便利性和靈活性。然后在導航過程中對目標點進行分解,若經過較為固定環境采用自主自由導航,若在動態環境則采用虛擬標志導航,對每段進行單獨的路徑規劃,降低了整體路徑規劃算法的難度。最后,通過仿真實驗驗證了基于虛擬標志的導航方法具備可行性。
代價地圖是通過SLAM(Simultaneous Localization and Mapping)算法構建靜態環境信息地圖,然后將地圖相關信息根據語義信息進行分層處理,分別保存在各分層地圖的對應柵格內,最后將各層地圖進行疊加便生成了多層代價地圖,代價地圖更新流程如圖1所示。代價地圖中對障礙物周圍膨脹,設定碰撞代價為機器人與障礙物之間提供一定的安全距離[10-12]。

圖1 代價地圖更新流程
本研究是在自定義地圖層添加虛擬標志,然后地圖更新時虛擬標志數據就更新至全局代價地圖中。代價地圖輸出范圍從[0,100]的完整梯度值,用于表達不同的狀態,其中當值為100時表示完全占用;值為0時表示完全空閑;當代價值在[1,99]范圍內,值越大表示發生碰撞的可能性越大。
由于移動機器人構建地圖時只能掃描到障礙物的外輪廓,不能掃描到障礙物內部結構,根據此特性設計了外圍包裹的結構與地圖中障礙物進行區分。虛擬標志設計如圖2所示,均采用8×9的近似正方形像素柵格結構和純黑白設計,其中標志分為上下兩個部分,上半部分中空白的一行用于增加標志的特征,提高識別的準確性;下半部分中中間黑色的柵格的個數表示標志的編號,同時這部分可以進行延長以增加編號容量,虛擬標志的編號是后續進行路徑規劃和導航依據的基礎。標志下方的圓點為移動機器人,淡灰色框為機器人實時讀取局部地圖的范圍。

圖2 虛擬標志和機器人讀取局部地圖的范圍
虛擬標志被放入代價地圖中后不會受環境變化所影響,具有良好的穩定性。因此,識別虛擬標志的方法是更簡單和準確,其識別流程如圖3所示。

圖3 虛擬標志識別流程
(1)實時讀取局部代價地圖數據:局部代價地圖是以機器人為中心設定的小范圍內實時檢測和更新地圖數據,根據此特性用于檢測在設定范圍內是否存在虛擬標志。實時讀取的局部代價地圖的數據是一個包含該范圍內每個像素點代價值列表。
(2)輪廓檢測:把讀取到的代價值列表進行處理,對每個相鄰代的價值為100的像素點進行連接。其中,最外層的像素點連接線為標志的外輪廓,最內層的像素點連接線為標志的內輪廓。
(3)最大內接矩形輪廓匹配:對識別到標志的內輪廓求出其最大內接矩形,通過與標志的上、下部分內輪廓的最大內接矩形進行對比,兩者大小與位置對比一致,則識別到了虛擬標志。其中標志上部分的輪廓用于增加驗證提高識別的準確性。
(4)標志編號識別:當識別出虛擬標志后,標志的下部分則包含虛擬標志的標號。通過計算下半部分輪廓內相鄰連續代價值為100的像素點個數,即為標志編號。
在導航方面,將機器人經過的各個轉彎路口和需要停駐的位置為目標位置,虛擬標志的識別是觸發引導機器人運動的關鍵。而機器人導航過程可分解為基礎的直線運動和轉向運動,以及到達目的地后的運動停止,將這些運動過程通過不同的運動控制指令實現,并用不同的指令標志區分見表1。

表1 虛擬標志功能表
輪式機器人是通過輪間的差速運動實現運動過程,要控制機器人的運動則需要通過ROS(機器人操作系統)向機器人底盤發送x軸方向的線速度ν與z軸方向的角速度ω關系,當虛擬標志引導機器人進行直線運動時,沒有轉向所以角速度的值為0;當進行轉向運動時,需要通過轉彎半徑R和航向角的變化值θ,計算出線速度與角速度的關系。
本研究的導航過程旨在貼近實際中機器人執行搬運任務的過程,能夠實現靈活設置起始地和目的地兩個地點的位置,然后讓這兩個位置進出最近的物流通道,在物流通道中實現搬運的主要過程,以保障搬運的高效性和可靠性。
整個過程可以簡化為自由路徑導航+虛擬標志引導路徑導航+自由路徑導航,這是對目標點進行了分解,使得每個部分能以較簡單的目標點進行路徑規劃,提高整體路徑規劃效率。傳統的自由路徑導航階段機器人一般使用A_star算法進行路徑規劃,用A_star算法遍歷的節點越多,算法計算消耗的時間越多。本文在自由路徑導航階段,機器人僅從起點到虛擬標志入口節點和虛擬標志出口節點到目標點,這兩個過程可以同時進行路徑規劃,并減少了A_star算法遍歷的節點,提高了整體的路徑規劃效率。當給定了機器人起點和目標點位置時,通過分別計算起點和目標點到虛擬標志出入口節點列表中節點的距離,通過式(1)計算兩者為最小的距離的節點即為出入口節點。

在虛擬標志引導區域,以各個虛擬標志為節點建立距離網絡圖,采用Dijkstra算法根據出入口節點為虛擬標志引導區域的起點和終點進行路徑規劃。同時,將此路徑規劃與引導機器人運動控制指令相互匹配,每個節點對應所需的運動指令,把兩者匹配的結果存儲為路徑規劃運動關系表。在導航時機器人需要不斷檢測自身周圍內代價地圖數據,檢測是否是別到虛擬標志;當識別到虛擬標志時,需要校正運動方向,還要把識別到的虛擬標志編號與路徑規劃運動關系表比對,并發出該標志編號對應的運動指令,從而實現按已規劃的路徑完成導航,導航過程中路徑規劃流程如圖4所示。

圖4 路徑規劃流程
某環境中主要分為綜合倉庫、生產線和暫存區3個主要區域,這3個區域間較大空白區域即為物流通道。倉庫和生產線中的設備位置不容易發生變化,而暫存區內的貨物動態變化。因此,在暫存區周圍建立虛擬標志引導機器人運動,將各個節點、暫存區的出入口等設為目標位置,將目標位置與虛擬標志建立對應關系,如圖4所示,總共有A~J共10個目標位置建立虛擬標志。
通過仿真驗證基于虛擬標志的導航方法,仿真驗證的步驟:(1)機器人在仿真環境中建立環境地圖;(2)讓機器人以自主導航方式從貨架區域行駛到暫存區域,并記錄路徑規劃軌跡;(3)在代價地圖中添加虛擬標志,并更新代價地圖;(4)以同樣的起點和終點下,運用基于虛擬標志的導航方法進行導航,記錄運動軌跡,與步驟(2)中的軌跡進行對比。
仿真環境按照圖5的物流環境布局,圖中左側為固定的貨架區域,右側有兩條綠色固定的生產線以及在各暫存區堆積的貨物,暫存區的范圍用了綠色線條標出。

圖5 物流仿真環境
其中路徑規劃運動關系見表2,分別以A節點到D節點和s到d1為例介紹,s到A節點與D到d2節點均是通過A_star算法進行路徑規劃,而A節點到D節點則通過虛擬標志導航。在表格中,兩者采用“+”符號進行連接區分,在節點后括號內為運動指令,其中標志Q表示直線前進運動,[Z90,Q]表示在該位置先進行向左轉,再進行直線前進運動,標志S停止運動。

表2 路徑規劃運動關系表
在同樣的起點和終點的情況下,基于虛擬標志的導航方法是融合了A_star算法和虛擬標志導航方法,在起點s到標志A處與從標志D到目的地d1處采用A_star算法導航,而在A—B—C—D這段路徑采用虛擬標志導航。在進行虛擬標志導航過程中,機器人利用AMCL(自適應蒙特卡羅定位算法)進行重定位,實時的確定機器人在地圖中的位置。仿真環境中的運動軌跡如圖6所示,其中圖6(a)是s到d1段A_star算法路徑規劃,圖中明顯表現出了按最短路徑規劃的結果,但這是以s為起點和當前地圖進行的規劃,沒有考慮后續路徑的通行情況,具有很大的不確定性;其中圖6(b)是按A_star算法規劃的運動軌跡,其中剛開始是按照圖6(a)規劃路徑行駛,但行駛到暫存區中遇到了障礙物,需要以障礙物周圍進行減速繞行;而(c)(d)分別是s到d1段與d3到s段融合虛擬標志導航運動軌跡,其運動結果表明機器人按照規劃路徑運動,按照物流通道內行駛,與障礙物間保持了安全距離運動更加規范,在轉向時軌跡更加圓滑。

圖6 仿真環境中導航效果對比
經過10組s到d1段平均仿真運動結果見表3,融合虛擬標志的導航算法因為按照物流通道行駛,所以平均運動軌跡長度比以A_star算法導航的自由導航運動軌跡長。但因為物流通道內沒有障礙物和物流通道是簡單和規則的通道,所以機器人可在物流通道內保持默認速度行駛,而且基于虛擬標志的導航方法也可以設定機器人移動速度,使其運動更加高效。但是以A_star算法導航的自由導航卻因為最短路徑和周圍障礙物等的限制,會多次進行轉向和減速導致其平均速度相比更低。仿真實驗驗證了基于虛擬標志的導航方法的可行性,這種導航方法既保證機器人的起點和終點的靈活性,也規范了在暫存區等動態環境中機器人的運動,提高了機器人在貨物運輸過程中的安全性和可靠性。

表3 s到d1段10組平均運動結果對比
針對移動機器人在生產物流的環境中的自主導航容易不按物流通道規范行駛,容易直接闖入暫存區域等造成反復路徑規劃或“假死”被困等情況。提出了在機器人導航的基礎即代價地圖中添加虛擬標志,并提出了基于虛擬標志導航的導航方法,結合了自主導航和虛擬標志導航,既保障機器人在起點和終點自主靈活性,也保證了在貨物運輸過程的安全性和可靠性。