CN114089755A - 一种基于一致性包算法的多机器人任务分配方法 - Google Patents
一种基于一致性包算法的多机器人任务分配方法 Download PDFInfo
- Publication number
- CN114089755A CN114089755A CN202111352698.XA CN202111352698A CN114089755A CN 114089755 A CN114089755 A CN 114089755A CN 202111352698 A CN202111352698 A CN 202111352698A CN 114089755 A CN114089755 A CN 114089755A
- Authority
- CN
- China
- Prior art keywords
- task
- robot
- area
- robots
- tasks
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 23
- 230000008901 benefit Effects 0.000 claims abstract description 5
- 239000011159 matrix material Substances 0.000 claims description 60
- 230000006870 function Effects 0.000 claims description 13
- 230000008569 process Effects 0.000 claims description 12
- 238000010276 construction Methods 0.000 claims description 9
- 238000004891 communication Methods 0.000 claims description 6
- 239000000446 fuel Substances 0.000 claims description 6
- 238000005457 optimization Methods 0.000 claims description 5
- 230000009191 jumping Effects 0.000 claims description 4
- 230000009471 action Effects 0.000 claims description 3
- 230000001186 cumulative effect Effects 0.000 claims description 3
- 230000003993 interaction Effects 0.000 claims description 3
- 230000007246 mechanism Effects 0.000 claims description 3
- 230000001360 synchronised effect Effects 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 4
- 239000003795 chemical substances by application Substances 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0212—Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
- G05D1/0221—Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory involving a learning process
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0287—Control of position or course in two dimensions specially adapted to land vehicles involving a plurality of land vehicles, e.g. fleet or convoy travelling
Landscapes
- Engineering & Computer Science (AREA)
- Aviation & Aerospace Engineering (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- Numerical Control (AREA)
- Manipulator (AREA)
- General Factory Administration (AREA)
Abstract
本发明属于多机器人协同控制领域,提供了一种基于一致性包算法的多机器人任务分配方法,首先,综合考虑机器人速度、任务时间窗约束、到达时间和行程代价损耗这些复杂约束,设计了新的竞价函数。同时,采用分层的方式实现任务分配问题,即先把机器人分配给各个任务区,然后在每个任务区中将任务分配给机器人。并且,考虑到智能仓储***中单任务和双任务并存的情况,实际中双任务需要多个机器人合作完成。进一步考虑到不同任务之间存在一定的优先级关系,不同区域内优先级作为任务分配的影响因素。本发明采用的扩展CBBA算法,得到的任务分配结果在实际执行时具有很高的成功率并能获得较高的任务收益。
Description
技术领域
本发明属于多机器人协同控制领域,具体涉及一种基于一致性包算法的多机器人任务分配方法。
背景技术
近年来,随着智能仓储技术的发展,多机器人相互协作完成任务的效果相对于单个机器人体现出难以达到的优势,成为智能仓储***中至关重要的组成部分。因此,多机器人***由于实际应用潜力受到越来越多的关注。其中任务分配是智能仓储***中非常关键的一个组合优化问题,其目标是考虑复杂约束条件的前提下,合理地将任务分配给仓储机器人,从而有效地提高***性能,通常通过减少总体执行时间或执行任务总距离来实现。
任务分配的好坏直接决定了仓储***完成任务的效率及其代价,关于仓储机器人的研究策略主要聚焦在分布式方法,包括一致性算法、拍卖算法、一致性包算法等,已经被广泛地运用于社会生活的各个领域。此类方法虽然应用广泛但仍然存在问题,例如一致性算法需要机器人收敛到一致的态势感知上,可能需要大量时间且通常需要传输大量数据,这可能会导致严重的延迟;拍卖算法必须以某种方式将每个机器人的出价传送给拍卖者,限制了可使用的网络拓扑;一致性包算法(CBBA算法)主要考虑单个任务由一个智能体执行的应用场景,在需要多智能体协同执行复杂任务的场景下具有局限性。
随着仓储***复杂程度不断提高,***规模越来越大,可能存在数量众多且距离遥远的拣选子区域。各个区域中也可能存在需要多个机器人协同完成的任务,且优先级在不同任务之间也是存在的。面对复杂约束下的仓储***优化问题,采用传统的任务分配方式发生分配失败的概率将越来越大,不能满足实时性的需要,更难以获得较为合理的解。
发明内容
为了克服现有技术的不足,本发明提出一种基于一致性包算法的多机器人任务分配方法,利用基于分层的扩展CBBA算法,旨在组建上述的分布式仓储机器人调度***,高效率地实现任务在多机器人中的分配。
本发明的技术方案
一种基于一致性包算法的多机器人任务分配方法,包括以下步骤:
步骤1:考虑某仓储***中拣选任务分布在Na个子区域中,任务区标号集合为参与拣选的机器人集合为所有机器人分为两种类型。共有NT个任务需要完成拣选,任务标号集合为任务区中包含Nt个具有不同优先级的任务,分为单任务和双任务两种类型。其中,仓储机器人i∈I最多可以执行Li个任务,任务区m∈M最多需要La个机器人拣选,执行任务j∈J需要的机器人数量为numj。
该任务分配问题的优化目标函数表达式如下:
其中,xmi和xij表示一个由0、1变量构成的任务分配决策变量,xmi=1表明机器人i分配给任务区m,xij=1表明任务j分配给机器人i。Cij为机器人i的任务执行收益,向量pi表示机器人i的有序任务序列。
各个任务区中的任务分配还需要考虑任务的优先级:Vj=Cj/durj,其中Cj和durj分别为任务j的价值和执行时间。选取优先级和竞价函数乘积最大的任务,作为相应机器人的最佳任务进行分配。任务分配问题的可行解需要同时满足优化目标函数和此约束关系。
假定任务j的最早开始时间为tmin_start,最迟开始时间为tmax_start。考虑复杂约束的新竞价函数表示为:
步骤2:在任务分配过程中,仓储机器人、任务区、任务都需要存储和更新一些数据信息结构,具体如下:
每个仓储机器人需要维护的数据信息结构包括:
(4)获胜者矩阵(Winning Uavs):获胜机器人矩阵Z为Nu×NT维度矩阵,矩阵中的元素存储了当前所有任务的获胜者编号,其中Zij=k表示机器人i认为机器人k是任务j的获胜者。矩阵Z中第j列非负元素个数Sumj表示分配给任务j的机器人总数。
(5)获胜出价矩阵(Winning Bids):获胜出价矩阵由表示,矩阵的行表示所有机器人标识,矩阵的列表示不同的任务。各项元素与矩阵Z一一对应,表示获胜者对获胜任务的出价。其中Yij=0表示机器人i认为任务j没有获胜者。
各个任务区需要存储和更新以下数据信息结构:
(3)获胜区域出价矩阵(Winning Bids):由表示,矩阵的行表示所有任务区标识,矩阵的列表示不同的机器人。各项元素与矩阵ZA一一对应,表示获胜任务区对获胜机器人的出价。其中表示任务区m认为机器人i没有获胜者。
任务包括单任务和双任务两种类型,需要维护的数据信息结构分别为:
已知所有机器人i∈I的位置为(xi,yi,zi),速度和单位时间燃料消耗分别为vi和fi。所有任务j∈J的位置(xj,yj,zj)、时间窗折扣因子λj都已知。且已知所有任务区m∈M包含的具体任务Tm。机器人i执行所分配任务获得的总收益值表示为为了确保任务分配的效率,采用分层的方式实现仓储机器人的任务分配,即先将所有仓储机器人分配到各个任务区,再将任务区内的具体任务分配给仓储机器人。如下步骤具体介绍分配过程。
步骤3:各个任务区之间进行仓储机器人的分配。任务区的机器人分配分为任务区参数生成、机器人包构造、区域冲突解决三个步骤。针对任务区m∈M的具体分配流程如下:
(1)根据任务区m中的任务列表Tm生成任务区参数。具体包括任务区m的位置(xm,ym,zm)、时间窗折扣因子λm,价值Cm和固定价值Cm0。其中和分别为Tm中的和的最小值,最小值对应任务的λj和(xj,yj,zj)即为任务区的λm和(xm,ym,zm),Cm为Tm中所有Cj累加和的平均值,Cm0则为Tm中所有Cj0累加和的平均值。
(2)任务区m进行机器人包构造。对于不在任务区m捆绑包中的机器人i,依次计算分配给任务区m的收益值Cmi;将收益值Cmi与当前获胜区域出价矩阵中相应的进行比较,如果对于同一个机器人Cmi大于则设置竞价标识否则选取的最大值所对应的机器人,添加到任务m的捆绑包同时更新矩阵ZA和矩阵YA。
(3)任务区之间进行冲突解决。任务区m∈M接收到任务区n∈M的共享信息后,数据信息结构更新行动规则如下:
其中任务区的机器人包构造、区域之间冲突解决这两个步骤反复迭代,直到所有机器人都分配完毕为止,任务区m分配得到的机器人集合表示为Rm。
步骤4:任务区中所有仓储机器人进行任务包集的构建。任务区m中仓储机器人i的任务包集构造流程如下:
(1)循环遍历任务区m中的机器人集合Rm,依次取出机器人i∈Rm,若|bi|<Li,转为步骤(2),否则遍历下一个机器人;
(2)对于任务区m中的任务列表Tm,考虑执行路径列表pi中尚未包含任务,以及新任务加入pi中每一个位置的可能性这两个条件。然后,取出所有符合条件的任务j∈Tm,依次计算任务j插在pi的位置n得到的边缘收益值:
若此时存在Cij值大于0,转为步骤(3),否则返回步骤(1);
(3)考虑到任务区m中的每个任务j具有优先级Vj,选取乘积最大的Cmax=Cij×Vj>0所对应的任务j。如果numj=1,任务为单任务类型,转为步骤(4);如果numj>1,任务为双任务类型,转为步骤(5);
(4)单任务情况:将收益值Cij与当前获胜出价矩阵中相应的Yij进行比较,如果对于同一个任务收益值Cij大于Yij,则设置竞拍标志hij=1转入步骤(6),否则hij=0转入步骤(7)。
(5)双任务情况:若numj>Sumj,则hij=1转入步骤(6);若numj=Sumj,并且Cij大于当前任务j的最小投标值,则hij=1转入步骤(6);若以上两种情况都不满足,机器人i放弃任务j,即hij=0转入步骤(7)。
(7)机器人i对任务j的竞价Cij重置为-1,返回步骤(2)。
(8)当任务区m中的机器人集合Rm遍历完毕后,跳转到步骤5。
步骤5:任务区中仓储机器人之间进行冲突解决。任务区m中各个机器人之间采用同步通信机制,仓储机器人i∈Rm接收到仓储机器人k∈Rm的共享信息后,进行冲突消解。
在冲突解决阶段,机器人之间完成一次交互后将更新时间戳信息,时间戳si的更新公式如下:
其中,gik=1表示机器人i和k之间存在通信链接,否则gik=0。每个节点都有一个自连接的边,即gii=1。τr为消息接收时间。具体的冲突解决流程如下:
(1)循环遍历任务区m中的所有冲突任务Tm,依次取出冲突任务j∈Tm。如果numj=1,冲突任务为单任务类型,转为步骤(2);如果numj>1,冲突任务为双任务类型,转为步骤(3);
(2)单任务情况:机器人i根据接收到的分配信息,直接采取以下三种可能的操作之一,然后转入步骤(6):
更新:将Ykj的值赋给Yij,将Zkj的值赋给Zij。
重置:将Yij重置为-1,Zij重置为-1
离开:Yij和Zij不做任何改变
(3)双任务情况:考虑到另一机器人q∈Rm,具体冲突消解可分为两部分。第一部分为机器人i更新自身存储信息为最新,转为步骤(4)。第二部分为机器人i调整自身信息,转为步骤(5)。
(4)机器人i将自身投标信息与机器人k进行比较,skq>siq表明机器人k分配信息更新。机器人i保存最新的数据,可确认自身存储信息是当前最新的。
(5)设定发送者k认为机器人q执行冲突任务j,而接受者i认为机器人q不执行此任务,且满足i≠q和skq>siq两个条件。若numj>Sumj,则进行更新Yij=Ykj,Zij=Zkj。若numj=Sumj,且Yqj大于当前任务j的最小投标值则Yrj=-1,Zrj=-1,Yij=Ykj,Zij=Zkj。
(6)机器人i更新时间戳信息si,返回步骤(1)。
(7)当任务区m中的冲突任务集合Tm遍历完毕后,跳转回步骤4。
其中机器人的任务包构建、机器人之间冲突解决这两个步骤反复迭代,直到各个任务区内部收敛到一个无冲突的任务分配结果为止,这样实现了基于多区域的分层任务分配。
本发明的有益效果是:首先,综合考虑机器人速度、任务时间窗约束、到达时间和行程代价损耗这些复杂约束,设计了新的竞价函数。同时,采用分层的方式实现任务分配问题,即先把机器人分配给各个任务区,然后在每个任务区中将任务分配给机器人。并且,考虑到智能仓储***中单任务和双任务并存的情况,实际中双任务需要多个机器人合作完成。进一步考虑到不同任务之间存在一定的优先级关系,不同区域内优先级作为任务分配的影响因素。本发明采用的扩展CBBA算法,得到的任务分配结果在实际执行时具有很高的成功率并能获得较高的任务收益。
附图说明
图1是本发明中仓储机器人进行拣选任务分配的总流程图。
图2是本发明中具体分配过程流程图。
图3是本发明中采用基于分层的扩展CBBA算法的分配结果图。
图4是本发明中采用基于分层的扩展CBBA算法的任务分配时间图。
图5是采用基本CBBA算法的分配结果图。
具体实施方式
下面结合附图及技术方案,对本发明的实施方式做进一步详细说明。
如图1所示,一种基于一致性包算法的多机器人任务分配方法,步骤如下:步骤1:考虑某仓储***中拣选任务分布在Na个子区域,任务区标号集合为参与拣选的机器人集合为所有机器人分为两种类型。共有NT个任务需要完成拣选,任务标号集合为任务区中包含Nt个具有不同优先级的任务,分为单任务和双任务两种类型。其中,仓储机器人i∈I最多可以执行Li个任务,任务区m∈M最多需要La个机器人拣选,执行任务j∈J需要的机器人数量为numj。
该任务分配问题的优化目标函数表达式如下:
其中,xmi和xij表示一个由0、1变量构成的任务分配决策变量,xmi=1表明机器人i分配给任务区m,xij=1表明任务j分配给机器人i。Cij为机器人i的任务执行收益,向量pi表示机器人i的有序任务序列。
各个任务区中的任务分配还需要考虑任务的优先级:Vj=Cj/durj,其中Cj和durj分别为任务j的价值和执行时间。选取优先级和竞价函数乘积最大的任务,作为相应机器人的最佳任务进行分配。任务分配问题的可行解需要同时满足优化目标函数和此约束关系。
假定任务j的最早开始时间为tmin_start,最迟开始时间为tmax_start。考虑复杂约束的新竞价函数表示为:
步骤2:在任务分配过程中,仓储机器人、任务区、任务都需要存储和更新一些数据信息结构,具体如下:
每个仓储机器人需要维护的数据信息结构包括:
(4)获胜者矩阵(Winning Uavs):获胜机器人矩阵Z为Nu×NT维度矩阵,矩阵中的元素存储了当前所有任务的获胜者编号,其中Zij=k表示机器人i认为机器人k是任务j的获胜者。矩阵Z中第j列非负元素个数Sumj表示分配给任务j的机器人总数。
(5)获胜出价矩阵(Winning Bids):获胜出价矩阵由表示,矩阵的行表示所有机器人标识,矩阵的列表示不同的任务。各项元素与矩阵Z一一对应,表示获胜者对获胜任务的出价。其中Yij=0表示机器人i认为任务j没有获胜者。
各个任务区需要存储和更新以下数据信息结构:
(3)获胜区域出价矩阵(Winning Bids):由表示,矩阵的行表示所有任务区标识,矩阵的列表示不同的机器人。各项元素与矩阵ZA一一对应,表示获胜任务区对获胜机器人的出价。其中表示任务区m认为机器人i没有获胜者。
任务包括单任务和双任务两种类型,需要维护的数据信息结构分别为:
已知所有机器人i∈I的位置为(xi,yi,zi),速度和单位时间燃料消耗分别为vi和fi。所有任务j∈J的位置(xj,yj,zj)、时间窗折扣因子λj都已知。且已知所有任务区m∈M包含的具体任务Tm。机器人i执行所分配任务获得的总收益值表示为为了确保任务分配的效率,采用分层的方式实现仓储机器人的任务分配,即先将所有机器人分配到各个任务区,再将任务区内的具体任务分配给机器人,图2给出了具体分配流程。如下步骤将具体介绍分配过程。
步骤3:各个任务区之间进行仓储机器人的分配。任务区的机器人分配分为任务区参数生成、机器人包构造、区域冲突解决三个步骤。针对任务区m∈M的具体分配流程如下:
(1)根据任务区m中的任务列表Tm生成任务区参数。具体包括任务区m的位置(xm,ym,zm)、时间窗折扣因子λm,价值Cm和固定价值Cm0。其中和分别为Tm中的和的最小值,最小值对应任务的λj和(xj,yj,zj)即为任务区的λm和(xm,ym,zm),Cm为Tm中所有Cj累加和的平均值,Cm0则为Tm中所有Cj0累加和的平均值。
(2)任务区m进行机器人包构造。对于不在任务区m捆绑包中的机器人i,依次计算分配给任务区m的收益值Cmi;将收益值Cmi与当前获胜区域出价矩阵中相应的进行比较,如果对于同一个机器人Cmi大于则设置竞价标识否则选取的最大值所对应的机器人,添加到任务m的捆绑包同时更新矩阵ZA和矩阵YA。
(3)任务区之间进行冲突解决。任务区m∈M接收到任务区n∈M的共享信息后,数据信息结构更新行动规则如下:
其中任务区的机器人包构造、区域之间冲突解决这两个步骤反复迭代,如图2所示,直到所有机器人都分配完毕为止,任务区m分配得到的机器人集合表示为Rm。
步骤4:任务区中所有仓储机器人进行任务包集的构建。任务区m中仓储机器人i的任务包集构造流程如下:
(1)循环遍历任务区m中的机器人集合Rm,依次取出机器人i∈Rm,若|bi|<Li,转为步骤(2),否则遍历下一个机器人;
(2)对于任务区m中的任务列表Tm,考虑执行路径列表pi中尚未包含任务,以及新任务加入pi中每一个位置的可能性这两个条件。然后,取出所有符合条件的任务j∈Tm,依次计算任务j插在pi的位置n得到的边缘收益值:
若此时存在Cij值大于0,转为步骤(3),否则返回步骤(1);
(3)考虑到任务区m中的每个任务j具有优先级Vj,选取乘积最大的Cmax=Cij×Vj>0所对应的任务j。如果numj=1,任务为单任务类型,转为步骤(4);如果numj>1,任务为双任务类型,转为步骤(5);
(4)单任务情况:将收益值Cij与当前获胜出价矩阵中相应的Yij进行比较,如果对于同一个任务收益值Cij大于Yij,则设置竞拍标志hij=1转入步骤(6),否则hij=0转入步骤(7)。
(5)双任务情况:若numj>Sumj,则hij=1转入步骤(6);若numj=Sumj,并且Cij大于当前任务j的最小投标值,则hij=1转入步骤(6);若以上两种情况都不满足,机器人i放弃任务j,即hij=0转入步骤(7)。
(7)机器人i对任务j的竞价Cij重置为-1,返回步骤(2)。
(8)当任务区m中的机器人集合Rm遍历完毕后,跳转到步骤5。
步骤5:任务区中仓储机器人之间进行冲突解决。任务区m中各个机器人之间采用同步通信机制,仓储机器人i∈Rm接收到仓储机器人k∈Rm的共享信息后,进行冲突消解。
在冲突解决阶段,机器人之间完成一次交互后将更新时间戳信息,时间戳si的更新公式如下:
其中,gik=1表示机器人i和k之间存在通信链接,否则gik=0。每个节点都有一个自连接的边,即gii=1。τr为消息接收时间。具体的冲突解决流程如下:
(1)循环遍历任务区m中的所有冲突任务Tm,依次取出冲突任务j∈Tm。如果numj=1,冲突任务为单任务类型,转为步骤(2);如果numj>1,冲突任务为双任务类型,转为步骤(3);
(2)单任务情况:机器人i根据接收到的分配信息,直接采取以下三种可能的操作之一,然后转入步骤(6):
更新:将Ykj的值赋给Yij,将Zkj的值赋给Zij。
重置:将Yij重置为-1,Zij重置为-1
离开:Yij和Zij不做任何改变
(3)双任务情况:考虑到另一机器人q∈Rm,具体冲突消解可分为两部分。第一部分为机器人i更新自身存储信息为最新,转为步骤(4)。第二部分为机器人i调整自身信息,转为步骤(5)。
(4)机器人i将自身投标信息与机器人k进行比较,skq>siq表明机器人k分配信息更新。机器人i保存最新的数据,可确认自身存储信息是当前最新的。
(5)设定发送者k认为机器人q执行冲突任务j,而接受者i认为机器人q不执行此任务,且满足i≠q和skq>siq两个条件。若numj>Sumj,则进行更新Yij=Ykj,Zij=Zkj。若numj=Sumj,且Yqj大于当前任务j的最小投标值则Yrj=-1,Zrj=-1,Yij=Ykj,Zij=Zkj。
(6)机器人i更新时间戳信息si,返回步骤(1)。
(7)当任务区m中的冲突任务集合Tm遍历完毕后,跳转回步骤4。
其中机器人的任务包构建、机器人之间冲突解决这两个步骤反复迭代,如图2所示,直到各个任务区内部收敛到一个无冲突的任务分配结果为止,这样实现了基于多区域的分层任务分配。
实施例:
***仿真环境:Intel2.8GHz,8GB内存的PC机,Windows10操作***,Python3.6版本,PyCharm集成开发环境。
本发明采用三维地图模型,高度已知,坐标系为平面坐标系。假设有10个仓储机器人,需要对4个任务区(A、B、C、D)中共20个拣选任务进行拣选。仿真中仓储机器人和拣选任务的初始状态信息如表1和表2所示。其中参与拣选的机器人分为两种类型,单个机器人所能分配的最大任务数为10,且单个任务区最多可以分配3个机器人。待拣选任务也分为两种类型:单任务(需1个机器人),双任务(需要2个机器人)。
表1机器人参数设置
表2任务参数设置
表3描述了各个任务区的参数和分配结果。在步骤3中各个任务区根据内部的任务列表Tm生成自身参数,且实现所有仓储机器人分配到各个任务区,即完成第一层的分配。
表3任务区参数
图3是本发明实例的最终任务分配结果。图中A0-A9代表仓储机器人,灰色平面代表划分为4个任务区,T0-T19代表拣选任务。可以看出10个仓储机器人可以分配到各个任务区,并在各个任务区内部收敛到无冲突的任务分配。任务区A:A0->T0->T4;A1->T8->T12->T13;A8->T0->T8->T4;
任务区B:A2->T9->T5->T1;A4->T17->T19;A9->T9->T5->T1->T14->T18任务区C:A6->T2->T6->T10->T15;A7->T2->T6;
任务区D:A3->T7->T16->T3;A5->T7->T3->T11;
图4是本发明实例的任务分配时间图。图中不同类型的方块代表不同的任务,方块的起始和终止位置代表分配给当前任务的开始和结束时间,长度代表当前任务的持续时间。从图中可以清晰地看出10个机器人执行各个任务的时间段,各个时间段互不冲突。
图5是在相同条件下,采用基本CBBA的任务分配结果。此时任务分配在整个挑选区域内进行,仓储机器人根据其分配结果去执行相应的拣选任务。对比图3和图5,可以看出应用基于分层的扩展CBBA算法进行任务分配,得到的总利润更高且算法运行时间更少。
综上所述,本发明针对现有智能仓储***中任务调度存在的问题,提出了基于分层的扩展CBBA算法,用于多机器人的任务分配。算法中综合考虑了拣选子区域数量众多、复杂环境约束等多种因素,采用两层任务分配方式,即先把机器人分配给各个任务区、再在各个任务区内部将任务分配给机器人。有效地提高任务分配的可靠性和成功率,这对于智能仓储***的性能提升具有重要意义。
以上所述仅为本发明的优选实施例,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (1)
1.一种基于一致性包算法的多机器人任务分配方法,其特征在于,步骤如下:
步骤1:考虑某仓储***中拣选任务分布在Na个子区域中,任务区标号集合为参与拣选的机器人集合为所有机器人分为两种类型;共有NT个任务需要完成拣选,任务标号集合为任务区中包含Nt个具有不同优先级的任务,分为单任务和双任务两种类型;其中,仓储机器人i∈I最多可以执行Li个任务,任务区m∈M最多需要La个机器人拣选,执行任务j∈J需要的机器人数量为numj;
该任务分配问题的优化目标函数表达式如下:
其中,xmi和xij表示一个由0、1变量构成的任务分配决策变量,xmi=1表明机器人i分配给任务区m,xij=1表明任务j分配给机器人i;Cij为机器人i的任务执行收益,向量pi表示机器人i的有序任务序列;
各个任务区中的任务分配还需要考虑任务的优先级:Vj=Cj/durj,其中Cj和durj分别为任务j的价值和执行时间;选取优先级和竞价函数乘积最大的任务,作为相应机器人的最佳任务进行分配;任务分配问题的可行解需要同时满足优化目标函数和此约束关系;
假定任务j的最早开始时间为tmin_start,最迟开始时间为tmax_start;考虑复杂约束的新竞价函数表示为:
步骤2:在任务分配过程中,仓储机器人、任务区、任务都需要存储和更新一些数据信息结构,具体如下:
每个仓储机器人需要维护的数据信息结构包括:
(4)获胜者矩阵:获胜机器人矩阵Z为Nu×NT维度矩阵,矩阵中的元素存储了当前所有任务的获胜者编号,其中Zij=k表示机器人i认为机器人k是任务j的获胜者;矩阵Z中第j列非负元素个数Sumj表示分配给任务j的机器人总数;
各个任务区需要存储和更新以下数据信息结构:
任务包括单任务和双任务两种类型,需要维护的数据信息结构分别为:
已知所有机器人i∈I的位置为(xi,yi,zi),速度和单位时间燃料消耗分别为vi和fi;所有任务j∈J的位置(xj,yj,zj)、时间窗折扣因子λj都已知;且已知所有任务区m∈M包含的具体任务Tm;机器人i执行所分配任务获得的总收益值表示为为了确保任务分配的效率,采用分层的方式实现仓储机器人的任务分配,即先将所有仓储机器人分配到各个任务区,再将任务区内的具体任务分配给仓储机器人;
步骤3:各个任务区之间进行仓储机器人的分配;任务区的机器人分配分为任务区参数生成、机器人包构造、区域冲突解决三个步骤;针对任务区m∈M的具体分配流程如下:
(2)任务区m进行机器人包构造;对于不在任务区m捆绑包中的机器人i,依次计算分配给任务区m的收益值Cmi;将收益值Cmi与当前获胜区域出价矩阵中相应的进行比较,如果对于同一个机器人Cmi大于则设置竞价标识否则选取的最大值所对应的机器人,添加到任务m的捆绑包同时更新矩阵ZA和矩阵YA;
(3)任务区之间进行冲突解决;任务区m∈M接收到任务区n∈M的共享信息后,数据信息结构更新行动规则如下:
其中任务区的机器人包构造、区域之间冲突解决这两个步骤反复迭代,直到所有机器人都分配完毕为止,任务区m分配得到的机器人集合表示为Rm;
步骤4:任务区中所有仓储机器人进行任务包集的构建;任务区m中仓储机器人i的任务包集构造流程如下:
(1)循环遍历任务区m中的机器人集合Rm,依次取出机器人i∈Rm,若|bi|<Li,转为步骤(2),否则遍历下一个机器人;
(2)对于任务区m中的任务列表Tm,考虑执行路径列表pi中尚未包含任务,以及新任务加入pi中每一个位置的可能性这两个条件;然后,取出所有符合条件的任务j∈Tm,依次计算任务j插在pi的位置n得到的边缘收益值:
若此时存在Cij值大于0,转为步骤(3),否则返回步骤(1);
(3)考虑到任务区m中的每个任务j具有优先级Vj,选取乘积最大的Cmax=Cij×Vj>0所对应的任务j;如果numj=1,任务为单任务类型,转为步骤(4);如果numj>1,任务为双任务类型,转为步骤(5);
(4)单任务情况:将收益值Cij与当前获胜出价矩阵中相应的Yij进行比较,如果对于同一个任务收益值Cij大于Yij,则设置竞拍标志hij=1转入步骤(6),否则hij=0转入步骤(7);
(5)双任务情况:若numj>Sumj,则hij=1转入步骤(6);若numj=Sumj,并且Cij大于当前任务j的最小投标值,则hij=1转入步骤(6);若以上两种情况都不满足,机器人i放弃任务j,即hij=0转入步骤(7);
(7)机器人i对任务j的竞价Cij重置为-1,返回步骤(2);
(8)当任务区m中的机器人集合Rm遍历完毕后,跳转到步骤(5);
步骤5:任务区中仓储机器人之间进行冲突解决;任务区m中各个机器人之间采用同步通信机制,仓储机器人i∈Rm接收到仓储机器人k∈Rm的共享信息后,进行冲突消解;
在冲突解决阶段,机器人之间完成一次交互后将更新时间戳信息,时间戳si的更新公式如下:
其中,gik=1表示机器人i和k之间存在通信链接,否则gik=0;每个节点都有一个自连接的边,即gii=1;τr为消息接收时间;具体的冲突解决流程如下:
(1)循环遍历任务区m中的所有冲突任务Tm,依次取出冲突任务j∈Tm;如果numj=1,冲突任务为单任务类型,转为步骤(2);如果numj>1,冲突任务为双任务类型,转为步骤(3);
(2)单任务情况:机器人i根据接收到的分配信息,直接采取以下三种可能的操作之一,然后转入步骤(6):
更新:将Ykj的值赋给Yij,将Zkj的值赋给Zij;
重置:将Yij重置为-1,Zij重置为-1;
离开:Yij和Zij不做任何改变;
(3)双任务情况:考虑到另一机器人q∈Rm,具体冲突消解分为两部分:第一部分为机器人i更新自身存储信息为最新,转为步骤(4);第二部分为机器人i调整自身信息,转为步骤(5);
(4)机器人i将自身投标信息与机器人k进行比较,skq>siq表明机器人k分配信息更新;机器人i保存最新的数据,确认自身存储信息是当前最新的;
(5)设定发送者k认为机器人q执行冲突任务j,而接受者i认为机器人q不执行此任务,且满足i≠q和skq>siq两个条件;若numj>Sumj,则进行更新Yij=Ykj,Zij=Zkj;若numj=Sumj,且Yqj大于当前任务j的最小投标值则Yrj=-1,Zrj=-1,Yij=Ykj,Zij=Zkj;
(6)机器人i更新时间戳信息si,返回步骤(1);
(7)当任务区m中的冲突任务集合Tm遍历完毕后,跳转回步骤(4);
其中机器人的任务包构建、机器人之间冲突解决这两个步骤反复迭代,直到各个任务区内部收敛到一个无冲突的任务分配结果为止,这样实现了基于多区域的分层任务分配。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111352698.XA CN114089755B (zh) | 2021-11-16 | 2021-11-16 | 一种基于一致性包算法的多机器人任务分配方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111352698.XA CN114089755B (zh) | 2021-11-16 | 2021-11-16 | 一种基于一致性包算法的多机器人任务分配方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114089755A true CN114089755A (zh) | 2022-02-25 |
CN114089755B CN114089755B (zh) | 2024-02-02 |
Family
ID=80300809
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111352698.XA Active CN114089755B (zh) | 2021-11-16 | 2021-11-16 | 一种基于一致性包算法的多机器人任务分配方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114089755B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115660386A (zh) * | 2022-12-13 | 2023-01-31 | 北京云迹科技股份有限公司 | 机器人调度奖励方法、装置、电子设备及存储介质 |
CN117873137A (zh) * | 2024-03-12 | 2024-04-12 | 湘潭大学 | 基于动态邻近阈值通信的多无人机时间窗约束任务分配方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102033536A (zh) * | 2010-12-22 | 2011-04-27 | 大连理工大学 | 一种多机器人***的调度组织协作***及方法 |
CN105069530A (zh) * | 2015-08-13 | 2015-11-18 | 肇庆学院 | 一种基于多目标优化的多机器人任务分配方法 |
CN107895225A (zh) * | 2017-11-01 | 2018-04-10 | 北京邮电大学 | 一种多Agent无冲突的合作型任务分配方法 |
CN109886574A (zh) * | 2019-02-20 | 2019-06-14 | 哈尔滨工程大学 | 一种基于改进阈值法的多机器人任务分配方法 |
CN110070235A (zh) * | 2019-05-01 | 2019-07-30 | 湖南大学 | 一种多移动机器人的柔性调度方法 |
EP3685968A1 (en) * | 2019-01-22 | 2020-07-29 | Bayerische Motoren Werke Aktiengesellschaft | Robot motion planning in manufacturing |
US20210220994A1 (en) * | 2020-01-22 | 2021-07-22 | Realtime Robotics, Inc. | Configuration of robots in multi-robot operational environment |
-
2021
- 2021-11-16 CN CN202111352698.XA patent/CN114089755B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102033536A (zh) * | 2010-12-22 | 2011-04-27 | 大连理工大学 | 一种多机器人***的调度组织协作***及方法 |
CN105069530A (zh) * | 2015-08-13 | 2015-11-18 | 肇庆学院 | 一种基于多目标优化的多机器人任务分配方法 |
CN107895225A (zh) * | 2017-11-01 | 2018-04-10 | 北京邮电大学 | 一种多Agent无冲突的合作型任务分配方法 |
EP3685968A1 (en) * | 2019-01-22 | 2020-07-29 | Bayerische Motoren Werke Aktiengesellschaft | Robot motion planning in manufacturing |
CN109886574A (zh) * | 2019-02-20 | 2019-06-14 | 哈尔滨工程大学 | 一种基于改进阈值法的多机器人任务分配方法 |
CN110070235A (zh) * | 2019-05-01 | 2019-07-30 | 湖南大学 | 一种多移动机器人的柔性调度方法 |
US20210220994A1 (en) * | 2020-01-22 | 2021-07-22 | Realtime Robotics, Inc. | Configuration of robots in multi-robot operational environment |
Non-Patent Citations (1)
Title |
---|
许可 等: "基于分布式拍卖算法的多无人机分组任务分配", 信息与控制, vol. 47, no. 03, pages 341 - 346 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115660386A (zh) * | 2022-12-13 | 2023-01-31 | 北京云迹科技股份有限公司 | 机器人调度奖励方法、装置、电子设备及存储介质 |
CN117873137A (zh) * | 2024-03-12 | 2024-04-12 | 湘潭大学 | 基于动态邻近阈值通信的多无人机时间窗约束任务分配方法 |
CN117873137B (zh) * | 2024-03-12 | 2024-05-17 | 湘潭大学 | 基于动态邻近阈值通信的多无人机时间窗约束任务分配方法 |
Also Published As
Publication number | Publication date |
---|---|
CN114089755B (zh) | 2024-02-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109491790B (zh) | 基于容器的工业物联网边缘计算资源分配方法及*** | |
CN114089755A (zh) | 一种基于一致性包算法的多机器人任务分配方法 | |
Barbati et al. | Applications of agent-based models for optimization problems: A literature review | |
US5295065A (en) | Resource-lot association coordinator | |
Saad et al. | Performance evaluation of contract net-based heterarchical scheduling for flexible manufacturing systems | |
CN109409773B (zh) | 一种基于合同网机制的对地观测资源动态规划方法 | |
CN110264062A (zh) | 分布式多agv动态任务分配及其路径规划方法与*** | |
CN105974891B (zh) | 一种基于动态看板的模具生产过程自适应控制方法 | |
CN113811915A (zh) | 用于在线共享出行平台的统一订单派发和车队管理 | |
CN104268722A (zh) | 基于多目标进化算法的动态柔性作业车间调度方法 | |
CN106155791A (zh) | 一种分布式环境下的工作流任务调度方法 | |
CN106774240A (zh) | 一种面向服务的工业生产控制与监测方法及*** | |
CN110070305A (zh) | 一种资源转移视角下的双目标鲁棒资源分配方法 | |
Yang et al. | A distributed task reassignment method in dynamic environment for multi-UAV system | |
CN104077634B (zh) | 基于多目标优化的主动‑反应式动态项目调度方法 | |
CN114154819A (zh) | 一种基于任务相似度的多agv分布式调度方法与*** | |
CN112633654A (zh) | 基于改进聚类扩展一致性束算法的多无人机任务分配方法 | |
CN113723867B (zh) | 资源分配的方法、装置、设备、存储介质及程序产品 | |
CN106371924A (zh) | 一种最小化MapReduce集群能耗的任务调度方法 | |
Yousefikhoshbakht et al. | A mixed integer programming formulation for the heterogeneous fixed fleet open vehicle routing problem | |
CN111798097A (zh) | 一种基于市场机制的自主移动机器人任务分配处理方法 | |
Aslan | Mathematical model and a variable neighborhood search algorithm for mixed-model robotic two-sided assembly line balancing problems with sequence-dependent setup times | |
Zhou et al. | Improved multi-objective cuckoo search algorithm with novel search strategies for point-to-point part feeding scheduling problems of automotive assembly lines | |
CN107423810B (zh) | 基于骆驼群算法的作业车间调度排产方法及*** | |
CN110111006A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |