一种无人机集群多任务动态分配方法

文档序号:31838035发布日期:2022-10-18 21:51阅读:70来源:国知局
一种无人机集群多任务动态分配方法

1.本发明属于无人机技术领域,尤其涉及一种无人机集群多任务动态分配方法。


背景技术:

2.现如今,无人机技术日趋成熟,无人机的相关研究在理论探索和实际应用等方面都有了很大突破。无人机集群进行协同工作,能够代替人完成一些超出人类所能承受极限的任务。而任务分配问题是在不冲突和不违反约束的情况下将一组任务分配给无人机,是多无人机系统成功作战和高效协作的重要组成部分。
3.现有的大多数研究解决了多无人机系统任务分配问题的静态版本,其中所有任务在开始时都是已知的不会改变的环境。但实际上,环境是不断变化的动态事件。即在动态环境下,原有的任务分配方案在执行任务的过程中可能会被很多突发事件打断,这些事件可能导致某些任务无法成功完成。因此,有必要在动态环境下考虑任务的重新分配问题。
4.但是动态环境下的任务分配问题有很多难点需要解决。第一,所提方法应该有能力应对各种的动态事件。然而,现有的大多数算法只能处理少数几种动态事件,通常采用重新运行算法的方法,忽略了不同动态事件之间的差异。第二,由于动态战场变化迅速,算法需要尽快响应不同的动态事件,这对算法的效率提出了更高的挑战。虽然重新运行可以得到最优或次优解,但需要更多的计算时间,不适合动态环境。此外,重新运行总是忽略最初计划的调度,导致计算资源的浪费。


技术实现要素:

