多搜救機(jī)器人系統(tǒng)任務(wù)分配方法
【專利摘要】本發(fā)明公開了一種多搜救機(jī)器人系統(tǒng)任務(wù)分配方法,目的是提供一種在可通信機(jī)器人數(shù)少于任務(wù)數(shù)的情況下仍能進(jìn)行任務(wù)分配的方法。技術(shù)方案是先構(gòu)建一個多搜救機(jī)器人系統(tǒng)并初始化,各個搜救機(jī)器人都有任務(wù)分配子系統(tǒng);調(diào)整搜救機(jī)器人之間的通信關(guān)系,采用通信代理策略解決中心節(jié)點(diǎn)機(jī)器人可通信的機(jī)器人數(shù)少于任務(wù)數(shù)的問題;多搜救機(jī)器人系統(tǒng)計算執(zhí)行任務(wù)的綜合能力,中心節(jié)點(diǎn)機(jī)器人計算最佳任務(wù)分配方案,得到任務(wù)分配表;根據(jù)任務(wù)分配表將任務(wù)發(fā)送給負(fù)責(zé)執(zhí)行的搜救機(jī)器人。采用本發(fā)明可解決負(fù)責(zé)任務(wù)分配的搜救機(jī)器人可通信機(jī)器人數(shù)少于任務(wù)數(shù)的問題;且本發(fā)明充分考慮機(jī)器人的綜合能力對完成任務(wù)的效能的影響,提高了任務(wù)分配成功率。
【專利說明】
多搜救機(jī)器人系統(tǒng)任務(wù)分配方法
技術(shù)領(lǐng)域
[0001] 本發(fā)明設(shè)及在災(zāi)后救援、戰(zhàn)場捜救等環(huán)境中多個分布式捜救機(jī)器人的任務(wù)分配方 法,特別是在通信環(huán)境惡劣的大范圍動態(tài)復(fù)雜環(huán)境中,為多機(jī)器人協(xié)同完成救援任務(wù)提供 的一種任務(wù)分配方法。
【背景技術(shù)】
[0002] 在執(zhí)行災(zāi)后救援、大范圍戰(zhàn)場捜救、復(fù)雜地形救援和高危環(huán)境救援等行動中使用 捜救機(jī)器人代替救援人員可W提高救援效率、降低對救援人員的威脅。但是由于單一機(jī)器 人的能力有限往往需要多個機(jī)器人相互配合共同完成捜救任務(wù)。為了使不同的機(jī)器人能夠 相互配合自主完成救援任務(wù),需要為機(jī)器人提供任務(wù)分配方法。
[0003] 在通信對象受限制的大范圍動態(tài)復(fù)雜環(huán)境中,多捜救機(jī)器人系統(tǒng)進(jìn)行任務(wù)分配需 要解決如下=個問題:
[0004] (1)負(fù)責(zé)任務(wù)分配的捜救機(jī)器人能夠通信的機(jī)器人數(shù)量少于需要分配的任務(wù)數(shù) 量;
[0005] (2)根據(jù)捜救機(jī)器人工作能力的差異性進(jìn)行任務(wù)分配,提高任務(wù)分配的成功率;
[0006] (3)減少任務(wù)分配的時間消耗。
[0007] 目前現(xiàn)有的任務(wù)分配方法主要集中于解決問題(2)和問題(3)。任務(wù)分配方法分為 集中式和分布式兩大類。集中式任務(wù)分配方法如智能優(yōu)化算法、基于圖論的算法等,具有任 務(wù)分配時間短、通信代價低的優(yōu)點(diǎn)。但是集中式任務(wù)分配方法對中屯、節(jié)點(diǎn)的運(yùn)算性能要求 高,對通信環(huán)境的適應(yīng)性較差。分布式任務(wù)分配方法包括基于行為的方法、基于市場機(jī)制的 方法、群智能方法等,目前的基于市場機(jī)制的任務(wù)分配方法具有環(huán)境適應(yīng)性好、任務(wù)分配過 程中考慮機(jī)器人工作性能差異和任務(wù)分配結(jié)果接近全局最優(yōu)解等優(yōu)點(diǎn),但是已有的分布式 任務(wù)算法中沒有對問題(1)進(jìn)行過多的考慮。目前的任務(wù)分配算法沒有考慮下述情況:負(fù)責(zé) 任務(wù)分配的機(jī)器人能夠通信的機(jī)器人數(shù)量少于需要分配的任務(wù)數(shù)。
【發(fā)明內(nèi)容】
[000引本發(fā)明要解決的技術(shù)問題是:提供一種多捜救機(jī)器人系統(tǒng)任務(wù)分配方法,使得負(fù) 責(zé)任務(wù)分配的捜救機(jī)器人能夠在可通信機(jī)器人數(shù)少于任務(wù)數(shù)的情況下、基于捜救機(jī)器人的 工作能力進(jìn)行任務(wù)分配。本發(fā)明的技術(shù)方案如下:
[0009] 第一步:構(gòu)建一個多捜救機(jī)器人系統(tǒng)。系統(tǒng)由N個捜救機(jī)器人組成(N為正整數(shù))。捜 救機(jī)器人之間W無線方式進(jìn)行通信。各個捜救機(jī)器人的工作能力具有差異性,但是都有相 同的任務(wù)分配子系統(tǒng)。
[0010] 捜救機(jī)器人Rf的任務(wù)分配子系統(tǒng)由四部分組成,為整數(shù):基礎(chǔ)數(shù)據(jù)模 塊、通信模塊、任務(wù)綜合能力計算模塊和任務(wù)分配模塊;
[0011] 基礎(chǔ)數(shù)據(jù)模塊保存通信表、基本能力表、基本能力權(quán)重表、潛在能力表、潛在能力 權(quán)重表、候選表、任務(wù)表、已參加任務(wù)分配表、沖突表和最大等待時間。
[0012] 通信表用于保存可W與Rf通信的捜救機(jī)器人。該表是一個一維表,有S行,0《s《 N-I,S為整數(shù),每行記錄與Ri通信的捜救機(jī)器人的通信地址。
[0013] 任務(wù)表保存需要分配的任務(wù)W及完成任務(wù)需要的基本能力。該表是一個二維表, 有M行,表示有M個任務(wù)參加分配,M>1。每行有K個域,K表示多捜救機(jī)器人系統(tǒng)具有的基本 能力的數(shù)量,K> 1。表中每個元素為一個S元組(U,Ck,tCmk),其中tm表示第m個任務(wù),C讀示 第k種基本能力,tCmk取值為0或1,0表示任務(wù)U不需要能力Ck, 1表示任務(wù)U需要能力Ck,,
[0014] 基本能力表保存Rf的各個基本能力(完成任務(wù)必須的能力)的大小。該表是一個二 維表,有M'行,M'表示多捜救機(jī)器人系統(tǒng)能夠完成的任務(wù)類型總數(shù),每行有K個域,分別是完 成不同任務(wù)的基本能力大小。
[0015] 基本能力權(quán)重表保存Rf的各個基本能力的權(quán)重。該表是一個二維表,有K行,每行 有兩個域,一個是基本能力名,一個是該能力的權(quán)重。
[0016] 潛在能力表保存Rf的各個潛在能力(只影響任務(wù)完成效果的能力)的大小。該表是 一個二維表,有M'行,每行有K'個域,分別是完成不同任務(wù)的潛在能力大小,K'表示多捜救 機(jī)器人系統(tǒng)具有的潛在能力的數(shù)量,K'>1。
[0017] 潛在能力權(quán)重表保存Rf的各個潛在能力的權(quán)重。該表是一個二維表,有K'行,每行 有兩個域,一個是潛在能力名,一個是該能力的權(quán)重。
[0018] 候選表保存參加任務(wù)分配的捜救機(jī)器人的通信地址。該表是一個一維表,有S"行, 0《s"《N-l,s"為整數(shù),,每行記錄參加任務(wù)分配的捜救機(jī)器人的通信地址。
[0019] 已參加任務(wù)分配表記錄了 Rf參加的任務(wù)分配,該表是一個一維表,記錄了 Rf參加的 任務(wù)分配的總?cè)蝿?wù)名。
[0020] 最大等待時間T表示捜救機(jī)器人Rf發(fā)出任務(wù)分配請求消息后等待反饋消息的時 間,T一般設(shè)置為10~40秒。
[0021] 通信模塊保存消息表和已通信表。
[0022] 消息表保存Rf收到的消息。該表是一個一維表,每行記錄Ri收到的消息。消息由五 部分內(nèi)容組成:標(biāo)識、消息發(fā)送者、消息接收者、消息類型和消息內(nèi)容。標(biāo)識由消息來源機(jī)器 人通信地址、總?cè)蝿?wù)名和消息順序依次組合而成。消息發(fā)送者記錄發(fā)送消息的機(jī)器人的通 信地址。消息接收者記錄接收消息的機(jī)器人的通信地址。消息類型有六種取值:Request、 Accept、Refuse、Taskrequirement、Taskuti Iity 和Taskal IocatecLRequest 表示消息用于 請求建立通信網(wǎng)絡(luò);Accept表示消息發(fā)送者同意參加任務(wù)分配;Refuse表示消息發(fā)送者拒 絕參加任務(wù)分配;Taskrequirement表示消息內(nèi)容是任務(wù)需求描述;Taskuti Iity表示消息 內(nèi)容是消息發(fā)送者執(zhí)行任務(wù)的效用;Taskallocated表示消息內(nèi)容是任務(wù)分配方案。消息內(nèi) 容是W字符串的形式記錄的消息的內(nèi)容。
[0023] 已通信表保存向Rf發(fā)送消息的捜救機(jī)器人的通信地址。該表是一個一維表,有S"' (S" ' = 1,2,3-N-1)行,每行記錄向Rf發(fā)送消息的捜救機(jī)器人的通信地址。
[0024] 如果通信模塊從操作系統(tǒng)收到類型為Request的消息,通信模塊修改消息表、已通 信表、基礎(chǔ)數(shù)據(jù)模塊的通信表。如果通信模塊從操作系統(tǒng)收到類型為Accept的消息,通信模 塊修改消息表、已通信表,并根據(jù)消息的發(fā)送者修改基礎(chǔ)數(shù)據(jù)模塊的候選表和通信表。如果 通信模塊從操作系統(tǒng)收到類型為Re化Se的消息,通信模塊修改消息表、已通信表,并根據(jù)消 息的發(fā)送者修改基礎(chǔ)數(shù)據(jù)模塊的通信表。如果通信模塊從操作系統(tǒng)收到類型為 Taskrequirement的消息,通信模塊修改消息表、已通信表,并修改基礎(chǔ)數(shù)據(jù)模塊的任務(wù)表。 如果通信模塊從操作系統(tǒng)收到類型為Taskutility的消息,通信模塊修改消息表、已通信 表,并修改任務(wù)綜合能力計算模塊的任務(wù)綜合能力表。如果通信模塊從操作系統(tǒng)收到類型 為化skallocated的消息,通信模塊修改消息表、已通信表,并修改任務(wù)分配模塊的任務(wù)分 配表。如果通信模塊從任務(wù)綜合能力計算模塊和任務(wù)分配模塊收到消息,那么通信模塊先 修改消息表,然后通過操作系統(tǒng)將收到的消息發(fā)送出去。
[0025] 任務(wù)綜合能力計算模塊保存有任務(wù)綜合能力表。
[0026] 任務(wù)綜合能力表保存Rf完成不同任務(wù)的綜合能力。該表是一個二維表,有S"行。每 行有1域,是與任務(wù)名對應(yīng)的完成任務(wù)的綜合能力大小。
[0027] 任務(wù)綜合能力計算模塊根據(jù)從基礎(chǔ)數(shù)據(jù)模塊中獲得的任務(wù)表、基本能力表、基本 能力權(quán)重表、潛在能力表、潛在能力權(quán)重表計算Rf執(zhí)行任務(wù)的綜合能力,將Rf執(zhí)行任務(wù)的綜 合能力保存在任務(wù)綜合能力表中。如果Rf被分配任務(wù),那么Rf的任務(wù)綜合能力計算模塊生成 類型為化Skutility的消息發(fā)送給通信模塊。
[0028] 任務(wù)分配模塊保存有任務(wù)分配表。任務(wù)分配表是一個一維表,有M行,每行記錄執(zhí) 行任務(wù)的機(jī)器人標(biāo)識。
[0029] 任務(wù)分配模塊根據(jù)任務(wù)綜合能力計算模塊的任務(wù)綜合能力表計算最佳的任務(wù)分 配方案,生成任務(wù)分配表,并生成標(biāo)識為化Skallocated的消息,并將該消息發(fā)送給通信模 塊。
[0030] 雖然所有的捜救機(jī)器人的任務(wù)分配子系統(tǒng)是完全相同的,但是在任務(wù)分配過程 中,捜救機(jī)器人所承擔(dān)的角色是不同的,并且捜救機(jī)器人的角色是可W發(fā)生變化的。在一次 任務(wù)分配過程中,發(fā)起任務(wù)分配的機(jī)器人被稱為中屯、節(jié)點(diǎn)機(jī)器人,設(shè)為Ri,系統(tǒng)中其他機(jī)器 人為Ri(2《i《N)。中屯、節(jié)點(diǎn)機(jī)器人化發(fā)起任務(wù)分配向Ri發(fā)送消息類型是Request的消息,Ri 接收到Request類型的消息后對消息進(jìn)行處理。
[0031 ]第二步,多捜救機(jī)器人系統(tǒng)初始化:
[0032] 從用戶提供的配置文件讀入通信表、基本能力表、基本能力權(quán)重表、潛在能力表、 潛在能力權(quán)重表和最大等待時間。
[0033] 第=步:調(diào)整捜救機(jī)器人之間的通信關(guān)系,采用通信代理策略來解決中屯、節(jié)點(diǎn)機(jī) 器人可通信的機(jī)器人數(shù)少于任務(wù)數(shù)的問題。
[0034] 3. IRi向Ri的通信表中的捜救機(jī)器人發(fā)送類型為Request消息,消息內(nèi)容為總?cè)蝿?wù) 名(總?cè)蝿?wù)名是對所有待分配任務(wù)的代表)的任務(wù)分配請求消息,并將任務(wù)分配請求消息加 入Ri的消息表,然后化開始等待反饋消息并計時;
[0035] 3.2在Ri等待反饋消息期間瓜每過1秒判斷一次等待時間是否大于T,如果大于則 轉(zhuǎn)到3.13,否則轉(zhuǎn)3.2,仍然等待。如果Ri收到從Ri來的反饋消息,則轉(zhuǎn)到3.10。同時,在Ri等 待期間,如果Ri收到從Rj來的消息,1《j《N,j聲i轉(zhuǎn)到3.3;
[0036] 3.3Ri遍歷Ri的消息表,判斷Ri的消息表中是否有與R3收到的消息具有相同標(biāo)識的 消息,如果有,則轉(zhuǎn)到3.2,否則將Ri收到的消息加入Ri的消息表,并將消息發(fā)送者 N,j聲i)的通信地址加入已通信表,轉(zhuǎn)3.4;
[0037] 3.4Ri向Ri的通信表中的所有捜救機(jī)器人Ri發(fā)送收到的消息;
[0038] 3.5Ri判斷消息的類型,如果類型是Request,則轉(zhuǎn)3.6,否則轉(zhuǎn)3.2;
[0039] 3.6如果Ri的已參加任務(wù)分配表為空,則轉(zhuǎn)到3.7;否則轉(zhuǎn)到3.9;
[0040] 3.7Ri向扣發(fā)送類型為Accept的消息,消息的內(nèi)容是Ri的通信地址,Ri將總?cè)蝿?wù)名 填入Ri的已參加任務(wù)分配表;
[OOW 3. SRi將Ri的任務(wù)綜合能力表清空,并轉(zhuǎn)3.2; 3.9Ri向R潑送類型為Refuse的消息, 消息的內(nèi)容是Ri的通信地址,并轉(zhuǎn)3.2;
[0042] 3. IORi遍歷Ri的消息表,判斷Ri的消息表是否有與Ri收到的反饋消息具有相同標(biāo) 識的消息,如果有,則轉(zhuǎn)到3.2;否則,將化收到的消息加入到Ri的消息表,并將消息發(fā)送者的 通信地址加入Ri的已通信表,轉(zhuǎn)3.11;
[0043] 3.11如果化收到的反饋消息的類型是Request,則轉(zhuǎn)到3.2,否則轉(zhuǎn)到3.12
[0044] 3.12如果Ri收到的反饋消息的類型是Accept,則將同意參加任務(wù)分配的捜救機(jī)器 人通信地址加入Ri的候選表,轉(zhuǎn)3.2;否則轉(zhuǎn)3.2;
[0045] 3.13Ri用化的已通信表替換Ri的通信表,清空化的已通信表和任務(wù)綜合能力表。
[0046] 3.14如果Ri的已參加任務(wù)分配表為空,則將Ri的通信地址加入Ri的候選表,將總?cè)?務(wù)名,填入Ri的已參加任務(wù)分配表,轉(zhuǎn)第四步;否則直接轉(zhuǎn)第四步;
[0047] 第四步:多捜救機(jī)器人系統(tǒng)計算執(zhí)行任務(wù)的綜合能力,并將任務(wù)綜合能力表發(fā)送 給Ri。
[0048] 4. IRi判斷任務(wù)數(shù)是否大于Ri的候選表的行數(shù),如果任務(wù)數(shù)大于Ri的候選表的行 數(shù),則轉(zhuǎn)4.18,否則轉(zhuǎn)到4.2;
[0049] 4.2R1向Ri的通信表中的所有機(jī)器人發(fā)送類型為化skrequirement、內(nèi)容為任務(wù)表 和總?cè)蝿?wù)名的任務(wù)能力需求消息,并將任務(wù)能力需求消息加入Ri的消息表;
[0050] 4.3R況始等待Ri的反饋消息。在Ri等待期間,如果Ri收到消息,轉(zhuǎn)4.7。如果Ri收到 Ri的反饋消息,則轉(zhuǎn)4.4;
[0051] 4.4Ri遍歷Ri的消息表,判斷Ri的消息表中是否有與Ri收到的消息具有相同標(biāo)識的 消息,有則轉(zhuǎn)4.3,否則化將消息中的Ri的任務(wù)綜合能力值填入化的任務(wù)綜合能力表,并將Ri 收到的消息加入Ri的消息表;
[0052] 4.5判斷Ri的候選表中的所有捜救機(jī)器人是否都返回了消息類型是化Skutility 的消息,如果是,轉(zhuǎn)4.6,否則轉(zhuǎn)4.3;
[0053] 4.6Ri檢查化的已參加任務(wù)分配表,如果化的已參加任務(wù)分配表中有當(dāng)前的總?cè)蝿?wù) 名,則轉(zhuǎn)4.12,否則轉(zhuǎn)第五步;
[0054] 4.7Ri遍歷Ri的消息表,判斷Ri收到的消息是否與Ri的消息表中的消息具有相同的 標(biāo)識,如果有,則轉(zhuǎn)4.3,否則將Ri收到的消息加入到Ri的消息表;
[0055] 4.8Ri向Ri的通信表中所有捜救機(jī)器人發(fā)送Ri的收到的消息;
[0化6] 4.9Ri判斷消息的類型,如果類型是化Skrequirement,則轉(zhuǎn)到4.10,否則轉(zhuǎn)到4.3;
[0057] 4. IORi根據(jù)Ri的已參加任務(wù)分配表判斷Ri是否參加任務(wù)分配,如果是,則轉(zhuǎn)4.12, 否則轉(zhuǎn)4.3;
[0化引 4. IlRi向發(fā)送化skrequirement類型消息的發(fā)送者Rj發(fā)送類型為化skutility的消 息,消息內(nèi)容是任務(wù)綜合能力表,轉(zhuǎn)4.3 ;由于Ri是Taskrequirement類型消息的最初發(fā)送 者,所W最終所有類型為化Skut i 1 i ty的消息都會發(fā)送給Ri。
[0062]
[0059] 4.12由于Ri與Ri計算綜合任務(wù)能力的算法是相同的,WRh代表Ri和Ri,l《h《N?;?從類型為化skrequirement的消息中獲得任務(wù)表;[0060] 4.13Rh遍歷化的任務(wù)表,從表中取出第m個任務(wù),[0061] 4.14Rh根據(jù)公式(1)和(2)計算完成第m個任務(wù)的基本能力Kmh;
[0063]
[0064] 其中amh=l表示第h個捜救機(jī)器人能完成第m個任務(wù),amh = 0表示不能完成第m個任 務(wù);ecm化表示第h個捜救機(jī)器人、完成第m個任務(wù)時具有的第k種基本能力的大小,ecmhkG[0, 1 ]; ? hk表示第h個捜救機(jī)器人的第k種基本能力的權(quán)重,CO hkG [0,1 ]。
[0065] 4.15Rh根據(jù)公式(3)計算完成第m個任務(wù)的潛在能力Gmh
[0066]
怯).
[0067] CO '化表示第h個捜救機(jī)器人第k種潛在能力的權(quán)重,CO 'hkG[0,l];egCmh讀示第h 個捜救機(jī)器人完成第m個任務(wù)具有的第k種潛在能力的大小,egc血kG [0,1 ]
[00側(cè) 4.16化根據(jù)公式(4)計算完成第m個任務(wù)的綜合能力Acapmh,并將計算結(jié)果存入Rh 的任務(wù)綜合能力表;
[0069]
[0070] 其中Acapmh表示第h個機(jī)器人完成第m個任務(wù)的綜合能力,CO "hi表示第h個機(jī)器人 的基本能力的權(quán)重,W"h2表示第h個機(jī)器人的潛在能力的權(quán)重,W"hlG[0,l],《"h2G[0, 1]〇
[00川 4.17如果化代表Ri,則轉(zhuǎn)第五步;如果化代表Ri轉(zhuǎn)4.11。
[0072] 4.18化終止任務(wù)分配。
[0073] 第五步:Ri使用匈牙利算法(參見彭靜.分配問題中匈牙利算法分析[J].科技信 息,VOl. 36,2009)計算最佳任務(wù)分配方案,算法的輸入是Ri的任務(wù)綜合能力表,算法輸出是 Ri的任務(wù)分配表。
[0074] 第六步:虹根據(jù)化的任務(wù)分配表將任務(wù)發(fā)送給負(fù)責(zé)執(zhí)行的捜救機(jī)器人。
[00巧]6. IRi向Ri的通信表中的所有機(jī)器人發(fā)送類型為化SkallocatecU內(nèi)容為任務(wù)分配 表的消息,并將Ri發(fā)送的類型為化Skallocated的消息加入化的消息表;
[0076] 6.2Ri檢查Ri的任務(wù)分配表,如果Ri被分配了任務(wù),則執(zhí)行分配的任務(wù),否則轉(zhuǎn)6.7, 同時如果Ri(2《 i《N)收到任務(wù)分配消息,則轉(zhuǎn)到6.3:
[0077] 6.3Ri遍歷Ri的消息表,判斷Ri的消息表中是否有與Ri收到的消息具有相同標(biāo)識的 消息,如果有,則轉(zhuǎn)6.8,否則將Ri收到的消息加入到Ri的消息表,轉(zhuǎn)6.4;
[0078] 6.4Ri向Ri的通信表中所有捜救機(jī)器人(除消息的發(fā)送者)發(fā)送Ri的收到的消息;
[0079] 6.5Ri判斷Ri收到的消息的類型,如果類型是Taskallocated,則轉(zhuǎn)到6.6,否則轉(zhuǎn) 6.7;
[0080] 6.6Ri根據(jù)Ri的已參加任務(wù)分配表判斷Ri是否參加任務(wù)分配,如果Ri參加任務(wù)分 配,則從Ri收到的類型為化Skallocated的消息中讀出任務(wù)分配表,并執(zhí)行分配的任務(wù);
[0081 ] 6.7化退出任務(wù)分配子系統(tǒng)。
[0082] 6. SRi不對收到的消息進(jìn)行響應(yīng)。
[0083] 本發(fā)明提供了一種負(fù)責(zé)任務(wù)分配的捜救機(jī)器人可通信機(jī)器人數(shù)少于任務(wù)數(shù)的、基 于捜救機(jī)器人工作能力的任務(wù)分配方法。采用本發(fā)明具有W下優(yōu)點(diǎn):
[0084] 第一:為了解決負(fù)責(zé)任務(wù)分配的捜救機(jī)器人可通信機(jī)器人數(shù)少于任務(wù)數(shù)的問題, 本發(fā)明第=步采用通信代理的方法調(diào)整多捜救機(jī)器人系統(tǒng)的通信網(wǎng)絡(luò),增加了參與任務(wù)分 配的機(jī)器人數(shù);
[0085] 第二:本發(fā)明第四步采用基于捜救機(jī)器人綜合能力的計算方法。在任務(wù)分配過程 中,充分考慮機(jī)器人的綜合能力對完成任務(wù)的效能的影響,提高了任務(wù)分配成功率。
[0086] 說明書附圖
[0087] 為了更清楚的說明本發(fā)明實(shí)施例和現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或現(xiàn) 有技術(shù)描述中所需要使用的附圖作簡單的介紹。
[0088] 圖1是本發(fā)明總體結(jié)構(gòu)圖;
[0089] 圖2為本發(fā)明多捜救機(jī)器人系統(tǒng)任務(wù)分配方法的軟件部署圖;
[0090] 圖3為本發(fā)明總體流程圖;
【具體實(shí)施方式】
[0091] 為了使其他技術(shù)人員能夠更好的理解本發(fā)明,下面對本發(fā)明進(jìn)行詳細(xì)介紹。
[0092] 第一步:構(gòu)建一個如圖1所示的多捜救機(jī)器人系統(tǒng)。假設(shè)系統(tǒng)中有4個捜救機(jī)器人 (N=4),分別為Ri、化、化和R4。
[0093] 第二步:多捜救機(jī)器人系統(tǒng)初始化:
[0094] 設(shè)化負(fù)責(zé)發(fā)起任務(wù)分配過程,最大等待時間T = 20s,總?cè)蝿?wù)為TN;
[0095] 化的通信表如表所示:
[0096] 表 1 「00971 LUWS」 護(hù)」通信巧觀巧尸幾不:
[0099]表 2 「/"H LUiui」 K3tfj旭舊巧挪J巧/yr不:
[0102]表4
[0122] R2的基本能力權(quán)重表如表所示:
[0123] 表10 「01241
L〇158」第=步:調(diào)整搜救機(jī)器人之間的通信關(guān)系。具體步驟如下:
[0159] 3. IRi向R2發(fā)送任務(wù)分配請求消息,消息內(nèi)容為總?cè)蝿?wù)名,并將該任務(wù)分配請求消 息加入消息表,然后Ri開始等待反饋消息并計時;
[0160] 3.2在Ri等待反饋消息期間,扣每過1秒判斷一次等待時間是否大于T,如果大于則 轉(zhuǎn)到3.16,否則仍然等待。如果Ri收到反饋消息,則轉(zhuǎn)到3.10。同時,在化等待期間,RiQ = I, 2,3)對收到的消息進(jìn)行處理,如果Ri收到消息,轉(zhuǎn)到3.3
[0161] 3.3Ri遍歷消息表,判斷消息表是否有與收到的消息相同的消息,如果有,則轉(zhuǎn)到 3.2,否則將消息加入消息表,并將消息發(fā)送者J聲i)的通信地址加入已通信 表,轉(zhuǎn)3.4;
[0162] 3.4Ri向通信表中機(jī)器人發(fā)送收到的消息;
[0163] 3.5Ri判斷消息的類型,如果類型是Request,則轉(zhuǎn)到3.6,否則轉(zhuǎn)3.2;
[0164] 3.6Ri判斷是否參加任務(wù)分配,如果參加任務(wù)分配,則轉(zhuǎn)到3.7;否則轉(zhuǎn)到3.9;
[0165] 3.7Ri向Rj發(fā)送類型為Acc邱t的消息,消息的內(nèi)容是Ri的通信地址,將總?cè)蝿?wù)名TN 填入已參加任務(wù)分配表;
[0166] 3. SRi將自身的任務(wù)綜合能力表清空,并轉(zhuǎn)3.2;
[0167] 3.9Ri向Rj發(fā)送類型為Refuse的消息,消息的內(nèi)容是Ri的通信地址,并轉(zhuǎn)3.2;
[0168] 3. IORi遍歷消息表,判斷消息表是否有與收到的消息相同的消息,如果有,則,轉(zhuǎn) 到3.2;否則,將消息加入到消息表,并將R2的通信地址加入已通信表,轉(zhuǎn)到3.11;
[0169] 3.11如果化收到的消息的類型是Request,則轉(zhuǎn)到3.2,否則轉(zhuǎn)到3.12
[0170] 3.12如果Ri收到的消息的類型是Accept,則將同意參加任務(wù)分配的捜救機(jī)器人通 信地址加入候選表,轉(zhuǎn)到3.2;否則轉(zhuǎn)到3.2;
[0171] 3.13化用已通信表替換通信表,清空已通信表和任務(wù)綜合能力表;
[0172] 3.14Ri判斷自身是否參加任務(wù)分配,如果參加任務(wù)分配,則將自己的通信地址加 入候選表,將總?cè)蝿?wù)名TN填入已參加任務(wù)分配表,轉(zhuǎn)到第四步;否則轉(zhuǎn)到第四步;
[0173] 第四步:多捜救機(jī)器人系統(tǒng)計算執(zhí)行任務(wù)的綜合能力,并將任務(wù)綜合能力表發(fā)送 給Ri
[0174] 4. IRi判斷任務(wù)數(shù)是否大于候選表的行數(shù),如果任務(wù)數(shù)大于候選表的行數(shù),則轉(zhuǎn) 4.18,否則轉(zhuǎn)到4.2;
[0175] 4.2R1向R2發(fā)送類型為化skrequirement、內(nèi)容為任務(wù)表和總?cè)蝿?wù)名TN的任務(wù)能力 需求消息,并將該消息加入消息表;
[0176] 4.3R況始等待Ri的反饋消息。在Ri等待期間,如果Ri收到消息,那么轉(zhuǎn)到4.7。如果 Ri收到Ri的反饋消息,則轉(zhuǎn)到4.4;
[0177] 4.4Ri遍歷消息表,判斷消息表是否有相同的消息,如果有則轉(zhuǎn)到4.3,否則Ri將消 息中的任務(wù)綜合能力表填入Ri的任務(wù)綜合能力表,并將消息加入消息表;
[0178] 4.5判斷Ri的候選表中的所有機(jī)器人R2、R3和R4都返回了消息類型是化Skutility 的消息,如果是,則轉(zhuǎn)到4.6,否則轉(zhuǎn)到4.3;
[0179] 4.6如果化參加任務(wù)分配,則轉(zhuǎn)4.12,否則轉(zhuǎn)到第五步;
[0180] 4.7Ri遍歷消息表,判斷是否收到相同的消息,如果收到過相同的消息,則轉(zhuǎn)到 4.3,否則將消息加入到消息表;
[0181] 4.8Ri向通信表中所有機(jī)器人發(fā)送收到的消息;
[0182] 4.9Ri判斷消息的類型,如果類型是化Skrequirement,則轉(zhuǎn)到4.10,否則轉(zhuǎn)到4.3;
[0183] 4. IORi根據(jù)已參加任務(wù)分配表判斷是否參加任務(wù)分配,如果參加,則轉(zhuǎn)到4.12,否 則轉(zhuǎn)到4.3;
[0184] 4.1 IRi向發(fā)送Taskrequirement類型消息的發(fā)送者Rj(1《j《N, j聲i)發(fā)送類型為 Taskut i 1 i ty的消息,消息內(nèi)容是任務(wù)綜合能力表,轉(zhuǎn)到4.3;
[0185] 4.12由于Ri與Ri計算綜合任務(wù)能力的算法是相同的,WRh(l《h《N)代表Ri和RisRi 從類型為化skrequirement的消息中獲得任務(wù)表;
[0186] 4.13Rh遍歷化的任務(wù)表,從表中取出第個任務(wù);
[0187] 4.14Rh計算完成第m個任務(wù)的基本能力Kmh;
[018引4.15Rh計算完成第m個任務(wù)的潛在能力Gmh
[0189] 4.16Rh計算完成第m個任務(wù)的綜合能力Acapmh,并將計算結(jié)果存入化的任務(wù)綜合能 力表;
[0190] 4.17如果化是化,則轉(zhuǎn)第五步,如果化代表Ri轉(zhuǎn)4.11。
[0191] 4.18化終止任務(wù)分配。
[0192] 化最終獲得的任務(wù)綜合能力表的值如表22所示
[0193] 表22 「01941
[01M]第五步:Ri計算最佳任務(wù)分配方案,輸入是Ri的任務(wù)綜合能力表,輸出是Ri的任務(wù) 分配表,如表23所示:
[0196] 表23
[0197]
[0198] 第六步:町根據(jù)任務(wù)分配表將任務(wù)發(fā)送給負(fù)責(zé)執(zhí)行的捜救機(jī)器人。
[0199] 6. IRi向化發(fā)送類型為化skallocated、內(nèi)容為任務(wù)分配表的消息,并將該消息加入 消息表;
[0200] 6.2如果Ri被分配了任務(wù),則執(zhí)行分配的任務(wù),否則轉(zhuǎn)到6.7,同時如果Ri收到任務(wù) 分配消息,則轉(zhuǎn)到6.3:
[0201] 6.3Ri遍歷消息表,判斷是否收到相同的消息,如果收到過相同的消息,則不處理, 否則將消息加入到消息表,轉(zhuǎn)到6.4;
[0202] 6.4Ri向通信表中所有機(jī)器人(除消息的發(fā)送者)發(fā)送收到的消息;
[0203] 6.5Ri判斷消息的類型,如果類型是化skallocated,則轉(zhuǎn)到6.6,否則轉(zhuǎn)6.8;
[0204] 6.6Ri根據(jù)已參加任務(wù)分配表判斷是否參加任務(wù)分配,如果參加任務(wù)分配,則從消 息中讀出任務(wù)分配表,并執(zhí)行分配的任務(wù);
[0205] 6.7Ri退出任務(wù)分配子系統(tǒng);
[0206] 6. SRi不對收到的消息進(jìn)行響應(yīng)。
【主權(quán)項】
1. 一種多搜救機(jī)器人系統(tǒng)任務(wù)分配方法,其特征在于包括以下步驟: 第一步:構(gòu)建一個多搜救機(jī)器人系統(tǒng),多搜救機(jī)器人系統(tǒng)由N個搜救機(jī)器人組成,N為正 整數(shù);搜救機(jī)器人之間以無線方式進(jìn)行通信,各個搜救機(jī)器人有相同的任務(wù)分配子系統(tǒng); 搜救機(jī)器人Rf的任務(wù)分配子系統(tǒng)由四部分組成,l<f<N,f為整數(shù):基礎(chǔ)數(shù)據(jù)模塊、通信 模塊、任務(wù)綜合能力計算模塊和任務(wù)分配模塊; 基礎(chǔ)數(shù)據(jù)模塊保存通信表、基本能力表、基本能力權(quán)重表、潛在能力表、潛在能力權(quán)重 表、候選表、任務(wù)表、已參加任務(wù)分配表、沖突表和最大等待時間; 通信表用于保存可以與Rf通信的搜救機(jī)器人,該表是一個一維表,有s行,0彡s彡N-l,s 為整數(shù),每行記錄與Ri通信的搜救機(jī)器人的通信地址; 任務(wù)表保存需要分配的任務(wù)以及完成任務(wù)需要的基本能力,該表是一個二維表,有Μ 行,表示有Μ個任務(wù)參加分配,Μ多1;每行有Κ個域,Κ表示多搜救機(jī)器人系統(tǒng)具有的基本能力 的數(shù)量,Κ彡1;表中每個元素為一個三元組(U,c k,tcmk),其中U表示第m個任務(wù),ck表示第k 種基本能力,tCmk取值為0或1,0表示任務(wù)tm不需要能力Ck,1表示任務(wù)tm需要能力Ck,, M,l^k^K; 基本能力表保存Rf的各個基本能力即完成任務(wù)必須的能力的大小,該表是一個二維表, 有M'行,M'表示多搜救機(jī)器人系統(tǒng)能夠完成的任務(wù)類型總數(shù),每行有K個域,分別是完成不 同任務(wù)的基本能力大??; 基本能力權(quán)重表保存Rf的各個基本能力的權(quán)重,該表是一個二維表,有K行,每行有兩個 域,一個是基本能力名,一個是該能力的權(quán)重; 潛在能力表保存Rf的各個潛在能力的大小,該表是一個二維表,有M'行,每行有K'個域, 分別是完成不同任務(wù)的潛在能力大小,K'表示多搜救機(jī)器人系統(tǒng)具有的潛在能力的數(shù)量, K,彡 1; 潛在能力權(quán)重表保存Rf的各個潛在能力的權(quán)重,該表是一個二維表,有K'行,每行有兩 個域,一個是潛在能力名,一個是該能力的權(quán)重; 候選表保存參加任務(wù)分配的搜救機(jī)器人的通信地址,該表是一個一維表,有s"行,(X s〃$N-l,s"為整數(shù),每行記錄參加任務(wù)分配的搜救機(jī)器人的通信地址; 已參加任務(wù)分配表記錄了 Rf參加的任務(wù)分配,該表是一個一維表,記錄了 Rf參加的任務(wù) 分配的總?cè)蝿?wù)名; 最大等待時間T表示搜救機(jī)器人Rf發(fā)出任務(wù)分配請求消息后等待反饋消息的時間; 通信模塊保存有消息表和已通信表; 消息表保存Rf收到的消息,該表是一個一維表,每行記錄R!收到的消息;消息由五部分 內(nèi)容組成:標(biāo)識、消息發(fā)送者、消息接收者、消息類型和消息內(nèi)容;標(biāo)識由消息來源機(jī)器人通 信地址、總?cè)蝿?wù)名和消息順序依次組合而成;消息發(fā)送者記錄發(fā)送消息的機(jī)器人的通信地 址;消息接收者記錄接收消息的機(jī)器人的通信地址;消息類型有六種取值:Request、 Accept、Refuse、Taskrequirement、Taskutility和Taskal located,Request 表不消息用于 請求建立通信網(wǎng)絡(luò);Accept表示消息發(fā)送者同意參加任務(wù)分配;Refuse表示消息發(fā)送者拒 絕參加任務(wù)分配;Taskrequirement表示消息內(nèi)容是任務(wù)需求描述;Taskuti lity表示消息 內(nèi)容是消息發(fā)送者執(zhí)行任務(wù)的效用;Taskal located表示消息內(nèi)容是任務(wù)分配方案;消息內(nèi) 容是以字符串的形式記錄的消息的內(nèi)容; 已通信表保存向Rf發(fā)送消息的搜救機(jī)器人的通信地址,該表是一個一維表,有s"'行,Ο 彡s〃'彡N-l,s"'為整數(shù),每行記錄向Rf發(fā)送消息的搜救機(jī)器人的通信地址; 如果通信模塊從操作系統(tǒng)收到類型為Request的消息,通信模塊修改消息表、已通信 表、基礎(chǔ)數(shù)據(jù)模塊的通信表;如果通信模塊從操作系統(tǒng)收到類型為Accept的消息,通信模塊 修改消息表、已通信表,并根據(jù)消息的發(fā)送者修改基礎(chǔ)數(shù)據(jù)模塊的候選表和通信表;如果通 信模塊從操作系統(tǒng)收到類型為Refuse的消息,通信模塊修改消息表、已通信表,并根據(jù)消息 的發(fā)送者修改基礎(chǔ)數(shù)據(jù)模塊的通信表。如果通信模塊從操作系統(tǒng)收到類型為 Taskrequirement的消息,通信模塊修改消息表、已通信表,并修改基礎(chǔ)數(shù)據(jù)模塊的任務(wù)表。 如果通信模塊從操作系統(tǒng)收到類型為Taskutility的消息,通信模塊修改消息表、已通信 表,并修改任務(wù)綜合能力計算模塊的任務(wù)綜合能力表。如果通信模塊從操作系統(tǒng)收到類型 為Taskallocated的消息,通信模塊修改消息表、已通信表,并修改任務(wù)分配模塊的任務(wù)分 配表;如果通信模塊從任務(wù)綜合能力計算模塊和任務(wù)分配模塊收到消息,那么通信模塊先 修改消息表,然后通過操作系統(tǒng)將收到的消息發(fā)送出去; 任務(wù)綜合能力計算模塊保存有任務(wù)綜合能力表; 任務(wù)綜合能力表保存Rf完成不同任務(wù)的綜合能力,該表是一個^維表,有s"彳丁,每彳丁有Μ 域,是與任務(wù)名對應(yīng)的完成任務(wù)的綜合能力大小; 任務(wù)綜合能力計算模塊根據(jù)從基礎(chǔ)數(shù)據(jù)模塊中獲得的任務(wù)表、基本能力表、基本能力 權(quán)重表、潛在能力表、潛在能力權(quán)重表計算Rf執(zhí)行任務(wù)的綜合能力,將Rf執(zhí)行任務(wù)的綜合能 力保存在任務(wù)綜合能力表中;如果R f被分配任務(wù),那么Rf的任務(wù)綜合能力計算模塊生成類型 為Taskut i 1 i ty的消息發(fā)送給通信模塊; 任務(wù)分配模塊保存有任務(wù)分配表,任務(wù)分配表是一個一維表,有Μ行,每行記錄執(zhí)行任 務(wù)的機(jī)器人標(biāo)識; 任務(wù)分配模塊根據(jù)任務(wù)綜合能力計算模塊的任務(wù)綜合能力表計算最佳的任務(wù)分配方 案,生成任務(wù)分配表,并生成標(biāo)識為Taskal located的消息,并將該消息發(fā)送給通信模塊; 在一次任務(wù)分配過程中,發(fā)起任務(wù)分配的機(jī)器人被稱為中心節(jié)點(diǎn)機(jī)器人,設(shè)為心,系統(tǒng) 中其他機(jī)器人為Ri,i <N,中心節(jié)點(diǎn)機(jī)器人Ri發(fā)起任務(wù)分配向Ri發(fā)送消息類型是Request 的消息,Ri接收到Request類型的消息后對消息進(jìn)行處理; 第二步,多搜救機(jī)器人系統(tǒng)初始化: 從用戶提供的配置文件讀入通信表、基本能力表、基本能力權(quán)重表、潛在能力表、潛在 能力權(quán)重表和最大等待時間; 第三步:調(diào)整搜救機(jī)器人之間的通信關(guān)系,采用通信代理策略來解決中心節(jié)點(diǎn)機(jī)器人 可通信的機(jī)器人數(shù)少于任務(wù)數(shù)的問題: 3.1心向1?1的通信表中的搜救機(jī)器人發(fā)送類型為Request消息,消息內(nèi)容為總?cè)蝿?wù)名的 任務(wù)分配請求消息,并將任務(wù)分配請求消息加入辦的消息表,然后辦開始等待反饋消息并計 時,所述總?cè)蝿?wù)名是對所有待分配任務(wù)的代表; 3.2在心等待反饋消息期間,心每過1秒判斷一次等待時間是否大于T,如果大于則轉(zhuǎn)到 3.13,否則轉(zhuǎn)3.2,仍然等待;如果心收到從Ri來的反饋消息,則轉(zhuǎn)到3.10;同時,在心等待期 間,如果Ri收到從Rj來的消息,1 < j,j辛i,,轉(zhuǎn)到3.3; 3.3?遍歷心的消息表,判斷心的消息表中是否有與R3收到的消息具有相同標(biāo)識的消息, 如果有,則轉(zhuǎn)到3.2,否則將心收到的消息加入心的消息表,并將消息發(fā)送者心的通信地址加 入已通信表,轉(zhuǎn)3.4; 3.4R^Ri的通信表中的所有搜救機(jī)器人心發(fā)送收到的消息; 3.5Ri判斷消息的類型,如果類型是Request,則轉(zhuǎn)3.6,否則轉(zhuǎn)3.2; 3.6如果心的已參加任務(wù)分配表為空,則轉(zhuǎn)到3.7;否則轉(zhuǎn)到3.9; 3.7Ri向Rj發(fā)送類型為Accept的消息,消息的內(nèi)容是Ri的通信地址,Ri將總?cè)蝿?wù)名填入Ri 的已參加任務(wù)分配表; 3 · 8Ri將Ri的任務(wù)綜合能力表清空,并轉(zhuǎn)3 · 2; 3.9Ri向Rj發(fā)送類型為Refuse的消息,消息的內(nèi)容是Ri的通信地址,并轉(zhuǎn)3.2; 3.10?遍歷辦的消息表,判斷心的消息表是否有與收到的反饋消息具有相同標(biāo)識的消 息,如果有,則轉(zhuǎn)到3.2;否則,將收到的消息加入到仏的消息表,并將消息發(fā)送者的通信地 址加入Ri的已通信表,轉(zhuǎn)3.11; 3.11如果R!收到的反饋消息的類型是Request,則轉(zhuǎn)到3.2,否則轉(zhuǎn)到3.12 3.12如果心收到的反饋消息的類型是Accept,則將同意參加任務(wù)分配的搜救機(jī)器人通 信地址加入Ri的候選表,轉(zhuǎn)3.2;否則轉(zhuǎn)3.2; 3.13RJR^已通信表替換辦的通信表,清空的已通信表和任務(wù)綜合能力表; 3.14如果心的已參加任務(wù)分配表為空,則將心的通信地址加入心的候選表,將總?cè)蝿?wù)名 填入心的已參加任務(wù)分配表,轉(zhuǎn)第四步;否則直接轉(zhuǎn)第四步; 第四步:多搜救機(jī)器人系統(tǒng)計算執(zhí)行任務(wù)的綜合能力,并將任務(wù)綜合能力表發(fā)送給R:: 4.1心判斷任務(wù)數(shù)是否大于心的候選表的行數(shù),如果任務(wù)數(shù)大于心的候選表的行數(shù),則 轉(zhuǎn)4.18,否則轉(zhuǎn)到4.2; 4.2Ri向Ri的通信表中的所有機(jī)器人發(fā)送類型為Taskrequirement、內(nèi)容為任務(wù)表和總 任務(wù)名的任務(wù)能力需求消息,并將任務(wù)能力需求消息加入Ri的消息表; 4.3?開始等待心的反饋消息,在心等待期間,如果心收到消息,轉(zhuǎn)4.7;如果心收到心的 反饋消息,則轉(zhuǎn)4.4; 4.4?遍歷辦的消息表,判斷的消息表中是否有與收到的消息具有相同標(biāo)識的消息, 有則轉(zhuǎn)4.3,否則心將消息中的Ri的任務(wù)綜合能力值填入心的任務(wù)綜合能力表,并將心收到 的消息加入心的消息表; 4.5判斷h的候選表中的所有搜救機(jī)器人是否都返回了消息類型是Taskutility的消 息,如果是,轉(zhuǎn)4.6,否則轉(zhuǎn)4.3; 4.6心檢查心的已參加任務(wù)分配表,如果h的已參加任務(wù)分配表中有當(dāng)前的總?cè)蝿?wù)名, 則轉(zhuǎn)4.12,否則轉(zhuǎn)第五步; 4.7?遍歷心的消息表,判斷心收到的消息是否與心的消息表中的消息具有相同的標(biāo)識, 如果有,則轉(zhuǎn)4.3,否則將心收到的消息加入到心的消息表; 4. SR^Ri的通信表中所有搜救機(jī)器人發(fā)送心的收到的消息; 4.9Ri判斷消息的類型,如果類型是Taskrequirement,則轉(zhuǎn)到4.10,否則轉(zhuǎn)到4.3; 4. lORi根據(jù)h的已參加任務(wù)分配表判斷Ri是否參加任務(wù)分配,如果是,則轉(zhuǎn)4.12,否則 轉(zhuǎn) 4.3; 4. llRi向發(fā)送Taskrequirement類型消息的發(fā)送者Rj發(fā)送類型為Taskutility的消息, 消息內(nèi)容是任務(wù)綜合能力表,轉(zhuǎn)4.3; 4. 12由于1^與1^計算綜合任務(wù)能力的算法相同,以Rh代表1^和1^,1^從類型為 Taskrequirement的消息中獲得任務(wù)表,Kh<N; 4.13Rh遍歷Rh的任務(wù)表,從表中取出第m個任務(wù), 4.14Rh根據(jù)公式(1)和(2)計算完成第m個任務(wù)的基本能力Kmh;其中amh=l表示第h個搜救機(jī)器人能完成第m個任務(wù),amh = 0表示不能完成第m個任務(wù); ecmhk表示第h個搜救機(jī)器人、完成第m個任務(wù)時具有的第k種基本能力的大?。籧〇hk表示第h個 搜救機(jī)器人的第k種基本能力的權(quán)重; 4.15Rh根據(jù)公式(3)計算完成第m個任務(wù)的潛在能力Gmh(3) ω 'hk表示第h個搜救機(jī)器人第k種潛在能力的權(quán)重;egcmhk表示第h個搜救機(jī)器人完成第 m個任務(wù)具有的第k種潛在能力的大??; 4.16Rh根據(jù)公式(4)計算完成第m個任務(wù)的綜合能力Acapmh,并將計算結(jié)果存入R h的任務(wù) 綜合能力表; Acapmh= ( ω //hi*Kmh+ ω //h2*Gmh)*amh (4) 其中Acapmh表示第h個機(jī)器人完成第m個任務(wù)的綜合能力,ω "hl表示第h個機(jī)器人的基本 能力的權(quán)重,ω "h2表示第h個機(jī)器人的潛在能力的權(quán)重; 4.17如果Rh代表Ri,則轉(zhuǎn)第五步;如果Rh代表Ri轉(zhuǎn)4.11。 4.18辦終止任務(wù)分配; 第五步:心計算最佳任務(wù)分配方案,算法的輸入是心的任務(wù)綜合能力表,算法輸出是R: 的任務(wù)分配表; 第六步:根據(jù)心的任務(wù)分配表將任務(wù)發(fā)送給負(fù)責(zé)執(zhí)行的搜救機(jī)器人: 6. lRi向Ri的通信表中的所有機(jī)器人發(fā)送類型為Taskallocated、內(nèi)容為任務(wù)分配表的 消息,并將Ri發(fā)送的類型為Taskal located的消息加入Ri的消息表; 6.2?檢查仏的任務(wù)分配表,如果仏被分配了任務(wù),則執(zhí)行分配的任務(wù),否則轉(zhuǎn)6.7,同時 如果心收到任務(wù)分配消息,則轉(zhuǎn)到6.3: 6.3?遍歷心的消息表,判斷心的消息表中是否有與心收到的消息具有相同標(biāo)識的消息, 如果有,則轉(zhuǎn)6.8,否則將化收到的消息加入到&的消息表,轉(zhuǎn)6.4; 6.4R^Ri的通信表中所有搜救機(jī)器人發(fā)送心的收到的消息; 6.5Ri判斷Ri收到的消息的類型,如果類型是Taskallocated,則轉(zhuǎn)到6.6,否則轉(zhuǎn)6.7; 6.6?根據(jù)&的已參加任務(wù)分配表判斷&是否參加任務(wù)分配,如果&參加任務(wù)分配,則從 心收到的類型為Taskallocated的消息中讀出任務(wù)分配表,并執(zhí)行分配的任務(wù); 6.7辦退出任務(wù)分配子系統(tǒng)。 6.8?不對收到的消息進(jìn)行響應(yīng)。2. 如權(quán)利要求1所述的多搜救機(jī)器人系統(tǒng)任務(wù)分配方法,其特征在于所述第五步Ri使用 匈牙利算法計算最佳任務(wù)分配方案。3. 如權(quán)利要求1所述的多搜救機(jī)器人系統(tǒng)任務(wù)分配方法,其特征在于所述最大等待時 間T設(shè)置為10~40秒。4. 如權(quán)利要求1所述的多搜救機(jī)器人系統(tǒng)任務(wù)分配方法,其特征在于所述eCmhke[〇, 1],c〇hke[0,i],ω,hke[〇,i],egCmhke[〇,i],c〇" hle[0,i],c〇"h2e[0,i]o
【文檔編號】G06Q10/06GK105956748SQ201610257010
【公開日】2016年9月21日
【申請日】2016年4月22日
【發(fā)明人】查亞兵, 秦龍, 楊妹, 焦鵬, 孫林, 段紅, 張琪
【申請人】中國人民解放軍國防科學(xué)技術(shù)大學(xué)