自動(dòng)導(dǎo)引車 (AGV) 是一種可以滿足分揀操作要求的自動(dòng)化智慧倉(cāng)儲(chǔ)設(shè)備, 將“人到貨”分揀模式轉(zhuǎn)變?yōu)椤柏浀饺恕狈謷J?span style="font-size:12px;line-height:0;vertical-align:baseline;">[1]。路徑規(guī)劃問(wèn)題是多AGV任務(wù)分配的核心和熱點(diǎn)問(wèn)題。目前, 國(guó)內(nèi)外對(duì)動(dòng)靜態(tài)路徑規(guī)劃問(wèn)題的研究很多。文獻(xiàn)[2]總結(jié)并歸納了移動(dòng)機(jī)器人的局部和全局路徑規(guī)劃方法。文獻(xiàn)[3]研究了多AGV系統(tǒng)中的兩階段動(dòng)態(tài)路徑規(guī)劃和調(diào)度問(wèn)題。文獻(xiàn)[4]對(duì)單一AGV和多AGV的路徑優(yōu)化問(wèn)題進(jìn)行了進(jìn)一步的研究。文獻(xiàn)[5]研究了不同調(diào)度規(guī)則下AGV系統(tǒng)的車輛行駛模型。文獻(xiàn)[6]對(duì)動(dòng)態(tài)路徑自治分散式AGV系統(tǒng)的局部重新調(diào)度程序進(jìn)行了實(shí)驗(yàn)研究。文獻(xiàn)[7]研究了有AGV系統(tǒng)的調(diào)度和無(wú)碰撞路徑問(wèn)題的局部搜索和隨機(jī)搜索。文獻(xiàn)[8]提出了一種蟻群算法用于求解AGV作業(yè)的車間調(diào)度和無(wú)沖突路徑集成模型。雖然關(guān)于搜索最短路徑的問(wèn)題有很多研究成果, 但從減少交通擁堵的角度來(lái)出發(fā), 且這些研究并沒(méi)有解決路徑規(guī)劃問(wèn)題。
本文基于多個(gè)AGV的動(dòng)態(tài)分揀操作模式, 采用網(wǎng)格方法描述智慧倉(cāng)儲(chǔ)環(huán)境。通過(guò)添加AGV彼此共享路徑的懲罰值來(lái)改善A*算法的估計(jì)開(kāi)銷以減輕交通擁堵。然后結(jié)合改進(jìn)的A*算法和無(wú)碰撞規(guī)劃來(lái)完成無(wú)碰撞的路徑規(guī)劃。最后, 通過(guò)仿真實(shí)驗(yàn)將改進(jìn)的A*算法的分類效率與其它算法的分類效率進(jìn)行了比較。
環(huán)境建模是無(wú)碰撞路徑規(guī)劃的基礎(chǔ)。本文利用網(wǎng)格方法[9]建立了AGV工作的智慧倉(cāng)儲(chǔ)空間環(huán)境模型。網(wǎng)格方法具有良好的可視性和簡(jiǎn)單的模型構(gòu)建特點(diǎn), 因此該方法的應(yīng)用較為成熟。網(wǎng)格的大小和數(shù)量取決于AGV的大小和工作空間。網(wǎng)格在直角坐標(biāo)系中進(jìn)行定義, 網(wǎng)格的屬性包括以下維度: (1) 每個(gè)網(wǎng)格的位置坐標(biāo)信息 (xi, yi) 可以反饋給計(jì)算機(jī); (2) 從左到右連續(xù)設(shè)置的每個(gè)網(wǎng)格的序列號(hào)可以代表AGV的驅(qū)動(dòng)路徑; (3) 網(wǎng)格類型包括貨架網(wǎng)格, 分類架網(wǎng)格, 補(bǔ)給平臺(tái)網(wǎng)格, 暫停區(qū)域網(wǎng)格, 充電樁網(wǎng)格和其它自由網(wǎng)格。
在智慧倉(cāng)儲(chǔ)環(huán)境模型中, 本文所設(shè)計(jì)的AGV工作過(guò)程如下:首先, AGV接收任務(wù)從指定的貨架區(qū)域?qū)⒇浖苓\(yùn)送到指定的分揀區(qū)域, 并且貨架等待分揀。然后, 將已經(jīng)分揀的貨架運(yùn)送到原始位置, 并且AGV被分配另一個(gè)任務(wù)。如果沒(méi)有其它任務(wù), AGV將返回暫停區(qū)域。并且AGV可以在4個(gè)方向行駛:正東、正西、正南和正北。
在本文中, 貨架放置在所建立的智慧倉(cāng)儲(chǔ)網(wǎng)格節(jié)點(diǎn)的上方。如圖1所示, 底層和地面之間的距離為75cm, AGV的高度為50cm。如果AGV需要運(yùn)送貨物, 則AGV上的托盤將提升, 由于貨架底部的高度大于AGV的高度, 因此, AGV空載時(shí)可以穿過(guò)貨架下方, 而AGV裝載后則不能穿過(guò)貨架下方。
A*算法可以有效的實(shí)時(shí)計(jì)算最短路徑, 并在實(shí)際工程中得到廣泛應(yīng)用。在計(jì)算當(dāng)前點(diǎn)與目標(biāo)點(diǎn)之間距離時(shí), 該算法考慮了包括實(shí)際代價(jià)和估計(jì)代價(jià)在內(nèi)的兩個(gè)因素[10]。實(shí)際代價(jià)是指AGV已采用的路徑成本, 而估計(jì)代價(jià)是指AGV將采用的路徑成本。一般代價(jià)估計(jì)函數(shù)表示如下:
其中, g (n) 表示根據(jù)實(shí)際駕駛條件計(jì)算的實(shí)際代價(jià) (從起點(diǎn)到當(dāng)前點(diǎn)n) , h (n) 表示包括啟發(fā)式信息的估計(jì)代價(jià) (從當(dāng)前點(diǎn)n到目標(biāo)點(diǎn)) 。估計(jì)代價(jià)主要用于尋找搜索方向, 這對(duì)最終的搜索結(jié)果和效率有很大影響[11]。估計(jì)代價(jià)越接近實(shí)際代價(jià), 收斂速度就越快。當(dāng)估計(jì)代價(jià)小于實(shí)際代價(jià)時(shí), 收斂速度將減慢, 但可以獲得最優(yōu)解。相反, 收斂速度將加快但可能無(wú)法獲得最優(yōu)解。因此, 估計(jì)代價(jià)是A*算法研究的重點(diǎn)和難點(diǎn)。
AGV在智慧倉(cāng)儲(chǔ)環(huán)境中的移動(dòng)方向是正東, 正西, 正南和正北。因此, 在研究分揀路線時(shí), 通常使用Manhattan距離[12]來(lái)計(jì)算估計(jì)代價(jià)h (n) 。根據(jù)當(dāng)前點(diǎn) (xn, yn) 和目標(biāo)點(diǎn) (xend, yend) 的估計(jì)代價(jià)函數(shù)如下:
如果將Manhattan距離用作估計(jì)代價(jià), 則路徑規(guī)劃將限制在靜態(tài)而非動(dòng)態(tài)環(huán)境中的單個(gè)AGV, 并且將導(dǎo)致交通堵塞。為了緩解交通堵塞并提高計(jì)算效率, 本文在交叉路口再次規(guī)劃AGV的路徑并檢測(cè)所有可行路徑, 其中增加了AGV彼此共享路徑的懲罰值。該懲罰值取決于與AGV的距離并且與距離成反比。最終, 估計(jì)代價(jià)函數(shù)選擇為:
其中, a是距離目標(biāo)點(diǎn)為1~4個(gè)網(wǎng)格且權(quán)重為α的AGV的數(shù)量, b是距離目標(biāo)點(diǎn)為4~8個(gè)網(wǎng)格且權(quán)重為β的AGV的數(shù)量, 其它AGV的數(shù)量為c且權(quán)重為γ。本文規(guī)定α>β>γ, 這意味著距離越近, 懲罰值越大。通過(guò)提高估計(jì)代價(jià)實(shí)現(xiàn)動(dòng)態(tài)路徑規(guī)劃并緩解交通擁堵, 最終代價(jià)估計(jì)函數(shù)如下:
當(dāng)使用A*算法動(dòng)態(tài)規(guī)劃各AGV的路徑時(shí), 多AGV在實(shí)際操作中同時(shí)工作時(shí)不可避免的會(huì)發(fā)生碰撞, 本文給出了智慧倉(cāng)儲(chǔ)環(huán)境下的兩種碰撞類型。
由追趕引起的碰撞如圖2所示。為了解決這種碰撞, 本文不考慮AGV的優(yōu)先級(jí), 規(guī)定后面的AGV應(yīng)該停止并等待前面的AGV通過(guò), 然后再繼續(xù)移動(dòng)。
交叉點(diǎn)中存在4種類型的碰撞如圖3所示。為了解決交叉點(diǎn)中的這些碰撞, 本文規(guī)定優(yōu)先級(jí)較低的AGV應(yīng)該停止等待直到具有較高優(yōu)先級(jí)的AGV通過(guò), 然后再繼續(xù)移動(dòng)。
基于上述分析, 本文提出了基于改進(jìn)A*算法和碰撞解決規(guī)則的多AGV無(wú)碰撞路徑規(guī)劃方法, 具體步驟如下:
步驟1:定義兩個(gè)名為OPEN和CLOSE的表。OPEN表示將被明確搜索但不能確保它們?cè)谧疃搪窂缴系墓?jié)點(diǎn)集。CLOSE表示已經(jīng)搜索過(guò)的節(jié)點(diǎn)集, 在這些節(jié)點(diǎn)中可以找到從起始點(diǎn)到目標(biāo)點(diǎn)的最短路徑。
步驟2:選擇節(jié)點(diǎn)Vs和Vend分別為起點(diǎn)和目標(biāo)點(diǎn), Vi表示其它點(diǎn)。然后將Vs放在表OPEN中, 并將表CLOSE初始化為空。
步驟3:選擇使函數(shù)f (n) 最小的節(jié)點(diǎn)n, 然后將其添加到表CLOSE中。然后, 如果該點(diǎn)是目標(biāo)點(diǎn), 則結(jié)束搜索并獲得最優(yōu)解, 否則進(jìn)行步驟4。如果表OPEN為空, 則表示無(wú)法找到路徑并且結(jié)束算法。
步驟4:擴(kuò)展搜索與Vj (j≠i) 相鄰且沒(méi)有障礙物的網(wǎng)格Vi并計(jì)算Vi的值, 然后重復(fù)步驟3。
如果AGV之間存在碰撞, 則由本文所提的碰撞解決規(guī)則處理。利用該方法可以重新規(guī)劃AGVs的路徑。因此, 在尋找無(wú)碰撞路徑的前提下, 利用緩解交通擁擠的思想, 可以獲得最大的效益。
在模擬實(shí)驗(yàn)中, 智慧倉(cāng)儲(chǔ)的長(zhǎng)×寬為800m×400m, 劃分為4m×4m網(wǎng)格。AGV的數(shù)量為80, 其大小為0.8m×0.8m。AGV速度為2m/s, 選擇參數(shù)α、β和γ時(shí), 應(yīng)保證α>β>γ, 即距離越近, 懲罰值越大。本文將參數(shù)α、β和γ分別設(shè)為0.6、0.3和0.1。
本文利用C軟件平臺(tái)開(kāi)發(fā)了多AGV分揀系統(tǒng)的仿真軟件, 如圖4所示。左邊是菜單欄, 可以監(jiān)視AGV的運(yùn)動(dòng)狀態(tài), 并調(diào)整AGV的速度和加速度。右方是通過(guò)網(wǎng)格方法建模的工作區(qū)域, 可以模擬真實(shí)的分揀環(huán)境。分揀效率指標(biāo)顯示在右上角。AGV的應(yīng)用環(huán)境和所需的任務(wù)數(shù)量可以根據(jù)系統(tǒng)的需要自動(dòng)設(shè)置。
由于AGV均保持2m/s的速度運(yùn)行, 所提出的碰撞解決方案中, 規(guī)定后面的AGV應(yīng)該停止并等待前面的AGV通過(guò), 然后再繼續(xù)移動(dòng)。因此避免了追趕引發(fā)的碰撞。在此只考慮交叉口的防碰撞。
在該平臺(tái)只考慮交叉口的防碰撞分析, 對(duì)于兩個(gè)AGV在既定的路徑上運(yùn)行時(shí), 采用改進(jìn)A*算法的多AGV防碰撞路徑規(guī)劃與文獻(xiàn)[13]的蟻群算法防碰撞路徑規(guī)劃進(jìn)行了比較, 如表1所示。
表1 蟻群算法與本文的改進(jìn)A*算法的防碰撞時(shí)間對(duì)比 下載原表
由表1的交叉口防碰撞效率對(duì)比結(jié)果可以發(fā)現(xiàn), 兩種方法的模擬時(shí)間和停止等待時(shí)間均隨交叉口防碰撞次數(shù)的增加而增加, 但基于改進(jìn)的A*算法在時(shí)間上均隨著防碰撞次數(shù)的增加呈現(xiàn)出較為線性的增長(zhǎng), 且模擬時(shí)間比蟻群算法快。而蟻群算法在模擬時(shí)間上呈現(xiàn)指數(shù)型增長(zhǎng), 這是由于改進(jìn)A*算法的最終代價(jià)估計(jì)函數(shù)僅與距離目標(biāo)點(diǎn)的AGV數(shù)量相關(guān), 而蟻群算法的迭代次數(shù)與交叉口防碰撞次數(shù)相關(guān), 且每次迭代均需從AGV的初始點(diǎn)重新進(jìn)行計(jì)算, 加大了計(jì)算復(fù)雜度進(jìn)而增加了模擬時(shí)間。同時(shí), 本文方法在停止等待時(shí)間上略低于蟻群算法, 這是由于改進(jìn)A*算法是以網(wǎng)格中的節(jié)點(diǎn)作為AGV的停止點(diǎn), 而文獻(xiàn)[13]的蟻群算法是以網(wǎng)格的邊作為AGV的停止邊, 所以在交叉口的防碰撞實(shí)驗(yàn)時(shí), 本文中的AGV停止點(diǎn)距離交叉口更小, 再次啟動(dòng)運(yùn)行時(shí)的等待時(shí)間更短。因此, 基于改進(jìn)的A*算法可以有效緩解交通堵塞。
在該平臺(tái)上, 對(duì)基于改進(jìn)A*算法的多AGV路徑規(guī)劃分揀效率與傳統(tǒng)A*算法進(jìn)行了比較, 如表2所示。其中, ASP/s代表每秒平均分揀件。
表2 傳統(tǒng)A*算法與改進(jìn)A*算法之間的分揀效率對(duì)比 下載原表
由表2的分揀效率對(duì)比結(jié)果可以發(fā)現(xiàn), 兩種方法的分揀速度均隨時(shí)間的推移而減小, 但基于改進(jìn)的A*算法可以對(duì)更多的貨物進(jìn)行分揀, 且分揀速度比傳統(tǒng)的A*算法快。這是因?yàn)樵诟倪M(jìn)的算法中考慮了交通擁堵和防止碰撞。因此, 基于改進(jìn)的A*算法不僅能滿足分揀系統(tǒng)對(duì)穩(wěn)定性的要求, 而且還可以提高分揀效率。
本文在采用網(wǎng)格方法構(gòu)建的智慧倉(cāng)儲(chǔ)環(huán)境的基礎(chǔ)上, 利用改進(jìn)的A*算法和碰撞解決規(guī)則, 從緩解交通擁堵和避免碰撞的角度對(duì)AGV的路徑進(jìn)行了規(guī)劃。仿真結(jié)果表明, 該方法可以提高多AGV的分揀效率, 緩解交通擁堵。在未來(lái)的研究中, 將根據(jù)不同的場(chǎng)景研究更有效的算法。
權(quán)所有©:上海陽(yáng)合儲(chǔ)運(yùn)
專業(yè)承接上海倉(cāng)庫(kù)租賃、上海倉(cāng)儲(chǔ)配送物流、上海電商倉(cāng)儲(chǔ)企業(yè)服務(wù)與微笑同在"的先進(jìn)理念不斷發(fā)展壯大。