5.为了响应无人机在任务执行的过程中出现的动态事件,并提高对于动态事件的解决效率,本发明提出一种无人机集群多任务动态分配方法,
6.s1、无人机根据动态出现的新任务确定该任务的响应半径;
7.s2、在该任务响应范围内的无人机组成该任务的无人机子团队,无人机子团队竞争该任务;
8.s3、当前无人机将所有需要重分配的任务构成新的任务集合,新的任务集为动态出现的新任务以及无人机子团队中各个无人机未完成的任务;
9.s4、无人机之间分享任务的信息并对本地的任务列表进行更新,并将更新的任务列表分享给其他无人机,当无人机的任务列表不再因为共享信息更新时,完成任务分配;对本地的任务列表进行更新的过程包括以下步骤:
10.401、当前无人机计算任务集合中当前候选任务在不同插入位置的收益;
11.402、选择边际收益最大时的位置作为当前候选任务的插入点;
12.403、判断在步骤402插入当前候选任务的边际收益是否大于本地赢家列表中该任务赢家的收益;若不大于则返回401,计算下一候选任务;
13.404、若大于则将该任务加入当前无人机的任务时序包,判断当前无人机的任务时序包是否超过上限,若超过则与其他无人机进行任务信息共享,否则返回步骤401计算下一
个候选任务;
14.405、当当前无人机的任务时序包中任务数量达到上限时,当前无人机与其他无人机共享任务分配信息,并更新本地的任务信息,若存在无人机的本地任务信息与共享的信息不一致,则更新捆绑包,并执行401;若一致则输出任务分配结果。
15.进一步的,任务的响应半径包括:
[0016][0017]
其中,ru表示无人机的响应半径;x
max
表示生成地图空间中的最大距离;λ是一个换算参数;r
max
表示所有任务中最大价值,ru表示新增任务的价值;l
max
表示所有任务中最晚开始时间,lu表示新增任务的最晚开始时间,t
ψ
表示当前时刻;ω1为平衡静态价值对响应半径影响的权重,ω2为平衡截止时间对响应半径影响的权重。
[0018]
进一步的,无人机计算一个任务插入无人机的任务时序包中收益最大的位置的过程包括:
[0019][0020]
约束条件:
[0021][0022][0023][0024]
其中,nv为无人机的数量,所有无人机形成无人机集合nm为任务的数量,所有任务形成任务集合c
jk
表示无人机uj执行任务mk时的收益;x
jk
是一个二进制变量,x
jk
=1表示无人机uj执行任务mk,否则表示无人机uj未执行任务mk;l
t
表示无人机所能执行任务的最大容量。
[0025]
进一步的,无人机uj执行任务mk时的收益c
jk
表示为:
[0026][0027]
约束条件:
[0028]
其中,表示将第k个任务mk插入到任务列表pj中的第n个位置上形成的任务列表,表示无人机执行任务列表所得奖励;表示为无人机执行任务列表pj所得奖励;c
jk
[bi]表示执行任务列表bi的收益;
[0029]
表示执行在任务列表bi的末尾加上一个新任务b后的新任务列表的收
益。
[0030]
进一步的,将第k个任务mk插入到任务列表pj中的第n个位置上后,无人机执行任务列表pj所得奖励表示为:
[0031][0032]
其中,r0为任务mk的基本价值,r为任务mk的静态价值,λj为折扣系数,表示执行任务mk的时间,etk表示任务mk的最早开始时间,表示在任务列表pj第n个位置插入任务mk时的边际成本。
[0033]
进一步的,在任务列表pj第n个位置插入任务mk时的边际成本表示为:
[0034][0035]
其中,表示执行在任务列表pi中第n个位置插入任务mk后的任务列表中所有任务所需的航程;d(pi)表示执行任务列表pi中所有任务所需的航程;fj表示油耗。
[0036]
进一步的,无人机本地的任务信息包括任务捆绑包、任务时序包、赢家列表、赢家收益集合、时间戳以及执行时间集合,其中:
[0037]
任务捆绑包为当前无人机竞争到的任务集合,该包中的任务顺序按照添加任务的先后顺序进行排列,该捆绑包的大小为无人机最多能执行的任务数量;
[0038]
任务时序包为无人机执行任务的集合,该包中顺序按照任务执行的优先顺序进行排列;
[0039]
赢家列表为每项任务中收益最高的无人机的列表,该列表中元素为0,则表示暂未有无人机竞拍到该任务;
[0040]
赢家收益集合为每项任务的最高收益,该列表中元素为-1则表示当前没有无人机竞拍到该任务;
[0041]
时间戳为两个无人机从彼此接收信息的时刻;
[0042]
执行时间集合为无人机根据任务时序集到达任务区执行任务的执行时间。
[0043]
进一步的,无人机的赢家列表的更新,即当无人机uj得到任务mk时,任务mk将被插入到无人机uj的路径中当前增加边际收益最多的任务位置,如果该任务位置的收益大于该任务赢家的收益,则无人机uj将该任务添加到自己的任务捆绑包,更新捆绑包并且将任务mk的信息共享给其他无人机。
[0044]
进一步的,若无人机ua收到无人机ub的共享的关于任务mc的信息时,无人机ua执行以下信息的更新:
[0045]
当y
ac
<y
bc
时,无人机ua对本地信息进行更新,更新时把y
bc
赋值给y
ac
,把z
bc
赋值给z
ac

