隨著電子商務的飛速發展,傳統的倉儲物流已無法適應現代物流品種多、批量小、批次多、周期短的特點,而基于移動機器人的自動化倉儲物流技術研究了基于線性時序邏輯(LTL)理論規劃倉儲機器人路徑的方法。得到了應用和發展,目前倉儲物流業已成為繼汽車行業后的第二大機器人應用領域[1]。倉儲物流機器人的應用可以大大提高電商倉儲物流工作的效率,緩解當前倉儲物流行業供不應求的現狀。機器人應用的目的是提高電商的庫存管理能力與配載能力,而實現這樣的目的的核心技術是機器人的路徑規劃。路徑規劃是指根據當前倉儲物流物品種類多、倉儲面積大的特點,按照貨單需求規劃出合理的機器人路徑,以提高倉儲機器人的作業效率。本研究根據實際應用要求,提出了一種基于線性時序邏輯(linear temporal logic,LTL)理論的倉儲移動機器人路徑規劃方法,該方法可根據實際的倉儲環境和任務需求,規劃出符合環境信息的最優路徑,確保機器人完成指定任務的運行路徑總長度最短,提高倉儲工作整體的工作效率。與傳統的方法相比,本文所提出的方法在確保規劃路徑最優的基礎上能夠較好的適用于倉儲物流環境。
目前倉儲機器人的應用研究主要集中在調度和避碰問題上,對針對具體環境和具體任務的路徑規劃的研究較少。文獻[2]在傳統的A*算法(一類啟發式的路徑搜索算法)中引入時間參量,將平面二維的A*算法擴展到平面空間加時間的三維時空中,同時引入暫停機制避免機器人之間發生碰撞,結合分層的路徑規劃算法減少了計算量;文獻[3]將機器人調度與特殊規則約束下基于A*算法的路徑規劃相結合實現了倉儲物流機器人集群的智能調度和路徑規劃;文獻[4]采用改進的遺傳算法和SHAA神經網絡算法主要解決了多機器人避碰問題;文獻[5]提出了一種PUSH-SWAP的方法來避免多移動機器人之間的碰撞。此外,現有的路徑規劃方法還有諸如人工勢場法[6]、A*算法[7]、快速擴展隨機樹(rapiddy-exploring random tree,RRT)算法[8]等都是針對簡單的點到點的路徑規劃任務。然而,上述方法仍然存在很大的瓶頸,無法很好的適用于倉儲機器人這類包含多點訪問等復雜任務需求的應用中。
線性時序邏輯(LTL)語言[9]可以描述倉儲物流機器人實際應用中較為復雜的任務需求,諸如在倉庫環境中從起點出發先后到若干個貨架取貨后回到指定點,途中規避某些區域等。目前,基于LTL理論的路徑規劃方法的研究主要集中在解決旅行商(TSP)問題上,文獻[10,11]采用了最小瓶頸環法解決了單機器人多點巡回的問題;文獻[12]針對傳統方法無法直接解決多點最優巡回問題,采用基于擴展乘積自動機的最優巡回算法尋優路徑;文獻[13]在傳統方法的基礎上加入了時序要求,針對兩機器人同時巡回某些點的問題,采用了同步序列法生成同步路徑以保證兩機器人的同時性;文獻[14]將基于LTL理論的路徑規劃方法擴展到有時間限制的動態環境中。然而,上述方法由于無法靈活的應用于動態的倉儲環境、無法保證最優性、計算量大、路徑尋優時間長等不足,都無法滿足倉儲物流機器人的應用需求。
機器人的效率與倉儲物流系統的運作效率直接相關。因此,需要為倉儲機器人設計一種有效的算法來控制機器人按指定任務在倉庫中運行,并且能實現路徑最優,從而最大限度地提高倉儲物流系統的整體運作效率。
傳統的路徑規劃方法,諸如A*算法、人工勢場法、RRT算法等都需要根據任務節點順序,按序分段進行規劃,規劃所得路徑受任務節點的數目和順序影響,無法保證規劃所得路徑的最優性。本文所采用的基于線性時序邏輯的路徑規劃方法將環境信息與任務需求相融合,構建任務可行網絡拓撲確保了尋優所得路徑不受任務節點順序的影響;此外,采用Dijkstra算法來搜索路徑保證了規劃所得路徑的最優性。
本文采用基于線性時序邏輯理論的路徑規劃方法尋優路徑,其具體算法流程圖如圖1所示,主要分為環境建模與任務描述和路徑尋優兩個部分。首先,將機器人運行環境構建為可擴展的加權切換系統;然后,采用線性時序任務公式描述任務需求,并通過LTL2BA工具包將其轉換為圖表形式(Buchi自動機)[15];接著,將加權切換系統與Buchi自動機作笛卡爾乘積構成任務可行網絡拓撲(Product自動機)[16];之后,采用Dijkstra算法[17]在任務可行網絡拓撲上所搜出最優路徑;最后,將任務可行網絡拓撲上尋優所得路徑映射回加權切換系統得到環境中對應的最優路徑。
由于實際的倉儲環境中貨架數量非常多,在構建環境模型時若把所有的貨架信息都包含進去,會導致環境模型太過復雜,增加路徑規劃的計算量。因此,本文構建了一個可靈活擴展的環境模型,選取環境中固定的路徑節點構建環境模型,當選定任務貨架后再對環境模型進行擴展,以此降低環境模型的復雜度,從而降低計算量。另外,傳統的路徑規劃方法只能針對點到點的路徑規劃,無法很好地描述倉儲物流應用中諸如連續多點訪問等復雜任務需求,因而本文采用線性時序任務公式對倉儲環境中的任務進行描述,使其能夠適用于實際應用中各類復雜的任務需求。
假設倉儲環境如圖2所示,其中帶箭頭矩形代表機器人,淺灰色矩形代表存放不同貨物的各個貨架,左上角為倉儲機器人起點和出貨的柜臺,當柜臺接到取貨單時需要規劃出最優的取貨路徑,然后讓機器人按指定路徑去取貨,如圖2所示深灰色矩形為貨單上貨物對應的貨架。
本文將機器人在環境當中的運動建立成一個可靈活擴展的加權切換系統模型。加權切換系統模型[18]是一種圖表,它以環境中的關鍵位置為節點,如果機器人能從一個位置行駛至另一個位置,則這兩個節點間有邊相連。每條邊都標有相應的權值,表示機器人從一個節點行駛至另一個節點的成本。本文用一個元組
來表示機器人運行環境對應的加權切換系統模型。其中,Q為一個有限狀態集,其每一個狀態代表環境中道路網絡的一個節點;q。∈Q代表初始狀態,即機器人在環境中所處的初始節點;代表切換關系,即環境中節點間的連通狀態;∏為一個原子命題集合;ζ:Q→2∏是狀態的命題函數;ω:R→R>0代表切換權重,代表機器人在環境中從一個節點切換到另一節點所需的成本(如運行時間、路徑長度等)。
以圖3所示的模擬倉庫環境模型為例,其中p1為起點,p2為終點,空白矩形代表各個存放不同貨物的貨架。倉儲機器人需要從起點出發,到指定貨架取貨后將貨物送回到終點。本文選取倉庫環境中的22個關鍵節點作為路徑節點,其中節點p1和p2分別表示機器人的起點和終點,即倉庫接單和出貨的柜臺。通過一個22×22的鄰接矩陣T.adj來描述各節點間的連通情況,以及任意兩節點間的切換成本,即機器人需要運行的距離,其中T.adj的每一行都代表該行對應節點與其他節點的連通情況即切換成本。如T.adj的第一行第二列代表節點p1到節點p2的連通情況和切換成本,第二行第三列代表節點p2到節點p3的連通情況和切換成本,依此類推。
然后,當倉庫接到貨單時,根據貨單上的貨物所在的貨架選取對應的貨架節點,選定目標貨架后的環境模型如圖4所示,深灰色貨架即為機器人需要取貨的貨架,淺灰色節點即為貨架對應的路徑節點。根據任務貨架節點數量擴展鄰接矩陣T.adj,以圖4所示的任務為例,需要將T.adj擴展為25×25的方陣。
同時,當倉庫接到貨單選定任務貨架后,需要對任務進行描述。本文采用線性時序邏輯(LTL)公式來描述倉儲物流機器人需要完成的復雜任務需求。線性時序邏輯公式φ是由原子命題∏的子集組成的表達式,其中還包含了布爾算子(非)、∧(與)、∨(或),以及時序邏輯算子G (始終)、F(最終)、X(接下來)和U(直到)。例如,G P1表示T中狀態p1始終為真;F p1表示最終達到T中的狀態p1;X p1表示接下來到達T中的狀態p1;公式p1 U p2表示當到達p1狀態時,必須到達狀態p2才能前往下一個狀態。將這些時序和布爾算子組合可以描述更為復雜的任務需求。
以圖4為例,任務需求:“機器人從P1節點出發,先后到p23、p24和p25這三個節點取貨,然后回到p2節點將取回的貨物打包出倉”。采用線性時序邏輯任務公式可以描述為
其中,起點T.q0=p1。
在得到式(2)所示的任務公式后,首先,采用LTL2BA工具包將其轉換為圖表的形式(Buchi自動機)。由于任務式(2)轉換后的圖表較為復雜,這里以任務公式
為例。假設機器人從p1出發,到p2取貨后最終回到p3。圖5即為式(3)轉換后的結果。環境模型以圖6所示的加權切換系統圖為例,可以用一個4×4的鄰接矩陣來描述各節點間的連通情況,以及任意兩節點間的切換成本。
然后,將轉換所得Buchi自動機與加權切換系統作笛卡爾乘積,得到任務可行網絡拓撲(Product自動機)。圖7所示即為圖6所示加權切換系統與圖5所示Büchi自動機作笛卡爾乘積后所得的任務可行網絡拓撲,該拓撲包含了環境信息和任務需求。其中,第一行包含S0的狀態為初始狀態,最后一行包含S4的狀態為最終的接收狀態。
接著,采用Dijkstra算法在任務可行網絡拓撲上搜索出從起始狀態到接收狀態的最優路徑。如圖7中實線箭頭所示路徑即為采用Dijkstra算法在任務可行網絡拓撲上搜索從初始狀態到最終狀態實驗所得路徑結果,即(P0,s0)→(p2,s0)→(P1,s1)→(p3,s3),其中狀態S3與狀態S4之間的切換為式(3)中GFp3部分的自循環,所以可以忽略不計。從圖中可以看出該路徑的總權重值是最小的,且路徑節點數是最少的,因此規劃所得路徑是最優的。由于Dijkstra算法實質是廣度優先搜索,因此可以確保路徑的最優性。
最后,在得到任務可行網絡拓撲上的最優路徑后,還需將其映射回初始的加權切換系統中,得到倉庫環境中完成指定任務的最優路徑,于是引入如下引理:
引理1 (Product自動機路徑映射)[19]對于任務可行網絡拓撲上的任意路徑rp=(p0,s0)(p1,s1)(p2,s2)…,路徑序列rT=P0P1P2…為加權切換系統中對應的滿足任務需求的路徑,且rP和rT所對應的權重相等。
根據引理1,路徑p0→p2→p1→p3即為圖7所示的任務可行網絡拓撲上最優路徑映射回圖6所示的加權切換系統后所得路徑,即圖6所示的環境模型中滿足任務公式(3)的最優路徑。
其具體算法如下:
輸入:倉儲環境對應的加權切換系統模型T;
輸出:倉庫環境中滿足任務需求的最優路徑rT;
1)選定任務貨架;
2)根據選取的目標貨架擴展加權切換系統模型T,用線性時序任務公式φ描述任務需求;
3)將線性時序任務公式φ轉換為圖表的形式,即Buchi自動機B=LTL2BA(Φ);
4)構建任務可行網絡拓撲;
5)采用Dijkatra算法在任務可行網絡拓撲P上搜索出一條從初始狀態到最終狀態的最優路徑rP;
6)將P上尋優所得路徑rP映射回加權切換系統,得到倉庫環境中滿足任務需求的最優路徑rT。
為了驗證上述方法的可行性與有效性,本文在MATLAB中采用GUI編程對上述方法進行了仿真驗證,其程序操作界面如圖8所示,圖中的模擬倉庫環境對應的模擬倉庫環境模型如圖3所示。其中,起點代表倉儲機器人的起始位置,對應圖3中的p1節點;終點代表倉儲機器人完成取貨后需要到達的最終位置,對應圖3中的p2節點;界面中的小正方形代表倉庫中存放貨物的貨架,倉儲機器人需要按照需求到指定的貨架取貨,若需要倉儲機器人到該貨架取貨則用鼠標左鍵單擊選中對應貨架;若環境中某一路徑節點發生變化無法繼續通行,則用鼠標右鍵單擊對應位置,將其標記為障礙物;在選取好任務貨架和障礙物節點后點擊“規劃路徑”按鍵進行路徑尋優。
在圖3所示的倉儲環境模型中,任意指定7個任務貨架,如圖9中深灰色矩形所示,選取的順序為從上到下,從左到右。機器人需要從p1節點出發,分別到p23、p24、p25、p26、p27、p28和p29這7個節點對應的貨架取貨,然后將貨物送回到p2。
首先,將圖3所示的包含22節點的倉儲環境模型擴展到29節點,對應的22×22的鄰接矩陣T.adj也擴展為29×29的方陣;其次,采用線性時序任務公式描述給定的任務需求,如下式所示:
然后,將式(4)轉換為Buchi自動機B;接著,將環境對應的加權切換系統T與B作笛卡爾乘積,構建任務可行網絡拓撲P;然后,采用Dijkstra算法在P上搜索出最優路徑;最后,將P上尋優所得路徑映射回加權切換系統,獲得環境中對應的最優路徑。圖9中深灰色直線即為尋優所得路徑。從圖中可以看出基于線性時序邏輯理論的倉儲機器人路徑規劃方法能夠規劃出既符合環境信息,又滿足任務需求的最優路徑。
接下來,本文將上述方法與傳統方法做進一步的仿真比較。目前已有的路徑規劃方法有很多,但基本都針對“從a點到b點,途中避開障礙物”這類簡單的任務,對于倉儲機器人這類需要從起點出發,到多點取貨后回到終點的復雜需求還無法得到很好的解決。本文以目前應用較為普遍的A*算法為例。
A*算法是一類啟發式的路徑搜索算法,從起點開始逐漸向目標點靠近,它在Dijkstra算法的基礎上引入啟發函數來篩選訪問節點,從而降低了計算量,提高了搜索效率。但是啟發函數選取好壞直接關系到A*算法的搜索速度和搜索精度。本文取A*算法的代價函數如公式
fn=gn+hn (5)
所示,其中fn為機器人從起點經過節點n到達目標節點的估價函數,gn為起點到節點n的實際成本,n為節點n到目標節點的啟發式評估代價。本文h
使用公式
所示的曼哈頓距離作為hn,其中(n.x,n.y)表示節點n的橫縱坐標,(target.x,target.y)表示目標節點的橫縱坐標,abs表示求絕對值的函數。
針對圖9所示任務,同樣按照從上到下,從左到右的順序選取任務貨架,采用A*算法規劃所得路徑如圖10所示。當選取貨架的順序發生變化時,采用A*算法規劃的路徑也會隨之變化。對比圖9和圖10可以看出,基于LTL理論的倉儲機器人路徑規劃方法尋優所得路徑明顯優于A*算法規劃所得路徑,且基于LTL理論的倉儲機器人路徑規劃方法與任務順序無關,始終能夠確保規劃所得路徑的最優性。
此外,A*算法只能針對“從a點到b點,途中避開障礙物”等這類簡單任務,且當原有的已知環境中出現障礙物時需要對環境模型作相應的修改,實現起來較為繁瑣。而基于LTL理論的路徑規劃方法可以很好地描述實際應用中較為復雜的任務需求,諸如始終保持一定的范圍之內(安全性),按序訪問某幾個點(保證性)后,巡回訪問某幾個點(循環性),圖中避開某些點(避障),到達某些點后必須到達另外一些點才能繼續任務(反應性)等。
如圖4所示的環境和任務,當節點14暢通時采用基于線性時序邏輯路徑規劃方法規劃所得路徑和采用A*算法規劃所得路徑相同,結果如圖11所示。但當節點p14出現突發狀況(節點p14所示區域遇堵等)機器人無法通過時,采用A*算法進行規劃時需要將環境模型中節點p14標記為障礙物,對原有的環境模型進行修改;而采用基于LTL的路徑規劃方法則只需要在選取任務貨架的同時將節點p14標記為障礙物,則對應生成的任務公式為
Fp1&Fp23&Fp24&Fp25&GFp2&Gp14 (7)其規劃所得路徑如圖12所示,繞開了無法通過的節點p14,仍然可以確保規劃所得路徑的最優性。
其它倉儲機器人路徑規劃算法在上述的對比實驗中與A*算法類似,需要對任務進行分段路徑尋優,規劃所得路徑與任務節點順序有關,無法保證最優性;當環境發生變化時需要根據當前環境對原有的環境模型進行修改,相比之下本文所提出的方法能夠更好地適用于倉儲機器人的應用。
隨著電子商務的飛速發展,各大電商對基于移動機器人的自動化倉儲物流技術的需求越來越迫切。本文對倉儲物流機器人路徑規劃方法的研究與應用進行了探索:建立了一個可靈活擴展的倉儲環境模型,有效地描述了倉儲物流應用中的各類任務需求,并將倉儲環境信息與任務需求相融合,從而規劃出既滿足任務需求又符合環境信息的最優路徑。實驗結果表明,與傳統方法相比,本文的方法不僅可以靈活地擴展環境模型,而且能夠更好地適應實際應用中較為復雜的任務,較傳統的路徑規劃方法的適用性更強,適用范圍更廣;此外,本文所提出的方法無需對任務進行分段的點到點規劃,與任務節點的順序無關,保證了規劃所得路徑的最優性。因此,基于LTL理論的倉儲機器人路徑規劃方法能夠滿足實際的應用需求,大大提高倉儲物流機器人的工作效率。
本文主要探究了倉儲物流機器人的路徑規劃問題,未來還可以拓展到多機器人領域,實現一套高度自動化的倉儲物流機器人系統,更好地將機器人應用到倉儲物流領域中去。