Nothing Special   »   [go: up one dir, main page]

CN109426560A - 任务分配方法、装置及计算机可读存储介质 - Google Patents

任务分配方法、装置及计算机可读存储介质 Download PDF

Info

Publication number
CN109426560A
CN109426560A CN201710748498.3A CN201710748498A CN109426560A CN 109426560 A CN109426560 A CN 109426560A CN 201710748498 A CN201710748498 A CN 201710748498A CN 109426560 A CN109426560 A CN 109426560A
Authority
CN
China
Prior art keywords
task
mobile robot
sub
grid
channel
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201710748498.3A
Other languages
English (en)
Inventor
缪松华
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Hikvision Digital Technology Co Ltd
Original Assignee
Hangzhou Hikvision Digital Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hangzhou Hikvision Digital Technology Co Ltd filed Critical Hangzhou Hikvision Digital Technology Co Ltd
Priority to CN201710748498.3A priority Critical patent/CN109426560A/zh
Publication of CN109426560A publication Critical patent/CN109426560A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Manipulator (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)

Abstract

本发明公开了一种任务分配方法、装置及计算机可读存储介质,属于大数据技术领域。所述方法包括:获取目标区域内的多个任务,所述多个任务的数量为第一数量;确定多个移动机器人,所述多个移动机器人的数量为第二数量;当所述第一数量大于所述第二数量时,从所述多个任务中为每个移动机器人分配一个任务。本发明在分配任务的过程中考虑到了移动机器人所分配的任务数量,只给每个移动机器人分配一个任务,而剩余的任务会处于待分配的状态,以便后续分配给其他移动机器人,提高了灵活性,并提高了任务总体的执行效率。

Description

