專利名稱:基于三維空間密集存儲(chǔ)區(qū)域的多機(jī)器人路徑規(guī)劃方法
技術(shù)領(lǐng)域:
本發(fā)明屬于移動(dòng)機(jī)器人領(lǐng)域,尤其是一種基于三維空間密集存儲(chǔ)區(qū)域的多機(jī)器人路徑規(guī)劃方法。
背景技術(shù):
二維平面的多機(jī)器人路徑規(guī)劃技術(shù)已經(jīng)取得了豐碩的成果并得到了廣泛的應(yīng)用。在現(xiàn)有的多移動(dòng)機(jī)器人系統(tǒng)路徑規(guī)劃技術(shù)研究中,基本上是針對(duì)移動(dòng)機(jī)器人在地面上行駛可能會(huì)發(fā)生的沖突而提出的二維平面路徑規(guī)劃解決方法,其沖突包括地面上的路口沖突、地面上的趕超沖突、地面上的相向沖突。隨著多移動(dòng)機(jī)器人在密集存儲(chǔ)區(qū)域應(yīng)用的擴(kuò)張,針對(duì)二維平面路徑規(guī)劃和沖突解決方法越來越滿足不了實(shí)際應(yīng)用需求,實(shí)際應(yīng)用中,往往 需要移動(dòng)移動(dòng)機(jī)器人跨樓層地在多層鋼筋混凝土建筑物式的貨層(每一樓層相當(dāng)于一層貨格)之間來回穿梭地送貨和取貨,這個(gè)過程需要兩種類型的機(jī)器人協(xié)同工作,一種是在水平面上行走的機(jī)器人,一種是豎直面上行走的電梯機(jī)器人,兩類機(jī)器人共同完成跨樓層的存取貨任務(wù),目前只能通過人工切換方式實(shí)現(xiàn)移動(dòng)機(jī)器人跨樓層搬運(yùn)貨物,因此,迫切需要一套成熟可靠的基于三維空間的多移動(dòng)機(jī)器人多層路徑規(guī)劃方法用以解決移動(dòng)移動(dòng)機(jī)器人如何平滑地上樓和平滑下樓的問題。
發(fā)明內(nèi)容
本發(fā)明的目的在于克服現(xiàn)有技術(shù)的不足,提供一種基于三維空間密集存儲(chǔ)區(qū)域的多機(jī)器人路徑規(guī)劃方法,解決了移動(dòng)機(jī)器人只能通過人工切換方法致使移動(dòng)機(jī)器人跨樓層搬運(yùn)時(shí)在電梯機(jī)器人口出現(xiàn)停頓、前后任務(wù)不銜接不連貫的問題。本發(fā)明解決其技術(shù)問題是采取以下技術(shù)方案實(shí)現(xiàn)的一種基于三維空間密集存儲(chǔ)區(qū)域的多機(jī)器人路徑規(guī)劃方法,包括調(diào)度服務(wù)器內(nèi)的主線程和并行執(zhí)行的規(guī)劃線程、避碰線程和執(zhí)行線程,所述的主線程包括以下步驟步驟I :主線程初始化一張三維立體網(wǎng)狀路徑圖;步驟2 :主線程實(shí)時(shí)接收移動(dòng)機(jī)器人當(dāng)前位置的命令反饋信息,根據(jù)反饋信息實(shí)時(shí)更新三維網(wǎng)狀立體路徑圖;所述的規(guī)劃線程包括以下步驟步驟I :規(guī)劃線程檢測(cè)到有存取貨物任務(wù)時(shí),獲取起始點(diǎn)和目標(biāo)點(diǎn)信息并將任務(wù)劃分若干個(gè)子任務(wù),每個(gè)子任務(wù)下又劃分任務(wù)階段,每個(gè)任務(wù)階段又設(shè)有各自的起始點(diǎn)和目標(biāo)點(diǎn);步驟2 :規(guī)劃線程根據(jù)子任務(wù)的起始點(diǎn)、目標(biāo)點(diǎn)及輸入?yún)?shù)使用圖搜索法輸出當(dāng)前子任務(wù)的密集存儲(chǔ)區(qū)域三維空間任務(wù)路徑;步驟3 :規(guī)劃線程判斷該子任務(wù)目標(biāo)點(diǎn)是否被上一個(gè)的任務(wù)釋放掉,如果已經(jīng)被釋放,則進(jìn)入步驟4,否則等待釋放;
步驟4 :規(guī)劃線程標(biāo)記每個(gè)任務(wù)路經(jīng);步驟5 :規(guī)劃線程標(biāo)記完所有任務(wù)路徑后,將標(biāo)記后的任務(wù)送入執(zhí)行隊(duì)列,返回步驟2;所述的避碰線程包括以下步驟步驟I :避碰線程執(zhí)行任務(wù)隊(duì)列的各任務(wù)搶占資源變量;步驟2 :避碰線程根據(jù)當(dāng)前環(huán)境信息劃分沖突區(qū);步驟3 :避碰線程判斷沖突區(qū)是否釋放干凈,如果釋放干凈轉(zhuǎn)入步驟4 ;如果沒有釋放干凈,繼續(xù)等待;步驟4 :避碰線程完成移動(dòng)機(jī)器人和電梯機(jī)器人執(zhí)行命令前的命令轉(zhuǎn)義任務(wù);·步驟5 :避碰線程釋放資源變量給調(diào)度服務(wù)器;所述的執(zhí)行線程包括以下步驟步驟I:執(zhí)行線程到執(zhí)行隊(duì)列等待經(jīng)過轉(zhuǎn)義后的任務(wù);步驟2:執(zhí)行線程判斷是否有未發(fā)送出去的命令,如果有未發(fā)送命令,進(jìn)入步驟3,如果沒有未發(fā)送命令,返回步驟I ;步驟3 :執(zhí)行線程根據(jù)執(zhí)行體類型的不同,劃分階段,每個(gè)階段內(nèi)最后一個(gè)命令為本階段的階段結(jié)束命令;步驟4:判斷上一階段命令是否全部執(zhí)行完成,如果完成,則發(fā)送當(dāng)前階段除階段結(jié)束命令以外的其它命令,并且轉(zhuǎn)入步驟5,如果上一階段命令還未完成,執(zhí)行步驟6 ;步驟5 :執(zhí)行線程判斷下一個(gè)任務(wù)階段的機(jī)器人執(zhí)行體,是否準(zhǔn)備就緒,如果準(zhǔn)備就緒,發(fā)送本階段的階段結(jié)束命令,并將下一階段指定為當(dāng)前階段,轉(zhuǎn)入步驟7;如果沒有準(zhǔn)備就緒,轉(zhuǎn)入步驟6;步驟6 :將當(dāng)前未完成的任務(wù)放回執(zhí)行隊(duì)列,并且返回步驟4 ;步驟7:返回步驟I。而且,所述建立初始化三維立體網(wǎng)狀路徑圖的方法包括以下處理步驟⑴獲得存儲(chǔ)區(qū)域的存儲(chǔ)位圖紙;⑵建立存儲(chǔ)點(diǎn)取每個(gè)存儲(chǔ)位中心點(diǎn)作為存儲(chǔ)點(diǎn);⑶建立路點(diǎn)非存儲(chǔ)區(qū)域與存儲(chǔ)點(diǎn)區(qū)域大小相同的可行走區(qū)域的中心點(diǎn)作為路點(diǎn),該路點(diǎn)包括巷道路點(diǎn)、車輛存取間路點(diǎn)、電梯機(jī)器人路點(diǎn);⑷建立連通性將具有連通性的兩個(gè)相鄰點(diǎn)進(jìn)行連線構(gòu)成初始化網(wǎng)狀路徑圖,所述的連通性包括同一個(gè)樓層的兩個(gè)相鄰存儲(chǔ)點(diǎn)之間、存儲(chǔ)點(diǎn)和路點(diǎn)之間以及不同樓層的電梯機(jī)器人路點(diǎn)之間。而且,所述主線程實(shí)時(shí)接收移動(dòng)機(jī)器人當(dāng)前位置的命令反饋信息是包括移動(dòng)機(jī)器人每經(jīng)過一個(gè)路點(diǎn)時(shí)反饋當(dāng)前路點(diǎn)所在位置坐標(biāo)(X、Y、Z),路點(diǎn)包括電梯機(jī)器人路點(diǎn)和存儲(chǔ)層地面上的路點(diǎn),其中,X、Y代表水平面坐標(biāo),Z代表樓層信息。而且,所述密集存儲(chǔ)區(qū)域三維空間路徑包括由水平面內(nèi)的線段和豎直面內(nèi)的線段組成的路徑。而且,所述規(guī)劃線程標(biāo)記任務(wù)路經(jīng)的方法為使用攜帶行走方向以及排序特征的任務(wù)編號(hào)來標(biāo)記每個(gè)任務(wù)路經(jīng);所述的行走方向可以是同一個(gè)水平面或豎直面的行走方向,也可以是既包括水平面也包括豎直面的行走方向;
而且,所述避碰線程的某個(gè)任務(wù)釋放資源變量給調(diào)度服務(wù)器后,重新返回線程搶占資源變量,當(dāng)這個(gè)任務(wù)再次獲得資源變量后,根據(jù)此時(shí)變化的環(huán)境重新識(shí)別當(dāng)前沖突區(qū)。而且,所述執(zhí)行線程的某個(gè)任務(wù)當(dāng)給不同執(zhí)行體發(fā)送命令后,這個(gè)任務(wù)還會(huì)重新返回線程開始處,獲得更新后的該任務(wù)的轉(zhuǎn)義命令,并根據(jù)更新后的該任務(wù)的轉(zhuǎn)義命令重新給不同的執(zhí)行體發(fā)送命令。而且,所述的任務(wù)階段,其相臨兩個(gè)任務(wù)階段的機(jī)器人執(zhí)行體是不同的由地面上行走的機(jī)器人和豎直面內(nèi)行走的電梯機(jī)器人分別執(zhí)行各個(gè)階段的任務(wù)。而且,所述沖突區(qū)的劃分方法為將所有路點(diǎn)上被標(biāo)記至少兩個(gè)任務(wù)編號(hào)、以及行走方向相反的路點(diǎn)組合的區(qū)域劃分為沖突區(qū);所述沖突區(qū)包括由存儲(chǔ)層地面路點(diǎn)和電梯機(jī)器人路點(diǎn)組成的沖突區(qū)。 本發(fā)明的優(yōu)點(diǎn)和積極效果是 I、本發(fā)明通過不同種類機(jī)器人接力操作、共同完成該任務(wù)行走路線的方法,實(shí)現(xiàn)了移動(dòng)機(jī)器人和電梯機(jī)器人自動(dòng)切換并且跨樓層任意存取貨物的需求;解決了移動(dòng)機(jī)器人一般只能在單層地面上行走、或只有通過人工切換方法才可以跨樓層行走,而不能自動(dòng)切換到其它樓層行走的問題。2、本發(fā)明將地面路點(diǎn)和電梯路點(diǎn)、地面坐標(biāo)和樓層位置坐標(biāo)、移動(dòng)機(jī)器人和電梯機(jī)器人有機(jī)地結(jié)合為一個(gè)整體,共同構(gòu)成一個(gè)由調(diào)度服務(wù)器實(shí)時(shí)控制機(jī)器人行走的三維網(wǎng)狀路徑,從而保證了移動(dòng)機(jī)器人在各個(gè)樓層之間平滑地送貨和取貨的可能性,解決了由于人工切換方法致使機(jī)器人跨樓層搬運(yùn)時(shí)在電梯機(jī)器入口出現(xiàn)停頓、前后任務(wù)不銜接不連貫的問題。3、本發(fā)明通過主線程實(shí)時(shí)獲取和更新環(huán)境、規(guī)劃線程實(shí)時(shí)獲取任務(wù)和實(shí)時(shí)規(guī)劃路徑、避碰線程實(shí)時(shí)更新沖突區(qū)、執(zhí)行線程實(shí)時(shí)切換任務(wù)階段和實(shí)時(shí)發(fā)送命令等手段,具有高效率、合理性、實(shí)時(shí)性等特點(diǎn)。
圖I是本發(fā)明的處理流程圖;圖2是初始化三維網(wǎng)狀立體路徑圖(一層俯視圖);圖3是初始化三維網(wǎng)狀立體路徑圖(頂層俯視圖);圖4是初始化三維網(wǎng)狀立體路徑圖(Al、A2區(qū)域的三層立體示意圖);圖5是初始化三維網(wǎng)狀立體路徑圖(BI、B2區(qū)域的三層立體示意圖);圖6是一個(gè)存車任務(wù)路徑的三維示意圖;圖7是圖6的任務(wù)標(biāo)記存車平面不意圖;圖8是一個(gè)取車任務(wù)路徑的三維示意圖;圖9是圖8的任務(wù)標(biāo)記取車平面示意圖;圖10是一個(gè)劃分沖突區(qū)三維示意圖;圖11是圖10的任務(wù)標(biāo)記沖突區(qū)平面示意圖。
具體實(shí)施例方式以下結(jié)合附圖對(duì)本發(fā)明實(shí)施例做進(jìn)一步詳述
—種基于三維空間密集存儲(chǔ)區(qū)域的多機(jī)器人路徑規(guī)劃方法所依據(jù)的路徑規(guī)劃條件是(1)所述多機(jī)器人路徑規(guī)劃主要解決碰撞和沖突問題;(2)機(jī)器人執(zhí)行體包括地面上行走的移動(dòng)機(jī)器人和電梯機(jī)器人;(3)移動(dòng)機(jī)器人的碰撞和沖突不僅來自水平面內(nèi)的碰撞和沖突而且來自豎直面內(nèi)的碰撞和沖突;(4)移動(dòng)機(jī)器人的碰撞和沖突指的是由于相向而行而發(fā)生的任務(wù)死鎖(在水平面內(nèi)的相向而行和豎直面內(nèi)的相向而行);(5)移動(dòng)機(jī)器人組成了其它機(jī)器人成員的動(dòng)態(tài)障礙;(6)移動(dòng)機(jī)器人和調(diào)度服務(wù)器之間通過無線網(wǎng)絡(luò)進(jìn)行通τΗ ο如圖I所示,一種基于三維空間密集存儲(chǔ)區(qū)域的多機(jī)器人路徑規(guī)劃方法,包括調(diào)度服務(wù)器內(nèi)的主線程和并行執(zhí)行的規(guī)劃線程、避碰線程和執(zhí)行線程的協(xié)調(diào)處理方法。其中,所述的主線程包括以下步驟步驟I :調(diào)度服務(wù)器初始化一張三維立體網(wǎng)狀路徑圖;如圖2至圖5所示,初始化三維立體網(wǎng)狀路徑圖的具體方法為①獲得存儲(chǔ)區(qū)域的存儲(chǔ)位圖紙;
·
②建立存儲(chǔ)點(diǎn)取每個(gè)存儲(chǔ)位中心點(diǎn)作為存儲(chǔ)點(diǎn);③建立路點(diǎn)非存儲(chǔ)區(qū)域與存儲(chǔ)點(diǎn)區(qū)域大小相同的可行走區(qū)域的中心點(diǎn)作為路點(diǎn)。所述路點(diǎn)包括巷道路點(diǎn)、車輛存取間路點(diǎn)(圖2中的5號(hào)標(biāo)識(shí)、10號(hào)標(biāo)識(shí))、電梯機(jī)器人路點(diǎn)(圖3中的61標(biāo)識(shí)、61-1標(biāo)識(shí)、61-2標(biāo)識(shí)、66標(biāo)識(shí)、66-1標(biāo)識(shí)、66_2標(biāo)識(shí))。④建立連通性同一個(gè)樓層的兩個(gè)相鄰存儲(chǔ)點(diǎn)之間、存儲(chǔ)點(diǎn)和路點(diǎn)之間具有連通性;不同樓層的電梯機(jī)器人路點(diǎn)之間也具有連通性;步驟2 :調(diào)度服務(wù)器主線程實(shí)時(shí)接收移動(dòng)機(jī)器人當(dāng)前位置的命令反饋信息,根據(jù)反饋信息實(shí)時(shí)更新包括環(huán)境信息的三維網(wǎng)狀立體路徑圖,主線程實(shí)時(shí)接收移動(dòng)機(jī)器人當(dāng)前位置的命令反饋信息是包括移動(dòng)機(jī)器人每經(jīng)過一個(gè)路點(diǎn)時(shí)反饋當(dāng)前路點(diǎn)所在位置坐標(biāo)(x、Y、z),路點(diǎn)包括電梯機(jī)器人路點(diǎn)和存儲(chǔ)層地面上的路點(diǎn)。其中,X、Y代表水平面坐標(biāo),Z代表樓層信息0、1、2分別代表一、二、三層樓。所述的規(guī)劃線程包括以下步驟步驟I :規(guī)劃線程檢測(cè)到有存取貨物任務(wù)時(shí),獲取起始點(diǎn)和目標(biāo)點(diǎn)信息并將任務(wù)劃分若干個(gè)子任務(wù),每個(gè)子任務(wù)下又劃分任務(wù)階段,每個(gè)任務(wù)階段又設(shè)有各自的起始點(diǎn)和目標(biāo)點(diǎn);相臨兩個(gè)任務(wù)階段的機(jī)器人執(zhí)行體是不同的由地面上行走的移動(dòng)機(jī)器人和豎直面內(nèi)行走的電梯機(jī)器人分別執(zhí)行各個(gè)階段的任務(wù)。步驟2 :規(guī)劃線程根據(jù)子任務(wù)的起始點(diǎn)、目標(biāo)點(diǎn)及輸入?yún)?shù)使用圖搜索法輸出當(dāng)前子任務(wù)的密集存儲(chǔ)區(qū)域三維空間任務(wù)路徑,如圖6,密集存儲(chǔ)區(qū)域三維空間路徑包括由水平面內(nèi)的線段(66-2、52-2、38-2、24-2、23-2)和豎直面內(nèi)的線段(66、66-1、66-2)組成的路徑;如圖8,三位空間路徑包括由水平面內(nèi)的第一條線段(53-2、52-2、66-2)、豎直面內(nèi)的線段(66-2、66-1、66)、水平面內(nèi)的第二條線段(66、52、53)組成的路徑;步驟3 :規(guī)劃線程判斷該子任務(wù)目標(biāo)點(diǎn)(圖6中,A任務(wù)目標(biāo)點(diǎn)為23-2,圖8中,B任務(wù)目標(biāo)點(diǎn)為53)是否被上一個(gè)的任務(wù)釋放掉,如果已經(jīng)被釋放,則進(jìn)入步驟4,否則等待釋放;步驟4:規(guī)劃線程使用攜帶行走方向以及排序特征的任務(wù)編號(hào)標(biāo)記每個(gè)任務(wù)路經(jīng),所述的行走方向可以是同一個(gè)水平面或豎直面的行走方向,也可以是跨樓層的行走方向;步驟5 :規(guī)劃線程標(biāo)記完所有任務(wù)路徑后,將標(biāo)記后的任務(wù)送入執(zhí)行隊(duì)列,返回步驟2;所述的避碰線程包括以下步驟步驟I :避碰線程執(zhí)行任務(wù)隊(duì)列的各任務(wù)搶占資源變量,所述各個(gè)任務(wù)搶占資源變量不只I次,而是循環(huán)搶占,直至任務(wù)結(jié)束這是由于服務(wù)器主線程實(shí)時(shí)更新環(huán)境信息,所以需要不斷根據(jù)變化的環(huán)境信息重新識(shí)別沖突區(qū);步驟2 :避碰線程根據(jù)當(dāng)前環(huán)境信息劃分沖突區(qū)將所有路點(diǎn)上被標(biāo)記至少兩個(gè)任務(wù)編號(hào)、以及行走方向相反(在水平面或電梯機(jī)器人空間的豎直面內(nèi))的路點(diǎn)組合的區(qū)域劃分為沖突區(qū);沖突區(qū)包括由存儲(chǔ)層地面上的路點(diǎn)和電梯機(jī)器人路點(diǎn)組成的沖突區(qū);
步驟3 :避碰線程判斷沖突區(qū)是否釋放干凈,如果釋放干凈轉(zhuǎn)入步驟4 ;如果沒有釋放干凈,繼續(xù)等待;步驟4 :避碰線程完成移動(dòng)機(jī)器人和電梯機(jī)器人執(zhí)行命令前的命令轉(zhuǎn)義任務(wù);步驟5 :避碰線程釋放資源變量給調(diào)度服務(wù)器。當(dāng)釋放資源變量給調(diào)度服務(wù)器后,還會(huì)重新返回線程搶占資源變量,當(dāng)再次獲得資源變量后,根據(jù)此時(shí)變化的環(huán)境重新識(shí)別當(dāng)前沖突區(qū)。所述的執(zhí)行線程包括以下步驟步驟I:執(zhí)行線程到執(zhí)行隊(duì)列等待經(jīng)過轉(zhuǎn)義后的任務(wù),每次收到的轉(zhuǎn)義后的命令可能是同一個(gè)任務(wù)的,但每次轉(zhuǎn)義的內(nèi)容可能不相同,這是由于同一個(gè)任務(wù)所處環(huán)境信息實(shí)時(shí)更新,沖突區(qū)實(shí)時(shí)更新、轉(zhuǎn)義命令實(shí)時(shí)更新的緣故;步驟2:執(zhí)行線程判斷是否有未發(fā)送出去的命令,如果有未發(fā)送命令,進(jìn)入步驟3,如果沒有未發(fā)送命令,返回步驟I ;步驟3 :執(zhí)行線程根據(jù)執(zhí)行體類型的不同,劃分階段,每個(gè)階段內(nèi)最后一個(gè)命令為本階段的階段結(jié)束命令。步驟4 :判斷上一階段命令是否全部執(zhí)行完成(包括階段結(jié)束命令),如果完成,則發(fā)送當(dāng)前階段除階段結(jié)束命令以外的其它命令,并且轉(zhuǎn)入步驟5,如果上一階段命令(包括階段結(jié)束命令)還未完成,執(zhí)行步驟6 ;步驟5 :執(zhí)行線程判斷下一個(gè)任務(wù)階段的機(jī)器人執(zhí)行體,是否準(zhǔn)備就緒。如果準(zhǔn)備就緒,發(fā)送本階段的階段結(jié)束命令,并將下一階段指定為當(dāng)前階段,轉(zhuǎn)入步驟7;如果沒有準(zhǔn)備就緒,轉(zhuǎn)入步驟6;步驟6 :將當(dāng)前未完成的任務(wù)放回執(zhí)行隊(duì)列,并且返回步驟4 ;步驟7:返回步驟I。下面以三層停車場(chǎng)為例,如圖6至圖9所示,調(diào)度服務(wù)器同時(shí)處理兩個(gè)子任務(wù)(一個(gè)存車任務(wù)、一個(gè)取車任務(wù))的詳細(xì)處理過程步驟I、調(diào)度服務(wù)器規(guī)劃線程接收任務(wù)并劃分子任務(wù)送貨子任務(wù)(A任務(wù))和取貨子任務(wù)(B任務(wù));步驟2、調(diào)度服務(wù)器規(guī)劃線程用圖搜索法給這兩個(gè)子任務(wù)輸出路徑,A任務(wù)輸出路徑為10 — 24 — 38 — 52 — 66 — 66-1 — 66-2 — 52-2 — 38-2 — 24-2 — 23-2,其任務(wù)標(biāo)記為A1 — A2 — A3 — A4 — A5 — A6 — A7 — A8 — A9 — AlO — All ;B任務(wù)輸出路徑為53-2 — 52-2 — 66-2 — 61-2 — 66 — 52 — 53,任務(wù)標(biāo)記為BI — B2 — B3 — B4 — B5 — B6 — B7 ;步驟3、調(diào)度服務(wù)器規(guī)劃線程判斷這兩個(gè)任務(wù)的目標(biāo)點(diǎn)23-2,53都已經(jīng)被釋放;步驟4、調(diào)度服務(wù)器規(guī)劃線程將A、B任務(wù)放入執(zhí)行隊(duì)列;步驟5、調(diào)度服務(wù)器避碰線程各個(gè)任務(wù)搶占資源變量;步驟6、調(diào)度服務(wù)器避碰線程的A任務(wù)搶到了資源變量;步驟7、調(diào)度服務(wù)器規(guī)劃線程的A任務(wù)根據(jù)更新后的環(huán)境信息劃分和識(shí)別當(dāng)前沖突區(qū),沖突區(qū)為52、66、66-1、66-2、52-2所包圍的區(qū)域;
步驟8、調(diào)度服務(wù)器避碰線程的A任務(wù)獲得A任務(wù)移動(dòng)機(jī)器人距離沖突區(qū)的位置 (A任務(wù)剛剛拿到資源變量時(shí),A移動(dòng)機(jī)器人初始位置在路點(diǎn)10),如果沒有到達(dá)緊貼沖突區(qū)的前一個(gè)路點(diǎn),(沖突去前一個(gè)路點(diǎn)在此例中其標(biāo)識(shí)為38),則生成移動(dòng)機(jī)器人行走路線轉(zhuǎn)義命令給執(zhí)行線程,進(jìn)入步驟9 ;如果已經(jīng)到達(dá)緊貼沖突區(qū)的前一個(gè)路點(diǎn),則增加生成一個(gè)呼叫電梯機(jī)器人的轉(zhuǎn)義命令給執(zhí)行線程,并鎖定這個(gè)沖突區(qū),鎖定期間,這個(gè)沖突區(qū)不能再被其它任務(wù)占用;步驟9、調(diào)度服務(wù)器避碰線程的A任務(wù)釋放資源變量給服務(wù)器,當(dāng)釋放資源變量給調(diào)度服務(wù)器后,還會(huì)重新返回線程的開始執(zhí)行處,搶占資源變量,當(dāng)再次獲得資源變量后,根據(jù)此時(shí)變化的環(huán)境重新識(shí)別當(dāng)前沖突區(qū)。并返回步驟5 ;步驟10、調(diào)度服務(wù)器避碰線程的B任務(wù)搶到了資源變量;步驟11、調(diào)度服務(wù)器規(guī)劃線程的B任務(wù)根據(jù)更新后的環(huán)境信息劃分和識(shí)別當(dāng)前沖突區(qū),由于沒有第三個(gè)任務(wù)插入,因此,B任務(wù)和A任務(wù)所識(shí)別的是相同的,沖突區(qū)均為52、66、66-1、66-2、52-2所包圍的區(qū)域,如果有第三個(gè)任務(wù),并且該任務(wù)行走路徑部分包括52、66、66-1、66-2、52-2組成的沖突區(qū),則B任務(wù)此時(shí)所識(shí)別的沖突區(qū)將有別于A任務(wù)識(shí)別的沖關(guān)區(qū);步驟12、調(diào)度服務(wù)器避碰線程的B任務(wù)獲得B任務(wù)移動(dòng)機(jī)器人距離沖突區(qū)的位置(B任務(wù)剛剛拿到資源變量時(shí),B移動(dòng)機(jī)器人初始位置在路點(diǎn)53-2),如果沒有到達(dá)緊貼沖突區(qū)的前一個(gè)路點(diǎn),(沖突去前一個(gè)路點(diǎn)在此例中其標(biāo)識(shí)為52-2),則生成移動(dòng)機(jī)器人行走路線轉(zhuǎn)義命令給執(zhí)行線程,進(jìn)入步驟9 ;如果已經(jīng)到達(dá)緊貼沖突區(qū)的前一個(gè)路點(diǎn),則增加生成一個(gè)呼叫電梯機(jī)器人的轉(zhuǎn)義命令給執(zhí)行線程,并鎖定這個(gè)沖突區(qū),鎖定期間,這個(gè)沖突區(qū)不能再被其它任務(wù)占用;步驟13、調(diào)度服務(wù)器避碰線程的B任務(wù)釋放資源變量給服務(wù)器,并返回步驟5,當(dāng)釋放資源變量給調(diào)度服務(wù)器后,還會(huì)重新返回線程的開始執(zhí)行處,搶占資源變量,當(dāng)再次獲得資源變量后,根據(jù)此時(shí)變化的環(huán)境重新識(shí)別當(dāng)前沖突區(qū)。下面以A子任務(wù)為例,說明執(zhí)行線程的工作情況。步驟14:執(zhí)行線程的A任務(wù)獲得轉(zhuǎn)義后的命令;步驟15 :執(zhí)行線程根據(jù)執(zhí)行體類型的不同,劃分階段,每個(gè)階段內(nèi)最后一個(gè)命令為本階段的階段結(jié)束命令。A子任務(wù)的任務(wù)階段分為3個(gè)任務(wù)階段路點(diǎn)10、24、38、52、66為一段;路點(diǎn)66、66-1、66-2 為一段;路點(diǎn):66-2、52-2、38-2、24-2、23_2 為一段;第一段的最后一個(gè)命令是從52到66的命令;第二段的最后一個(gè)命令是從66-1到66-2的命令;步驟16 :判斷上一階段命令是否全部執(zhí)行完成(包括階段結(jié)束命令),如果完成,則發(fā)送當(dāng)前階段除階段結(jié)束命令以外的其它命令,并且轉(zhuǎn)入步驟17,如果上一階段命令(包括階段結(jié)束命令)還未完成,執(zhí)行步驟18。假設(shè)A任務(wù)已經(jīng)走完了第一段任務(wù)路程(路點(diǎn)10、24、38、52、66),下面該走第二段任務(wù)路程,此時(shí)要判斷上個(gè)階段的最后I個(gè)命令,也就是52到66的命令是否完成,如果上個(gè)階段最后I個(gè)命令完成,則發(fā)送66、66-1的命令(不包括66-1到66-2的命令),轉(zhuǎn)入步驟17,如果上個(gè)階段最后I個(gè)命令沒完成,則轉(zhuǎn)入步驟18 ;步驟17 :執(zhí)行線程判斷下一個(gè)任務(wù)階段的機(jī)器人執(zhí)行體,是否準(zhǔn)備就緒。如果準(zhǔn)備就緒,發(fā)送本階段的階段結(jié)束命令,并將下一階段指定為當(dāng)前階段,轉(zhuǎn)入步驟19;如果沒有準(zhǔn)備就緒,轉(zhuǎn)入步驟18。以上所述的下一個(gè)階段任務(wù)機(jī)器人執(zhí)行體是移動(dòng)機(jī)器人,執(zhí)行路點(diǎn)66-2、52-2、38-2、24-2、23-2的任務(wù),由于此實(shí)施例中移動(dòng)機(jī)器人始終被電梯機(jī)器人攜帶,所以可以認(rèn)為下一階段機(jī)器人執(zhí)行體已經(jīng)準(zhǔn)備就緒,于是執(zhí)行線程發(fā)送當(dāng)前階段最后一個(gè)命令66-1到66-2的命令,也就是本階段的階段結(jié)束命令,并將下個(gè)(第三階段)階段(路點(diǎn)為6-2、52-2、38-2、24-2、23-2)的任務(wù)作為當(dāng)前任務(wù)(A任務(wù)執(zhí)行第三階段任務(wù)的方法可以以此類推),同時(shí)轉(zhuǎn)入步驟19 ;步驟18 :將當(dāng)前未完成的任務(wù)放回執(zhí)行隊(duì)列,并且返回步驟17;·步驟19:返回步驟14。通過上述步驟即可實(shí)現(xiàn)基于三維空間密集存儲(chǔ)區(qū)域的多機(jī)器人路徑規(guī)劃方法。需要強(qiáng)調(diào)的是,本發(fā)明所述的實(shí)施例是說明性的,而不是限定性的,因此本發(fā)明并不限于具體實(shí)施方式
中所述的實(shí)施例,凡是由本領(lǐng)域技術(shù)人員根據(jù)本發(fā)明的技術(shù)方案得出的其他實(shí)施方式,同樣屬于本發(fā)明保護(hù)的范圍。
權(quán)利要求
1.一種基于三維空間密集存儲(chǔ)區(qū)域的多機(jī)器人路徑規(guī)劃方法,其特征在于包括調(diào)度服務(wù)器內(nèi)的主線程和并行執(zhí)行的規(guī)劃線程、避碰線程和執(zhí)行線程, 所述的主線程包括以下步驟 步驟I:主線程初始化一張三維立體網(wǎng)狀路徑圖; 步驟2 :主線程實(shí)時(shí)接收移動(dòng)機(jī)器人當(dāng)前位置的命令反饋信息,根據(jù)反饋信息實(shí)時(shí)更新三維網(wǎng)狀立體路徑圖; 所述的規(guī)劃線程包括以下步驟 步驟I :規(guī)劃線程檢測(cè)到有存取貨物任務(wù)時(shí),獲取起始點(diǎn)和目標(biāo)點(diǎn)信息并將任務(wù)劃分若干個(gè)子任務(wù),每個(gè)子任務(wù)下又劃分任務(wù)階段,每個(gè)任務(wù)階段又設(shè)有各自的起始點(diǎn)和目標(biāo)占. 步驟2 :規(guī)劃線程根據(jù)子任務(wù)的起始點(diǎn)、目標(biāo)點(diǎn)及輸入?yún)?shù)使用圖搜索法輸出當(dāng)前子任務(wù)的密集存儲(chǔ)區(qū)域三維空間任務(wù)路徑; 步驟3 :規(guī)劃線程判斷該子任務(wù)目標(biāo)點(diǎn)是否被上一個(gè)的任務(wù)釋放掉,如果已經(jīng)被釋放,則進(jìn)入步驟4,否則等待釋放; 步驟4 :規(guī)劃線程使用攜帶機(jī)器人行走方向及排序特征的任務(wù)編號(hào)標(biāo)記每個(gè)任務(wù)路經(jīng); 步驟5 :規(guī)劃線程標(biāo)記完所有任務(wù)路徑后,將標(biāo)記后的任務(wù)送入執(zhí)行隊(duì)列,返回步驟2 ; 所述的避碰線程包括以下步驟 步驟I :避碰線程執(zhí)行任務(wù)隊(duì)列的各任務(wù)搶占資源變量; 步驟2 :避碰線程根據(jù)當(dāng)前環(huán)境信息劃分沖突區(qū); 步驟3 :避碰線程判斷沖突區(qū)是否釋放干凈,如果釋放干凈轉(zhuǎn)入步驟4 ;如果沒有釋放干凈,繼續(xù)等待; 步驟4 :避碰線程完成移動(dòng)機(jī)器人和電梯機(jī)器人執(zhí)行命令前的命令轉(zhuǎn)義任務(wù); 步驟5 :避碰線程釋放資源變量給調(diào)度服務(wù)器; 所述的執(zhí)行線程包括以下步驟 步驟I:執(zhí)行線程到執(zhí)行隊(duì)列等待經(jīng)過轉(zhuǎn)義后的任務(wù); 步驟2:執(zhí)行線程判斷是否有未發(fā)送出去的命令,如果有未發(fā)送命令,進(jìn)入步驟3,如果沒有未發(fā)送命令,返回步驟I; 步驟3 :執(zhí)行線程根據(jù)執(zhí)行體類型的不同,劃分階段,每個(gè)階段內(nèi)最后一個(gè)命令為本階段的階段結(jié)束命令; 步驟4 :判斷上一階段命令是否全部執(zhí)行完成,如果完成,則發(fā)送當(dāng)前階段除階段結(jié)束命令以外的其它命令,并且轉(zhuǎn)入步驟5,如果上一階段命令還未完成,執(zhí)行步驟6 ; 步驟5 :執(zhí)行線程判斷下一個(gè)任務(wù)階段的機(jī)器人執(zhí)行體,是否準(zhǔn)備就緒,如果準(zhǔn)備就緒,發(fā)送本階段的階段結(jié)束命令,并將下一階段指定為當(dāng)前階段,轉(zhuǎn)入步驟7 ;如果沒有準(zhǔn)備就緒,轉(zhuǎn)入步驟6 ; 步驟6 :將當(dāng)前未完成的任務(wù)放回執(zhí)行隊(duì)列,并且返回步驟4 ; 步驟7:返回步驟I。
2.根據(jù)權(quán)利要求I所述的基于三維空間密集存儲(chǔ)區(qū)域的多機(jī)器人路徑規(guī)劃方法,其特征在于所述建立初始化三維立體網(wǎng)狀路徑圖的方法包括以下處理步驟(1)獲得存儲(chǔ)區(qū)域的存儲(chǔ)位圖紙; (2)建立存儲(chǔ)點(diǎn)取每個(gè)存儲(chǔ)位中心點(diǎn)作為存儲(chǔ)點(diǎn); (3)建立路點(diǎn)非存儲(chǔ)區(qū)域與存儲(chǔ)點(diǎn)區(qū)域大小相同的可行走區(qū)域的中心點(diǎn)作為路點(diǎn),該路點(diǎn)包括巷道路點(diǎn)、車輛存取間路點(diǎn)、電梯機(jī)器人路點(diǎn); (4)建立連通性將具有連通性的兩個(gè)相鄰點(diǎn)進(jìn)行連線構(gòu)成初始化網(wǎng)狀路徑圖,所述的連通性包括同一個(gè)樓層的兩個(gè)相鄰存儲(chǔ)點(diǎn)之間、存儲(chǔ)點(diǎn)和路點(diǎn)之間以及不同樓層的電梯機(jī)器人路點(diǎn)之間。
3.根據(jù)權(quán)利要求I所述的基于三維空間密集存儲(chǔ)區(qū)域的多機(jī)器人路徑規(guī)劃方法,其特征在于所述主線程實(shí)時(shí)接收移動(dòng)機(jī)器人當(dāng)前位置的命令反饋信息是包括移動(dòng)機(jī)器人每經(jīng)過一個(gè)路點(diǎn)時(shí)反饋當(dāng)前路點(diǎn)所在位置坐標(biāo)(X、Y、Z),路點(diǎn)包括電梯機(jī)器人路點(diǎn)和存儲(chǔ)層地面上的路點(diǎn),其中,X、Y代表水平面坐標(biāo),Z代表樓層信息。
4.根據(jù)權(quán)利要求I所述的基于三維空間密集存儲(chǔ)區(qū)域的多機(jī)器人路徑規(guī)劃方法,其特征在于所述密集存儲(chǔ)區(qū)域三維空間路徑包括由水平面內(nèi)的線段和豎直面內(nèi)的線段組成的路徑。
5.根據(jù)權(quán)利要求I所述的基于三維空間密集存儲(chǔ)區(qū)域的多機(jī)器人路徑規(guī)劃方法,其特征在于所述規(guī)劃線程標(biāo)記任務(wù)路經(jīng)的方法為使用攜帶行走方向以及排序特征的任務(wù)編號(hào)來標(biāo)記每個(gè)任務(wù)路經(jīng),所述的行走方向可以是同一個(gè)水平面或豎直面的行走方向,也可以是既包括水平面也包括豎直面的行走方向。
6.根據(jù)權(quán)利要求I所述的基于三維空間密集存儲(chǔ)區(qū)域的多機(jī)器人路徑規(guī)劃方法,其特征在于所述避碰線程的某個(gè)任務(wù)釋放資源變量給調(diào)度服務(wù)器后,重新返回線程搶占資源變量,當(dāng)這個(gè)任務(wù)再次獲得資源變量后,根據(jù)此時(shí)變化的環(huán)境重新識(shí)別當(dāng)前沖突區(qū)。
7.根據(jù)權(quán)利要求I所述的基于三維空間密集存儲(chǔ)區(qū)域的多機(jī)器人路徑規(guī)劃方法,其特征在于所述執(zhí)行線程的某個(gè)任務(wù)當(dāng)給不同執(zhí)行體發(fā)送命令后,這個(gè)任務(wù)還會(huì)重新返回線程開始處,獲得更新后的該任務(wù)的轉(zhuǎn)義命令,并根據(jù)更新后的該任務(wù)的轉(zhuǎn)義命令重新給不同的執(zhí)行體發(fā)送命令。
8.根據(jù)權(quán)利要求I所述的基于三維空間密集存儲(chǔ)區(qū)域的多機(jī)器人路徑規(guī)劃方法,其特征在于所述的任務(wù)階段,其相臨兩個(gè)任務(wù)階段的機(jī)器人執(zhí)行體是不同的由地面上行走的機(jī)器人和豎直面內(nèi)行走的電梯機(jī)器人分別執(zhí)行各個(gè)階段的任務(wù)。
9.根據(jù)權(quán)利要求I所述的基于三維空間密集存儲(chǔ)區(qū)域的多機(jī)器人路徑規(guī)劃方法,其特征在于所述沖突區(qū)的劃分方法為將所有路點(diǎn)上被標(biāo)記至少兩個(gè)任務(wù)編號(hào)、以及行走方向相反的路點(diǎn)組合的區(qū)域劃分為沖突區(qū);所述沖突區(qū)包括由存儲(chǔ)層地面路點(diǎn)和電梯機(jī)器人路點(diǎn)組成的沖突區(qū)。
全文摘要
本發(fā)明涉及一種基于三維空間密集存儲(chǔ)區(qū)域的多機(jī)器人路徑規(guī)劃方法,其技術(shù)特點(diǎn)是包括調(diào)度服務(wù)器內(nèi)的主線程和并行執(zhí)行的規(guī)劃線程、避碰線程和執(zhí)行線程,主線程初始化一張三維立體網(wǎng)狀路徑圖并實(shí)時(shí)更新,規(guī)劃線程劃分任務(wù)、任務(wù)路徑、標(biāo)記任務(wù)路徑并送入執(zhí)行隊(duì)列,避碰線程劃分沖突區(qū),并執(zhí)行命令前的命令轉(zhuǎn)義任務(wù),執(zhí)行線程向移動(dòng)機(jī)器人或電梯機(jī)器人發(fā)送執(zhí)行命令。本發(fā)明通過不同種類機(jī)器人接力操作、共同完成該任務(wù)行走路線的方法,實(shí)現(xiàn)了移動(dòng)機(jī)器人和電梯機(jī)器人自動(dòng)切換并且跨樓層任意存取貨物的需求,具有高效率、合理性、實(shí)時(shí)性等特點(diǎn)。
文檔編號(hào)G05D1/02GK102929279SQ20121044009
公開日2013年2月13日 申請(qǐng)日期2012年11月7日 優(yōu)先權(quán)日2012年11月7日
發(fā)明者楊宇, 景國(guó)輝 申請(qǐng)人:無錫普智聯(lián)科高新技術(shù)有限公司