[0046]
当y
ac
>y
bc
时,无人机ua不对本地信息进行更新,y
ac
、z
ac
保持不变;
[0047]
当y
ac
=y
bc
时或者当任务中的时间戳冲突不一致时,将y
ac
置为-1,z
ac
置为0;
[0048]
其中,y
bc
表示无人机ub的赢家集合中任务mc的最大收益值;y
ac
表示无人机ua的赢家集合中任务mc的最大收益值;z
bc
表示无人机ub的赢家集合中执行任务mc收益最高的无人机;z
ac
表示无人机ua的赢家集合中执行任务mc收益最高的无人机。
[0049]
本发明使无人机能在分布式的架构之下,对突发的动态环境进行快速响应并进行任务的重新分配。通过提出无人机的响应半径,从而来选取进行任务分配的无人机子团队,与对任务进行筛选,选择部分的任务参与重新分配,都是极大的增加了算法的运行效率,并能够更好的适合需要快速响应的动态环境。本发明的任务分配方法以整体的收益最高和完成时间最短,实现了无人机集群的动态任务分配,面对突发的动态情况,能够适应复杂多变的任务场景,增强了无人机集群协同执行任务的时效性,有效的解决了任务执行过程中出现突发情况的问题。此外,本算法也没有忽略最初计划的调度,从而减少了计算资源的浪费。
附图说明
[0050]
图1为本发明采用的流程示意图;
[0051]
图2为本发明采用的方法的初始分配图;
[0052]
图3为本发明采用的方法的任意时刻任务分配图;
[0053]
图4为本发明采用方法的动态子团队示意图;
[0054]
图5为本发明采用方法的任务再分配图。
具体实施方式
[0055]
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0056]
本发明提出一种无人机集群多任务动态分配方法,如图1,主要包括以下步骤:
[0057]
s1、无人机根据动态出现的新任务确定该任务的响应半径;
[0058]
s2、在该任务响应范围内的无人组成该任务的无人机子团队,无人机子团队竞争该任务;
[0059]
s3、当前无人机将所有需要重分配的任务构成新的任务集合,新的任务集为动态出现的新任务以及无人机子团队中各个无人机未完成的任务;
[0060]
s4、无人机之间分享任务的信息并对本地的任务列表进行更新,并将更新的任务列表分享给其他无人机,当无人机的任务列表不再因为共享信息更新时,完成任务分配;对本地的任务列表进行更新的过程包括以下步骤:
[0061]
401、当前无人机计算任务集合中当前候选任务在不同插入位置的收益;
[0062]
402、选择边际收益最大时的位置作为当前候选任务的插入点;
[0063]
403、判断在步骤402插入当前候选任务的边际收益是否大于本地赢家列表中该任务赢家的收益;若不大于则返回401,计算下一候选任务;
[0064]
404、若大于则将该任务加入当前无人机的任务时序包,判断当前无人机的任务时序包是否超过上限,若超过则与其他无人机进行任务信息共享,否则返回步骤401计算下一个候选任务;
[0065]
405、当当前无人机的任务时序包中任务数量达到上限时,当前无人机与其他无人机共享任务分配信息,并更新本地的任务信息,若存在无人机的本地任务信息与共享的信
息不一致,则更新捆绑包,并执行401;若一致则输出任务分配结果。
[0066]
在本实施中,进行无人机集群的动态任务分配时,主要进行以下操作:
[0067]
综合考虑资源的消耗、时间敏感性、任务完成效果、无人机与任务的异质性等多重约束,建立了任务分配的优化模型;
[0068]
考虑多重约束下的任务分配模型,以整体任务完成收益高,动态事件响应速度快为优化目标的利益函数的设计;
[0069]
利用一致性的共识捆绑算法(cbba),用其求解任务的初始分配;
[0070]
本实施例还对cbba进行优化,使其能在分布式的架构之下,对突发的动态环境进行快速响应并进行任务的重新分配。
[0071]
在本实施例中首先随机生成nv=5个异构无人机与nm=15个异构任务(uj表示第j个无人机、mk表示第k个任务),无人机的信息包括其无人机编号(id)、无人机类型(type)、地理位置坐标(x,y,z)、飞行速度(v)、油耗率(f);目标任务的信息包括其任务编号(id)、任务类型(type)、地理位置坐标(x,y,z)、任务的价值(r)、任务时间窗约束(etk≤tk≤ltk)。其中无人机的飞行速度v设置为1m/s,油耗率为3,初始任务的价值都设置为100,任务区的大小设置为100m
×
100m,随机生成的无人机信息和任务的信息如表1、表2所示。
[0072]
表1无人机信息表
[0073]
无人机编号位置-x坐标(m)位置-y坐标(m)024.714982.5224173.614988.3472235.699444.4896365.241612.8390433.527898.5542
[0074]
表2任务信息表
[0075]
任务编号位置-x坐标(m)位置-y坐标(m)时间窗084.780592.3331366.3379-381.3379171.832737.6225129.4821-144.4821218.452626.5405211.8747-226.8747316.828930.651581.6287-96.6287410.825286.9999119.0905-134.0905546.316748.110221.4519-36.4519673.37125.5017153.8478-168.8478733.406578.1626173.2852-188.2852861.064264.2355409.8607-424.8607991.551961.34915.4063-20.40631025.430916.9998431.6825-446.68251128.253946.3951157.2171-172.21711281.464639.906480.4074-95.40741373.318135.6978424.7443-439.74431452.585970.4896383.2183-398.2183
[0076]
将nv个异构无人机记作集合将nm个异构任务记作集合uj表示第j个无人机、mk表示第k个任务,建立任务分配模型,获取无人机uj执行任务mk时的最大收益c
jk
,该过程包括:
[0077][0078]
约束条件:
[0079][0080][0081][0082]
其中,pj是任务的执行列表;x
jk
是一个二进制变量,x
jk
=1表示无人机执行该任务;l
t
表示无人机所能执行任务的最大容量。c
jk
表示为无人机执行任务时所得到的收益,其计算公式定义如下:
[0083][0084]
其中,表示将第k个任务插入到任务列表pj中的第n个位置上去,而表示为无人机执行任务列表pj所能得到的总得分奖励,所以c
jk
就可以定义为将任务k插入到执行列表中,能够获得最大收益提升的某个位置上的收益。而在原始cbba中奖励函数s定义为:
[0085][0086]
其中,r是任务的静态价值,λj是一个自定义的折扣系数,表示执行任务的时间,fj表示油耗,d
jk
表示无人机初始位置和任务目标的欧式距离。但是,当任务mk被插入到pj路径中时,该路径中后续位置的任务的边际收益值会受到相应的影响,原始的cbba中并没有考虑到这一点。而对于边际成本,原始的cbba中也只是计算了无人机初始位置和任务目标的静态距离成本,即f
jdjk
,然而,边际成本在本质上与无人机任务路径中的实际位置有关。所以,为了提高边际成本函数的精度,本方法中新添加了对于无人机的航程限制,即:
[0087][0088]
其表示为无人机在新添加任务之后,其任务路径的航程距离需小于每个无人机最大航程。从而,我们也可以将无人机初始位置和任务目标的静态距离成本改变成无人机完成mk任务所需的额外航程代价来计算的边际成本。即:
[0089][0090]
其中,表示在任务列表pj第n个位置插入任务mk时的边际成本。
[0091]
所以考虑到边际收益和边际成本,本方法新定义的边际奖励函数为:
[0092][0093]
其中,r0是为了避免总得分奖励变为负数的基本价值,r是任务的价值,λj是一个自定义的折扣系数,表示执行任务的时间,etk表示任务的最早开始时间,表示边际成本。
[0094]
在模型构建完成后,本实施例进一步的对无人机进行初始任务分配,其主要包含两个部分,分别是捆绑包构建阶段与冲突解决阶段。
[0095]
每个无人机最多能够执行l
t
个任务,每个无人机也拥有以下的数据信息结构:
[0096]
(1)任务捆绑包(bundle):其中b
jn
是表示无人机竞拍到的第n个目标,|bj|表示任务捆绑包中任务的数量,任务捆绑包中的任务按照添加进包中的顺序排列。
[0097]
(2)任务时序包(path):pj是指第j个无人机最优的执行顺序,p
jn
表示第j个无人机第n个执行的任务,|pj|表示第j个无人机的任务时序包中任务的数量,即第j个无人机无人机按照pj中的任务顺序进行任务的执行。
[0098]
(3)赢家集合(winners):z
jk
是第j个无人机记录的第k项任务的收益最高的无人机序号,nm为进行重分配的任务数量,若当前没有无人机竞拍到任务,则z
jk
=0。
[0099]
(4)赢家收益集合(winner’s bid):表示无人机任务竞拍时的最大收益的集合,y
jk
表示第j个无人机记录的第k项任务的最大收益,若当前没有无人机竞拍到任务,则y
jk
=-1。
[0100]
(5)时间戳(time stamp):表示两个无人机从对方身上接收信息的时刻的集合,s
ji
表示第j个无人机从第i个无人机处接收信息的时刻,nv表示无人机的数量,该参数用于比较无人机本身的信息状态,若两个无人机进行共享某个任务的信息时,时间戳不一致时,无人机需要将对应任务在赢家集合、赢家收益集合中的值进行重置,即将该任务赢家对应的对象的值置为0,、赢家的收益的值置为-1。
[0101]
执行时间集合(time):t
jn
表示第j个无人机开始执行任务时序集pj中第n个任务的时间,即无人机根据任务时序集pj到达任务区执行任务的执行时间。
[0102]
捆绑包构造:每个无人机单元使用顺序贪婪的策略来投标多个任务,并添加自己的任务包中直到达到数量限制。当uav uj得到任务mk时,任务mk将被插入到自己的路径中当前增加边际收益最多的任务位置,如果任务的收益大于赢家在自己的信息中的出价,任务则将被添加到bundle包中,表示当uav uj得到任务mk时,将其插入到第n个位置时的利润c
jk
;为了使这些单位在通信中收敛,边际收益需要逐渐减少,即:
[0103][0104][0105]
冲突解决:在每一轮捆绑包更新之后,无人机共享信息以解决任务认知差异,通过
时间戳度量信息更新时间,统一赢家列表和出价列表。
[0106]
在每一轮捆绑包更新之后,无人机共享信息以解决任务认知差异,通过时间戳度量信息更新时间,统一赢家列表和出价列表。例如,在这个无人机集群中,当uav ua收到uav ub的共享任务信息mc时,信息的更新要求如下:
[0107]
当y
ac
<y
bc
时,无人机ua对本地信息进行更新,更新时把y
bc
赋值给y
ac
,把z
bc
赋值给z
ac

