本發(fā)明屬于自動導(dǎo)引運輸車(Automatic guided vehicle,簡稱AGV)路徑規(guī)劃技術(shù)領(lǐng)域,具體涉及一種基于動態(tài)時間窗的泊車系統(tǒng)路徑規(guī)劃方法。
背景技術(shù):
近年來,隨著國民經(jīng)濟(jì)的快速發(fā)展,我國汽車保有量急劇增加。根據(jù)公安部交管局公布數(shù)據(jù)顯示,截止到2015年12月底,我國機(jī)動車保有量達(dá)2.79億輛,同比去年增長約1500萬輛,其中汽車保有量為1.72億輛,約占總數(shù)的61.6%。在全國范圍內(nèi),汽車保有量超百萬輛的城市有40個,其中北京、成都、深圳、天津、上海、蘇州、重慶、廣州、杭州、鄭州和西安等11個城市的汽車保有量超過200萬輛。汽車保有量的急劇增加造成了城市交通擁擠、停車?yán)щy等社會問題,嚴(yán)重影響了市民的居住環(huán)境,因此,解決停車難已成為社會亟待解決的難題。而基于AGV的平面移動式智能立體停車庫的出現(xiàn),則很好地解決了這一難題。該智能立體停車庫類似于自動倉儲存儲設(shè)備,通過AGV、升降電梯以及拖車板等設(shè)備協(xié)同作用來實現(xiàn)同層或不同層車輛存取停放功能,具有停車占地面積少、有效存車數(shù)量多、車輛存取自動化程度高、性價比高以及安全可靠性高等優(yōu)點,可實現(xiàn)無人自動存取車、AGV自動充電以及車庫自動計費等諸多功能。在該智能立體停車庫中,由于其運行環(huán)境復(fù)雜多變,如何使系統(tǒng)中的AGV在有效避開路徑資源競爭和沖突的前提下,在較短的時間內(nèi)順利完成車輛的存取停放任務(wù),這就涉及到多AGV協(xié)同避障路徑規(guī)劃問題。
路徑規(guī)劃是AGV導(dǎo)航技術(shù)的重要環(huán)節(jié),它是指在具有障礙物的環(huán)境中,按照一定的評價標(biāo)準(zhǔn)(如最短距離、最少耗費時間、最少轉(zhuǎn)彎次數(shù)以及最少能源消耗等),尋找一條從起始位置到目標(biāo)位置的最優(yōu)或近似最優(yōu)的無碰路徑。
由于單臺AGV工作能力有限,難以完成復(fù)雜任務(wù),因此,在智能立體停車庫中,需要多臺AGV共同完成車輛存取停放任務(wù)。多臺AGV路徑規(guī)劃不同于單臺AGV路徑規(guī)劃,單臺AGV路徑規(guī)劃的本質(zhì)是路徑搜索問題,即在一張地圖中搜索出起始點到目標(biāo)點的路徑,并使得某一性能指標(biāo)最優(yōu)。而多AGV路徑規(guī)劃則比單AGV路徑規(guī)劃復(fù)雜的多,在復(fù)雜多變的運行環(huán)境下,它不僅要為單臺AGV搜索出一條從起點到目標(biāo)點的優(yōu)化路徑,而且要避免AGV和周圍環(huán)境障礙物以及其它AGV間發(fā)生沖突碰撞。除此之外,它還要完成多臺AGV之間的協(xié)調(diào),避免碰撞、死鎖問題發(fā)生,以便使得多臺AGV間通過協(xié)同作用順利完成指定任務(wù)。
針對多AGV路徑規(guī)劃問題,國內(nèi)外相關(guān)學(xué)者已做了大量研究工作,并相繼提出了多種有效方法,如模糊推理系統(tǒng)法、Petri網(wǎng)法、混合多目標(biāo)遺傳算法、分散控制法、時間窗法以及時間窗與其他啟發(fā)式算法結(jié)合的路徑規(guī)劃方法等。上述方法雖然能解決多AGV路徑規(guī)劃問題,但其也存在諸多缺陷,如算法復(fù)雜計算量大、系統(tǒng)整體效率低、易于發(fā)生死鎖和阻塞、難以獲得全局最優(yōu)解以及環(huán)境適應(yīng)性和通用性差等。為解決智能立體停車庫中多AGV存取車路徑規(guī)劃問題,避免路徑搜索中出現(xiàn)死鎖及碰撞沖突,改善現(xiàn)有算法的魯棒性和柔性,提高智能立體停車系統(tǒng)整體運行效率,降低社會人員存、取車等待時間,本發(fā)明提出了一種基于動態(tài)時間窗的泊車系統(tǒng)路徑規(guī)劃方法。
本發(fā)明提出的一種基于動態(tài)時間窗的泊車系統(tǒng)路徑規(guī)劃方法與喬徽等提出的一種基于時間窗的多機(jī)器人路徑規(guī)劃方法存在本質(zhì)的區(qū)別。兩者相同點均是在Dijkstra算法和時間窗法的基礎(chǔ)上提出的,并將該融合算法用于解決生產(chǎn)實際問題。不同點在于:①在優(yōu)先級方面,本發(fā)明以車輛編號大小、任務(wù)加載順序、任務(wù)輕重緩急和距離最短為評價標(biāo)準(zhǔn),分別為每臺AGV和每項存取車任務(wù)設(shè)定了優(yōu)先級。另外,對于路口沖突問題,又補(bǔ)充設(shè)置了距離優(yōu)先級;而在喬徽提供的方法中,并未給出優(yōu)先級的具體涉及對象范圍及優(yōu)先級評價標(biāo)準(zhǔn);②在時間窗方面,本發(fā)明排布可行路徑時間窗則采用時間窗初始化、時間窗更新以及時間窗安排三個步驟,對于時間窗更新則主要用于檢查不同任務(wù)間可行路徑的時間窗是否存在重疊現(xiàn)象和將已經(jīng)清除或未被占用路段對應(yīng)的時間窗加載至?xí)r間窗向量表中,時間窗排布程序的運算過程只與加載任務(wù)有關(guān);而在喬徽提供的方法中,排布可行路徑時間窗則只使用時間窗更新一個步驟完成,且時間窗的循環(huán)更新時間是固定的,其更新時間窗的目的是確定可行路徑的時間窗排布;③沖突檢測方面,本發(fā)明是綜合AGV間的距離、運行路段長度以及AGV運行速度以及運行方向等因素,來解決沖突檢測問題的;而在喬徽提供的方法中,它是通過判斷所有有向邊是否形成環(huán),來解決沖突檢測問題的;④在沖突解決策略方面,本發(fā)明根據(jù)沖突類型不同,設(shè)計了減速策略、等待策略和重新規(guī)劃路徑策略(該策略又包括局部路徑規(guī)劃策略和全局路徑規(guī)劃策略),如對于交叉路口沖突和相向沖突中的可避免沖突,采用等待策略解決;對于相向沖突中的不可避免沖突,采用重新規(guī)劃路徑策略解決;對于趕超沖突,采用減速和等待策略來解決,也可根據(jù)實際需要,采用局部路徑規(guī)劃策略;而在喬徽提供的方法中,對于死鎖中無解的機(jī)器人,它僅是記錄其每條可行路徑上的沖突短路徑、沖突節(jié)點及沖突依賴關(guān)系,對被依賴最多的機(jī)器人給出預(yù)警;⑤在算法執(zhí)行過程方面,兩者有本質(zhì)的區(qū)別,此區(qū)別可通過兩種方法中的路徑規(guī)劃流程圖可以看出。
技術(shù)實現(xiàn)要素:
本發(fā)明目的在于針對智能立體停車庫中AGV存取車路徑規(guī)劃問題,在充分考慮多AGV協(xié)同避障以及環(huán)境時變性前提條件下,采用分時利用策略,通過將Dijkstra算法和時間窗法進(jìn)行有效結(jié)合,提供一種基于動態(tài)時間窗的泊車系統(tǒng)路徑規(guī)劃方法。本發(fā)明能有效避免死鎖及碰撞問題,可保證規(guī)劃路徑最優(yōu),且在動態(tài)環(huán)境下具有較好的柔性。
本發(fā)明通過如下技術(shù)方案實現(xiàn)其技術(shù)目的,一種基于動態(tài)時間窗的泊車系統(tǒng)路徑規(guī)劃方法,包括如下步驟:
步驟S1:采用拓?fù)浞▌?chuàng)建智能車庫中AGV的工作環(huán)境模型;
步驟S2:按照不同評價標(biāo)準(zhǔn),分別為每臺AGV和每項存取車任務(wù)設(shè)定優(yōu)先級;
步驟S3:采用Dijkstra算法為接受任務(wù)的AGV規(guī)劃最短可行路徑;
步驟S4:排布可行路徑時間窗;
步驟S5:根據(jù)沖突類型不同,設(shè)計沖突解決策略;
步驟S6:利用基于動態(tài)時間窗的泊車系統(tǒng)路徑規(guī)劃算法為AGV規(guī)劃無沖突最優(yōu)路徑;
進(jìn)一步地,所述步驟S1中,采用拓?fù)浞▌?chuàng)建智能車庫中AGV的工作環(huán)境模型,具體步驟包括:
步驟S11:對環(huán)境模型中的交通路網(wǎng)和AGV作如下處理:①AGV運行車道為單道雙向模式,且寬度方向僅能容納一臺AGV;②系統(tǒng)中的AGV在同一時間段內(nèi)只能接受一項存取車任務(wù),在其執(zhí)行任務(wù)期間,系統(tǒng)分配的其他任務(wù)則視為無效;③為避免與其他AGV發(fā)生碰撞事故,需為執(zhí)行任務(wù)的AGV設(shè)定一個安全行駛區(qū)域,該安全區(qū)域可由AGV車體幾何尺寸、運行速度以及運行車道幾何尺寸來確定;④在某時刻或某一時間段內(nèi),路網(wǎng)中的任一交叉路口和任一行駛路段都只允許一臺AGV使用;
步驟S12:利用AGV自帶的攝像頭、雷達(dá)傳感器、超聲波傳感器以及紅外線傳感器等采集AGV運行環(huán)境信息,上述信息包括AGV的起始車位、目標(biāo)車位、障礙物以及AGV待充電位置等;
步驟S13:以上述操作采集的環(huán)境信息作為建模數(shù)據(jù),采用拓?fù)浞▌?chuàng)建AGV在智能車庫中的工作環(huán)境模型。
進(jìn)一步地,所述步驟S2中,按照不同評價標(biāo)準(zhǔn),分別為每臺AGV和每項存取車任務(wù)設(shè)定優(yōu)先級,具體內(nèi)容包括:
步驟S21:對于系統(tǒng)中AGV的優(yōu)先級,則由車輛編號大小確定,且AGV優(yōu)先級高低次序與車輛編號大小成負(fù)相關(guān);
步驟S22:對于系統(tǒng)中存取車任務(wù)的優(yōu)先級,則由任務(wù)加載順序、任務(wù)輕重緩急和距離最短等評價標(biāo)準(zhǔn)綜合確定;
步驟S23:當(dāng)發(fā)生交叉路口沖突時,對于AGV通過沖突交叉路口的先后順序問題,則由AGV當(dāng)前優(yōu)先級和距離最短優(yōu)先級綜合確定;
步驟S24:系統(tǒng)還規(guī)定,正在執(zhí)行存取車任務(wù)的AGV的優(yōu)先級高于空閑AGV的優(yōu)先級;在AGV執(zhí)行任務(wù)期間,地面控制系統(tǒng)為其分配的新的存取車任務(wù)被視為無效。
進(jìn)一步地,所述步驟S23中,當(dāng)發(fā)生交叉路口沖突時,對于AGV通過沖突交叉路口的先后順序問題,則由AGV當(dāng)前優(yōu)先級和距離最短優(yōu)先級綜合確定的情況包括:
步驟231:當(dāng)兩臺AGV同時到達(dá)同一交叉路口時,系統(tǒng)首先對AGV優(yōu)先級進(jìn)行判斷,然后按照優(yōu)先級高低次序,來安排兩臺AGV通過交叉路口的先后順序。當(dāng)優(yōu)先級高的AGV通過交叉路口且與優(yōu)先級低的AGV保持一定的安全距離后,系統(tǒng)會呼叫優(yōu)先級低的AGV繼續(xù)執(zhí)行任務(wù);
步驟232:當(dāng)兩臺AGV是一前一后到達(dá)交叉路口,但兩者會在交叉路口出現(xiàn)沖突時,此時系統(tǒng)在判斷AGV優(yōu)先級的基礎(chǔ)上,還要根據(jù)兩臺AGV到交叉路口距離的長短來確定彼此通過路口的先后順序;
步驟233:當(dāng)優(yōu)先級相同的兩臺AGV同時到達(dá)交叉路口時,系統(tǒng)會根據(jù)兩臺AGV距離交叉路口的遠(yuǎn)近來決定其通過交叉路口的先后順序。
進(jìn)一步地,所述步驟S3中,采用Dijkstra算法為接受任務(wù)的AGV規(guī)劃最短可行路徑的關(guān)鍵在于,其必須按照步驟S2中的優(yōu)先級高低次序進(jìn)行。對于系統(tǒng)中任一項任務(wù)mi的函數(shù)可定義為:
mi(t)=(si,di,λi(t),Pi(t),qi)
式中,i表示任務(wù)編號;mi(t)表示t時刻系統(tǒng)分配的任務(wù);si表示任務(wù)mi的起點,di表示任務(wù)mi的終點,λi表示任務(wù)mi所經(jīng)過的一系列有序路段的集合,Pi(t)表示任務(wù)mi的優(yōu)先級,qi表示執(zhí)行任務(wù)mi的AGV。當(dāng)多AGV路徑規(guī)劃結(jié)束后,每項任務(wù)的上述參數(shù)一般固定不變,只有在發(fā)生沖突的情況下,某些優(yōu)先級低的AGV才需要動態(tài)更改其運行路線,以此來避免執(zhí)行任務(wù)的AGV間發(fā)生碰撞、死鎖沖突和增強(qiáng)AGV的柔性。
進(jìn)一步地,所述步驟S4中,排布可行路徑時間窗,具體步驟包括:
步驟S41:時間窗初始化。最短可行路徑確定后,在理想條件(無沖突)下,為接受任務(wù)的AGV排布出可行路徑時間窗。由步驟S3中任務(wù)mi找出的最短可行路徑λi,其是由一系列運行路段組成,可用有序路段集合表示,即λi={ej,ek,el,…,eq},ej,ek,el,…,eq∈E,其中,E表示路網(wǎng)中所有可行路段的集合,ek(k∈1,2,3,....,q)表示最短可行路徑中某一路段。
任務(wù)mi在路段ek上的時間窗函數(shù)可定義為:
Tw,ik=(qi,mi,r,tin,k,tout,k)
式中,r表示路段ek在可行路徑λi上的位置;tin,k表示車輛qi駛?cè)肼范蝒k的起始時間;tout,k表示車輛qi離開路段ek的時間。
對于路段ek的時間窗,可由下式計算得到:
tout,k=tin,k+ωi,k
式中,ωi,k表示AGV通過路段ek所花費的時間,可由下式計算得到:
式中,li,k表示路段ek的長度,v表示AGV的運行速度。
在實際應(yīng)用中,由于可行路徑的任意有序路段ek需要被AGV分時使用,因此,有序路段ek也是由一系列時間窗組成,可用有序向量表示。在有序向量中,向量維度與存取車任務(wù)數(shù)量相同,可隨時間變化而變化。如果任務(wù)mi在某時刻沒有使用路段ek,則可把在該路段的駛?cè)霑r間tin,k和駛出時間tout,k都設(shè)置為0。另外,由于任務(wù)mi的最短可行路徑是由一系列有序路段組成,而每條有序路段又對應(yīng)著一個時間窗,因此,任務(wù)mi也可認(rèn)為是由一系列時間窗組成,可用集合表示。
按照步驟S41中所給方程式,可為任務(wù)mi的最短可行路徑λi排布出如集合Di所示的時間窗分布。
步驟S42:時間窗更新。按照步驟S41排布出一條理想情況下的時間窗路徑后,然后檢查不同任務(wù)間可行路徑的時間窗是否存在重疊現(xiàn)象。
若無重疊現(xiàn)象,則任務(wù)mi的路徑規(guī)劃過程結(jié)束。如果當(dāng)前任務(wù)mi是當(dāng)前系統(tǒng)中優(yōu)先級最高的調(diào)度任務(wù)時,則將步驟S41規(guī)劃的可行路徑時間窗作為任務(wù)mi的最終時間窗,無需再次更新。
若有重疊部分,則說明當(dāng)前任務(wù)與其他任務(wù)規(guī)劃出的最短可行路徑上至少有一條路段是同時使用的。對于此種現(xiàn)象,則需要系統(tǒng)根據(jù)沖突類型,設(shè)計合理的沖突避障策略。
步驟S43:時間窗的安排。將可行路徑各路段對應(yīng)的無沖突時間窗按照一定的順序排列,即完成可行路徑的時間窗安排。需要注意的是,若某一路段ek存在多個任務(wù)的時間窗,則新加入任務(wù)在路段ek上的時間窗的進(jìn)入時間必須滿足條件:①駛?cè)朐撀范蔚臅r間必須大于或等于AGV從上一條路段的離開時間;②該路段的空閑時間窗的長度應(yīng)大于或等于AGV通過該路段所花費的時間。
按照步驟S3和步驟S4,通過循環(huán)迭代搜索,可依次為接受任務(wù)的AGV規(guī)劃出無沖突最短可行路徑時間窗。
進(jìn)一步地,所述步驟S4中,時間窗是指執(zhí)行存取車任務(wù)的AGV從開始進(jìn)入到離開某個交叉路口或某個路段的整個過程所花費的時間,其主要作用是對AGV已占用的交叉路口或行駛路段進(jìn)行標(biāo)記,以避免在該AGV占用的時間段內(nèi),被其他AGV使用而引發(fā)死鎖或碰撞沖突。
進(jìn)一步地,所述步驟S4中,地面控制系統(tǒng)會實時接收AGV在行使過程中上傳的位置、速度及運行狀態(tài)等信息,并根據(jù)這些信息,判斷AGV是否已經(jīng)離開某條路段或某個交叉路口,駛向下一路段或交叉路口。如果AGV已經(jīng)離開某條路段或某個交叉路口,則需從時間窗向量表中刪除AGV在該表中注冊的信息,從而釋放該路段或該交叉路口資源,供其他AGV使用。
進(jìn)一步地,所述步驟S5中,根據(jù)沖突類型不同,設(shè)計沖突解決策略,具體內(nèi)容包括:
多AGV存取車路徑規(guī)劃中出現(xiàn)的沖突一般有兩種,即交叉路口沖突和路徑?jīng)_突。
步驟S51:交叉路口沖突是指在某時刻有兩臺或兩臺以上的AGV因同時共用一個交叉路口而引發(fā)的沖突。對于該類沖突,系統(tǒng)一般采用等待策略來解決,即,系統(tǒng)將優(yōu)先級低的AGV申請使用的時間窗向后平移一段時間,直到優(yōu)先級高的AGV順利通過沖突交叉路口后,再申請使用該交叉路口,以此避免死鎖和碰撞沖突。當(dāng)多臺AGV同時到達(dá)某一交叉路口時,系統(tǒng)首先對各AGV優(yōu)先級進(jìn)行判斷,然后按照優(yōu)先級高低次序安排AGV通過交叉路口先后順序。
步驟S52:路徑?jīng)_突又可分為相向沖突和趕超沖突,其中,相向沖突又可分為可避免沖突和不可避免沖突。對于可等待避免沖突,系統(tǒng)可采用等待策略解決;對于不可避免沖突,可采用重新規(guī)劃路徑策略,該策略包括局部路徑規(guī)劃策略和全局路徑規(guī)劃策略;對于趕超沖突,可采用減速和等待策略來解決,也可根據(jù)實際需要,采用局部路徑規(guī)劃策略對可行路徑的沖突路段進(jìn)行重新規(guī)劃處理。
進(jìn)一步地,所述步驟S52中,相向沖突是指某一時間段內(nèi),在同一條路徑上相向運行的AGV間為爭奪路徑資源而引發(fā)的沖突。趕超沖突是指兩臺AGV同時在一條路徑上運行且后側(cè)AGV的運行速度高于前側(cè)AGV的運行速度,它們之間為爭奪路徑資源而引發(fā)的沖突。
進(jìn)一步地,所述步驟S52中,局部路徑規(guī)劃策略是指在不利用車庫交通路網(wǎng)中全部路段信息和在不改變最短可行路徑中無沖突路段的前提下,僅在與沖突路段相鄰的其他路段中,搜索出一條能替代沖突路段的其他路段,且該路段能保證在不影響最短可行路徑上其他時間窗分布的前提下,能保證接受任務(wù)的AGV順利達(dá)到目的地,完成指定的存取車任務(wù)。
進(jìn)一步地,所述步驟S52中,全局路徑規(guī)劃策略是指利用車庫交通路網(wǎng)中全部路段信息,重新為接受任務(wù)的AGV規(guī)劃出最短可行路徑。
進(jìn)一步地,所述步驟S52中,重新規(guī)劃路徑的具體實施步驟包括:
步驟S521:系統(tǒng)檢測多AGV間是否出現(xiàn)相向沖突中的不可避免沖突;
步驟S522:對出現(xiàn)不可避免沖突的路段進(jìn)行標(biāo)記,并調(diào)用路徑搜索算法重新規(guī)劃路徑;
步驟S523:對新搜索到的優(yōu)化路徑的時間窗向量表進(jìn)行循環(huán)更新,直到規(guī)劃出無沖突和時間最少的優(yōu)化路徑為止,算法搜索結(jié)束。如果算法經(jīng)過多次迭代搜索(為避免程序出現(xiàn)死循環(huán),程序循環(huán)搜索次數(shù)設(shè)置有最大限制)仍無法找到無沖突優(yōu)化路徑,則算法搜索過程結(jié)束,并把此任務(wù)加載到任務(wù)序列表中,等待系統(tǒng)下次任務(wù)調(diào)度分配。
進(jìn)一步地,所述步驟S6中,利用基于動態(tài)時間窗的泊車系統(tǒng)路徑規(guī)劃算法為AGV規(guī)劃無沖突最優(yōu)路徑,具體步驟包括:
步驟S61:初始化算法各參數(shù),建立集合N、集合Q、集合M、集合A、集合S和集合R,分別用于存儲系統(tǒng)中的AGV、接受任務(wù)的AGV、存取車任務(wù)請求指令、優(yōu)先級策略處理后的存取車任務(wù)及任務(wù)的起點和目標(biāo)點;
步驟S62:將集合M中的存取車請求指令加載到任務(wù)序列集合A中,并按照任務(wù)優(yōu)先級高低次序為其排序;
步驟S63:根據(jù)AGV當(dāng)前狀態(tài)信息判斷AGV工作狀態(tài),如空閑狀態(tài)和正在執(zhí)行任務(wù)狀態(tài),狀態(tài)可用0和1表示。如果工作環(huán)境中有空閑AGV存在,則系統(tǒng)會將任務(wù)序列集合A中優(yōu)先級最高的存取車任務(wù)分配給編號最小的空閑AGV,并在已知AGV起點位置、目標(biāo)點位置及工作環(huán)境等信息的前提下,調(diào)用Dijkstra算法,為AGV規(guī)劃出一條距離最短的優(yōu)化路徑,然后轉(zhuǎn)至步驟S64;反之,則任務(wù)調(diào)度停止;
步驟S64:計算AGV在優(yōu)化路徑上各路段的駛?cè)霑r間和駛出時間,按照步驟S41初始化各路段時間窗向量表,通過多次循環(huán)搜索,即可得到最短可行路徑的時間窗分布,然后轉(zhuǎn)至步驟S65;
步驟S65:對次優(yōu)任務(wù)的路徑進(jìn)行規(guī)劃,轉(zhuǎn)至步驟S63,判斷環(huán)境中否有空閑AGV可調(diào)用,若有,則系統(tǒng)先將編號僅次于優(yōu)先級最高的空閑AGV分配給次優(yōu)任務(wù),然后調(diào)用Dijkstra算法為次優(yōu)任務(wù)規(guī)劃出一條優(yōu)化路徑;反之,則暫停對該任務(wù)的調(diào)度,然后按照任務(wù)序列表次序依次對其他任務(wù)進(jìn)行調(diào)度;若無,則系統(tǒng)停止對后續(xù)任務(wù)調(diào)度;
步驟S66:計算AGV在次優(yōu)路徑上各路段的駛?cè)霑r間和駛出時間,更新各路段時間窗向量表,然后判斷時間窗向量表是否存在重疊。如果時間窗無重疊,則次優(yōu)任務(wù)的路徑規(guī)劃過程結(jié)束;反之,則需要檢測次優(yōu)任務(wù)的優(yōu)化路徑存在何種沖突,并根據(jù)沖突類型的不同,選用合適的沖突解決策略,如對于交叉路口沖突和相向沖突中的可避免沖突,可采用等待策略解決;對于相向沖突中的不可避免沖突,可采用重新規(guī)劃路徑策略解決;對于趕超沖突可采用減速和等待策略來解決,也可根據(jù)實際需要,采用局部路徑規(guī)劃策略對可行路徑的沖突路段進(jìn)行重新規(guī)劃處理;
步驟S67:次優(yōu)任務(wù)的路徑規(guī)劃結(jié)束后,轉(zhuǎn)至步驟S63,然后按照任務(wù)序列表次序重復(fù)上述操作,依次完成其他任務(wù)的路徑規(guī)劃。
進(jìn)一步地,所述步驟S63中,系統(tǒng)對AGV狀態(tài)信息的判斷是以AGV自身實時上傳的信息作為依據(jù),且AGV的空閑狀態(tài)用0表示,正在執(zhí)行任務(wù)狀態(tài)用1表示。
進(jìn)一步地,所述步驟S63中,在對系統(tǒng)分配的任務(wù)規(guī)劃最短可行路徑前,需先判斷系統(tǒng)中是否存在空閑AGV。若存在空閑AGV,系統(tǒng)才可對任務(wù)規(guī)劃可行路徑;否則,系統(tǒng)無法為任務(wù)規(guī)劃最短可行路徑。
進(jìn)一步地,所述步驟S63中,對任務(wù)最短可行路徑規(guī)劃與對接受該任務(wù)AGV的最短可行路徑規(guī)劃是一樣的。
進(jìn)一步地,所述步驟S65中,暫停任務(wù)調(diào)度分兩種情況,分別是:①系統(tǒng)無空閑AGV可調(diào)度使用,則系統(tǒng)會停止對后續(xù)任務(wù)調(diào)度;②系統(tǒng)中有空閑AGV存在,但系統(tǒng)無法為該任務(wù)規(guī)劃出無沖突可行路徑。此時,系統(tǒng)僅只暫停對該任務(wù)的調(diào)度,其并不影響對其他任務(wù)的調(diào)度。
進(jìn)一步地,所述步驟S66中,更新各路段時間窗向量表,判斷各路段時間窗窗向量表是否存在重疊現(xiàn)象可按照步驟S42和步驟S5操作完成。
進(jìn)一步地,所述步驟S66中,次優(yōu)任務(wù)最短可行路徑的時間窗排布可按照步驟S4計算得到。
進(jìn)一步地,所述步驟S66中,時間窗重疊問題,可按照步驟S5提供的策略解決。
有益效果
(1)可有效解決目前多AGV路徑規(guī)劃柔性差、易出現(xiàn)死鎖、碰撞沖突等問題;
(2)可在有效解決路徑?jīng)_突的前提下,為接受任務(wù)的AGV規(guī)劃出時間最短的優(yōu)化路徑;
(3)有助于實現(xiàn)停車設(shè)備的自動化管理和車輛的自動存取停放,有益于增強(qiáng)系統(tǒng)的安全性和可靠性,提高車庫停車設(shè)備和泊車位的利用率,降低人力成本、運營成本和設(shè)備成本等;
(4)可有效提高智能立體停車系統(tǒng)整體運行效率,降低社會人員存、取車等待時間。
附圖說明
圖1為基于時間窗的多AGV路徑規(guī)劃算法流程圖;
圖2為某時刻智能車庫中AGV的工作環(huán)境模型;
圖3為交叉路口沖突;
圖4為等待策略解決交叉路口時間窗沖突;
圖5為相向沖突;
圖6為等待策略解決路徑?jīng)_突;
圖7為趕超沖突;
具體實施方式
下面將結(jié)合附圖對本發(fā)明內(nèi)容進(jìn)行詳細(xì)說明,但不是對本發(fā)明的限定。
本發(fā)明提供的是一種基于動態(tài)時間窗的泊車系統(tǒng)路徑規(guī)劃方法,圖1所示為本發(fā)明算法實施流程圖,該流程圖描述了多AGV無沖突最優(yōu)路徑的求解過程,具體包括以下步驟:
步驟S1:采用拓?fù)浞▌?chuàng)建智能車庫中AGV的工作環(huán)境模型,具體步驟包括:
步驟S11:對環(huán)境模型中的交通路網(wǎng)和AGV作如下處理:①AGV運行車道為單道雙向模式,且寬度方向僅能容納一臺AGV;②系統(tǒng)中的AGV在同一時間段內(nèi)只能接受一項存取車任務(wù),在其執(zhí)行任務(wù)期間,系統(tǒng)分配的其他任務(wù)則視為無效;③為避免與其他AGV發(fā)生碰撞事故,需為執(zhí)行任務(wù)的AGV設(shè)定一個安全行駛區(qū)域,該安全區(qū)域可由AGV車體幾何尺寸、運行速度以及運行車道幾何尺寸來確定;④在某時刻或某一時間段內(nèi),路網(wǎng)中的任一交叉路口和任一行駛路段都只允許一臺AGV使用;
步驟S12:利用AGV自帶的攝像頭、雷達(dá)傳感器、超聲波傳感器以及紅外線傳感器等采集AGV運行環(huán)境信息,上述信息包括AGV的起始車位、目標(biāo)車位、障礙物以及AGV待充電位置等;
步驟S13:以上述操作采集的環(huán)境信息作為建模數(shù)據(jù),采用拓?fù)浞▌?chuàng)建AGV在智能車庫中的工作環(huán)境模型。
圖2所示為采用拓?fù)浞▌?chuàng)建的某時刻智能車庫中AGV工作環(huán)境模型圖,圖中黑色圓格表示占用泊車位,白色圓格表示空閑泊車位,P0表示車庫入口,PE(與交叉口C2通道重合,此處未標(biāo)出)表示車庫出口,P1~P15為車庫泊車位,可用于存放車輛,C1~C6表示車道交叉路口,AGV在此處可完成轉(zhuǎn)向及切換車道操作。
步驟S2:按照不同評價標(biāo)準(zhǔn),分別為每臺AGV和每項存取車任務(wù)設(shè)定優(yōu)先級,具體內(nèi)容包括:
步驟S21:對于系統(tǒng)中AGV的優(yōu)先級,則由車輛編號大小確定,且AGV優(yōu)先級高低次序與車輛編號大小成負(fù)相關(guān);
步驟S22:對于系統(tǒng)中存取車任務(wù)的優(yōu)先級,則由任務(wù)加載順序、任務(wù)輕重緩急和距離最短等評價標(biāo)準(zhǔn)綜合確定;
步驟S23:當(dāng)發(fā)生交叉路口沖突時,對于AGV通過沖突交叉路口的先后順序問題,則由AGV當(dāng)前優(yōu)先級和距離最短優(yōu)先級綜合確定;
步驟S24:系統(tǒng)還規(guī)定,正在執(zhí)行存取車任務(wù)的AGV的優(yōu)先級高于空閑AGV的優(yōu)先級;在AGV執(zhí)行任務(wù)期間,地面控制系統(tǒng)為其分配的新的存取車任務(wù)被視為無效。
進(jìn)一步地,所述步驟S23中,當(dāng)發(fā)生交叉路口沖突時,對于AGV通過沖突交叉路口的先后順序問題,則由AGV當(dāng)前優(yōu)先級和距離最短優(yōu)先級綜合確定的情況包括:
步驟231:當(dāng)兩臺AGV同時到達(dá)同一交叉路口時,系統(tǒng)首先對AGV優(yōu)先級進(jìn)行判斷,然后按照優(yōu)先級高低次序,來安排兩臺AGV通過交叉路口的先后順序。當(dāng)優(yōu)先級高的AGV通過交叉路口且與優(yōu)先級低的AGV保持一定的安全距離后,系統(tǒng)會呼叫優(yōu)先級低的AGV繼續(xù)執(zhí)行任務(wù);
步驟232:當(dāng)兩臺AGV是一前一后到達(dá)交叉路口,但兩者會在交叉路口出現(xiàn)沖突時,此時系統(tǒng)在判斷AGV優(yōu)先級的基礎(chǔ)上,還要根據(jù)兩臺AGV到交叉路口距離的長短來確定彼此通過路口的先后順序;
步驟233:當(dāng)優(yōu)先級相同的兩臺AGV同時到達(dá)交叉路口時,系統(tǒng)會根據(jù)兩臺AGV距離交叉路口的遠(yuǎn)近來決定其通過交叉路口的先后順序。
步驟S3:采用Dijkstra算法為接受任務(wù)的AGV規(guī)劃最短可行路徑的關(guān)鍵在于,其必須按照步驟S2中的優(yōu)先級高低次序進(jìn)行。對于系統(tǒng)中任一項任務(wù)mi的函數(shù)可定義為:
mi(t)=(si,di,λi(t),Pi(t),qi)
式中,i表示任務(wù)編號;mi(t)表示t時刻系統(tǒng)分配的任務(wù);si表示任務(wù)mi的起點,di表示任務(wù)mi的終點,λi表示任務(wù)mi所經(jīng)過的一系列有序路段的集合,Pi(t)表示任務(wù)mi的優(yōu)先級,qi表示執(zhí)行任務(wù)mi的AGV。當(dāng)多AGV路徑規(guī)劃結(jié)束后,每項任務(wù)的上述參數(shù)一般固定不變,只有在發(fā)生沖突的情況下,某些優(yōu)先級低的AGV才需要動態(tài)更改其運行路線,以此來避免執(zhí)行任務(wù)的AGV間發(fā)生碰撞、死鎖沖突。
步驟S4:排布可行路徑時間窗,具體步驟包括:
步驟S41:時間窗初始化。最短可行路徑確定后,在理想條件(無沖突)下,為接受任務(wù)的AGV排布出可行路徑時間窗。由步驟S3中任務(wù)mi找出的最短可行路徑λi,其是由一系列運行路段組成,可用有序路段集合表示,即λi={ej,ek,el,…,eq},ej,ek,el,…,eq∈E,其中,E表示路網(wǎng)中所有可行路段的集合,ek(k∈1,2,3,....,q)表示最短可行路徑中某一路段。
任務(wù)mi在路段ek上的時間窗函數(shù)可定義為:
Tw,ik=(qi,mi,r,tin,k,tout,k)
式中,r表示路段ek在可行路徑λi上的位置;tin,k表示車輛qi駛?cè)肼范蝒k的起始時間;tout,k表示車輛qi離開路段ek的時間。
對于路段ek的時間窗,可由下式計算得到:
tout,k=tin,k+ωi,k
式中,ωi,k表示AGV通過路段ek所花費的時間,可由下式計算得到:
式中,li,k表示路段ek的長度,v表示AGV的運行速度。
在實際應(yīng)用中,由于可行路徑的任意有序路段ek需要被AGV分時使用,因此,有序路段ek也是由一系列時間窗組成,可用有序向量表示。在有序向量中,向量維度與存取車任務(wù)數(shù)量相同,可隨時間變化而變化。如果任務(wù)mi在某時刻沒有使用路段ek,則可把在該路段的駛?cè)霑r間tin,k和駛出時間tout,k都設(shè)置為0。另外,由于任務(wù)mi的最短可行路徑是由一系列有序路段組成,而每條有序路段又對應(yīng)著一個時間窗,因此,任務(wù)mi也可認(rèn)為是由一系列時間窗組成,可用集合表示。
按照步驟S41中所給方程式,可為任務(wù)mi的最短可行路徑λi排布出如集合Di所示的時間窗分布。
步驟S42:時間窗更新。按照步驟S41排布出一條理想情況下的時間窗路徑后,然后檢查不同任務(wù)間可行路徑的時間窗是否存在重疊現(xiàn)象。
若無重疊現(xiàn)象,則任務(wù)mi的路徑規(guī)劃過程結(jié)束。如果當(dāng)前任務(wù)mi是當(dāng)前系統(tǒng)中優(yōu)先級最高的調(diào)度任務(wù)時,則將步驟S41規(guī)劃的可行路徑時間窗作為任務(wù)mi的最終時間窗,無需再次更新。
若有重疊部分,則說明當(dāng)前任務(wù)與其他任務(wù)規(guī)劃出的最短可行路徑上至少有一條路段是同時使用的。對于此種現(xiàn)象,則需要系統(tǒng)根據(jù)沖突類型,設(shè)計合理的沖突避障策略。
步驟S43:時間窗的安排。將可行路徑各路段對應(yīng)的無沖突時間窗按照一定的順序排列,即完成可行路徑的時間窗安排。需要注意的是,若某一路段ek存在多個任務(wù)的時間窗,則新加入任務(wù)在路段ek上的時間窗的進(jìn)入時間必須滿足條件:①駛?cè)朐撀范蔚臅r間必須大于或等于AGV從上一條路段的離開時間;②該路段的空閑時間窗的長度應(yīng)大于或等于AGV通過該路段所花費的時間。
按照步驟S3和步驟S4,通過循環(huán)迭代搜索,可依次為接受任務(wù)的AGV規(guī)劃出無沖突最短可行路徑時間窗。
進(jìn)一步地,所述步驟S4中,時間窗是指執(zhí)行存取車任務(wù)的AGV從開始進(jìn)入到離開某個交叉路口或某個路段的整個過程所花費的時間,其主要作用是對AGV已占用的交叉路口或行駛路段進(jìn)行標(biāo)記,以避免在該AGV占用的時間段內(nèi),被其他AGV使用而引發(fā)死鎖或碰撞沖突。
進(jìn)一步地,所述步驟S4中,地面控制系統(tǒng)會實時接收AGV在行使過程中上傳的位置、速度及運行狀態(tài)等信息,并根據(jù)這些信息,判斷AGV是否已經(jīng)離開某條路段或某個交叉路口,駛向下一路段或交叉路口。如果AGV已經(jīng)離開某條路段或某個交叉路口,則需從時間窗向量表中刪除AGV在該表中注冊的信息,從而釋放該路段或該交叉路口資源,供其他AGV使用。
步驟S5:根據(jù)沖突類型不同,設(shè)計沖突解決策略,具體內(nèi)容包括:
步驟S51:交叉路口沖突是指在某時刻有兩臺或兩臺以上的AGV因同時共用一個交叉路口而引發(fā)的沖突,具體如圖3所示。對于該類沖突,系統(tǒng)一般采用等待策略來解決,即,系統(tǒng)將優(yōu)先級低的AGV申請使用的時間窗向后平移一段時間,直到優(yōu)先級高的AGV順利通過沖突交叉路口后,再申請使用該交叉路口,以此避免死鎖和碰撞沖突。當(dāng)多臺AGV同時到達(dá)某一交叉路口時,系統(tǒng)首先對各AGV優(yōu)先級進(jìn)行判斷,然后按照優(yōu)先級高低次序安排AGV通過交叉路口先后順序。
圖4所示為采用等待策略解決交叉路口時間窗沖突前后對比圖,圖中白色、黑色和灰色矩形框分別表示AGV1注冊使用的時間窗、AGV2預(yù)約申請使用的時間窗和兩AGV的沖突時間窗。為避免AGV2在執(zhí)行任務(wù)期間與AGV1發(fā)生沖突,系統(tǒng)會采用等待策略將AGV2在交叉路口i上申請的時間窗向后平移一個合理的時間,即讓AGV2在進(jìn)入交叉路口i前等待一段時間,直到交叉路口i被釋放為止,具體如圖b所示。當(dāng)AGV2順利通過交叉路口i時,系統(tǒng)會自動將AGV2在交叉路口i的注冊信息及時清除掉,從而釋放該交叉路口資源,以方便其他AGV申請使用。
步驟S52:路徑?jīng)_突又可分為趕超沖突和相向沖突,其中,相向沖突又可分為可避免沖突和不可避免沖突。對于可等待避免沖突,系統(tǒng)可采用等待策略解決;對于不可避免沖突,可采用重新規(guī)劃路徑策略,該策略包括局部路徑規(guī)劃策略和全局路徑規(guī)劃策略;對于趕超沖突,可采用減速和等待策略來解決,也可根據(jù)實際需要,采用局部路徑規(guī)劃策略對可行路徑的沖突路段進(jìn)行重新規(guī)劃處理。
進(jìn)一步地,所述步驟S52中,相向沖突是指某一時間段內(nèi),在同一條路徑上相向運行的AGV間為爭奪路徑資源而引發(fā)的沖突,具體如圖5所示。趕超沖突是指兩臺AGV同時在一條路徑上運行且后側(cè)AGV的運行速度高于前側(cè)AGV的運行速度,它們之間為爭奪路徑資源而引發(fā)的沖突,具體如圖7所示。
圖5所示為路徑?jīng)_突中的相向沖突,圖5中(a)圖所示為可等待避免沖突,對于此類沖突,系統(tǒng)可采用等待策略解決,即,將優(yōu)先級低的AGV2申請使用的時間窗向后平移一段時間,直到優(yōu)先級高的AGV1順利通過交叉路口i后,再申請使用該交叉路口,以此避免與AGV1發(fā)生死鎖和碰撞沖突,調(diào)整后的時間窗如圖6中的(b)圖所示,圖6所示為等待策略解決路徑?jīng)_突。圖5中(b)圖所示為不可避免沖突,對于此類沖突,最有效的解決策略是為AGV2重新規(guī)劃新的可行路徑。圖7所示為趕超沖突,由圖分析可知,AGV1和AGV2間只有在兩個條件(即AGV1的運行速度高于AGV2和AGV1在趕超AGV2之前兩車依然保持同向運行)同時滿足的情況下,趕超沖突才會發(fā)生。對于趕超沖突,如果系統(tǒng)不采取任何控制措施,在同一條路徑上運行的兩臺AGV間必會發(fā)生追尾事故,因此,針對該類沖突,可采用減速和等待策略來解決,也可根據(jù)實際需要,采用局部路徑規(guī)劃策略對可行路徑的沖突路段進(jìn)行重新規(guī)劃處理。
進(jìn)一步地,所述步驟S52中,局部路徑規(guī)劃策略是指在不利用車庫交通路網(wǎng)中全部路段信息和在不改變最短可行路徑中無沖突路段的前提下,僅在與沖突路段相鄰的其他路段中,搜索出一條能替代沖突路段的其他路段,且該路段能保證在不影響最短可行路徑上其他時間窗分布的前提下,能保證接受任務(wù)的AGV順利達(dá)到目的地,完成指定的存取車任務(wù)。
進(jìn)一步地,所述步驟S52中,全局路徑規(guī)劃策略是指利用車庫交通路網(wǎng)中全部路段信息,重新為接受任務(wù)的AGV規(guī)劃出最短可行路徑。
進(jìn)一步地,所述步驟S52中,重新規(guī)劃路徑的具體實施步驟包括:
步驟S521:系統(tǒng)檢測多AGV間是否出現(xiàn)相向沖突中的不可避免沖突;
步驟S522:對出現(xiàn)不可避免沖突的路段進(jìn)行標(biāo)記,并調(diào)用路徑搜索算法重新規(guī)劃路徑;
步驟S523:對新搜索到的優(yōu)化路徑的時間窗向量表進(jìn)行循環(huán)更新,直到規(guī)劃出無沖突和時間最少的優(yōu)化路徑為止,算法搜索結(jié)束。如果算法經(jīng)過多次迭代搜索(為避免程序出現(xiàn)死循環(huán),程序循環(huán)搜索次數(shù)設(shè)置有最大限制)仍無法找到無沖突優(yōu)化路徑,則算法搜索過程結(jié)束,并把此任務(wù)加載到任務(wù)序列表中,等待系統(tǒng)下次任務(wù)調(diào)度分配。
步驟S6:利用基于動態(tài)時間窗的泊車系統(tǒng)路徑規(guī)劃算法為AGV規(guī)劃無沖突最優(yōu)路徑,具體步驟包括:
假設(shè)系統(tǒng)有n臺AGV,當(dāng)前分配任務(wù)有m項,且m項任務(wù)需指派m臺AGV完成。對于系統(tǒng)中的AGV、接受任務(wù)的AGV、存取車任務(wù)、優(yōu)先級策略處理后的存取車任務(wù)以及任務(wù)的起點和目標(biāo)點可分別用集合N、集合Q、集合M、集合A、集合S和集合R表示,即N={n1,n2,n3,…,nn},Q={q1,q2,q3,…,qm},M={m1,m2,m3,…,mm},A={a1,a2,a3,...,am},S={s1,s2,s3,…,sm},R={r1,r2,r3,…,rm}。
步驟S61:初始化算法各參數(shù),建立集合N、集合Q、集合M、集合A、集合S和集合R,分別用于存儲系統(tǒng)中的AGV、接受任務(wù)的AGV、存取車任務(wù)請求指令、優(yōu)先級策略處理后的存取車任務(wù)及任務(wù)的起點和目標(biāo)點;
步驟S62:將集合M中的存取車請求指令加載到任務(wù)序列集合A中,并按照任務(wù)優(yōu)先級高低次序為其排序,處理后的序列集合A={a1,a2,a3,...,am},a1,a2,a3,...,am表示按照優(yōu)先級策略處理后的任務(wù)排序,其中,任務(wù)a1優(yōu)先級最高,任務(wù)am優(yōu)先級最低;
步驟S63:根據(jù)AGV當(dāng)前狀態(tài)信息判斷AGV工作狀態(tài),如空閑狀態(tài)和正在執(zhí)行任務(wù)狀態(tài),狀態(tài)可用0和1表示。如果工作環(huán)境中有空閑AGV存在,則系統(tǒng)會將任務(wù)序列集合A中優(yōu)先級最高的存取車任務(wù)a1分配給編號為q1(q1為集合Q中優(yōu)先級最高的AGV)的空閑AGV,并在已知AGV起點位置s1、目標(biāo)點位置r1及工作環(huán)境等信息的前提下,調(diào)用Dijkstra算法,為編號為q1的AGV規(guī)劃出一條距離最短的優(yōu)化路徑(該路徑可用有序路段集合λ1表示,即λ1={ej,ek,el,…,eq},ej,ek,el,…,eq∈E1,其中,E1表示優(yōu)化路徑中所有可行路段集合),然后轉(zhuǎn)至步驟S64;反之,則任務(wù)調(diào)度停止;
步驟S64:計算AGV(編號為q1)在優(yōu)化路徑上各路段的駛?cè)霑r間和駛出時間,按照步驟S41初始化各路段時間窗向量表,通過多次循環(huán)搜索,即可得到最短可行路徑的時間窗分布,可用集合表示,然后轉(zhuǎn)至步驟S65;
步驟S65:對次優(yōu)任務(wù)a2的路徑進(jìn)行規(guī)劃,轉(zhuǎn)至步驟S63,判斷環(huán)境中否有空閑AGV可調(diào)用,若有,則系統(tǒng)先將編號為q2的空閑AGV分配給次優(yōu)任務(wù)a2,然后調(diào)用Dijkstra算法為任務(wù)a2規(guī)劃出一條優(yōu)化路徑;反之,則暫停對該任務(wù)的調(diào)度,然后按照任務(wù)序列表次序依次對其他任務(wù)進(jìn)行調(diào)度;若無,則系統(tǒng)停止對后續(xù)任務(wù)調(diào)度;
步驟S66:計算AGV(編號為q2)在次優(yōu)路徑上各路段的駛?cè)霑r間和駛出時間,更新各路段時間窗向量表,然后判斷時間窗向量表是否存在重疊。如果時間窗無重疊,則次優(yōu)任務(wù)a2的路徑規(guī)劃過程結(jié)束;反之,則需要檢測次優(yōu)任務(wù)a2的優(yōu)化路徑存在何種沖突,并根據(jù)沖突類型的不同,選用合適的沖突解決策略,如對于交叉路口沖突和相向沖突中的可避免沖突,可采用等待策略解決;對于相向沖突中的不可避免沖突,可采用重新規(guī)劃路徑策略解決;對于趕超沖突可采用減速和等待策略來解決,也可根據(jù)實際需要,采用局部路徑規(guī)劃策略對可行路徑的沖突路段進(jìn)行重新規(guī)劃處理;
步驟S67:次優(yōu)任務(wù)a2的路徑規(guī)劃結(jié)束后,轉(zhuǎn)至步驟S63,然后按照任務(wù)序列表次序重復(fù)上述操作,依次完成其他任務(wù)的路徑規(guī)劃。
進(jìn)一步地,所述步驟S63中,系統(tǒng)對AGV狀態(tài)信息的判斷是以AGV自身實時上傳的信息作為依據(jù),且AGV的空閑狀態(tài)用0表示,正在執(zhí)行任務(wù)狀態(tài)用1表示。
進(jìn)一步地,所述步驟S63中,在對系統(tǒng)分配的任務(wù)規(guī)劃最短可行路徑前,需先判斷系統(tǒng)中是否存在空閑AGV。若存在空閑AGV,系統(tǒng)才可對任務(wù)規(guī)劃可行路徑;否則,系統(tǒng)無法為任務(wù)規(guī)劃最短可行路徑。
進(jìn)一步地,所述步驟S63中,對任務(wù)最短可行路徑規(guī)劃與對接受該任務(wù)AGV的最短可行路徑規(guī)劃是一樣的。
進(jìn)一步地,所述步驟S65中,暫停任務(wù)調(diào)度分兩種情況,分別是:①系統(tǒng)無空閑AGV可調(diào)度使用,則系統(tǒng)會停止對后續(xù)任務(wù)調(diào)度;②系統(tǒng)中有空閑AGV存在,但系統(tǒng)無法為該任務(wù)規(guī)劃出無沖突可行路徑。此時,系統(tǒng)僅只暫停對該任務(wù)的調(diào)度,其并不影響對其他任務(wù)的調(diào)度。
進(jìn)一步地,所述步驟S66中,更新各路段時間窗向量表,判斷各路段時間窗窗向量表是否存在重疊現(xiàn)象可按照步驟S42和步驟S5操作完成。
進(jìn)一步地,所述步驟S66中,次優(yōu)任務(wù)最短可行路徑的時間窗排布可按照步驟S4計算得到。
進(jìn)一步地,所述步驟S66中,時間窗重疊問題,可按照步驟S5提供的策略解決。
以上所述即為結(jié)合附圖對本發(fā)明較佳實施方式的示例性描述,而本發(fā)明具體實現(xiàn)并不受上述方式限制,任何本領(lǐng)域技術(shù)人員在不脫離本發(fā)明的精神和范圍內(nèi),都可以利用上述揭示的方法和技術(shù)內(nèi)容對本發(fā)明技術(shù)方案做出可能的變動和修改,因此,凡是未脫離本發(fā)明技術(shù)方案的內(nèi)容,依據(jù)本發(fā)明的技術(shù)實質(zhì)對以上實施例所作的任何簡單修改、等同變化及修飾,均屬于本發(fā)明技術(shù)方案的保護(hù)范圍。