本發(fā)明涉及工業(yè)自動化的自動輸送裝備和調度領域,具體涉及一種基于單雙向混合路徑的多agv調度系統(tǒng)。
背景技術:
自動導引運輸車(automatedguidedvehicle),是指具備自動引導裝置,能沿規(guī)定路徑行駛,具備自動化物料搬運功能的運輸車,是實現智慧車間和推進工業(yè)4.0的關鍵設備。agvs系統(tǒng)由多臺agv及主控制系統(tǒng)調度軟件組成,是一種可根據任務變更路徑的物料搬運系統(tǒng),提高生產的柔性和生產效率。廣泛應用于汽車制造、機場搬運、鋰電池生產等物料搬運場所。
實際生產系統(tǒng)中agv調度系統(tǒng)廣泛采用單向引導路徑網絡布局,在單向引導路徑中每條路徑的方向是固定的,這樣設計降低了系統(tǒng)發(fā)生堵塞和死鎖的可能性。然而由于單向引導路徑的每條路徑方向固定,使agv行駛距離增大,降低了系統(tǒng)的靈活性?,F有的agv調度系統(tǒng),這種調度系統(tǒng)即為單向引導路徑網絡布局,這種控制系統(tǒng)關系清晰,易于實現,但是系統(tǒng)的柔性和故障處理的魯棒性不佳,同時增加了agv行駛距離,一般只能用于小規(guī)模的agv系統(tǒng)。
技術實現要素:
為了克服現有技術存在的缺點與不足,本發(fā)明提供一種基于單雙向混合路徑的多agv調度系統(tǒng)。
本發(fā)明采用如下技術方案:
本發(fā)明單雙向引導路徑網絡布局中,單向邊是指改邊只能從指定端進入,從另一端離開,雙向邊則可以從任何一端進入,路徑節(jié)點是指每條邊的相交點。本發(fā)明對網絡布局的要求是:所有路徑節(jié)點最多只存在一條雙向邊與之相連,即不存在兩條雙向邊相鄰的情況,雙向邊只能跟單向邊相鄰,單向邊可以存在相鄰情況。引入rfid標簽定位,對系統(tǒng)中所有agv的位置進行監(jiān)控,并反饋至集中式主控主控制系統(tǒng),由主控制系統(tǒng)對系統(tǒng)中所有設備進行統(tǒng)一調度。利用兩階段動態(tài)規(guī)劃策略:離線階段——通過agv調度系統(tǒng)結合現場實際情況實時對多agv生成離線路徑,在線階段——agv實時反饋位置信息,通過點邊防沖突算法避免多agv之間的沖突。每臺agv擁有一定的自治能力,能夠完成巡線行駛、移載裝置作業(yè)、故障報警等事件的處理。該系統(tǒng)對agv單機的設計要求不高,且每臺agv與調度系統(tǒng)之間的通訊量小。該系統(tǒng)具有故障處理魯棒性強、靈活性高、系統(tǒng)穩(wěn)定、適用于空間狹小的車間的優(yōu)點。
一種基于單雙向混合路徑的多agv調度系統(tǒng),包括主控制系統(tǒng)、多條引導軌道及多個agv小車,
所述每條引導軌道兩端各設置一個rfid標簽作為標識卡,并設置不同編號寫入主控制系統(tǒng)中,按照agv行駛方向,確認引導軌道上的第一張為開始標識卡,第二張為結束標識卡;
所述引導軌道與引導軌道的連接點稱為路徑節(jié)點,每個路徑節(jié)點設置rfid標簽,且具有相同編號,所述引導軌道包括雙向引導軌道及單向引導軌道,所述每個路徑節(jié)點只與一條雙向引導軌道連接;
每個路徑節(jié)點設置的相同編號的rfid標簽作為執(zhí)行卡,agv小車讀取到執(zhí)行卡時,則執(zhí)行主控制系統(tǒng)發(fā)送的左轉、右轉、直行或后退命令;
在各站點放置編號不同的rfid標簽作為站點卡,agv小車讀取到站點卡,則停止,所述站點即為停止點;
所述agv小車底部設置rfid閱讀器,用于讀取引導軌道上各rfid標簽信息及相應的編號發(fā)送主控制系統(tǒng),主控制系統(tǒng)根據任務分配,確定起點及終點,然后通過a*算法計算出離線路徑節(jié)點信息,并將路徑節(jié)點信息轉換成每張rfid標簽對應的命令信息發(fā)送給agv小車,agv小車讀取到引導軌道兩端的rfid卡時,將其相應編號存入agv小車,當agv小車讀取到執(zhí)行卡時,執(zhí)行上次存入agv小車的rfid標簽卡所對應的命令;
在線階段,agv小車實時發(fā)送讀取到的rfid標簽信息給主控制系統(tǒng),主控制系統(tǒng)根據點邊防沖突算法預防多agv小車之間的沖突。
所述路徑節(jié)點信息轉換成每張rfid標簽對應的命令信息發(fā)送給agv小車,具體包括如下步驟:
(1)根據實際的引導軌道連接及agv小車的起點及終點,設置有向圖模型,確定模型與實際軌道連接的上下左右方向一致,令n從0開始;
(2)取路徑節(jié)點信息中的第n和n+1個路徑節(jié)點組成的始發(fā)邊與第n+1和n+2個節(jié)點組成的到達邊進行對比,判斷從始發(fā)邊到到達邊應該左轉還是右轉還是直行,得到agv小車在第n和n+1個節(jié)點組成的邊的結束標識卡對應的命令,繼續(xù)執(zhí)行第3步驟;
(3)將n增加1,繼續(xù)執(zhí)行第2步驟。
所述基于點邊防沖突算法的多agv沖突預防方法,包括如下步驟:
(1)根據有向圖模型,在主控制系統(tǒng)上建立每個節(jié)點和每條雙向邊的agv小車等待隊列;
(2)agv小車讀取到rfid標簽時,將卡號信息發(fā)送給主控制系統(tǒng),如果讀取到的是開始標識卡則執(zhí)行第6步驟,讀取到的是結束標識卡則執(zhí)行第3步驟;
(3)若該agv小車將要去的下一條邊為雙向邊,則執(zhí)行第4步驟,否則執(zhí)行第5步驟;
(4)主控制系統(tǒng)查詢與該結束標識卡相鄰節(jié)點的agv等待隊列,同時查詢下一條邊的agv等待隊列,如果該節(jié)點和該邊的agv等待隊列中都沒有agv小車,則將該agv小車添加到該節(jié)點和該邊的agv等待隊列中,主控制系統(tǒng)不發(fā)送任何指令,該agv繼續(xù)前進,否則主控制系統(tǒng)發(fā)送指令讓該agv立馬停止,將該agv添加到該節(jié)點和該邊的agv等待隊列中,然后執(zhí)行第2步驟;
(5)主控制系統(tǒng)查詢與該結束標識卡相鄰節(jié)點的agv等待隊列,如果該節(jié)點的agv等待隊列中沒有agv小車,則主控制系統(tǒng)不發(fā)送任何指令,該agv繼續(xù)前進,將該agv小車添加到該節(jié)點和該邊的agv等待隊列中,否則主控制系統(tǒng)發(fā)送指令讓該agv立馬停止,將該agv添加到該節(jié)點和該邊的agv等待隊列中,然后執(zhí)行第2步驟;
(6)若該agv經過的上一條邊為雙向邊,則執(zhí)行第7步驟,否則執(zhí)行第8步驟;
(7)解除該agv小車對該節(jié)點和該邊的占用,在該節(jié)點和該邊的agv等待隊列中刪除該agv,執(zhí)行第9步驟;
(8)解除該agv小車對該節(jié)點的占用,在該節(jié)點的agv等待隊列中刪除該agv,執(zhí)行第10步驟;
(9)查詢該節(jié)點的agv等待隊列中的第一個agv是否還存在其他雙向邊的agv等待隊列中,如果存在且不排在等待隊列中的第一位,則該agv小車繼續(xù)等待,否則主控制系統(tǒng)發(fā)送啟動命令給該agv小車;同時查詢該邊的agv等待隊列中的第一個agv是否還存在其他節(jié)點的agv等待隊列中,如果存在且不排在等待隊列中的第一位,則該agv小車繼續(xù)等待,否則主控制系統(tǒng)發(fā)送啟動命令給該agv小車,然后執(zhí)行第2步驟;
(10)查詢該節(jié)點的agv等待隊列中的第一個agv是否還存在其他雙向邊的agv等待隊列中,如果存在且不排在等待隊列中的第一位,則該agv小車繼續(xù)等待,否則主控制系統(tǒng)發(fā)送啟動命令給該agv小車,然后執(zhí)行第2步驟。
所述站點設置上料區(qū)、卸料區(qū)及充電區(qū)。
所述主控制系統(tǒng)包括無線接收模塊,調度模塊及無線發(fā)送模塊。
路徑節(jié)點信息轉換成每張rfid標簽對應的命令信息發(fā)送給agv小車,具體轉換步驟為:
(1)令n為0,(n)x表示第n個節(jié)點的x坐標,(n)y表示第n個節(jié)點的y坐標,繼續(xù)執(zhí)行第2步驟;
(2)比較第n和n+1個節(jié)點,若(n)x=(n+1)x,則執(zhí)行第3步驟,若(n)y=(n+1)y,則執(zhí)行第6步驟;
(3)若(n)y>(n+1)y,則執(zhí)行第4步驟,否則執(zhí)行第5步驟;
(4)若(n+1)x=(n+2)x,則第n和n+1節(jié)點組成的邊的結束標識卡對應命令為直行;若(n+1)y=(n+2)y,且(n+1)x>(n+2)x,則第n和n+1節(jié)點組成的邊的結束標識卡對應命令為左轉,若(n+1)y=(n+2)y,且(n+1)x<(n+2)x,則第n和n+1節(jié)點組成的邊的結束標識卡對應命令為右轉,繼續(xù)執(zhí)行第9步驟;
(5)若(n+1)x=(n+2)x,則第n和n+1節(jié)點組成的邊的結束標識卡對應命令為直行;若(n+1)y=(n+2)y,且(n+1)x>(n+2)x,則第n和n+1節(jié)點組成的邊的結束標識卡對應命令為右轉,若(n+1)y=(n+2)y,且(n+1)x<(n+2)x,則第n和n+1節(jié)點組成的邊的結束標識卡對應命令為左轉,繼續(xù)執(zhí)行第9步驟;
(6)若(n)x>(n+1)x,則執(zhí)行第8步驟,否則執(zhí)行第7步驟;
(7)若(n+1)y=(n+2)y,則第n和n+1節(jié)點組成的邊的結束標識卡對應命令為直行;若(n+1)x=(n+2)x,且(n+1)y>(n+2)y,則第n和n+1節(jié)點組成的邊的結束標識卡對應命令為左轉,若(n+1)x=(n+2)x,且(n+1)y<(n+2)y,則第n和n+1節(jié)點組成的邊的結束標識卡對應命令為右轉,繼續(xù)執(zhí)行第9步驟;
(8)若(n+1)y=(n+2)y,則第n和n+1節(jié)點組成的邊的結束標識卡對應命令為直行;若(n+1)x=(n+2)x,且(n+1)y>(n+2)y,則第n和n+1節(jié)點組成的邊的結束標識卡對應命令為右轉,若(n+1)x=(n+2)x,且(n+1)y<(n+2)y,則第n和n+1節(jié)點組成的邊的結束標識卡對應命令為左轉,繼續(xù)執(zhí)行第9步驟;
(9)若n為路徑節(jié)點數減2,則停止,否則n加1后繼續(xù)執(zhí)行第2步驟。
本發(fā)明的有益效果:
(1)傳統(tǒng)調度系統(tǒng)對單向引導軌跡支持比較好,由于單向引導軌跡的每條路徑方向固定,使agv行駛距離增加,降低了系統(tǒng)的靈活性。本發(fā)明提出基于單雙向混合路徑的調度系統(tǒng),采用點邊防沖突算法解決了多agv之間的沖突問題,提升了系統(tǒng)的靈活性;
(2)本發(fā)明提出一種新的rfid布置方式,使agv能夠實現直角轉彎,降低了agv轉彎需要的空間,適用于空間狹小的車間;
(3)提出的調度系統(tǒng)對agv單機的設計要求不高,降低了開發(fā)成本。agv小車可執(zhí)行離線命令進行巡線行駛,agv小車只需向主控制系統(tǒng)層反饋位置信息,減少了系統(tǒng)無線通訊層的負擔,增強了系統(tǒng)的可擴展性;
(4)容錯性,主控制系統(tǒng)層通過保存agv小車路徑信息和標識卡分布信息,便可知道agv小車從起點到終點會讀取到的標識卡,如果agv小車受干擾丟失讀卡信號,主控制系統(tǒng)層可進行自動補全,這樣便不會對點邊防沖突系統(tǒng)產生影響。
附圖說明
圖1是本發(fā)明實施例的引導軌道連接圖;
圖2是本發(fā)明的a*算法流程圖;
圖3是本發(fā)明的點邊防沖突算法流程圖。
具體實施方式
下面結合實施例及附圖,對本發(fā)明作進一步地詳細說明,但本發(fā)明的實施方式不限于此。
實施例
如圖1所示,一種基于單雙向混合路徑的多agv調度系統(tǒng),包括主控制系統(tǒng)、多條引導軌道及多個agv小車,所述引導軌道與引導軌道的連接點為路徑節(jié)點,圖1中引導軌道為磁帶軌道,所述主控制系統(tǒng)包括無線接收模塊、調度模塊及無線發(fā)送模塊。
每條引導軌道兩端各設置一個rfid標簽作為標識卡,并設置不同編號寫入主控制系統(tǒng)中,按照agv行駛方向,確認引導軌道上的第一張rfid標簽為開始標識卡,第二張rfid標簽為結束標識卡;
所述引導軌道與引導軌道的連接點稱為路徑節(jié)點,每個路徑節(jié)點設置rfid標簽,且具有相同編號,一定與引導軌道兩端的標識卡的編號不同,所述引導軌道包括雙向引導軌道及單向引導軌道,所述每個路徑節(jié)點只與一條雙向引導軌道連接,即不存在兩條雙向邊連接的情況。
每個路徑節(jié)點設置的相同編號的rfid標簽作為執(zhí)行卡,agv小車讀取到執(zhí)行卡時,則執(zhí)行主控制系統(tǒng)發(fā)送的左轉、右轉、直行或后退命令;
在各站點放置編號不同的rfid標簽作為站點卡,agv小車讀取到站點卡,則停止,所述站點即為停止點,所述各站點設置上料區(qū)、卸料區(qū)及充電區(qū)等等。
如圖1所示,本實施例中站點均設置在雙向邊,標識卡1及標識卡2所在邊為單向邊,標識卡1為開始標識卡,標識卡2為結束標識卡,標識卡3及標識卡4所在邊為雙向邊,所述標識卡5、7、8、9、10所標識的地方為站點,agv小車讀取到相應站點卡則立刻停止,標識卡6為執(zhí)行卡,設置在路徑節(jié)點上,agv小車讀取到執(zhí)行卡信息立刻執(zhí)行上次讀取到的rfid標簽對應的命令。
在調度模塊工作之前,根據實際的小車運動軌跡,將站點卡、節(jié)點卡及其與邊的對應關系,建立有向圖模型。
如圖2所示,在調度模塊使用時,agv小車設置rfid標簽閱讀器,讀取到標識卡,主控制系統(tǒng)確定agv小車所在位置,根據任務分配確定agv小車的終點,通過通過a*算法計算出離線路徑節(jié)點信息,并將路徑節(jié)點信息轉換成每張rfid標簽對應的命令信息發(fā)送給agv小車,具體為:
(1)對現場引導軌跡建立有向圖模型,得到有向圖鄰接矩陣,然后執(zhí)行第2步驟;
(2)把起點a放進open列表中,繼續(xù)執(zhí)行第3步驟。
(3)在鄰接矩陣中尋找從該節(jié)點可到達的節(jié)點,跳過在close列表中的節(jié)點,若這些節(jié)點已經在open列表中,則執(zhí)行第5步驟,否則執(zhí)行第4步驟;
(4)將上述節(jié)點加入open列表中,計算上述每個可達節(jié)點到終點的歐幾里德距離作為h值,h(n)=sqrt((dx-nx)2+(dy-ny)2),計算起點到上述每個可達節(jié)點的g值,則上述每個可達節(jié)點的權值為,f(n)=g(n)+h(n),該節(jié)點作為上述節(jié)點的父節(jié)點,從open列表中刪除該節(jié)點,將該節(jié)點加入close列表,然后執(zhí)行第6步驟;
(5)計算上述每個可達節(jié)點到終點的歐幾里德距離作為h值,h(n)=sqrt((dx-nx)2+(dy-ny)2),計算起點到上述每個可達節(jié)點的g值,則上述每個可達節(jié)點的權值為,f(n)=g(n)+h(n),若現在權值小于原來權值,則將該節(jié)點作為上述節(jié)點的父節(jié)點,更新權值,否則不執(zhí)行任何動作,然后執(zhí)行第6步驟;
(6)在open列表中尋找f值最低的節(jié)點,若該節(jié)點為終點,則結束算法,否則將該節(jié)點從open列表中刪除,然后再加入到close列表中,然后執(zhí)行第3步驟。
所述路徑節(jié)點信息轉換成每張rfid標簽對應的命令信息發(fā)送給agv小車,包括如下步驟:
(1)令n為0,(n)x表示第n個節(jié)點的x坐標,(n)y表示第n個節(jié)點的y坐標,繼續(xù)執(zhí)行第2步驟;
(2)比較第n和n+1個節(jié)點,若(n)x=(n+1)x,則執(zhí)行第3步驟,若(n)y=(n+1)y,則執(zhí)行第6步驟;
(3)若(n)y>(n+1)y,則執(zhí)行第4步驟,否則執(zhí)行第5步驟;
(4)若(n+1)x=(n+2)x,則第n和n+1節(jié)點組成的邊的結束標識卡對應命令為直行;若(n+1)y=(n+2)y,且(n+1)x>(n+2)x,則第n和n+1節(jié)點組成的邊的結束標識卡對應命令為左轉,若(n+1)y=(n+2)y,且(n+1)x<(n+2)x,則第n和n+1節(jié)點組成的邊的結束標識卡對應命令為右轉,繼續(xù)執(zhí)行第9步驟;
(5)若(n+1)x=(n+2)x,則第n和n+1節(jié)點組成的邊的結束標識卡對應命令為直行;若(n+1)y=(n+2)y,且(n+1)x>(n+2)x,則第n和n+1節(jié)點組成的邊的結束標識卡對應命令為右轉,若(n+1)y=(n+2)y,且(n+1)x<(n+2)x,則第n和n+1節(jié)點組成的邊的結束標識卡對應命令為左轉,繼續(xù)執(zhí)行第9步驟;
(6)若(n)x>(n+1)x,則執(zhí)行第8步驟,否則執(zhí)行第7步驟;
(7)若(n+1)y=(n+2)y,則第n和n+1節(jié)點組成的邊的結束標識卡對應命令為直行;若(n+1)x=(n+2)x,且(n+1)y>(n+2)y,則第n和n+1節(jié)點組成的邊的結束標識卡對應命令為左轉,若(n+1)x=(n+2)x,且(n+1)y<(n+2)y,則第n和n+1節(jié)點組成的邊的結束標識卡對應命令為右轉,繼續(xù)執(zhí)行第9步驟;
(8)若(n+1)y=(n+2)y,則第n和n+1節(jié)點組成的邊的結束標識卡對應命令為直行;若(n+1)x=(n+2)x,且(n+1)y>(n+2)y,則第n和n+1節(jié)點組成的邊的結束標識卡對應命令為右轉,若(n+1)x=(n+2)x,且(n+1)y<(n+2)y,則第n和n+1節(jié)點組成的邊的結束標識卡對應命令為左轉,繼續(xù)執(zhí)行第9步驟;
(9)若n為路徑節(jié)點數減2,則停止,否則n加1后繼續(xù)執(zhí)行第2步驟。
將該agv小車的標識卡對應命令信息通過無線發(fā)射模塊發(fā)送給agv小車,agv小車開始巡線行駛,當讀取到標識卡時,反饋給調度模塊,調度模塊通過點邊防沖突算法查詢該agv小車是否產生將會產生沖突,如果需要該agv小車等待,則立馬發(fā)送指令讓該agv小車停止,沖突解決后,讓該agv小車繼續(xù)行駛。當讀取到執(zhí)行卡時,agv小車查詢本地數據庫,執(zhí)行上次讀取到的標識卡對應的命令。當agv讀取到站點卡時,確認是否到達相應站點,執(zhí)行相應動作。
如圖3所示,所述基于點邊防沖突算法的多agv沖突預防方法,包括如下步驟:
(1)根據有向圖模型,在主控制系統(tǒng)上建立每個節(jié)點和每條雙向邊的agv小車等待隊列;
(2)agv小車讀取到rfid標簽時,將卡號信息發(fā)送給主控制系統(tǒng),如果讀取到的是開始標識卡則執(zhí)行第6步驟,讀取到的是結束標識卡則執(zhí)行第3步驟;
(3)若該agv小車將要去的下一條邊為雙向邊,則執(zhí)行第4步驟,否則執(zhí)行第5步驟;
(4)主控制系統(tǒng)查詢與該結束標識卡相鄰節(jié)點的agv等待隊列,同時查詢下一條邊的agv等待隊列,如果該節(jié)點和該邊的agv等待隊列中都沒有agv小車,則將該agv小車添加到該節(jié)點和該邊的agv等待隊列中,主控制系統(tǒng)不發(fā)送任何指令,該agv繼續(xù)前進,否則主控制系統(tǒng)發(fā)送指令讓該agv立馬停止,將該agv添加到該節(jié)點和該邊的agv等待隊列中,然后執(zhí)行第2步驟;
(5)主控制系統(tǒng)查詢與該結束標識卡相鄰節(jié)點的agv等待隊列,如果該節(jié)點的agv等待隊列中沒有agv小車,則主控制系統(tǒng)不發(fā)送任何指令,該agv繼續(xù)前進,將該agv小車添加到該節(jié)點和該邊的agv等待隊列中,否則主控制系統(tǒng)發(fā)送指令讓該agv立馬停止,將該agv添加到該節(jié)點和該邊的agv等待隊列中,然后執(zhí)行第2步驟;
(6)若該agv經過的上一條邊為雙向邊,則執(zhí)行第7步驟,否則執(zhí)行第8步驟;
(7)解除該agv小車對該節(jié)點和該邊的占用,在該節(jié)點和該邊的agv等待隊列中刪除該agv,執(zhí)行第9步驟;
(8)解除該agv小車對該節(jié)點的占用,在該節(jié)點的agv等待隊列中刪除該agv,執(zhí)行第10步驟;
(9)查詢該節(jié)點的agv等待隊列中的第一個agv是否還存在其他雙向邊的agv等待隊列中,如果存在且不排在等待隊列中的第一位,則該agv小車繼續(xù)等待,否則主控制系統(tǒng)發(fā)送啟動命令給該agv小車;同時查詢該邊的agv等待隊列中的第一個agv是否還存在其他節(jié)點的agv等待隊列中,如果存在且不排在等待隊列中的第一位,則該agv小車繼續(xù)等待,否則主控制系統(tǒng)發(fā)送啟動命令給該agv小車,然后執(zhí)行第2步驟;
(10)查詢該節(jié)點的agv等待隊列中的第一個agv是否還存在其他雙向邊的agv等待隊列中,如果存在且不排在等待隊列中的第一位,則該agv小車繼續(xù)等待,否則主控制系統(tǒng)發(fā)送啟動命令給該agv小車,然后執(zhí)行第2步驟。
上述實施例為本發(fā)明較佳的實施方式,但本發(fā)明的實施方式并不受所述實施例的限制,其他的任何未背離本發(fā)明的精神實質與原理下所作的改變、修飾、替代、組合、簡化,均應為等效的置換方式,都包含在本發(fā)明的保護范圍之內。