[0108]
当y
ac
>y
bc
时,无人机ua不对本地信息进行更新,y
ac
、z
ac
保持不变;
[0109]
当y
ac
=y
bc
时或者当任务中的时间戳冲突不一致时,将y
ac
置为-1,z
ac
置为0;
[0110]
其中,y
bc
表示无人机ub的赢家集合中任务mc的最大收益值;y
ac
表示无人机ua的赢家集合中任务mc的最大收益值;z
bc
表示无人机ub的赢家集合中执行任务mc收益最高的无人机;z
ac
表示无人机ua的赢家集合中执行任务mc收益最高的无人机。
[0111]
在算法的运行过程中,包中的一些任务在冲突解决后会返回到任务池中,经过多次通信后,每个无人机的胜利者列表zj不随中标方的出价而变化,即任务分配结果达到收敛,运行结果如图2所示。
[0112]
接着,本实施例进行模型动态信息的构建以及动态事件的生成,首先在发生动态事件时,需要提前获得该时刻的无人机与任务信息,其中,无人机信息主要包括该时刻无人机在发生动态事件时的位置信息,任务信息包括当前时刻无人机还未完成的任务列表。其中,无人机的动态位置信息的获得方式如下:
[0113][0114][0115][0116]
其中,t
ψ
表示当前时刻;t
p
表示在t
ψ
之前刚执行完成的上一个任务的开始时间;tn表示在t
ψ
之后将要执行的下一个任务的开始时间;t
p-end
表示上一个任务的结束时间;t
p-dur
表示t
ψ
时刻之前上一个任务的持续时间;χ
x
(t)、χy(t)、χz(t)分别为t时刻无人机在x轴、y轴、z轴的位置。
[0117]
在本实施例中,将动态任务出现的时间随机设置为第250s,并将该新任务的任务编号设置为15,所以在250时刻时的无人机与任务信息如表3、表4所示,任务分配情况如图3所示。
[0118]
表3无人机信息表
[0119]
[0120][0121]
表4任务信息表
[0122]
任务编号位置-x坐标(m)位置-y坐标(m)时间窗084.780592.3331366.3379-381.3379861.064264.2355409.8607-424.86071025.430916.9998431.6825-446.68251373.318135.6978424.7443-439.74431452.585970.4896383.2183-398.21831538.238788.4863401.5486

