本申請涉及機器人技術領域,尤其涉及一種多機器人控制方法及裝置。
背景技術:
機器人是可以自動執行任務的機器裝置,可以運行預先編排的程序,進而協助或取代人類的任務。當任務量比較大時,需要多個機器人協同完成任務。
在現有技術中,一般由開發人員將多個機器人中每臺機器人要執行的任務等信息輸入至每臺機器人中。進而,每臺機器人可以分別按照開發人員輸入的信息來執行任務。這種多機器人控制方法需要手動為每臺機器人輸入對應的任務,操作繁瑣,任務執行效率低。
技術實現要素:
本申請的多個方面提供一種多機器人控制方法及裝置,用以提高多機器人執行任務的效率。
本申請實施例提供一種多機器人控制方法,包括:
將總任務劃分為至少一個子任務;
從所述至少一個子任務中,獲取任務狀態為非完成狀態的待執行子任務;
從多機器人中,確定可執行所述待執行子任務的執行機器人;
將所述待執行子任務發送至所述執行機器人,以供所述執行機器人執行所述待執行子任務。
可選地,所述待執行子任務為多個;
所述將所述待執行子任務發送至所述執行機器人,包括:
按照所述多個待執行子任務之間的優先級,依次將所述多個待執行子任務發送至各自對應的執行機器人。
可選地,所述從多機器人中,確定可執行所述待執行子任務的執行機器人,包括:
若指定機器人列表中存在所述待執行子任務對應的指定機器人,獲取所述待執行子任務對應的指定機器人,作為所述待執行子任務的執行機器人;
若所述指定機器人列表中不存在所述待執行子任務對應的指定機器人,從所述多機器人中,獲取滿足所述待執行子任務對機器人的功能要求的機器人,作為所述待執行子任務的執行機器人。
可選地,所述從所述多機器人中,獲取滿足所述待執行子任務對機器人的功能要求的機器人,作為所述待執行子任務的執行機器人,包括:
從預先建立的子任務與子任務對機器人的功能要求的對應關系中,獲取所述待執行子任務對機器人的功能要求;
從預先建立的機器人與機器人的能力信息之間的對應關系中,獲取能力信息滿足所述待執行子任務對機器人的功能要求的機器人,作為所述執行機器人。
可選地,所述將所述待執行子任務發送至所述執行機器人,以供所述執行機器人執行所述待執行子任務,包括:
若所述執行機器人的狀態為空閑狀態,直接將所述待執行子任務發送至所述執行機器人,以供所述執行機器人執行所述待執行子任務;
若所述執行機器人的狀態為非空閑狀態,且所述執行機器人正在執行的子任務的優先級低于所述待執行子任務的優先級,中斷所述執行機器人正在執行的子任務,并將所述待執行子任務發送至所述執行機器人,以供所述執行機器人執行所述待執行子任務;
若所述執行機器人的狀態為非空閑狀態,且所述執行機器人正在執行的子任務的優先級高于所述待執行子任務的優先級,在所述執行機器人結束正在執行的子任務后,將所述待執行子任務發送至所述執行機器人,以供所述執行機器人執行所述待執行子任務。
可選地,所述方法還包括:
獲取中斷所述執行機器人正在執行的子任務時,所述執行機器人已執行的任務信息、所述執行機器人的物理信息和初始子任務信息;
將所述執行機器人已執行的任務信息、所述執行機器人的物理信息和所述初始子任務信息發送至所述多機器人中可執行所述被中斷子任務的機器人,以供所述可執行所述被中斷子任務的機器人繼續執行所述被中斷子任務。
可選地,將所述待執行子任務發送至所述執行機器人,以供所述執行機器人執行所述待執行子任務之后,所述方法還包括:
獲取所述執行機器人已執行的任務信息;
根據所述執行機器人已執行的任務信息和所述總任務,確定剩余任務;
將所述剩余任務劃分為至少一個剩余子任務;
將所述至少一個剩余子任務發送至可執行所述至少一個剩余子任務的執行機器人,以供所述執行機器人執行所述至少一個剩余子任務。
本申請實施例提供一種多機器人控制裝置,包括:
劃分模塊,用于將總任務劃分為至少一個子任務;
獲取模塊,用于從所述至少一個子任務中,獲取任務狀態為非完成狀態的待執行子任務;
確定模塊,用于從多機器人中,確定可執行所述待執行子任務的執行機器人;
發送模塊,用于將所述待執行子任務發送至所述執行機器人,以供所述執行機器人執行所述待執行子任務。
可選地,所述待執行子任務為多個;
所述發送模塊具體用于:
按照所述多個待執行子任務之間的優先級,依次將所述多個待執行子任務發送至各自對應的執行機器人。
可選地,所述確定模塊包括:
第一確定單元,用于若指定機器人列表中存在所述待執行子任務對應的指定機器人,獲取所述待執行子任務對應的指定機器人,作為所述待執行子任務的執行機器人;
第二確定單元,用于若所述指定機器人列表中不存在所述待執行子任務對應的指定機器人,從所述多機器人中,獲取滿足所述待執行子任務對機器人的功能要求的機器人,作為所述待執行子任務的執行機器人。
在本申請實施例中,通過將總任務劃分為至少一個子任務,以及獲取任務狀態為非完成狀態的待執行子任務,進而確定可執行待執行子任務的執行機器人,使得可以按照子任務的狀態,確定待執行子任務,并自動將待執行子任務發送至可執行待執行子任務的機器人,無需人工選取執行機器人,也無需人工向機器人輸入任務,提高了多機器人任務執行的效率。
附圖說明
此處所說明的附圖用來提供對本申請的進一步理解,構成本申請的一部分,本申請的示意性實施例及其說明用于解釋本申請,并不構成對本申請的不當限定。在附圖中:
圖1為本申請一實施例提供的一種多機器人控制方法的流程示意圖;
圖2為本申請又一實施例提供的一種多機器人控制方法的流程示意圖;
圖3為本申請又一實施例提供的一種多機器人控制裝置的模塊結構圖;
圖4為本申請又一實施例提供的一種多機器人控制裝置的模塊結構圖。
具體實施方式
為使本申請的目的、技術方案和優點更加清楚,下面將結合本申請具體實施例及相應的附圖對本申請技術方案進行清楚、完整地描述。顯然,所描述的實施例僅是本申請一部分實施例,而不是全部的實施例。基于本申請中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬于本申請保護的范圍。
以下結合附圖,詳細說明本申請各實施例提供的技術方案。
圖1為本申請一實施例提供的一種多機器人控制方法的流程示意圖。如圖1所示,該方法包括以下步驟。
s101:將總任務劃分為至少一個子任務。
s102:從至少一個子任務中,獲取任務狀態為非完成狀態的待執行子任務。
s103:從多機器人中,確定可執行待執行子任務的執行機器人。
s104:將待執行子任務發送至執行機器人,以供執行機器人執行待執行子任務。
多機器人可以為多機器人協同組,包括至少一個機器人。多機器人可以協同完成一項復雜的任務。對于多機器人中的每臺機器人,可分別執行復雜任務中的一部分任務。基于此,首先,將總任務劃分為至少一個子任務。
可選地,可以將總任務上傳至服務端,服務端可以具體實現為內網云或者公網云,再在內網云或者公網云將總任務劃分為至少一個子任務;也可以將總任務劃分為至少一個子任務之后,將至少一個子任務上傳至內網云或者公網云。
可選地,可以由用戶將總任務劃分為至少一個子任務,也可以根據預設規則將總任務劃分為至少一個子任務。例如,預設規則為按照任務量,將總任務劃分為任務量大致相等的子任務;或者,按照任務性質,將總任務劃分為任務性質不同的子任務。
然后,從至少一個子任務中,獲取任務狀態為非完成狀態的待執行子任務。
可選地,預先建立子任務與子任務的任務狀態的對應關系。
任務狀態可以包括但不限于未下發狀態、已下發狀態、正在執行狀態、被中斷狀態、執行完成狀態。其中,非完成狀態包括未下發狀態和被中斷狀態。基于此,可以獲取未下發狀態和被中斷狀態的子任務作為待執行子任務。可選地,待執行子任務可以為一個或多個。
可選地,子任務的任務狀態可以隨著機器人對任務的執行而更新。
接著,從多機器人中,確定可執行待執行子任務的執行機器人。
多機器人包括可執行待執行子任務的機器人和不可執行待執行子任務的機器人。例如,有的機器人處于故障狀態,屬于不可執行待執行子任務的機器人。又例如,有的機器人根據自身條件能夠執行待執行子任務,屬于可執行待執行子任務的執行機器人。將可執行待執行子任務的機器人作為執行機器人。
隨后,將待執行子任務發送至執行機器人,以供執行機器人執行待執行子任務。
可選地,可以從內網云或者公網云,將待執行子任務發送至執行機器人。
本實施例中,通過將總任務劃分為至少一個子任務,以及獲取任務狀態為非完成狀態的待執行子任務,進而確定可執行待執行子任務的執行機器人,使得可以按照子任務的狀態,確定待執行子任務,并自動將待執行子任務發送至可執行待執行子任務的機器人,無需人工選取執行機器人,也無需人工向機器人輸入任務,提高了多機器人任務執行的效率。
在上述實施例或下述實施例中,待執行子任務為多個。基于此,將多個待執行子任務發送至執行機器人,包括:按照多個待執行子任務之間的優先級,依次將多個待執行子任務發送至各自對應的執行機器人。
可選地,在將總任務劃分至少一個子任務之后,可以建立總任務列表。總任務列表包括每個子任務與子任務優先級的對應關系。基于此,在獲取多個待執行子任務后,可以在總任務列表中查詢每個待執行子任務對應的優先級。按照每個待執行子任務對應的優先級,從高到低依次將多個待執行子任務發送至各自對應的執行機器人。
其中,將多個待執行子任務發送至各自對應的執行機器人為將多個待執行子任務發送至可執行待執行子任務的執行機器人。可選地,執行機器人可以包括一個或多個。基于此,可將多個待執行子任務發送至一個執行機器人,也可以將每個待執行子任務分別發送至不同的執行機器人。可選地,一個待執行子任務由一個機器人執行。
在上述實施例或下述實施例中,可以通過查詢指定機器人列表或者根據待執行子任務對機器人的功能要求,確定可執行待執行子任務的執行機器人。基于此,從多機器人中,確定可執行待執行子任務的執行機器人,包括以下兩種實施方式:
第一種實施方式:若指定機器人列表中存在待執行子任務對應的指定機器人,獲取待執行子任務對應的指定機器人,作為待執行子任務的執行機器人。
可選地,可以預先建立指定機器人列表。指定機器人列表包括每個子任務以及每個子任務對應的指定機器人的識別碼。其中,識別碼用于唯一標識機器人。每個子任務對應的指定機器人即執行子任務所規定的機器人。
基于此,若指定機器人列表中存在待執行子任務對應的指定機器人的識別碼,獲取識別碼所標識的指定機器人,并將指定機器人作為待執行子任務的執行機器人。
例如,指定機器人列表包括第一子任務對應機器人a,第二子任務對應機器人b,第三子任務不對應任何機器人。若待執行子任務為第一子任務,則第一子任務的執行機器人為機器人a所標識的機器人。若待執行子任務為第三子任務,則指定機器人列表中不存在第三子任務對應的機器人識別碼,此時,可以采用本實施例中的第二種實施方式,確定可執行第三子任務的執行機器人。
第二種實施方式:若指定機器人列表中不存在待執行子任務對應的指定機器人,從多機器人中,獲取滿足待執行子任務對機器人的功能要求的機器人,作為待執行子任務的執行機器人。
可選地,預先建立每個子任務與子任務對機器人的功能要求的對應關系,從預先建立的每個子任務與子任務對機器人的功能要求的對應關系中,獲取待執行子任務對機器人的功能要求;然后,從預先建立的機器人與機器人的能力信息之間的對應關系中,獲取能力信息滿足待執行子任務對機器人的功能要求的機器人,作為執行機器人。
進一步可選地,可以在總任務列表中建立子任務與子任務對機器人的功能要求的對應關系,以及預先建立機器人列表。機器人列表包括機器人識別碼以及機器人識別碼所標識的機器人的能力信息的對應關系。繼而,通過查詢總任務列表,獲取待執行子任務對機器人的功能要求;然后,查詢機器人列表中,能力信息滿足待執行子任務對機器人的功能要求的機器人,作為執行機器人。
可選地,機器人的能力信息包括機器人的不同優先級的能力信息。進而,可查詢機器人列表中,較高優先級的能力信息滿足待執行子任務對機器人的功能要求的機器人,作為執行機器人。
在一示例中,機器人a的能力信息包括較高優先級的繪圖和較低優先級的動作,機器人b的能力信息包括較高優先級的動作和較低優先級的繪圖。待執行子任務對機器人的功能要求為繪圖。則將具有較高優先級的繪圖功能的機器人a作為執行機器人。
圖2為本申請又一實施例提供的一種多機器人控制方法的流程示意圖。如圖2所示,包括以下步驟。
s201:將總任務劃分為至少一個子任務。
s202:從至少一個子任務中,獲取任務狀態為非完成狀態的待執行子任務。
s203:從多機器人中,確定可執行待執行子任務的執行機器人。
s204:判斷執行機器人的狀態是否為空閑狀態。若是,跳轉到步驟s205;若否,跳轉到步驟s206。
s205:直接將待執行子任務發送至執行機器人,以供執行機器人執行待執行子任務,并結束本次操作。
s206:判斷執行機器人正在執行的子任務的優先級是否低于待執行子任務的優先級。若是,跳轉到步驟s208;若否,跳轉到步驟s207。
s207:在執行機器人結束正在執行的子任務后,將待執行子任務發送至執行機器人,以供執行機器人執行待執行子任務,并結束本次操作。
s208:中斷執行機器人正在執行的子任務,并將待執行子任務發送至執行機器人,以供執行機器人執行待執行子任務。繼續執行步驟s209。
s209:獲取中斷執行機器人正在執行的子任務時,執行機器人已執行的任務信息、執行機器人的物理信息和初始子任務信息。繼續執行步驟s210。
s210:將執行機器人已執行的任務信息、執行機器人的物理信息和初始子任務信息發送至多機器人中可執行被中斷子任務的機器人,以供可執行被中斷子任務的機器人繼續執行被中斷子任務,并結束本次操作。
步驟s201、s202、s203分別與步驟s101、s102、s103相同,此處不再贅述。
可選地,可以在機器人列表中建立每臺機器人的識別碼與每臺機器人的識別碼所標識的機器人的狀態信息的對應關系。其中,機器人的狀態信息為機器人的任務狀態,例如空閑狀態、非空閑狀態。其中,處于非空閑狀態的機器人可為正在執行子任務的機器人。處于空閑狀態的機器人可能未分配子任務或者已完成所分配的子任務,一般情況下,可以執行下一個子任務。
基于此,在確定執行機器人后,根據執行機器人的狀態不同,將待執行子任務發送至執行機器人的操作方式不同。基于此,首先判斷執行機器人的狀態是否為空閑狀態(即步驟s204)。
可選地,通過查詢機器人列表中,執行機器人的識別碼對應的狀態信息,確定執行機器人的狀態。
可選地,每臺機器人可以實時向服務端,例如公網運或者內網云上傳數據,上傳的數據包括但不限于機器人的當前狀態信息。服務端在接收到每臺機器人上傳的機器人的狀態信息后,可以更新機器人列表中機器人的識別碼對應的狀態信息,還可以據此更新總任務列表中子任務的任務狀態。可選地,每臺機器人可通過心跳向服務端上傳數據。
若執行機器人的識別碼對應的狀態信息為空閑狀態,即執行機器人的狀態為空閑狀態,意味著當前時刻,執行機器人未執行任何一個子任務,可直接將待執行子任務發送至執行機器人,以供執行機器人執行待執行子任務,并結束本次操作(即步驟s205)。
若通過查詢機器人列表中,執行機器人的識別碼對應的狀態信息為非空閑狀態,即執行機器人的狀態為非空閑狀態;此時,判斷執行機器人正在執行的子任務的優先級是否低于待執行子任務的優先級(即步驟s206)。
可選地,可以在總任務列表中建立子任務與子任務被下發至的機器人的識別碼的對應關系。基于此,可以在總任務列表中,查詢執行機器人的識別碼所對應的子任務,作為正在執行的子任務,進而在總任務列表中查詢執行機器人正在執行的子任務的優先級。以及,在總任務列表中查詢待執行子任務的優先級。進而,比較查詢出的執行機器人正在執行的子任務的優先級與待執行子任務的優先級的高低。
可選地,優先執行優先級較高的子任務。基于此,若是,即執行機器人正在執行的子任務的優先級低于待執行子任務的優先級,則中斷執行機器人正在執行的子任務,并將待執行子任務發送至執行機器人,以供執行機器人執行待執行子任務(即步驟s208)。若否,即執行機器人正在執行的子任務的優先級高于待執行子任務的優先級,則在執行機器人結束正在執行的子任務后,將待執行子任務發送至執行機器人,以供執行機器人執行待執行子任務,并結束本次操作(即步驟s207)。
被中斷的任務可以被重新發送至機器人以繼續執行。可選地,可以獲取中斷執行機器人正在執行的子任務時,執行機器人已執行的任務信息、執行機器人的物理信息和初始子任務信息(即步驟s209);將執行機器人已執行的任務信息、執行機器人的物理信息和初始子任務信息發送至多機器人中可執行被中斷子任務的機器人,以供可執行被中斷子任務的機器人繼續執行被中斷子任務(即步驟s210)。
可選地,執行機器人已執行的任務信息包括但不限于已采集的數據、已完成的處理信息等。執行機器人的物理信息包括但不限于機器人的坐標、朝向、運動速度、姿態等信息。初始子任務信息為下發至執行機器人的子任務的信息。例如,子任務要求、子任務執行區域、子任務相關數據等。
當然,也可以在執行機器人執行子任務的過程中,實時向服務端上傳執行機器人已執行的任務信息和執行機器人的物理信息和初始子任務信息。
可選地,獲取的信息可以對應存儲在機器人列表中。服務端會根據每臺機器人上傳的數據更新機器人列表中每臺機器人的識別碼所標識的機器人的已執行的任務信息、物理信息和初始子任務信息。基于此,可以待到執行被中斷子任務時,從機器人列表中將任務信息、物理信息和初始子任務信息發送至多機器人中可執行被中斷子任務的機器人。可執行被中斷子任務的機器人可根據執行機器人的物理信息調整自身的狀態,并依據已執行的任務信息和初始子任務信息繼續執行被中斷子任務。
可選地,被中斷子任務的機器人的確定過程與執行機器人的確定過程類似。此處不再贅述。
需要說明的是,本實施例尤其適用于執行機器人為一臺時,將待執行子任務發送至該執行機器人。若存在多個滿足待執行子任務對機器人的功能要求的機器人時,可以根據機器人的狀態信息和正在執行的子任務的優先級,確定最優的可執行待執行子任務的執行機器人。
具體而言,當機器人列表包括多個滿足待執行子任務對機器人的功能要求的機器人時,優選地,將空閑狀態的機器人作為執行機器人,進而將待執行子任務發送至執行機器人。
若機器人列表中不存在滿足待執行子任務對機器人的功能要求且空閑狀態的機器人時,繼續查詢機器人列表,將滿足待執行子任務對機器人的功能要求,且正在執行的子任務的優先級低于待執行子任務的優先級的機器人,作為執行機器人。繼而,中斷執行機器人正在執行的子任務,并將待執行子任務發送至執行機器人,以供執行機器人執行待執行子任務。
若機器人列表中,存在滿足待執行子任務對機器人的功能要求,且正在執行的子任務的優先級高于待執行子任務的優先級的機器人,也可以將該機器人作為執行機器人。在執行機器人結束正在執行的子任務后,將待執行子任務發送至執行機器人,以供執行機器人執行待執行子任務。
在一可選實施方式中,將待執行子任務發送至執行機器人,以供執行機器人執行待執行子任務之后,可以根據執行機器人已完成的子任務,重新劃分總任務列表為至少一個剩余子任務。
首先,獲取執行機器人已執行的任務信息。可選地,每臺執行機器人可以通過心跳向服務端上傳已執行的任務信息。則服務端可以獲取每臺執行機器人上傳的已執行的任務信息。
接著,根據執行機器人已執行的任務信息和總任務,確定剩余任務。可選地,剩余任務可通過總任務除去執行機器人已執行的任務信息得到。
考慮到已執行的任務信息可能不滿足要求,優選地,將已執行的任務信息結合總任務,重新確定剩余任務。剩余任務可包括已執行的任務信息。
然后,將剩余任務劃分為至少一個剩余子任務;將至少一個剩余子任務發送至可執行至少一個剩余子任務的執行機器人,以供執行機器人執行至少一個剩余子任務。
其中,確定可執行至少一個剩余子任務的執行機器人的方法與確定可執行待執行子任務的執行機器人的方法類似,此處不再贅述。
在上述實施例中,可選地,服務端可對獲取的執行機器人已執行的任務信息進行匯總,并根據應用場景進行處理后,得到待共享數據,再將待共享數據下發至需要使用該數據的機器人。可選地,需要使用該數據的機器人可以為多機器人中的至少一個機器人。
下面以一多機器人協同繪制三維空間地圖的應用場景,詳細說明本實施例提供的多機器人控制方法。
本應用場景中的總任務為在繪圖空間內繪制三維空間地圖。服務端首先根據世界坐標系將繪圖空間劃分成若干多個區域,進而將總任務劃分為多個子任務,每個子任務對應一個區域。然后,在服務端建立總任務列表。總任務列表包括每個子任務與子任務優先級的對應關系。子任務的優先級可以由人工設置或由云端自動生成。例如,第一子任務的優先級高于第二任務的優先級。
總任務列表還可以包括每個子任務與子任務的任務狀態的對應關系。本應用場景中,在將總任務列表劃分為多個子任務后,多個子任務均未執行。因此,多個子任務的任務狀態均為非完成狀態。
總任務列表還可以包括每個子任務與子任務對機器人的功能要求的對應關系。本應用場景中,子任務對機器人的功能要求為對應子任務的區域的繪圖功能。
服務端還可預先配置一個多機器人協同組以及機器人列表。機器人列表包括每臺機器人的識別碼與識別碼所標識的機器人的能力信息的對應關系。本應用場景中,每臺機器人的能力信息為在各自區域的繪圖功能,且每臺機器人擁有自己的繪圖三維坐標系,開發人員可在需要繪圖空間的初始點放置世界坐標系的x,y,z軸,原點標尺,每臺機器人在進行繪圖前會讀取世界坐標系標尺,并將自己的繪圖三維坐標系與世界坐標系標尺進行校準。
機器人列表還可以包括每臺機器人的識別碼與每臺機器人的識別碼所標識的機器人的狀態信息的對應關系。
服務端可按照子任務的優先級依次下發不同子任務給滿足待執行子任務對機器人的功能要求的機器人。每臺機器人接收到子任務后,會在各自區域進行繪圖工作,并通過心跳上傳各個區域的繪圖信息(即已執行的任務信息)、每臺機器人在繪圖空間中的位置、朝向、運動速度、姿態等信息(即物理信息)以及每臺機器人的初始子任務信息。
可選地,每臺機器人上傳的已執行的任務信息、物理信息以及初始子任務信息可以存儲在機器人列表中。
服務端會根據每臺機器人上傳的數據更新機器人列表中每臺機器人的識別碼所標識的機器人的狀態信息、已執行的任務信息、物理信息和初始子任務信息,以及更新總任務列表中子任務的任務狀態。
服務端會將各個區域的繪圖信息進行匯總整合,并會對邊緣的重合區域、毛邊進行處理,合成一張世界三維空間地圖。并根據每臺機器人的物理信息和初始子任務信息,標記每臺機器人在該三維空間地圖中的狀態,例如機器人的位置、朝向、運動速度、正在執行的任務等。
該三維空間地圖會隨著繪圖任務的進行而不斷完善,且會及時下發給多機器人協同組里需要使用該三維空間地圖的機器人。本應用場景中,可將三維空間地圖發送給每個機器人,以便每臺機器人都能獲得最新的空間地圖及協同多機器人協同組里其他機器人的狀態。
在繪圖過程中,服務端可分析各個區域的繪圖信息,認為某些區域面積更大或特征更多更復雜,需要再細分,或可由人為指定拆分某區域。服務端可將區域面積大或者特征更多的區域的繪圖任務和未上傳繪圖信息的區域的繪圖任務作為剩余任務。將剩余任務細分為多個剩余子任務。這些細分的剩余子任務可以人為指定更高的優先級,以便人為的讓更多的機器人參與到該復雜區域的繪圖。
隨著任務的執行,可隨時生成剩余任務,待剩余任務中所有的剩余子任務為已完成狀態,或人為終止整個繪圖任務的執行,多機器人協同繪制出一張世界坐標系的空間地圖。
本申請實施例還提供一種多機器人控制裝置300,如圖3所示,包括劃分模塊301、獲取模塊302、確定模塊303和發送模塊304。
劃分模塊301,用于將總任務劃分為至少一個子任務。
獲取模塊302,用于從劃分模塊301劃分的至少一個子任務中,獲取任務狀態為非完成狀態的待執行子任務。
確定模塊303,用于從多機器人中,確定可執行獲取模塊302獲取的待執行子任務的執行機器人。
發送模塊304,用于將獲取模塊302獲取的待執行子任務發送至確定模塊303確定的執行機器人,以供執行機器人執行待執行子任務。
本實施例中,通過將總任務劃分為至少一個子任務,以及獲取任務狀態為非完成狀態的待執行子任務,進而確定可執行待執行子任務的執行機器人,使得可以按照子任務的狀態,確定待執行子任務,并自動將待執行子任務發送至可執行待執行子任務的機器人,無需人工選取執行機器人,也無需人工向機器人輸入任務,提高了多機器人任務執行的效率。
可選地,待執行子任務為多個;發送模塊304具體用于:按照多個待執行子任務之間的優先級,依次將多個待執行子任務發送至各自對應的執行機器人。
可選地,如圖4所示,確定模塊303包括第一確定單元3031和第二確定單元3032。
第一確定單元3031,用于若指定機器人列表中存在待執行子任務對應的指定機器人,獲取待執行子任務對應的指定機器人,作為待執行子任務的執行機器人;
第二確定單元3032,用于若指定機器人列表中不存在待執行子任務對應的指定機器人,從多機器人中,獲取滿足待執行子任務對機器人的功能要求的機器人,作為待執行子任務的執行機器人。
可選地,第二確定單元3032在從多機器人中,獲取滿足待執行子任務對機器人的功能要求的機器人,作為待執行子任務的執行機器人時,具體用于:從預先建立的子任務與子任務對機器人的功能要求的對應關系中,獲取待執行子任務對機器人的功能要求;從預先建立的機器人與機器人的能力信息之間的對應關系中,獲取能力信息滿足待執行子任務對機器人的功能要求的機器人,作為執行機器人。
可選地,如圖4所示,發送模塊304包括第一發送單元3041、第二發送單元3042和第三發送單元3043。
第一發送單元3041,用于若執行機器人的狀態為空閑狀態,直接將待執行子任務發送至執行機器人,以供執行機器人執行待執行子任務。
第二發送單元3042,用于若執行機器人的狀態為非空閑狀態,且執行機器人正在執行的子任務的優先級低于待執行子任務的優先級,中斷執行機器人正在執行的子任務,并將待執行子任務發送至執行機器人,以供執行機器人執行待執行子任務。
第三發送單元3043,用于若執行機器人的狀態為非空閑狀態,且執行機器人正在執行的子任務的優先級高于待執行子任務的優先級,在執行機器人結束正在執行的子任務后,將待執行子任務發送至執行機器人,以供執行機器人執行待執行子任務。
可選地,如圖4所示,多機器人控制裝置300還包括信息獲取模塊305和信息發送模塊306。
信息獲取模塊305,用于獲取中斷執行機器人正在執行的子任務時,執行機器人已執行的任務信息、執行機器人的物理信息和初始子任務信息。
信息發送模塊306,用于將執行機器人已執行的任務信息、執行機器人的物理信息和初始子任務信息發送至多機器人中可執行被中斷子任務的機器人,以供可執行被中斷子任務的機器人繼續執行被中斷子任務。
可選地,在將待執行子任務發送至執行機器人,以供執行機器人執行待執行子任務之后,信息獲取模塊305還用于獲取執行機器人已執行的任務信息。劃分模塊301還用于根據執行機器人已執行的任務信息和總任務,確定剩余任務;以及將剩余任務劃分為至少一個剩余子任務。發送模塊304還用于將至少一個剩余子任務發送至可執行至少一個剩余子任務的執行機器人,以供執行機器人執行至少一個剩余子任務。
以上所述僅為本申請的實施例而已,并不用于限制本申請。對于本領域技術人員來說,本申請可以有各種更改和變化。凡在本申請的精神和原理之內所作的任何修改、等同替換、改進等,均應包含在本申請的權利要求范圍之內。