任务分配方法、装置及计算机可读存储介质
技术领域
本发明涉及大数据技术领域,特别涉及一种任务分配方法、装置及计算机可读存储介质。
背景技术
目前,仓储机器人、扫地机器人、农业机器人、巡逻机器人等各种移动机器人纷纷诞生,可以代替用户执行相关任务,例如在仓库中搬运货物、在办公室中扫地、在草坪除草、在田地收割庄稼等,节省了人力成本和时间成本,提高了执行任务的效率,为人们的生活带来了极大便利。
以移动机器人为扫地机器人为例,多个扫地机器人需要执行打扫仓库的任务时,会根据仓库的总面积和每个扫地机器人的扫地能力,为每个扫地机器人分配一定的扫地面积,扫地能力越强的扫地机器人所确定的扫地面积越大。
在实现本发明实施例的过程中,发明人发现相关技术至少存在以下问题:
上述任务分配方法未考虑到移动机器人所分配的任务数量,当任务数量大于移动机器人的数量时,可能会给某个移动机器人分配多个任务,那么这些任务均要等待该移动机器人执行当前任务完成后才能被执行,而不能分配给其他移动机器人,灵活性差,影响执行任务的效率。
发明内容
本发明实施例提供了一种任务分配方法、装置及计算机可读存储介质,可以解决相关技术中已经分配而未被执行的任务不能分配给其他移动机器人的问题。所述技术方案如下:
第一方面,提供了一种任务分配方法,所述方法包括:
获取目标区域内的多个任务,所述多个任务的数量为第一数量;
确定多个移动机器人,所述多个移动机器人的数量为第二数量;
当所述第一数量大于所述第二数量时,从所述多个任务中为每个移动机器人分配一个任务。
在一种可能的实现方式中,所述当所述第一数量大于所述第二数量时,从所述多个任务中为每个移动机器人分配一个任务之后,所述方法还包括:
当所述多个移动机器人中的第一移动机器人执行任务完成时,从还未分配的多个任务中选取一个任务分配给所述第一移动机器人;或者,
当添加了新的第二移动机器人时,从还未分配的多个任务中选取一个任务分配给所述第二移动机器人。
在另一种可能的实现方式中,所述当所述第一数量大于所述第二数量时,从所述多个任务中为每个移动机器人分配一个任务之后,所述方法还包括:
当已分配所述多个任务中第一任务的第三移动机器人取消执行所述第一任务时,从还未分配任务的多个移动机器人中,选取一个第四移动机器人;
将所述第一任务分配给所述第四移动机器人。
在另一种可能的实现方式中,所述当所述第一数量大于所述第二数量时,从所述多个任务中为每个移动机器人分配一个任务,包括:
确定所述多个移动机器人中每个移动机器人的当前位置;
根据所述每个移动机器人的当前位置,计算所述每个移动机器人分别执行每个任务的代价值;
根据计算得到的多个代价值,确定多种任务分配方案中代价值总和最小的指定任务分配方案,所述多种任务分配方案中的每种任务分配方案包括与所述每个移动机器人唯一对应的一个任务。
在另一种可能的实现方式中,所述获取目标区域内的多个任务,包括:
获取所述目标区域中的多个子区域,每个子区域包括至少一个通道,每个通道包括多个栅格;
获取每个通道的任务,得到所述多个任务,每个任务为从对应通道的起始栅格沿着所述通道移动至所述通道的终止栅格。
在另一种可能的实现方式中,所述根据所述每个移动机器人的当前位置,计算所述每个移动机器人分别执行每个任务的代价值,包括:
对于每个移动机器人和每个任务,计算所述移动机器人移动至所述任务对应的起始栅格时的移动路径,所述任务为从对应通道的起始栅格沿着所述通道移动至所述通道的终止栅格;
根据所述移动路径计算所述移动机器人执行所述任务时的代价值。
在另一种可能的实现方式中,所述根据所述移动路径计算所述移动机器人执行所述任务时的代价值,包括:
获取所述移动路径对应的移动距离,将所述移动距离作为所述移动机器人执行所述任务的代价值。
在另一种可能的实现方式中,所述根据所述移动路径计算所述移动机器人执行所述任务时的代价值,包括:
获取所述移动路径对应的移动距离;
获取所述任务的收益,所述收益与所述任务的优先级正相关;
计算所述移动距离与所述收益的差值,作为所述移动机器人执行所述任务的代价值。
在另一种可能的实现方式中,所述目标区域包括多个子区域,每个子区域包括至少一个通道,所述每个子区域中任务的收益最高的通道的数量为至少一个,不同子区域的最高收益相等。
在另一种可能的实现方式中,所述每个子区域中的第一个通道的任务的收益最高,且所述每个子区域中任一通道的终止栅格与相邻通道的起始栅格相邻,且所述每个子区域中各个通道的任务的收益按照递减幅度依次递减。。
在另一种可能的实现方式中,所述根据计算得到的多个代价值,确定所述每个移动机器人所执行任务的多种任务分配方案中代价值总和最小的指定任务分配方案,包括:
将所述多个代价值组成代价值矩阵,所述代价值矩阵的第一维度为移动机器人,第二维度为任务,所述代价值矩阵中的元素为对应移动机器人执行对应任务时的代价值;
采用预设任务分配算法,获取所述代价值矩阵对应的匹配矩阵,所述匹配矩阵中的元素为对应移动机器人与对应任务之间的匹配系数;
将所述匹配矩阵中等于指定值的匹配系数对应的移动机器人和任务组成一个匹配组合,得到多个匹配组合,将所述多个匹配组合构成所述指定分配方案。
在另一种可能的实现方式中,所述根据计算得到的多个代价值,确定所述每个移动机器人所执行任务的多种任务分配方案中代价值总和最小的指定任务分配方案,包括:
构建容量网络,所述容量网络包括源节点、汇节点、与所述每个移动机器人对应的机器人节点和与所述每个任务对应的任务节点,所述源节点和每个机器人节点分别通过第一类路径连接,所述每个机器人节点和所述每个任务节点分别通过第二类路径连接,所述每个任务节点和所述汇节点分别通过第三类路径连接;
配置所述容量网络中每条第一类路径和每条第三类路径的费用为0,并配置每条第二类路径的费用为连接的机器人节点对应的移动机器人执行连接的任务节点对应的任务时的代价值;
采用最小费用最大流算法,获取当所述容量网络的总费用最小且总流量最大时,从所述源节点出发到达所述汇节点会经过的多条第二类路径;
将所述多条第二类路径中的同一条第二类路径连接的机器人节点对应的移动机器人和连接的任务节点对应的任务组成一个匹配组合,得到多个匹配组合,将所述多个匹配组合构成所述指定分配方案。
在另一种可能的实现方式中,所述获取所述目标区域中的多个子区域,每个子区域包括至少一个通道,包括:
将所述目标区域划分为多个栅格,每个栅格的尺寸相同,其中包含障碍物的栅格为障碍栅格;
对所述目标区域中除了障碍栅格以外的栅格进行分区,得到多个子区域;
对于每个子区域,将所述子区域划分为至少一个长度等于所述子区域的长度且宽度等于一个栅格的通道。
在另一种可能的实现方式中,所述对所述目标区域中除了障碍栅格以外的栅格进行分区,得到多个子区域,包括:
在对所述目标区域进行一次扫描的过程中,当扫描到连通性发生变化的第一位置,之后扫描到连通性发生变化的第二位置时,将所述第一位置和所述第二位置之间的区域按照障碍栅格的位置进行分割,得到至少一个子区域,以使不同子区域之间通过障碍栅格分隔开;
其中,连通性发生变化是指障碍栅格的分布情况发生变化。
第二方面,提供了一种任务分配装置,其特征在于,所述装置包括:
获取模块,用于获取目标区域内的多个任务,所述多个任务的数量为第一数量;
确定模块,用于确定多个移动机器人,所述多个移动机器人的数量为第二数量;
分配模块,用于当所述第一数量大于所述第二数量时,从所述多个任务中为每个移动机器人分配一个任务。
在一种可能的实现方式中,所述分配模块,还用于当所述多个移动机器人中的第一移动机器人执行任务完成时,从还未分配的多个任务中选取一个任务分配给所述第一移动机器人;或者,
所述分配模块,还用于当添加了新的第二移动机器人时,从还未分配的多个任务中选取一个任务分配给所述第二移动机器人。
在另一种可能的实现方式中,所述分配模块,还用于当已分配所述多个任务中第一任务的第三移动机器人取消执行所述第一任务时,从还未分配任务的多个移动机器人中,选取一个第四移动机器人;将所述第一任务分配给所述第四移动机器人。
在另一种可能的实现方式中,所述分配模块,包括:
确定子模块,用于确定所述多个移动机器人中每个移动机器人的当前位置;
计算子模块,用于根据所述每个移动机器人的当前位置,计算所述每个移动机器人分别执行每个任务的代价值;
所述确定子模块,还用于根据计算得到的多个代价值,确定多种任务分配方案中代价值总和最小的指定任务分配方案,所述多种任务分配方案中的每种任务分配方案包括与所述每个移动机器人唯一对应的一个任务。
在另一种可能的实现方式中,所述获取模块,还用于获取所述目标区域中的多个子区域,每个子区域包括至少一个通道,每个通道包括多个栅格;
所述获取模块,还用于获取每个通道的任务,得到所述多个任务,每个任务为从对应通道的起始栅格沿着所述通道移动至所述通道的终止栅格。
在另一种可能的实现方式中,所述计算子模块,还用于对于每个移动机器人和每个任务,计算所述移动机器人移动至所述任务对应的起始栅格时的移动路径,所述任务为从对应通道的起始栅格沿着所述通道移动至所述通道的终止栅格;根据所述移动路径计算所述移动机器人执行所述任务时的代价值。
在另一种可能的实现方式中,所述计算子模块,还用于获取所述移动路径对应的移动距离,将所述移动距离作为所述移动机器人执行所述任务的代价值。
在另一种可能的实现方式中,所述计算子模块,还用于获取所述移动路径对应的移动距离;获取所述任务的收益,所述收益与所述任务的优先级正相关;计算所述移动距离与所述收益的差值,作为所述移动机器人执行所述任务的代价值。
在另一种可能的实现方式中,所述目标区域包括多个子区域,每个子区域包括至少一个通道,所述每个子区域中任务的收益最高的通道的数量为至少一个,不同子区域的最高收益相等。
在另一种可能的实现方式中,所述每个子区域中的第一个通道的任务的收益最高,且所述每个子区域中任一通道的终止栅格与相邻通道的起始栅格相邻,且所述每个子区域中各个通道的任务的收益按照递减幅度依次递减。
在另一种可能的实现方式中,所述确定子模块,包括:
组成单元,用于将所述多个代价值组成代价值矩阵,所述代价值矩阵的第一维度为移动机器人,第二维度为任务,所述代价值矩阵中的元素为对应移动机器人执行对应任务时的代价值;
获取单元,用于采用预设任务分配算法,获取所述代价值矩阵对应的匹配矩阵,所述匹配矩阵中的元素为对应移动机器人与对应任务之间的匹配系数;
所述组成单元,还用于将所述匹配矩阵中等于指定值的匹配系数对应的移动机器人和任务组成一个匹配组合,得到多个匹配组合,将所述多个匹配组合构成所述指定分配方案。
在另一种可能的实现方式中,所述确定子模块,包括:
构建单元,用于构建容量网络,所述容量网络包括源节点、汇节点、与所述每个移动机器人对应的机器人节点和与所述每个任务对应的任务节点,所述源节点和每个机器人节点分别通过第一类路径连接,所述每个机器人节点和所述每个任务节点分别通过第二类路径连接,所述每个任务节点和所述汇节点分别通过第三类路径连接;
配置单元,用于配置所述容量网络中每条第一类路径和每条第三类路径的费用为0,并配置每条第二类路径的费用为连接的机器人节点对应的移动机器人执行连接的任务节点对应的任务时的代价值;
获取单元,用于采用最小费用最大流算法,获取当所述容量网络的总费用最小且总流量最大时,从所述源节点出发到达所述汇节点会经过的多条第二类路径;
组成单元,用于将所述多条第二类路径中的同一条第二类路径连接的机器人节点对应的移动机器人和连接的任务节点对应的任务组成一个匹配组合,得到多个匹配组合,将所述多个匹配组合构成所述指定分配方案。
在另一种可能的实现方式中,所述获取模块,还包括:
划分子模块,用于将所述目标区域划分为多个栅格,每个栅格的尺寸相同,其中包含障碍物的栅格为障碍栅格;
分区子模块,用于对所述目标区域中除了障碍栅格以外的栅格进行分区,得到多个子区域;
所述划分子模块,用于对于每个子区域,将所述子区域划分为至少一个长度等于所述子区域的长度且宽度等于一个栅格的通道。
在另一种可能的实现方式中,所述划分子模块,用于在对所述目标区域进行一次扫描的过程中,当扫描到连通性发生变化的第一位置,之后扫描到连通性发生变化的第二位置时,将所述第一位置和所述第二位置之间的区域按照障碍栅格的位置进行分割,得到至少一个子区域,以使不同子区域之间通过障碍栅格分隔开;
其中,连通性发生变化是指障碍栅格的分布情况发生变化。
第三方面,提供了一种分配装置,所述分配装置包括处理器和存储器;存储器,用于存放计算机程序;处理器,用于执行存储器上所存放的计算机程序,实现第一方面所述的方法步骤。
第四方面,提供了一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现第一方面所述的方法步骤。
本发明实施例提供的技术方案带来的有益效果是:
本发明实施例提供的定方法、装置及计算机可读存储介质,在分配任务的过程中考虑到了移动机器人所分配的任务数量,只给每个移动机器人分配一个任务,而剩余的任务会处于待分配的状态,以便后续分配给其他移动机器人,提高了灵活性,并提高了任务总体的执行效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种实施环境的示意图;
图2是本发明实施例提供的一种任务分配方法的流程图;
图3A是本发明实施例提供的一种任务分配方法的流程图;
图3B是本发明实施例提供的一种将目标区域划分为多个子区域的示意图;
图3C是本发明实施例提供的一种将子区域划分为至少一个通道的示意图;
图3D是本发明实施例提供的一种执行任务分配方法的流程图;
图3E是本发明实施例提供的一种容量网络的示意图;
图4是本发明实施例提供的一种任务分配装置的结构示意图;
图5是本发明实施例提供的一种终端的结构示意图;
图6是本发明实施例提供的一种服务器的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例以任务的数量为第一数量,移动机器人的数量为第二数量为例进行说明,其中第一数量大于第二数量。另外,“第一”、“第二”仅为了便于区别描述,并不包含其他特殊含义。
本发明实施例以执行任务完成的移动机器人称为第一移动机器人,新添加的移动机器人称为第二移动机器人,取消执行任务的移动机器人(如出故障的移动机器人或者被指派去执行其他任务的移动机器人)称为第三移动机器人,第三移动机器人的任务所重新分配的移动机器人称为第四移动机器人为例进行说明,其中“第一”、“第二”、“第三”、“第四”仅为了便于区别描述,并不包含其他特殊含义。
图1是本发明实施例提供的一种实施环境的示意图,该实施环境包括:分配装置101和多个移动机器人102,该分配装置101和该多个移动机器人102分别建立了连接,可以通过已建立的连接进行通信,该连接包括无线保真(Wireless Fidelity,WI-FI)连接、数据网络连接等。
当多个移动机器人102需要在目标区域中执行任务时,该分配装置101用于为每个移动机器人102分配任务,每个移动机器人102用于执行分配的任务。其中,该分配装置101可以为电脑、手机或服务器等,移动机器人102可以为仓储机器人、扫地机器人、农业机器人、巡逻机器人等多种类型的机器人。
图2是本发明实施例提供的一种任务分配方法的流程图。该发明实施例的执行主体为分配装置,参见图2,该方法包括:
201、获取目标区域内的多个任务,该多个任务的数量为第一数量。
202、确定多个移动机器人,该多个移动机器人的数量为第二数量。
203、当该第一数量大于该第二数量时,从多个任务中为每个移动机器人分配一个任务。
本发明实施例提供的方法,在分配任务的过程中考虑到了移动机器人所分配的任务数量,只给每个移动机器人分配一个任务,而剩余的任务会处于待分配的状态,以便后续分配给其他移动机器人,提高了灵活性,并提高了任务总体的执行效率。
可选地,该当该第一数量大于该第二数量时,从该多个任务中为每个移动机器人分配一个任务之后,该方法还包括:
当该多个移动机器人中的第一移动机器人执行任务完成时,从还未分配的多个任务中选取一个任务分配给该第一移动机器人;或者,
当添加了新的第二移动机器人时,从还未分配的多个任务中选取一个任务分配给该第二移动机器人。
可选地,该当该第一数量大于该第二数量时,从该多个任务中为每个移动机器人分配一个任务之后,该方法还包括:
当已分配该多个任务中第一任务的第三移动机器人取消执行该第一任务时,从还未分配任务的多个移动机器人中,选取一个第四移动机器人;
将该第一任务分配给该第四移动机器人。
可选地,该当该第一数量大于该第二数量时,从该多个任务中为每个移动机器人分配一个任务,包括:
确定该多个移动机器人中每个移动机器人的当前位置;
根据该每个移动机器人的当前位置,计算该每个移动机器人分别执行每个任务的代价值;
根据计算得到的多个代价值,确定多种任务分配方案中代价值总和最小的指定任务分配方案,该多种任务分配方案中的每种任务分配方案包括与该每个移动机器人唯一对应的一个任务。
可选地,该获取目标区域内的多个任务,包括:
获取该目标区域中的多个子区域,每个子区域包括至少一个通道,每个通道包括多个栅格;
获取每个通道的任务,得到该多个任务,每个任务为从对应通道的起始栅格沿着该通道移动至该通道的终止栅格。
可选地,该该根据该每个移动机器人的当前位置,计算该每个移动机器人分别执行每个任务的代价值,包括:
对于每个移动机器人和每个任务,计算该移动机器人移动至该任务对应的起始栅格时的移动路径,该任务为从对应通道的起始栅格沿着该通道移动至该通道的终止栅格;
根据该移动路径计算该移动机器人执行该任务时的代价值。
可选地,该根据该移动路径计算该移动机器人执行该任务时的代价值,包括:
获取该移动路径对应的移动距离,将该移动距离作为该移动机器人执行该任务的代价值。
可选地,该根据该移动路径计算该移动机器人执行该任务时的代价值,包括:
获取该移动路径对应的移动距离;
获取该任务的收益,该收益与该任务的优先级正相关;
计算该移动距离与该收益的差值,作为该移动机器人执行该任务的代价值。
可选地,所述目标区域包括多个子区域,每个子区域包括至少一个通道,所述每个子区域中任务的收益最高的通道的数量为至少一个,不同子区域的最高收益相等。
可选地,所述每个子区域中的第一个通道的任务的收益最高,且所述每个子区域中任一通道的终止栅格与相邻通道的起始栅格相邻,且所述每个子区域中各个通道的任务的收益按照递减幅度依次递减。
可选地,该根据计算得到的多个代价值,确定该每个移动机器人所执行任务的多种任务分配方案中代价值总和最小的指定任务分配方案,包括:
将该多个代价值组成代价值矩阵,该代价值矩阵的第一维度为移动机器人,第二维度为任务,该代价值矩阵中的元素为对应移动机器人执行对应任务时的代价值;
采用预设任务分配算法,获取该代价值矩阵对应的匹配矩阵,该匹配矩阵中的元素为对应移动机器人与对应任务之间的匹配系数;
将该匹配矩阵中等于指定值的匹配系数对应的移动机器人和任务组成一个匹配组合,得到多个匹配组合,将该多个匹配组合构成该指定分配方案。
可选地,该根据计算得到的多个代价值,确定该每个移动机器人所执行任务的多种任务分配方案中代价值总和最小的指定任务分配方案,包括:
构建容量网络,该容量网络包括源节点、汇节点、与该每个移动机器人对应的机器人节点和与该每个任务对应的任务节点,该源节点和每个机器人节点分别通过第一类路径连接,该每个机器人节点和该每个任务节点分别通过第二类路径连接,该每个任务节点和该汇节点分别通过第三类路径连接;
配置该容量网络中每条第一类路径和每条第三类路径的费用为0,并配置每条第二类路径的费用为连接的机器人节点对应的移动机器人执行连接的任务节点对应的任务时的代价值;
采用最小费用最大流算法,获取当该容量网络的总费用最小且总流量最大时,从该源节点出发到达该汇节点会经过的多条第二类路径;
将该多条第二类路径中的同一条第二类路径连接的机器人节点对应的移动机器人和连接的任务节点对应的任务组成一个匹配组合,得到多个匹配组合,将该多个匹配组合构成该指定分配方案。
可选地,该获取该目标区域中的多个子区域,每个子区域包括至少一个通道,包括:
将该目标区域划分为多个栅格,每个栅格的尺寸相同,其中包含障碍物的栅格为障碍栅格;
对该目标区域中除了障碍栅格以外的栅格进行分区,得到多个子区域;
对于每个子区域,将该子区域划分为至少一个长度等于该子区域的长度且宽度等于一个栅格的通道。
可选地,该对该目标区域中除了障碍栅格以外的栅格进行分区,得到多个子区域,包括:
在对该目标区域进行一次扫描的过程中,当扫描到连通性发生变化的第一位置,之后扫描到连通性发生变化的第二位置时,将该第一位置和该第二位置之间的区域按照障碍栅格的位置进行分割,得到至少一个子区域,以使不同子区域之间通过障碍栅格分隔开;
其中,连通性发生变化是指障碍栅格的分布情况发生变化。
本发明实施例为移动机器人在目标区域执行任务的过程提供了一种分配方案,考虑到了移动机器人所分配的任务数量,以保证剩余的任务能够处于待分配的状态,以供执行任务完成的移动机器人执行,当然也可以供系统中新添加的移动机器人执行,从而极大地提高了灵活性以及执行任务的效率。
本发明实施例可以应用于多种场景,目标区域和任务可以根据应用的实际场景确定,例如,当应用于仓库中寻找货架的场景,目标区域为仓库,任务为寻找目标物;当应用于在田地收割庄稼的场景,目标区域为田地,任务为收割庄稼;当应用于打扫大厦的场景,目标区域为大厦,任务为打扫。另外,还可应用于在草坪中除草、在建筑工地搬运货物等场景,在此不再赘述。
尤其是,本发明实施例可以应用于“全区域覆盖”的场景,该场景的任务为:遍历目标区域的每个位置,而本发明实施例会将目标区域划分为多个通道,通过控制各个移动机器人沿着对应的通道移动,最终实现遍历目标区域中各个位置的效果。
图3A是本发明实施例提供的一种任务分配方法的流程图,该方法可以应用于图1所示的实施环境中,交互主体包括分配装置和多个移动机器人,参见图3A,该方法包括:
301、分配装置获取目标区域内的多个任务,该多个任务的数量为第一数量。
针对分配装置确定目标区域的过程,分配装置可以安装绘制应用,在运行该绘制应用的过程中,检测用户绘制目标区域的操作,从而获取到目标区域。或者,分配装置可以获取用户导入的地图数据,或者从服务器下载地图数据,从而从地图数据中选择目标区域。
为了让多个移动机器人进行分工以分担总体的任务量,本发明实施例对目标区域进行了细化和拆分:将目标区域划分为多个子区域,再进一步将每个子区域划分为至少一个通道,每个移动机器人每次只需负责一个通道的任务即可。
具体来讲,拆分目标区域的过程可以包括以下步骤3011-3013:
3011、将目标区域划分为多个栅格。
本发明实施例中栅格为目标区域划分的最小单位,或者说移动机器人移动的最小单位。每个栅格的尺寸相同,例如每个栅格的尺寸可以等于移动机器人的尺寸。进一步地,每个栅格的长度和宽度也可以相同,并且每个栅格的宽度可以等于移动机器人的宽度,每个栅格的长度可以等于移动机器人的长度。
对于目标区域中包含有障碍物的栅格,分配装置会将这类栅格设置为障碍栅格,后续划分子区域的过程会将障碍栅格排除在外,那么,划分得到的子区域以至进一步得到的通道均不会包含障碍栅格,后续移动机器人沿着通道执行任务时,不会经过障碍栅格,也就避开了障碍物,防止了移动机器人因碰到障碍物而出现摔倒或损坏的情况。
其中,分配装置可以检测对目标区域中任一栅格的选择操作,将用户选择的栅格作为障碍栅格。或者,分配装置可以对目标区域中的地图数据进行分析,确定地图数据中的障碍物,将障碍物所在的位置作为障碍栅格。
3012、对目标区域中除了障碍栅格以外的栅格进行分区,得到多个子区域。
针对除了障碍栅格以外的栅格,分配装置会按照障碍栅格的位置对这些栅格进行分区,得到多个矩形的子区域,不同子区域之间通过障碍栅格分隔开。
具体来讲,分配装置可以采用Boustrophedon分解法(牛耕分解法),沿着一定的扫描方向在目标区域中进行扫描,在一次扫描过程中,当扫描到连通性发生变化的第一位置,之后扫描到连通性发生变化的第二位置时,将该第一位置和该第二位置之间的区域按照障碍栅格的位置进行分割,得到至少一个子区域。其中,该扫描方向可以为目标区域的任一边缘所在的方向,比如水平方向或垂直方向,连通性发生变化是指障碍栅格的分布情况发生变化。
实际应用中,目标区域可以为二维区域,第一位置和第二位置可以分别采用目标区域中的第一直线和第二直线表示,以扫描方向称为第三方向为例,分配装置可以在目标区域中沿着第三方向进行扫描,当扫描到第一直线时连通性发生变化,之后当扫描到第二直线时连通性又发生变化时,可以将该第一直线与该第二直线之间的区域按照障碍栅格的位置进行分割,得到至少一个子区域。
其中,第一直线和第二直线指向与第三方向垂直的第四方向,连通性发生变化是指障碍栅格在第四方向上的分布情况发生变化。例如,第三方向为水平方向时,第一直线和第二直线指向垂直方向,可以为某两列栅格之间的临界线为目标区域中任一列栅格边缘连接形成的直线,则连通性发生变化是指当前扫描到的位置之前的一列栅格中障碍栅格的分布情况与之后的一列栅格中障碍栅格的分布情况不同。其中,障碍栅格的分布情况包括障碍栅格的位置、数量等。
在一个示例性场景中,参见图3B,其示出了一种将目标区域划分为多个子区域的示意图,其中包括X的栅格表示障碍栅格,由粗线条的边框围住且包括标号的区域为划分得到的子区域。
在划分子区域的过程中,会从左向右进行扫描,即从第一列栅格扫描到最后一列栅格,当扫描到第一直线的位置时,由于第四列的第四个栅格是障碍栅格,而第三列的第四个栅格不是障碍栅格,此时确定连通性发生变化。当继续向右扫描到第二直线的位置时,由于第六列的第四个栅格是障碍栅格,而第七列的第四个栅格不是障碍栅格,再次确定连通性发生变化,则会将第一直线和第二直线之间的多个栅格按照障碍栅格的位置进行分割,得到子区域2和子区域3。其他子区域的划分过程与此类似。
3013、对于每个子区域,将该子区域划分为至少一个长度等于该子区域的长度且宽度等于一个栅格的通道。
当将目标区域划分为多个子区域后,对于每个子区域,分配装置会将该子区域划分为至少一个通道,每个通道的长度等于对应子区域的长度,宽度等于一个栅格。例如,分配装置可以确定该子区域的第一方向和第二方向,对该子区域在第一方向每隔一个栅格划分一次,得到沿着第二方向的至少一个通道,每个通道在第一方向上包括一个栅格,第二方向上包括的栅格数目等于该子区域在第二方向上包括的栅格数目。其中第一方向为该子区域中长度较小的边缘所在的方向,或者说子区域宽度确定的方向,该第二方向为该子区域中长度较大的边缘所在的方向,或者说子区域长度确定的方向。
在一个示例性场景中,参见图3C,其示出了一种将子区域划分为至少一个通道的示意图,该示意图中每个箭头符号从起始栅格指向终止栅格,表示执行任务时在通道中的移动方向。以划分子区域1为例,子区域1长度等于8个栅格,宽度等于3个栅格,则可以将子区域1划分为3个通道,每个通道长度为8个栅格,宽度为1个栅格。
当通过上述步骤3011-3013,将目标区域划分为多个通道后,对于该多个通道中的每个通道,分配装置会确定该通道的起始栅格和终止栅格,将从该通道的起始栅格沿着该通道移动至该通道的终止栅格作为该通道对应的任务,从而获取到每个通道的任务。本发明实施例中,将目标区域中通道的总数量称为第一数量,则目标区域中任务的总数量也为第一数量。
在一种可能的实现方式中,分配装置可以将该目标区域划分为“牛耕式”通道,即每个子区域中,任一通道的终止栅格与相邻通道的起始栅格相邻,即保证任一通道的移动方向与相邻通道的移动方向相反,那么,移动机器人在任一通道从起始栅格移动至终止栅格,执行任务完成后,如果要执行相邻通道的任务,只需移动一个栅格即可。举例来说,参见图3C,通道11的起始栅格在最下一行,终止栅格在最上一行,移动方向为从下至上,而通道12的起始栅格在最上一行,终止栅格在最下一行,移动方向为从上到下,那么,移动机器人执行通道11的任务完成后,如果要执行通道12的任务,只需向右移动一个栅格即可。
进一步地,对于目标区域中任两个相邻的子区域,分配装置可以设置前一个子区域的最后一个通道的终止栅格与后一个子区域的第一个通道的起始栅格相邻,那么,移动机器人在前一个子区域执行任务完成后,如果要执行后一个子区域的任务,只需移动一个栅格即可。例如,参见图3C,子区域1中通道13的终止栅格和子区域2中通道21的起始栅格相邻,子区域3中通道33的终止栅格和子区域4中通道41的起始栅格相邻。
302、分配装置确定多个移动机器人,该多个移动机器人的数量为第二数量,计算每个移动机器人分别执行每个任务的代价值。
在一种可能的实现方式中,对于任一移动机器人和任一任务,可以采用代价值这一指标来衡量移动机器人和任务的匹配程度,代价值越小表示移动机器人和任务匹配程度越高,移动机器人执行该任务时消耗的时间越少,效率越高。那么,通过上述步骤301,分配装置将目标区域进行划分并确定了多个任务后,该分配装置可以确定多个移动机器人,根据该多个移动机器人中每个移动机器人的当前位置,计算每个移动机器人分别执行每个任务的代价值。
可选地,在计算代价值的过程中,分配装置可以将多个移动机器人和多个任务组成多个组合,计算每个组合的代价值,以便根据组合的代价值衡量组合中的移动机器人和任务是否匹配。例如,分配装置可以分别从该多个移动机器人中选取任一移动机器人,并可以分别从多个任务中选取任一任务,构成多个组合,每个组合包括一个移动机器人和一个任务,不同组合可以移动机器人相同而任务不同,或者任务相同而移动机器人不同,或者移动机器人和任务均不同。其中,假设第一数量为J,第二数量为K,即任务共有J个,移动机器人共有K个,则组合共有J*K个。
在确定移动机器人执行任务的代价值时,考虑到移动机器人执行任务前通常需要沿着移动路径进行移动,该移动路径为移动机器人从当前位置移动至任务的起始栅格的路径。其中,移动路径中的移动距离、拐弯数量、障碍物分布、复杂程度等因素都会影响到移动机器人为执行任务的准备过程所需耗费的时间。结合该构思,对于某个移动机器人和某个任务,分配装置可以计算该移动机器人与该任务对应的移动路径,根据该移动路径计算该移动机器人执行该任务时的代价值。
在一种可能的实现方式中,可以根据移动路径中的拐弯数量、障碍物分布、复杂程度等参数计算代价值,例如拐弯数量越多,计算出的代价值越大,障碍物分布越多,计算出的代价值越大,移动路径越复杂,计算出的代价值越大。
在另一种可能的实现方式中,可以根据移动路径中的移动距离计算代价值,具体包括以下步骤3021或3022:
3021、获取移动路径对应的移动距离,将移动距离作为所述移动机器人执行所述任务的代价值。
在确定移动机器人执行任务的代价值时,考虑到移动机器人执行任务前通常需要移动一定的移动距离,移动机器人应当先执行移动距离较近的任务,再执行移动距离越远的任务。结合该构思,本步骤会获取移动机器人执行任务的移动路径所对应的移动距离,将该移动距离作为执行任务的代价值。其中,移动距离是指移动机器人从当前位置移动至任务对应的起始栅格时的距离,该移动距离可以用该移动机器人从当前位置移动至起始栅格会经过的栅格数量表示,例如,当移动机器人要向左移动3个栅格再向前移动4个栅格以到达起始栅格时,移动距离为7,则代价值也为7。
3022、获取该移动路径对应的移动距离和该任务的收益,计算该移动距离与该收益的差值,作为该移动机器人执行该任务的代价值。
考虑到不同任务的优先级不同,移动机器人应当先执行优先级较高的任务,再执行优先级较低的任务。结合该构思,本发明实施例设置了收益这一指标来表示任务的优先级高低,收益与任务的优先级正相关,如果某任务的优先级较高,分配装置会认为该任务应当优先执行,因此会为该任务确定较大的收益。
具体来讲,分配装置会根据每个任务的优先级,获取每个任务的收益,对于确定的移动机器人,求取该移动机器人执行该任务所需的移动距离与收益的差值,作为该移动机器人执行该任务的代价值,那么,代价值会和移动距离正相关且和优先级负相关。例如,当移动机器人执行某个任务的移动距离为7,该任务的收益为1,则代价值为7-1=6。
进一步地,考虑到对于目标区域中的多个通道来说,在不考虑移动距离的情况下,移动机器人通常会优先移动至任务的收益最高的通道以执行该通道的任务。为了防止多个移动机器人纷纷移动至同一个子区域中执行某一个通道的任务,导致不同移动机器人相互干扰,分配装置可以设置每个子区域中任务的收益最高的通道的数量为至少一个,不同子区域的最高收益相等。那么,由于每个子区域中均具有任务的收益最高的通道,多个移动机器人会分散开来,分别移动至不同子区域中的通道以执行任务,而不会聚集在同一个子区域。
进一步地,结合上述步骤301中“牛耕式”通道的方案,为了让某个移动机器人执行某个任务完成时,只需移动一个栅格即可执行下一个任务,本发明实施例中,可以设置每个子区域中的第一个通道的任务的收益最高,且每个子区域中任一通道的终止栅格与相邻通道的起始栅格相邻,且每个子区域中各个通道的任务的收益按照递减幅度依次递减。那么从理论上讲,还未分配的多个任务中代价值最小的任务会正好是起始栅格与之前分配的任务的终止栅格相邻的任务。
在一种可能的实现方式中,以图3C为例,假设不同子区域的第一个通道的收益均设置为300,不同子区域收益的递减幅度均设置为100,子区域1包括通道11、通道12和通道13,则收益分别为300、200和100,子区域2包括通道21、通道22和通道23,则收益分别为300、200和100,其他子区域通道的收益以此类推。
假设共有10个移动机器人可以分配,采用上述收益进行计算后,指定分配方案中这10个移动机器人会分别分配到通道11、通道21、通道31至通道101。以分配通道21的移动机器人第一个执行任务完成为例,此时剩余的任务包括通道12、通道22至通道102,以及通道13、通道23至通道103等通道的任务,而这些通道中,移动机器人与通道22的移动距离为1,通道22的收益为200,则两者构成的组合代价值为-199,而该移动机器人和其他未分配的任务的移动距离均大于1,且收益均不大于200,因此该移动机器人会分配通道22对应的任务,该移动机器人只需移动一个栅格,即可移动至通道22执行任务。
303、分配装置根据计算得到的多个代价值,确定多种任务分配方案中代价值总和最小的指定任务分配方案。
可选地,可以确定多种任务分配方案中的指定分配方案,该多种任务分配方案中的每种任务分配方案包括与每个移动机器人唯一对应的一个任务,而指定分配方案为这些任务分配方案中代价值总和最小的分配方案,则指定分配方案中的移动机器人和任务从全局来讲是最匹配的。
具体来说,分配装置可以根据每个移动机器人执行每个任务的代价值,采用预设任务分配算法或最小代价值最大流算法进行计算,得到多个匹配组合,每个匹配组合对应于一个移动机器人和一个任务,可以将该多个匹配组合构成指定任务分配方案。
需要说明的是,上述步骤303和304仅是以计算每个机器人执行每个任务的代价值来为每个移动机器人分配一个任务为例进行说明,实际应用中,计算代价值来进行分配过程仅为可选方案,当任务数量(第一数量)大于机器人数量(第二数量)时,分配装置可以通过其他方式来为每个移动机器人分配一个任务。例如,可以从多个任务中随机选取第二数量个任务,为每个移动机器人随机分配选择的一个任务,又如,可以对该多个任务按照优先级从高到低的顺序排序,选取排在前第二数量的任务,为每个移动机器人随机分配选择的一个任务。再如,可以从该多个任务按照执行难度从低到高的顺序排序,选取排在前第二数量的任务,为每个移动机器人随机分配选择的一个任务。当然,还可以采用其他方式为每个移动机器人分配一个任务,只需满足一个移动机器人只分配一个任务即可。
304、分配装置按照指定分配方案,控制每个移动机器人执行分配的任务。
当得到指定分配方案后,对于每个移动机器人,分配装置会控制该移动机器人执行分配的任务。其中,控制过程实际为:控制移动机器人从当前位置移动至任务对应通道的起始栅格,再从起始栅格沿着通道移动至终止栅格。
具体来讲,分配装置可以根据任务对应的通道以及移动机器人的当前位置,确定移动机器人从当前位置移动至起始栅格的第一移动轨迹,以及从起始栅格沿着通道移动至终止栅格的第二移动轨迹,先向移动机器人发送指示第一移动轨迹的第一通知消息,当移动机器人按照第一通知消息移动到起始栅格并通知分配装置时,分配装置确定移动机器人要开始执行任务,则分配装置会向移动机器人发送要开始执行任务且指示第二移动轨迹且第二通知消息,则移动机器人按照第二通知消息开始执行任务并从起始栅格移动至终止栅格。
例如,分配装置可以先向移动机器人发送第一通知消息:“向左移动3个栅格,再向前移动10个栅格”,则移动机器人会向左移动3个栅格,再向前移动10个栅格,到达起始栅格并通知分配装置,分配装置向移动机器人发送第二通知消息:“进行打扫并向右移动8个栅格”,则移动机器人会开始打扫并向右移动,直到向右移动8个栅格时,通知分配装置任务已经执行完成。
当然,分配装置可以无需发送两次通知消息,而是直接向移动机器人发送指示第一移动轨迹、第二移动轨迹且开始沿着第二移动轨迹移动时要执行任务的第三通知消息,则移动机器人会按照第三通知消息,从当前位置移动至起始栅格,此时开始执行任务并从起始栅格移动至终止栅格
例如,分配装置可以向移动机器人发送第三通知消息:“向左移动3个栅格,再向前移动10个栅格,之后开始打扫,并向右移动8个栅格”,则移动机器人会向左移动3个栅格,再向前移动10个栅格,此时会到达起始栅格,开始打扫并向右移动,直到向右移动8个栅格时,通知分配装置任务已经执行完成。
本发明实施例还提供了为每个移动机器人分配任务后,为完成已分配任务的移动机器人分配任务的方案,详见以下步骤305,为新添加的移动机器人分配任务的方案,详见以下步骤306。当某个移动机器人出现故障或退出时,将原本分配给它的任务重新分配给其他移动机器人的方案,详见以下步骤307。
305、当该多个移动机器人中的第一移动机器人执行任务完成时,分配装置从还未分配的多个任务中选取一个任务分配给该第一移动机器人。
以第一移动机器人执行任务完成为例,分配装置可以获取还未分配的多个任务,从这些任务中选取一个任务,分配给第一移动机器人。其中,分配装置可以随机选取一个任务,或者可以选取优先级最高的任务,或者可以选取执行难度最简单的任务,当然也可以采用其他方式选取一个任务。
在一种可能的实现方式中,分配装置可以从这些任务中选取第一移动机器人执行时代价值最小的任务,分配给第一移动机器人。例如,可以计算第一移动机器人从当前位置移动至该多个任务中每个任务对应的起始栅格时的移动路径,根据移动路径计算代价值,从多个任务中确定出代价值最小的任务,将该任务分配给第一移动机器人。
306、当添加了新的第二移动机器人时,分配装置从还未分配的多个任务中选取一个任务分配给该第二移动机器人。
本步骤与上述步骤305类似,以添加了新的第二移动机器人,可供分配装置调度为例,分配装置可以获取还未分配的多个任务,从这些任务中选取一个任务,分配给第一移动机器人。其中,分配装置可以随机选取一个任务,或者可以选取优先级最高的任务,或者可以选取执行难度最简单的任务,当然也可以采用其他方式选取一个任务。
在一种可能的实现方式中,分配装置可以从这些任务中选取第一移动机器人执行时代价值最小的任务,分配给第一移动机器人。例如,可以计算第一移动机器人从当前位置移动至该多个任务中每个任务对应的起始栅格时的移动路径,根据移动路径计算代价值,从多个任务中确定出代价值最小的任务,将该任务分配给第一移动机器人。
上述步骤305或306提供的分配方案,当已确定指定分配方案后,当要再次为某个移动机器人分配任务时,只需从未分配的多个任务中选取任务即可,而无需重新划分目标区域,也不会打乱已有的匹配组合,步骤简单,分配的效率更高。
307、当已分配该多个任务中第一任务的第三移动机器人取消执行该第一任务时,分配装置从还未分配任务的多个移动机器人中,选取一个第四移动机器人,将该第一任务分配给该第四移动机器人。
考虑到当移动机器人出现故障、需要临时指派移动机器人执行其他任务、移动机器人被调度离开目标区域等场景中,移动机器人会取消已分配的任务,此时要为原本分配给该移动机器人的任务重新分配给其他移动机器人。
以已分配第一任务的第三移动机器人取消执行任务为例,分配装置会获取还未分配任务的多个移动机器人,从这些移动机器人中选取一个第四移动机器人,将第一任务分配给该第四移动机器人。其中,分配装置可以随机选取一个移动机器人,或者可以选取执行能力最强的移动机器人。
在一种可能的实现方式中,分配装置可以从这些移动机器人中选取执行第一任务时代价值最小的的移动机器人。例如,分配装置可以分别计算该多个移动机器人中的每个移动机器人从当前位置移动至组合中的任务对应的起始栅格时的移动路径,根据移动路径计算移动机器人执行该第一任务的代价值,确定出最小的代价值对应的第四移动机器人,将第一任务分配给该第四移动机器人。也即是,将该第一任务回收,重新为该任务分配移动机器人。
进一步地,考虑到第三移动机器人在出现故障时可能已经执行了部分第一任务,即已经在第一任务对应的通道移动了一定距离,则第四移动机器人无需在第三移动机器人已经移动过的路段移动,换句话说,第四移动机器人无需从起始栅格开始移动,而是直接从第三移动机器人的当前位置开始移动。
因此,分配装置可以直接将第一任务的起始位置更新为第三移动机器人的当前位置,将更新后的第一任务分配给第四移动机器人,从而控制该第四移动机器人从自身的位置移动至第三移动机器人的当前位置,再开始执行更新后的第一任务,从第三移动机器人的当前位置移动至第一任务的终止栅格。其中,在确定第四移动机器人时,可以根据第一任务更新后的起始位置和每个移动机器人当前的位置,计算执行该更新后的第一任务时代价值最小的移动机器人,作为第四移动机器人。
本步骤提供的分配方案,当某个移动机器人出现故障或退出,要将原本分配给它的任务重新分配给其他移动机器人时,只需从未分配的多个移动机器人中选取移动机器人,而无需重新划分目标区域,也不会打乱已有的匹配组合,步骤简单,分配的效率更高。
在另一种可能的实现方式中,如果已分配第一任务的第三移动机器人取消执行任务,但其他移动机器人均已分配任务,没有空闲的移动机器人时,分配装置会先等待,当任一移动机器人完成已分配的任务时,直接将第一任务分配给该移动机器人。
需要说明的第一点是,在每个移动机器人沿着各自的通道执行任务的过程中,如果某个移动机器人在通道中遇到另一个移动机器人,产生被挡路的异常情况,被挡路的移动机器人会通知分配装置,分配装置会向挡路的移动机器人发送指示消息,让挡路的移动机器人移动以让路。例如,被挡路的移动机器人可以获取挡路的移动机器人的标识以及当前位置,向分配装置发送携带该标识和当前位置的通知消息,分配装置根据该标识确定挡路的移动机器人,并根据该当前位置确定挡路的移动机器人的让路移动轨迹,该让路移动轨迹可以包括挡路的移动机器人让路时应当移动的移动方向、移动距离等,则向该标识对应的挡路的移动机器人发送指示让路移动轨迹的指示消息,则挡路的移动机器人会按照该让路移动轨迹移动从而让路。
需要说明的第二点是,每当某个移动机器人在某一个栅格移动过,分配装置可以向目标区域中的该栅格添加覆盖标记,表示已经有移动机器人在该栅格移动过,或者说该栅格的任务已经处理完成,无需再次让移动机器人在该栅格上移动。那么,当目标区域的所有栅格均已添加覆盖标记时,则可以确定目标区域的任务已经处理完毕,则整体任务结束。另外,对于在目标区域寻找目标物的场景来说,当某个移动机器人找到目标物时,会向分配装置发送通知消息,分配装置接收到通知消息即可确定任务已经处理完毕,则其他移动机器人无需继续执行任务,整体任务结束。
实际应用中,分配装置执行任务分配方法的流程图可以如图3D所示,该流程图可以由分配装置的四个模块:任务生成模块、任务分配模块、通道规划模块、任务统计模块执行。
任务生成模块负责将目标区域划分为多个子区域、将每个子区域划分为至少一个通道,并得到每个通道的任务。任务分配模块负责计算每个移动机器人执行每个任务的代价值并确定指定分配方案,以确定哪些机器人休息,哪些机器人工作,且工作的机器人具体执行哪个任务。路径规划模块负责按照指定分配方案,引导机器人从当前位置移动到任务的起始栅格,并沿着通道移动到终止栅格,完成任务。任务统计模块管理目标区域,负责记录移动机器人的移动轨迹,将移动机器人移动过的栅格设置已覆盖标记,也负责统计任务完成情况,当任务完成后移动机器人空闲时,让移动机器人参与新的任务分配,循环执行,直到所有任务执行完则整体任务结束。
本发明实施例提供的方法,在分配任务的过程中考虑到了移动机器人所分配的任务数量,只给每个移动机器人分配一个任务,而剩余任务会处于待分配的状态,以便后续分配给其他移动机器人,提高了灵活性,并提高了任务总体的执行效率。
进一步地,在分配任务的过程中考虑到移动机器人的当前位置,考虑更加全面,避免由于移动机器人的当前位置影响到执行任务的效率。另外,指定分配方案中的多个移动机器人执行任务的代价值总和尽量小,能够减少任务总体的执行时间,提高任务总体的执行效率。
进一步地,在分配任务的过程中考虑到每个任务的优先级,保证得到的指定分配方案中分配给移动机器人的任务为目标区域中优先级较高的任务,实现了优先级越高的任务尽可能优先处理。
进一步地,目标区域中的每个子区域中任务的收益最高的通道的数量为至少一个,能够将多个移动机器人分散至不同子区域执行任务,防止移动机器人聚集在同一个子区域造成相互干扰。
进一步地,将目标子区域划分为“牛耕式”通道,并通过设置每个子区域各个通道的任务的收益,不仅关注本次的分配方案还考虑到本次任务执行完成后的下一个任务的分配方案,保证每个移动机器人执行任务完成后,只需移动一个栅格即可执行下一个任务,减少了移动距离,提高了工作效率。
进一步地,确定指定分配方案后,为某个执行任务完成或者新添加的移动机器人再次分配任务时,只需从未分配的多个任务中选取任务,将该任务分配给移动机器人即可,无需重新划分目标区域,也不会打乱已经确定好的匹配组合,步骤简单。
进一步地,当某个移动机器人取消执行任务时,提供了将该移动机器人负责的任务重新分配给别的移动机器人的方案,避免了由于移动机器人出现故障导致任务无人处理的情况。
在上述图3A所示实施例的基础上,上述步骤303“根据计算得到的多个代价值,确定多种任务分配方案中代价值总和最小的指定任务分配方案”可以包括以下两种可能实现方式:
方式一:采用预设任务分配算法:
步骤S1、将多个代价值组成代价值矩阵,代价值矩阵的第一维度为移动机器人,第二维度为任务,代价值矩阵中的元素为对应移动机器人执行对应任务时的代价值。
维度可以包括行和列,第一维度为行、第二维度为列,或者第一维度为列、第二维度为行。以第一维度为行、第二维度为列为例,每行表示一个移动机器人,每列表示一个任务,代价值矩阵可以如下表1所示,代价值矩阵中的元素Rkij表示移动机器人k执行子区域i的任务j的代价值。
表1
R<sub>111</sub> R<sub>112</sub> R<sub>113</sub> R<sub>121</sub> …… R<sub>1ij</sub>
R<sub>211</sub> R<sub>212</sub> R<sub>213</sub> R<sub>221</sub> …… R<sub>2ij</sub>
R<sub>311</sub> R<sub>312</sub> R<sub>313</sub> R<sub>321</sub> …… R<sub>3ij</sub>
…… …… …… …… …… ……
R<sub>k11</sub> R<sub>k12</sub> R<sub>k13</sub> R<sub>k21</sub> …… R<sub>kij</sub>
步骤S2、采用预设任务分配算法,获取代价值矩阵对应的匹配矩阵。
该预设任务分配算法可以为匈牙利算法、市场拍卖算法等,其输入为代价值矩阵,其输出为匹配系数组成的匹配矩阵。匹配矩阵的匹配系数的取值为指定值或者0,其中,匹配系数等于指定值表示其所在行对应的移动机器人和其所在列对应的任务匹配,即该移动机器人和该任务可以组成一个匹配组合,该移动机器人可以执行该任务,而匹配系数等于0表示其所在行对应的移动机器人和其所在列对应的任务不匹配。其中,该指定值可以为1或其他非0的正整数。
需要说明的是,为了保证最终得到的指定任务分配方案中每个移动机器人只分配一个任务,获取匹配矩阵的过程中可以按照约束条件进行计算,该约束条件为:同一移动机器人与多个任务中每个任务之间的匹配系数之和不大于指定值。
同一移动机器人与每个任务之间的匹配系数中只能有一个为指定值,而其他匹配系数均为0,也即是,同一移动机器人与每个任务之间的匹配系数之和要么为指定值,表示该移动机器人与一个任务匹配,要么为0,表示移动机器人与每个任务均不匹配,因此在同一移动机器人与每个任务之间的匹配系数之和不大于指定值的约束条件下,每个移动机器人会最多匹配一个任务。
其中,与表1对应,以指定值为1为例,本条约束条件可以用以下公式表示:
其中,k表示移动机器人的标识,i表示目标子区域的标识,I表示目标子区域的个数,i为不大于I的正整数,j表示任务的标识,Ji表示目标子区域i的任务数目,j为不大于Ji的正整数,akij为匹配系数,表示移动机器人k和目标子区域i的任务j是否匹配,akij为1表示移动机器人k和目标子区域i的任务j匹配,akij为0表示移动机器人k和目标子区域i的任务j不匹配。
基于上述表1的举例,当采用预设任务分配算法并按照约束条件对代价值矩阵进行计算后,会得到如下表2所示的匹配矩阵。
表2
a<sub>111</sub> a<sub>112</sub> a<sub>113</sub> a<sub>121</sub> …… a<sub>1ij</sub>
a<sub>211</sub> a<sub>212</sub> a<sub>213</sub> a<sub>221</sub> …… a<sub>2ij</sub>
a<sub>311</sub> a<sub>312</sub> a<sub>313</sub> a<sub>321</sub> …… a<sub>3ij</sub>
…… …… …… …… …… ……
a<sub>k11</sub> a<sub>k12</sub> a<sub>k13</sub> a<sub>k21</sub> …… a<sub>kij</sub>
步骤S3、将匹配矩阵中等于指定值的匹配系数对应的移动机器人和任务组成一个匹配组合,得到多个匹配组合,将多个匹配组合构成指定分配方案。
对于得到的匹配矩阵,分配装置会确定匹配系数中等于指定值的每个匹配系数,获取每个匹配系数对应的移动机器人和任务,将同一匹配系数对应的移动机器人和任务组成一个匹配组合,最终得到的多个匹配组合即为指定分配方案。
方式二:采用最小费用最大流算法:
为了便于理解,先对容量网络和最小费用最大流算法进行以下介绍:
容量网络的起始节点为源节点,终止节点为汇节点,在源节点和汇节点之间可以包括多层的节点,任两个节点可以连接构成一条路径。该容量网络可以模拟一个目标从源节点出发,在每层中选择一个节点经过,并最终到达汇节点的场景。在此场景中,可选的路径很多,每条路径上可以产生不同大小的流量。
而最小费用最大流算法是一种在容量网络中选择路径的算法,其输入为已确定每条路径的容量和费用的容量网络,其输出为当容量网络的总费用最小且总流量最大时,从源节点出发到达汇节点需经过的多条路径以及每条路径上的流量。其中,每条路径的容量表示该路径的最大流量,费用表示要经过该路径时会产生的费用。且在选择路径时需要满足容量网络中的每个节点流量守恒,即每个节点流入的流量和流出的流量相等。
P1、构建容量网络。
容量网络可以如图3E所示,包括源节点(Source)、汇节点(Sink)、与每个移动机器人对应的机器人节点(Worker)和与每个任务对应的任务节点(Task),源节点和每个机器人节点分别通过第一类路径连接,每个机器人节点和每个任务节点分别通过第二类路径连接,每个任务节点和汇节点分别通过第三类路径连接。
P2、配置容量网络中每条路径的容量和代价值。
针对容量网络中每条路径的费用,由于流量从源节点流至机器人节点和流量从任务节点流至汇节点不具有实际意义,所以会配置每条第一类路径和每条第三类路径的费用为0,而流量从任一机器人节点流至任一任务节点象征着对应的移动机器人要执行对应的任务,并且会产生相应的代价值,因此会配置每条第二类路径的费用为连接的机器人节点对应的移动机器人执行连接的任务节点对应的任务时的代价值。例如,参见图3E,机器人节点k和任务节点ij连接的第二类路径的费用会配置为机器人Wk执行任务Tij的代价值Rkij
P3、采用最小费用最大流算法,获取当容量网络的总费用最小且总流量最大时,从源节点出发到达汇节点会经过的多条第二类路径。
需要说明的是,为了保证最终得到的指定任务分配方案中每个移动机器人只分配一个任务,配置容量网络的过程中,可以将容量网络中的每条第一类路径的容量配置为1,表示路径上的流量只能为0或者为1,那么,对于每个机器人节点来说,最多只能选择一条第二类路径,即该机器人节点最多只能连接一个任务节点,保证了一个移动机器人最多只能匹配一个任务,即唯一对应一个任务。
P4、将多条第二类路径中的同一条第二类路径连接的机器人节点对应的移动机器人和连接的任务节点对应的任务组成一个匹配组合,得到多个匹配组合。
当采用最小费用最大流算法对容量网络进行计算后,会得到多条第二类路径,该多条第二类路径中同一条第二类路径连接的机器人节点对应的移动机器人和任务节点对应的任务匹配。也即是,得到的每条第二类路径可以确定一个匹配组合,例如参见图3E,若选取出机器人节点k和任务节点ij连接的第二类路径后,可以将移动机器人Wk和任务Tij组成一个匹配组合,从而为移动机器人Wk分配任务Tij
图4是本发明实施例提供的一种任务分配装置的结构示意图。参见图4,该装置包括:获取模块401、确定模块402和分配模块403。
获取模块401,用于获取目标区域内的多个任务,该多个任务的数量为第一数量;
确定模块402,用于确定多个移动机器人,该多个移动机器人的数量为第二数量;
分配模块403,用于当该第一数量大于该第二数量时,从该多个任务中为每个移动机器人分配一个任务。
本发明实施例提供的装置,在分配任务的过程中考虑到了移动机器人所分配的任务数量,只给每个移动机器人分配一个任务,而剩余的任务会处于待分配的状态,以便后续分配给其他移动机器人,提高了灵活性,并提高了任务总体的执行效率。
在一种可能的实现方式中,该分配模块403,还用于当该多个移动机器人中的第一移动机器人执行任务完成时,从还未分配的多个任务中选取一个任务分配给该第一移动机器人;或者,
该分配模块403,还用于当添加了新的第二移动机器人时,从还未分配的多个任务中选取一个任务分配给该第二移动机器人。
在另一种可能的实现方式中,该分配模块403,还用于当已分配该多个任务中第一任务的第三移动机器人取消执行该第一任务时,从还未分配任务的多个移动机器人中,选取一个第四移动机器人;将该第一任务分配给该第四移动机器人。
在另一种可能的实现方式中,该分配模块403,包括:
确定子模块,用于确定该多个移动机器人中每个移动机器人的当前位置;
计算子模块,用于根据该每个移动机器人的当前位置,计算该每个移动机器人分别执行每个任务的代价值;
该确定子模块,还用于根据计算得到的多个代价值,确定多种任务分配方案中代价值总和最小的指定任务分配方案,该多种任务分配方案中的每种任务分配方案包括与该每个移动机器人唯一对应的一个任务。
在另一种可能的实现方式中,该获取模块401,还用于获取该目标区域中的多个子区域,每个子区域包括至少一个通道,每个通道包括多个栅格;
该获取模块401,还用于获取每个通道的任务,得到该多个任务,每个任务为从对应通道的起始栅格沿着该通道移动至该通道的终止栅格。
在另一种可能的实现方式中,该计算子模块,还用于对于每个移动机器人和每个任务,计算该移动机器人移动至该任务对应的起始栅格时的移动路径,该任务为从对应通道的起始栅格沿着该通道移动至该通道的终止栅格;根据该移动路径计算该移动机器人执行该任务时的代价值。
在另一种可能的实现方式中,该计算子模块,还用于获取该移动路径对应的移动距离,将该移动距离作为该移动机器人执行该任务的代价值。
在另一种可能的实现方式中,该计算子模块,还用于获取该移动路径对应的移动距离;获取该任务的收益,该收益与该任务的优先级正相关;计算该移动距离与该收益的差值,作为该移动机器人执行该任务的代价值。
在另一种可能的实现方式中,所述目标区域包括多个子区域,每个子区域包括至少一个通道,所述每个子区域中任务的收益最高的通道的数量为至少一个,不同子区域的最高收益相等。
在另一种可能的实现方式中,所述每个子区域中的第一个通道的任务的收益最高,且所述每个子区域中任一通道的终止栅格与相邻通道的起始栅格相邻,且所述每个子区域中各个通道的任务的收益按照递减幅度依次递减。
在另一种可能的实现方式中,该确定子模块,包括:
组成单元,用于将该多个代价值组成代价值矩阵,该代价值矩阵的第一维度为移动机器人,第二维度为任务,该代价值矩阵中的元素为对应移动机器人执行对应任务时的代价值;
获取单元,用于采用预设任务分配算法,获取该代价值矩阵对应的匹配矩阵,该匹配矩阵中的元素为对应移动机器人与对应任务之间的匹配系数;
该组成单元,还用于将该匹配矩阵中等于指定值的匹配系数对应的移动机器人和任务组成一个匹配组合,得到多个匹配组合,将该多个匹配组合构成该指定分配方案。
在另一种可能的实现方式中,该确定子模块,包括:
构建单元,用于构建容量网络,该容量网络包括源节点、汇节点、与该每个移动机器人对应的机器人节点和与该每个任务对应的任务节点,该源节点和每个机器人节点分别通过第一类路径连接,该每个机器人节点和该每个任务节点分别通过第二类路径连接,该每个任务节点和该汇节点分别通过第三类路径连接;
配置单元,用于配置该容量网络中每条第一类路径和每条第三类路径的费用为0,并配置每条第二类路径的费用为连接的机器人节点对应的移动机器人执行连接的任务节点对应的任务时的代价值;
获取单元,用于采用最小费用最大流算法,获取当该容量网络的总费用最小且总流量最大时,从该源节点出发到达该汇节点会经过的多条第二类路径;
组成单元,用于将该多条第二类路径中的同一条第二类路径连接的机器人节点对应的移动机器人和连接的任务节点对应的任务组成一个匹配组合,得到多个匹配组合,将该多个匹配组合构成该指定分配方案。
在另一种可能的实现方式中,该获取模块401,还包括:
划分子模块,用于将该目标区域划分为多个栅格,每个栅格的尺寸相同,其中包含障碍物的栅格为障碍栅格;
分区子模块,用于对该目标区域中除了障碍栅格以外的栅格进行分区,得到多个子区域;
该划分子模块,用于对于每个子区域,将该子区域划分为至少一个长度等于该子区域的长度且宽度等于一个栅格的通道。
在另一种可能的实现方式中,该划分子模块,用于在对该目标区域进行一次扫描的过程中,当扫描到连通性发生变化的第一位置,之后扫描到连通性发生变化的第二位置时,将该第一位置和该第二位置之间的区域按照障碍栅格的位置进行分割,得到至少一个子区域,以使不同子区域之间通过障碍栅格分隔开;
其中,连通性发生变化是指障碍栅格的分布情况发生变化。
上述所有可选技术方案,可以采用任意结合形成本公开的可选实施例,在此不再一一赘述。
需要说明的是:上述实施例提供的任务分配装置在分配任务时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将分配装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的任务分配装置与任务分配方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图5是本发明实施例提供的一种终端的结构示意图。该终端可以用于实施上述实施例所示出的任务分配方法中的分配装置所执行的功能。具体来讲:
终端500可以包括RF(Radio Frequency,射频)电路110、包括有一个或一个以上计算机可读存储介质的存储器120、输入单元130、显示单元140、传感器150、音频电路160、传输模块170、包括有一个或者一个以上处理核心的处理器180、以及电源190等部件。本领域技术人员可以理解,图5中示出的终端结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
RF电路110可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,交由一个或者一个以上处理器180处理;另外,将涉及上行的数据发送给基站。通常,RF电路110包括但不限于天线、至少一个放大器、调谐器、一个或多个振荡器、用户身份模块(SIM)卡、收发信机、耦合器、LNA(Low Noise Amplifier,低噪声放大器)、双工器等。此外,RF电路110还可以通过无线通信与网络和其他终端通信。所述无线通信可以使用任一通信标准或协议,包括但不限于GSM(Global System of Mobile communication,全球移动通讯系统)、GPRS(General Packet Radio Service,通用分组无线服务)、CDMA(CodeDivision Multiple Access,码分多址)、WCDMA(Wideband Code Division MultipleAccess,宽带码分多址)、LTE(Long Term Evolution,长期演进)、电子邮件、SMS(ShortMessaging Service,短消息服务)等。
存储器120可用于存储软件程序以及模块,如上述示例性实施例所示出的终端所对应的软件程序以及模块,处理器180通过运行存储在存储器120的软件程序以及模块,从而执行各种功能应用以及数据处理,如实现基于视频的交互等。存储器120可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据终端500的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器120可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器120还可以包括存储器控制器,以提供处理器180和输入单元130对存储器120的访问。
输入单元130可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。具体地,输入单元130可包括触敏表面131以及其他输入终端132。触敏表面131,也称为触摸显示屏或者触控板,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触敏表面131上或在触敏表面131附近的操作),并根据预先设定的程式驱动相应的链接装置。可选的,触敏表面131可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器180,并能接收处理器180发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触敏表面131。除了触敏表面131,输入单元130还可以包括其他输入终端132。具体地,其他输入终端132可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元140可用于显示由用户输入的信息或提供给用户的信息以及终端500的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。显示单元140可包括显示面板141,可选的,可以采用LCD(Liquid Crystal Display,液晶显示器)、OLED(Organic Light-Emitting Diode,有机发光二极管)等形式来配置显示面板141。进一步的,触敏表面131可覆盖显示面板141,当触敏表面131检测到在其上或附近的触摸操作后,传送给处理器180以确定触摸事件的类型,随后处理器180根据触摸事件的类型在显示面板141上提供相应的视觉输出。虽然在图5中,触敏表面131与显示面板141是作为两个独立的部件来实现输入和输入功能,但是在某些实施例中,可以将触敏表面131与显示面板141集成而实现输入和输出功能。
终端500还可包括至少一种传感器150,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板141的亮度,接近传感器可在终端500移动到耳边时,关闭显示面板141和/或背光。作为运动传感器的一种,重力加速度传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于终端500还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
音频电路160、扬声器161,传声器162可提供用户与终端500之间的音频接口。音频电路160可将接收到的音频数据转换后的电信号,传输到扬声器161,由扬声器161转换为声音信号输出;另一方面,传声器162将收集的声音信号转换为电信号,由音频电路160接收后转换为音频数据,再将音频数据输出处理器180处理后,经RF电路110以发送给比如另一终端,或者将音频数据输出至存储器120以便进一步处理。音频电路160还可能包括耳塞插孔,以提供外设耳机与终端500的通信。
终端500通过传输模块170可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线或有线的宽带互联网访问。虽然图5示出了传输模块170,但是可以理解的是,其并不属于终端500的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
处理器180是终端500的控制中心,利用各种接口和线路链接整个手机的各个部分,通过运行或执行存储在存储器120内的软件程序和/或模块,以及调用存储在存储器120内的数据,执行终端500的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器180可包括一个或多个处理核心;优选的,处理器180可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器180中。
终端500还包括给各个部件供电的电源190(比如电池),优选的,电源可以通过电源管理系统与处理器180逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源190还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
尽管未示出,终端500还可以包括摄像头、蓝牙模块等,在此不再赘述。具体在本实施例中,终端500的显示单元是触摸屏显示器,终端500还包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行上述一个或者一个以上程序包含用于实施上述实施例中分配装置所执行操作的指令。
图6是本发明实施例提供的一种服务器的结构示意图,该服务器600可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processingunits,CPU)622(例如,一个或一个以上处理器)和存储器632,一个或一个以上存储应用程序642或数据644的存储介质630(例如一个或一个以上海量存储设备)。其中,存储器632和存储介质630可以是短暂存储或持久存储。存储在存储介质630的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器622可以设置为与存储介质630通信,在服务器600上执行存储介质630中的一系列指令操作。
服务器600还可以包括一个或一个以上电源626,一个或一个以上有线或无线网络接口650,一个或一个以上输入输出接口658,一个或一个以上键盘656,和/或,一个或一个以上操作系统641,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
该服务器600可以用于执行上述实施例提供的任务分配方法中分配装置所执行的步骤。
在示例性实施例中,还提供了一种存储有计算机程序的计算机可读存储介质,例如存储有计算机程序的存储器,上述计算机程序被处理器执行时实现上述实施例中的任务分配方法。例如,所述计算机可读存储介质可以是只读内存(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、只读光盘(Compact Disc Read-Only Memory,CD-ROM)、磁带、软盘和光数据存储设备等。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (30)

1.一种任务分配方法,其特征在于,所述方法包括:
获取目标区域内的多个任务,所述多个任务的数量为第一数量;
确定多个移动机器人,所述多个移动机器人的数量为第二数量;
当所述第一数量大于所述第二数量时,从所述多个任务中为每个移动机器人分配一个任务。
2.根据权利要求1所述的方法,其特征在于,所述当所述第一数量大于所述第二数量时,从所述多个任务中为每个移动机器人分配一个任务之后,所述方法还包括:
当所述多个移动机器人中的第一移动机器人执行任务完成时,从还未分配的多个任务中选取一个任务分配给所述第一移动机器人;或者,
当添加了新的第二移动机器人时,从还未分配的多个任务中选取一个任务分配给所述第二移动机器人。
3.根据权利要求1所述的方法,其特征在于,所述当所述第一数量大于所述第二数量时,从所述多个任务中为每个移动机器人分配一个任务之后,所述方法还包括:
当已分配所述多个任务中第一任务的第三移动机器人取消执行所述第一任务时,从还未分配任务的多个移动机器人中,选取一个第四移动机器人;
将所述第一任务分配给所述第四移动机器人。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述当所述第一数量大于所述第二数量时,从所述多个任务中为每个移动机器人分配一个任务,包括:
确定所述多个移动机器人中每个移动机器人的当前位置;
根据所述每个移动机器人的当前位置,计算所述每个移动机器人分别执行每个任务的代价值;
根据计算得到的多个代价值,确定多种任务分配方案中代价值总和最小的指定任务分配方案,所述多种任务分配方案中的每种任务分配方案包括与所述每个移动机器人唯一对应的一个任务。
5.根据权利要求1-3任一项所述的方法,其特征在于,所述获取目标区域内的多个任务,包括:
获取所述目标区域中的多个子区域,每个子区域包括至少一个通道,每个通道包括多个栅格;
获取每个通道的任务,得到所述多个任务,每个任务为从对应通道的起始栅格沿着所述通道移动至所述通道的终止栅格。
6.根据权利要求4所述的方法,其特征在于,所述根据所述每个移动机器人的当前位置,计算所述每个移动机器人分别执行每个任务的代价值,包括:
对于每个移动机器人和每个任务,计算所述移动机器人移动至所述任务对应的起始栅格时的移动路径,所述任务为从对应通道的起始栅格沿着所述通道移动至所述通道的终止栅格;
根据所述移动路径计算所述移动机器人执行所述任务时的代价值。
7.根据权利要求6所述的方法,其特征在于,所述根据所述移动路径计算所述移动机器人执行所述任务时的代价值,包括:
获取所述移动路径对应的移动距离,将所述移动距离作为所述移动机器人执行所述任务的代价值。
8.根据权利要求6所述的方法,其特征在于,所述根据所述移动路径计算所述移动机器人执行所述任务时的代价值,包括:
获取所述移动路径对应的移动距离;
获取所述任务的收益,所述收益与所述任务的优先级正相关;
计算所述移动距离与所述收益的差值,作为所述移动机器人执行所述任务的代价值。
9.根据权利要求8所述的方法,其特征在于,所述目标区域包括多个子区域,每个子区域包括至少一个通道,所述每个子区域中任务的收益最高的通道的数量为至少一个,不同子区域的最高收益相等。
10.根据权利要求9所述的方法,其特征在于,所述每个子区域中的第一个通道的任务的收益最高,且所述每个子区域中任一通道的终止栅格与相邻通道的起始栅格相邻,且所述每个子区域中各个通道的任务的收益按照递减幅度依次递减。
11.根据权利要求4所述的方法,其特征在于,所述根据计算得到的多个代价值,确定所述每个移动机器人所执行任务的多种任务分配方案中代价值总和最小的指定任务分配方案,包括:
将所述多个代价值组成代价值矩阵,所述代价值矩阵的第一维度为移动机器人,第二维度为任务,所述代价值矩阵中的元素为对应移动机器人执行对应任务时的代价值;
采用预设任务分配算法,获取所述代价值矩阵对应的匹配矩阵,所述匹配矩阵中的元素为对应移动机器人与对应任务之间的匹配系数;
将所述匹配矩阵中等于指定值的匹配系数对应的移动机器人和任务组成一个匹配组合,得到多个匹配组合,将所述多个匹配组合构成所述指定分配方案。
12.根据权利要求4所述的方法,其特征在于,所述根据计算得到的多个代价值,确定所述每个移动机器人所执行任务的多种任务分配方案中代价值总和最小的指定任务分配方案,包括:
构建容量网络,所述容量网络包括源节点、汇节点、与所述每个移动机器人对应的机器人节点和与所述每个任务对应的任务节点,所述源节点和每个机器人节点分别通过第一类路径连接,所述每个机器人节点和所述每个任务节点分别通过第二类路径连接,所述每个任务节点和所述汇节点分别通过第三类路径连接;
配置所述容量网络中每条第一类路径和每条第三类路径的费用为0,并配置每条第二类路径的费用为连接的机器人节点对应的移动机器人执行连接的任务节点对应的任务时的代价值;
采用最小费用最大流算法,获取当所述容量网络的总费用最小且总流量最大时,从所述源节点出发到达所述汇节点会经过的多条第二类路径;
将所述多条第二类路径中的同一条第二类路径连接的机器人节点对应的移动机器人和连接的任务节点对应的任务组成一个匹配组合,得到多个匹配组合,将所述多个匹配组合构成所述指定分配方案。
13.根据权利要求5所述的方法,其特征在于,所述获取所述目标区域中的多个子区域,每个子区域包括至少一个通道,包括:
将所述目标区域划分为多个栅格,每个栅格的尺寸相同,其中包含障碍物的栅格为障碍栅格;
对所述目标区域中除了障碍栅格以外的栅格进行分区,得到多个子区域;
对于每个子区域,将所述子区域划分为至少一个长度等于所述子区域的长度且宽度等于一个栅格的通道。
14.根据权利要求13所述的方法,其特征在于,所述对所述目标区域中除了障碍栅格以外的栅格进行分区,得到多个子区域,包括:
在对所述目标区域进行一次扫描的过程中,当扫描到连通性发生变化的第一位置,之后扫描到连通性发生变化的第二位置时,将所述第一位置和所述第二位置之间的区域按照障碍栅格的位置进行分割,得到至少一个子区域,以使不同子区域之间通过障碍栅格分隔开;
其中,连通性发生变化是指障碍栅格的分布情况发生变化。
15.一种任务分配装置,其特征在于,所述装置包括:
获取模块,用于获取目标区域内的多个任务,所述多个任务的数量为第一数量;
确定模块,用于确定多个移动机器人,所述多个移动机器人的数量为第二数量;
分配模块,用于当所述第一数量大于所述第二数量时,从所述多个任务中为每个移动机器人分配一个任务。
16.根据权利要求15所述的装置,其特征在于,所述分配模块,还用于当所述多个移动机器人中的第一移动机器人执行任务完成时,从还未分配的多个任务中选取一个任务分配给所述第一移动机器人;或者,
所述分配模块,还用于当添加了新的第二移动机器人时,从还未分配的多个任务中选取一个任务分配给所述第二移动机器人。
17.根据权利要求15所述的装置,其特征在于,所述分配模块,还用于当已分配所述多个任务中第一任务的第三移动机器人取消执行所述第一任务时,从还未分配任务的多个移动机器人中,选取一个第四移动机器人;将所述第一任务分配给所述第四移动机器人。
18.根据权利要求15-17任一项所述的装置,其特征在于,所述分配模块,包括:
确定子模块,用于确定所述多个移动机器人中每个移动机器人的当前位置;
计算子模块,用于根据所述每个移动机器人的当前位置,计算所述每个移动机器人分别执行每个任务的代价值;
所述确定子模块,还用于根据计算得到的多个代价值,确定多种任务分配方案中代价值总和最小的指定任务分配方案,所述多种任务分配方案中的每种任务分配方案包括与所述每个移动机器人唯一对应的一个任务。
19.根据权利要求15-17任一项所述的装置,其特征在于,所述获取模块,还用于获取所述目标区域中的多个子区域,每个子区域包括至少一个通道,每个通道包括多个栅格;
所述获取模块,还用于获取每个通道的任务,得到所述多个任务,每个任务为从对应通道的起始栅格沿着所述通道移动至所述通道的终止栅格。
20.根据权利要求18所述的装置,其特征在于,所述计算子模块,还用于对于每个移动机器人和每个任务,计算所述移动机器人移动至所述任务对应的起始栅格时的移动路径,所述任务为从对应通道的起始栅格沿着所述通道移动至所述通道的终止栅格;根据所述移动路径计算所述移动机器人执行所述任务时的代价值。
21.根据权利要求20所述的装置,其特征在于,所述计算子模块,还用于获取所述移动路径对应的移动距离,将所述移动距离作为所述移动机器人执行所述任务的代价值。
22.根据权利要求20所述的装置,其特征在于,所述计算子模块,还用于获取所述移动路径对应的移动距离;获取所述任务的收益,所述收益与所述任务的优先级正相关;计算所述移动距离与所述收益的差值,作为所述移动机器人执行所述任务的代价值。
23.根据权利要求22所述的装置,其特征在于,所述目标区域包括多个子区域,每个子区域包括至少一个通道,所述每个子区域中任务的收益最高的通道的数量为至少一个,不同子区域的最高收益相等。
24.根据权利要求23所述的装置,其特征在于,所述每个子区域中的第一个通道的任务的收益最高,且所述每个子区域中任一通道的终止栅格与相邻通道的起始栅格相邻,且所述每个子区域中各个通道的任务的收益按照递减幅度依次递减。
25.根据权利要求18所述的装置,其特征在于,所述确定子模块,包括:
组成单元,用于将所述多个代价值组成代价值矩阵,所述代价值矩阵的第一维度为移动机器人,第二维度为任务,所述代价值矩阵中的元素为对应移动机器人执行对应任务时的代价值;
获取单元,用于采用预设任务分配算法,获取所述代价值矩阵对应的匹配矩阵,所述匹配矩阵中的元素为对应移动机器人与对应任务之间的匹配系数;
所述组成单元,还用于将所述匹配矩阵中等于指定值的匹配系数对应的移动机器人和任务组成一个匹配组合,得到多个匹配组合,将所述多个匹配组合构成所述指定分配方案。
26.根据权利要求18所述的装置,其特征在于,所述确定子模块,包括:
构建单元,用于构建容量网络,所述容量网络包括源节点、汇节点、与所述每个移动机器人对应的机器人节点和与所述每个任务对应的任务节点,所述源节点和每个机器人节点分别通过第一类路径连接,所述每个机器人节点和所述每个任务节点分别通过第二类路径连接,所述每个任务节点和所述汇节点分别通过第三类路径连接;
配置单元,用于配置所述容量网络中每条第一类路径和每条第三类路径的费用为0,并配置每条第二类路径的费用为连接的机器人节点对应的移动机器人执行连接的任务节点对应的任务时的代价值;
获取单元,用于采用最小费用最大流算法,获取当所述容量网络的总费用最小且总流量最大时,从所述源节点出发到达所述汇节点会经过的多条第二类路径;
组成单元,用于将所述多条第二类路径中的同一条第二类路径连接的机器人节点对应的移动机器人和连接的任务节点对应的任务组成一个匹配组合,得到多个匹配组合,将所述多个匹配组合构成所述指定分配方案。
27.根据权利要求19所述的装置,其特征在于,所述获取模块,还包括:
划分子模块,用于将所述目标区域划分为多个栅格,每个栅格的尺寸相同,其中包含障碍物的栅格为障碍栅格;
分区子模块,用于对所述目标区域中除了障碍栅格以外的栅格进行分区,得到多个子区域;
所述划分子模块,用于对于每个子区域,将所述子区域划分为至少一个长度等于所述子区域的长度且宽度等于一个栅格的通道。
28.根据权利要求27所述的装置,其特征在于,所述划分子模块,用于在对所述目标区域进行一次扫描的过程中,当扫描到连通性发生变化的第一位置,之后扫描到连通性发生变化的第二位置时,将所述第一位置和所述第二位置之间的区域按照障碍栅格的位置进行分割,得到至少一个子区域,以使不同子区域之间通过障碍栅格分隔开;
其中,连通性发生变化是指障碍栅格的分布情况发生变化。
29.一种分配装置,其特征在于,所述分配装置包括处理器和存储器;存储器,用于存放计算机程序;处理器,用于执行存储器上所存放的计算机程序,实现权利要求1-14任一项所述的方法步骤。
30.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-14任一项所述的方法步骤。
CN201710748498.3A 2017-08-28 2017-08-28 任务分配方法、装置及计算机可读存储介质 Pending CN109426560A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710748498.3A CN109426560A (zh) 2017-08-28 2017-08-28 任务分配方法、装置及计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710748498.3A CN109426560A (zh) 2017-08-28 2017-08-28 任务分配方法、装置及计算机可读存储介质

Publications (1)

Publication Number Publication Date
CN109426560A true CN109426560A (zh) 2019-03-05

Family

ID=65502390

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710748498.3A Pending CN109426560A (zh) 2017-08-28 2017-08-28 任务分配方法、装置及计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN109426560A (zh)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110516940A (zh) * 2019-08-15 2019-11-29 腾讯科技(深圳)有限公司 任务分配方法及装置
CN110532078A (zh) * 2019-08-29 2019-12-03 中国科学院软件研究所 一种边缘计算调度优化方法及系统
CN110647149A (zh) * 2019-09-30 2020-01-03 长春工业大学 一种agv调度和交叉口分流控制方法
CN111232590A (zh) * 2020-03-12 2020-06-05 李佳庆 仓储机器人的自动化控制方法及装置
CN111506872A (zh) * 2020-03-03 2020-08-07 平安科技(深圳)有限公司 基于负载矩阵分析的任务分配方法及装置
CN111716356A (zh) * 2020-06-18 2020-09-29 南京邮电大学 一种仿人多机器人的协作方法
CN111753388A (zh) * 2019-12-30 2020-10-09 广州极飞科技有限公司 喷洒控制方法、装置、电子设备和计算机可读存储介质
CN112925308A (zh) * 2021-01-21 2021-06-08 深圳市人工智能与机器人研究院 路径规划方法、装置及计算机存储介质
CN113627703A (zh) * 2020-05-08 2021-11-09 北京京东乾石科技有限公司 移动装置的调度方法和设备、计算机系统和存储介质
EP4080310A1 (en) * 2021-04-23 2022-10-26 Carnegie Robotics, LLC A method of controlling a robot in relation to a service schedule
EP4080311A1 (en) * 2021-04-23 2022-10-26 Carnegie Robotics, LLC A method of operating one or more robots
US20230034278A1 (en) * 2019-12-26 2023-02-02 Syrius Robotics Co., Ltd. Task Execution Method and Apparatus for Robots Capable of Freely Constructing Network, and Storage Medium
CN116596447A (zh) * 2023-07-05 2023-08-15 长春理工大学 一种基于拍卖算法的仓库任务分配方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1815951B1 (en) * 2004-11-02 2012-02-29 Kabushiki Kaisha Yaskawa Denki Robot controller and robot system
CN105956748A (zh) * 2016-04-22 2016-09-21 中国人民解放军国防科学技术大学 多搜救机器人系统任务分配方法
CN106875090A (zh) * 2017-01-09 2017-06-20 中南大学 一种面向动态任务的多机器人分布式任务分配形成方法
CN106982139A (zh) * 2017-03-21 2017-07-25 深圳先进技术研究院 一种基于多机器人多任务的指派问题的方法及装置、用户设备

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1815951B1 (en) * 2004-11-02 2012-02-29 Kabushiki Kaisha Yaskawa Denki Robot controller and robot system
CN105956748A (zh) * 2016-04-22 2016-09-21 中国人民解放军国防科学技术大学 多搜救机器人系统任务分配方法
CN106875090A (zh) * 2017-01-09 2017-06-20 中南大学 一种面向动态任务的多机器人分布式任务分配形成方法
CN106982139A (zh) * 2017-03-21 2017-07-25 深圳先进技术研究院 一种基于多机器人多任务的指派问题的方法及装置、用户设备

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
张喜妹: "基于Kiva系统的拣选作业优化与算法研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *
高梓豪: "仓储中多机器人作业的规划与仿真", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110516940A (zh) * 2019-08-15 2019-11-29 腾讯科技(深圳)有限公司 任务分配方法及装置
CN110532078A (zh) * 2019-08-29 2019-12-03 中国科学院软件研究所 一种边缘计算调度优化方法及系统
CN110647149A (zh) * 2019-09-30 2020-01-03 长春工业大学 一种agv调度和交叉口分流控制方法
CN110647149B (zh) * 2019-09-30 2022-09-16 长春工业大学 一种agv调度和交叉口分流控制方法
US20230034278A1 (en) * 2019-12-26 2023-02-02 Syrius Robotics Co., Ltd. Task Execution Method and Apparatus for Robots Capable of Freely Constructing Network, and Storage Medium
CN111753388A (zh) * 2019-12-30 2020-10-09 广州极飞科技有限公司 喷洒控制方法、装置、电子设备和计算机可读存储介质
CN111506872B (zh) * 2020-03-03 2023-11-07 平安科技(深圳)有限公司 基于负载矩阵分析的任务分配方法及装置
CN111506872A (zh) * 2020-03-03 2020-08-07 平安科技(深圳)有限公司 基于负载矩阵分析的任务分配方法及装置
CN111232590B (zh) * 2020-03-12 2021-10-29 苏万宝 仓储机器人的自动化控制方法及装置
CN111232590A (zh) * 2020-03-12 2020-06-05 李佳庆 仓储机器人的自动化控制方法及装置
CN113627703A (zh) * 2020-05-08 2021-11-09 北京京东乾石科技有限公司 移动装置的调度方法和设备、计算机系统和存储介质
CN111716356B (zh) * 2020-06-18 2021-12-24 南京邮电大学 一种仿人多机器人的协作方法
CN111716356A (zh) * 2020-06-18 2020-09-29 南京邮电大学 一种仿人多机器人的协作方法
CN112925308A (zh) * 2021-01-21 2021-06-08 深圳市人工智能与机器人研究院 路径规划方法、装置及计算机存储介质
CN112925308B (zh) * 2021-01-21 2023-12-26 深圳市人工智能与机器人研究院 路径规划方法、装置及计算机存储介质
EP4080310A1 (en) * 2021-04-23 2022-10-26 Carnegie Robotics, LLC A method of controlling a robot in relation to a service schedule
EP4080311A1 (en) * 2021-04-23 2022-10-26 Carnegie Robotics, LLC A method of operating one or more robots
CN116596447A (zh) * 2023-07-05 2023-08-15 长春理工大学 一种基于拍卖算法的仓库任务分配方法
CN116596447B (zh) * 2023-07-05 2023-10-03 长春理工大学 一种基于拍卖算法的仓库任务分配方法

Similar Documents

Publication Publication Date Title
CN109426884B (zh) 分配方案确定方法、装置及计算机可读存储介质
CN109426560A (zh) 任务分配方法、装置及计算机可读存储介质
CN109857518B (zh) 一种网络资源的分配方法及设备
CN107976911B (zh) 设备控制方法、装置及系统
CN111191931A (zh) 一种多机器人任务分配的方法、装置及终端设备
CN108984064B (zh) 分屏显示方法、装置、存储介质和电子设备
US20190163530A1 (en) Computation apparatus, resource allocation method thereof, and communication system
CN111898787A (zh) 基站规划方法、装置、终端设备以及存储介质
CN109062468B (zh) 分屏显示方法、装置、存储介质和电子设备
JP7043390B2 (ja) 推定装置、推定システムおよび推定方法
JP2017126238A (ja) システム管理装置、情報処理システム、システム管理方法及びプログラム
CN112351055A (zh) 边缘计算服务器的寻找方法及相关设备
CN105338537B (zh) 一种新增基站站址共享分析的方法及终端
CN108540582B (zh) 一种终端标识的处理方法、服务器及终端
CN111338745B (zh) 一种虚拟机的部署方法、装置及智能设备
US10802879B2 (en) Method and device for dynamically assigning task and providing resources and system thereof
CN105653463B (zh) 存储管理系统、管理装置及方法
CN106899929A (zh) 一种信号搜索方法、装置和系统
CN107831467A (zh) 节点定位方法、服务器、系统及计算机可读存储介质
CN108322897A (zh) 卡套餐组合方法及装置
CN109561436A (zh) 一种物理层小区标识pci优化的方法、设备和装置
CN109062469B (zh) 分屏显示方法、装置、存储介质和电子设备
CN110477819B (zh) 物联网操作系统的数据获取和决策的方法及智能家居设备
CN116633932A (zh) 一种云计算资源池动态调度系统
CN112968860B (zh) 管理电子装置的方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information
CB02 Change of applicant information

Address after: 310051 room 304, B / F, building 2, 399 Danfeng Road, Binjiang District, Hangzhou City, Zhejiang Province

Applicant after: Hangzhou Hikvision Robot Co.,Ltd.

Address before: 310051 5th floor, building 1, building 2, no.700 Dongliu Road, Binjiang District, Hangzhou City, Zhejiang Province

Applicant before: HANGZHOU HIKROBOT TECHNOLOGY Co.,Ltd.