416.5486
[0123]
接本实施例利用优化的部分重分配算法来处理新任务出现的动态事件。在动态事件发生时,若是出现了一个新的任务,对于该动态事件的响应,如果还是采用原始的cbba算法,将会使当前的所有无人机进行任务的再分配,这样就可能会导致该时刻距离新出现的任务目标很远的无人机也参与到重分配过程中去,分配的结果也还是距离较远的无人机执行初始的任务分配方案,新的任务也不会分配给这些无人机,所以,这样就造成了更多的资源浪费,使不必要的无人机参与到了新的任务分配之中。
[0124]
为了针对以上的问题,本实施例提出了一个无人机的响应半径的概念,即每个无人机都拥有自身的响应半径ru,当新任务出现时,每个无人机都会检测该任务是否是在自己的响应半径之内,若包含新任务,则该无人机将会参与新的任务重分配,无人机若在新任务的响应范围内;这些响应半径中有新任务的无人机将会组成一个新的无人机子团队ωu来进行最终的任务再分配,响应半径ru是会根据新出现的任务的价值与时间窗约束来进行相应的变化,当任务的价值越大时,多无人机系统希望允许通过选择更大的子团队来进行协调,所以将会采用更大的响应半径;当任务的开始时间与当前时间越近时,则需要更快的进行任务的分配,所以选择较小的子团队即可,则就采用更小的响应半径。响应半径的计算公式如下:
[0125][0126]
通过计算得出,本实施例的ru=41.2631,无人机的子团队信息如表5所示,此时的分配情况如图4所示。
[0127]
表5无人机子团队信息表
[0128]
无人机编号位置-x坐标(m)位置-y坐标(m)039.478675.7334433.527898.5542
[0129]
在原始的cbba算法之中,会将任务列表中的所有任务进行分配,所以当出现动态
事件时,若还是使用原始的cbba算法,会将每个无人机初始分配后的执行列表中的任务再进行一次冗余的分配,这也可能会导致在分配之后,无人机也是执行初始分配的任务列表,这样也就会影响分配效率并造成了一定的资源浪费。针对这个问题,当有新任务出现时,无人机子团队中的每个无人机将从自己的包中放弃与出现的新任务数量相同的任务,并保持剩余任务的分配关系的稳定。而这些放弃的任务,也将是本身任务列表中价值得分最低的那些,最后这些放弃的任务与新出现的任务一起进行任务的重分配。又因为在捆绑包bj建立的时候无人机是按照顺序贪婪的策略将任务进行添加,所以在捆绑包bj中的任务的收益都是依次递减的。进而,当我们需要在新任务出现时放弃那些相同数目得分较低的任务的时候,就只需要在捆绑包bj的最后删除相应数量的任务,并将这些任务参与到重置中即可。
[0130]
通过以上的方法,使其能够在动态事件发生的时候对其进行快速的响应,最后得到如图5所示的分配结果,其中红色圆点代表无人机子团队中的成员,蓝色三角形代表其他的按原任务分配计划进行的无人机。
[0131]
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1