一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

面向多任务点的无人艇协同路径规划方法与流程

2022-02-22 18:45:10 来源:中国专利 TAG:

面向多任务点的无人艇协同路径规划方法
1.技术邻域
2.本发明涉及无人航行器控制技术邻域,尤其涉及一种面向多任务点的无人艇协同路径规划方法。


背景技术:

3.海洋环境复杂多变、危险重重,很多任务不适合有人船只执行,因此无人艇(unmanned surface vehicle,usv)的研究和开发在国家海洋装备邻域中的地位便无可替代。无人水面艇作为海上作业的重要工具,常被用来执行如多任务点水质采样等任务。无人艇自身携带动力能源有限,且海洋中有大量未知的环境信息,因此研究一种高效可靠并能够实时避障的路径规划策略是至关重要的。相对单无人艇系统,多无人艇协同系统能够完成更复杂多样的任务,但相应的任务分配、路径规划等技术也会更加复杂。
4.为解决多无人艇协同路径规划问题,需要将单无人艇路径规划与多无人艇任务分配相融合。经典路径规划的目标是在起始点和目标点之间寻找最优路径,同时需要避开障碍物,相关方法包括但不限于模糊控制,人工势场法或其改进算法等。人工势场法模型易懂、算法简洁、路径平滑,是无人艇最常用的路径规划方法之一,但传统的人工势场法常陷入局部最优的问题。除了上述传统方法外,越来越多的智能算法也被用于单usv的路径规划中。例如,深度确定性策略梯度(deep deterministic policy gradient, ddpg)算法基于船舶数据采集的电子海图平台,结合colregs和船员经验给予一定的奖惩,设计和训练模型。该方法还可结合人工势场法使路径更加平滑,但现有研究未考虑实际洋流的影响。与上述方法不同,在仿生神经网络模型中,神经元的工作过程能够表达动态变化的环境,从而解决路径规划问题,例如glasius生物启发神经网络(glasius bio-inspired neural network, gbnn)已经应用于路径规划。我们将使用gbnn框架,在考虑洋流的情况下规划单艘usv的路径。
5.任务分配意味着将一系列任务点分配给usv,并提前确定访问优先级,在此基础上,单个usv只需沿着规划路径依次访问分配的点即可完成任务。因此,任务分配为多usv协同路径规划奠定了基础,相关学者已展开了大量研究。例如,目标捆绑遗传算法将每个目标的所有任务固定为一个目标捆绑,并固定每个目标的任务执行顺序,通过特定的杂交方式和突变算子生成无死锁后代,再结合时间协调方法,确保任务执行时间满足任务优先级的约束。基于模糊神经sarsa学习网络的效用函数模型融合了模糊推理、神经网络与 sarsa学习算法,利用模糊推理表达环境特征,利用神经网络计算并存储信息,并且吸收了sarsa实时更新策略的优点,非常适用于动态环境下的任务分配。匈牙利算法作为一种传统的解决目标分配的方法,因其计算量小而被广泛应用于各个邻域,将其应用于多任务路径规划可减小计算压力,提高规划速度,但传统的匈牙利算法存在缺陷,会导致路径分配不公的问题。


技术实现要素:

6.本发明的目的在于提供一种单无人艇多任务路径规划方法,该方法贴合实际海洋环境,计算精确;同时提出多无人艇多任务路径规划方法,可实现多任务在多无人艇间的高效分配。
7.为了实现上述目的,本发明提供如下技术方案:
8.一种面向多任务点的无人艇协同路径规划方法,用于将任务点高效分配给无人艇,并规划无人艇在任务点间的安全避障路径;所述方法包括以下步骤:
9.s1:对无人艇任务区域内的海图进行栅格化处理,每个栅格定义为一个神经元,代表一个无人艇的候选运行区域;定义各神经元的邻域神经元,构造神经网络;更新计算各神经元在各时刻的输出活性值;
10.s2:结合洋流速度对无人艇运动的影响,进一步更新各神经元的输出活性值;根据无人艇当前位置所处的神经元,选择其输出活性值最大的邻域神经元为下一时刻运行位置;
11.s3:无人艇运行至下一时刻位置后,将所有神经元活性值清零并更新神经网络,重复步骤s1和s2,执行搜索任务,直至无人艇到达任务点。
12.本发明一些实施例中,步骤s2中,进行下一步搜索位置规划时,排除已经搜索过的邻域神经元。
13.本发明一些实施例中,无人艇运行至第一任务点后,将第一任务点视为运行初始位置,将下一任务点视为运行目标位置,重复步骤s1至s3,直至运行至下一任务点。
14.本发明一些实施例中,更新计算神经元在各时刻的输出活性值的方法包括:
[0015][0016]
xi(t 1)=f(yi)
[0017]
其中,xi(t 1)代表当前神经元i在t 1时刻的输出活性值,xj(t)表示邻域神经元j在t时刻的输出活性值,yi是一个中间变量,记录了神经元i的初步输出, n指的是当前神经元i的邻域神经元j的总个数;
[0018]wij
是相邻神经元之间的连接权重:
[0019][0020]
其中,r代表神经元i的邻域半径,|i-j|表示神经元i和神经元j之间的欧几里得距离;
[0021]bi
是神经元i的输入偏置,记录了神经元i处的地形信息:
[0022][0023]
其中g是一个远大于1的数,其中,障碍物栅格指被障碍物或无人艇所占据的栅格,目标栅格指被任务点占据的栅格,空闲栅格指未被障碍物或任务点等占据的栅格;
[0024]
f(yi)函数是一个转换函数,目的是控制每一个神经元的输出在0 到1之间:
[0025][0026]
β为设定系数。
[0027]
本发明一些实施例中,结合洋流速度,更新神经元输出活性的方法包括:洋流速度vc、无人艇相对洋流的运行速度vr,及无人艇的合成速度va之间,存在如下恒等式:
[0028]
||va||
22
||vc||
22-2||va||2||vc||2cos《va,vc》=||vr||
22
[0029]
所述合成速度,为无人艇在洋流影响下,沿当前神经元至其邻域神经元之间的方向运行的速度;
[0030]
对上述恒等式对va求解,采用求得的最大值,计算无人艇由当前神经元i 至邻域神经元j之间的运行时间t
ij

[0031][0032]
更新计算神经元权重w
ij

[0033][0034]
基于更新后的神经元权重,重新计算各神经元活性值;寻找邻域内活性值最大的神经元j*作为下一步位置:
[0035][0036]
本发明一些实施例中,针对平衡任务分配问题,每个无人艇对应一个任务点,进一步包括以下步骤:
[0037]
确定平衡任务分配问题的数学表达式:
[0038][0039][0040][0041]
其中c=[c
ik
]∈rn×n是候选解矩阵,是最优解矩阵。c
ik
=1代表第 i艘无人艇被分配执行第k项任务,c
ik
=0代表第i艘无人艇没有被分配执行第k 项任务,n为无人艇的数量以及任务的数量;j
ik
为第i艘无人艇完成第k项任务的代价:
[0042][0043]
xi(t 1)代表无人艇所在位置的神经元的活性,用来表示每个任务点的搜索难易度,活性越大,搜索越容易,活性越小,搜索越复杂;
[0044]
利用代价构造代价矩阵:
[0045]
j=[j
ik
]∈rn×n;
[0046]
利用匈牙利算法对代价矩阵求解,逐一将每个任务分配给每个无人艇。
[0047]
本发明一些实施例中,若任务点数量大于无人艇数量,代价矩阵的构造方法进一步包括:
[0048]
将各任务视为虚拟无人艇,与实际无人艇一起,作为代价矩阵的各行;
[0049]
构建虚拟任务,与实际任务一起,作为代价矩阵的各列,以使代价矩阵为方阵;
[0050]
将各实际无人艇执行虚拟任务的代价值设定为无限大,将各虚拟无人艇执行虚拟任务的代价值设定为0;
[0051]
将各虚拟无人艇执行自身实际任务的代价值设定为无限大;
[0052]
计算代价矩阵中其他元素的代价值,获得代价矩阵。
[0053]
本发明一些实施例中,若任务点数量大于无人艇数量,每个无人艇分得多个任务点,分配结果进一步处理如下:
[0054]
若各任务点之间形成闭合路径,则断开路径,并将其合并到已分配的无人艇任务列表中;在断开路径的步骤中,计算闭合路径各任务点与无人艇已分配任务列表中最后一个任务点之间的代价,选择代价最小的点为断点。
[0055]
与现有技术相比,本发明的优点和积极效果在于:
[0056] (1)提出一种基于gbnn算法的单无人艇路径规划方法,在定义gbnn的神经元连接权重时将考虑洋流影响,以使规划结果更接近于实际场景。
[0057] (2)单无人艇路径规划的基础上,结合匈牙利算法提出一种多无人艇任务分配方法。通过改进匈牙利算法中的代价矩阵,并引入二次分配等策略,使其在解决不平衡任务分配问题时避免了局部最优解。
附图说明
[0058]
图1是gbnn模型二维空间结构说明;
[0059]
图2是gbnn模型hopfield型结构;
[0060]
图3是考虑洋流影响的无人艇各方向速度矢量之间的关系;
[0061]
图4是单无人艇路径规划流程示意图;
[0062]
图5a是任务点自我闭合状态图;
[0063]
图5b是自我闭合的任务点重新分配示意图;
[0064]
图6是多无人艇协同路径规划总流程图;
[0065]
图7是20个任务点时多无人艇协同路径规划仿真结果。
具体实施方式
[0066]
以下,结合附图对本发明的具体实施方式进行进一步的描述。
[0067]
本发明提供一种面向多任务点的无人艇协同路径规划方法,适用于单无人艇多任务以及多无人艇多任务等场景。
[0068]
一种面向多任务点的无人艇协同路径规划方法,用于将任务点高效分配给无人艇,并规划无人艇在任务点间的安全避障路径。
[0069]
方法包括以下步骤:
[0070]
s1:对无人艇任务区域内的海图进行栅格化处理,每个栅格定义为一个神经元,代
表一个无人艇的候选运行区域;定义各神经元的邻域神经元,构造神经网络;更新计算各神经元在各时刻的输出活性值。
[0071]
二维gbnn模型如图1所示,每个栅格代表无人艇的一个候选位置,相当于一个神经元。各神经元与其邻域神经元连接,其邻域为一个半径为r的圆形区域。神经元i以其邻域内其余神经元的活性值作为输入,如图2所示,其与离散的hopfiled神经网络结构大致相同。
[0072]
本发明一些实施例中,更新计算各神经元在各时刻的输出活性值的方法包括:
[0073][0074]
xi(t 1)=f(yi)
ꢀꢀꢀꢀ
(2)
[0075]
其中,xi(t 1)代表当前神经元i在t 1时刻的输出活性值,xj(t)表示邻域神经元j在t时刻的输出活性值,yi是一个中间变量,记录了当前神经元i的初步输出,n指的是当前神经元i的邻域神经元j的总个数;
[0076]wij
是相邻神经元之间的连接权重:
[0077][0078]
其中,r代表神经元i的邻域半径,|i-j|表示神经元i和神经元j之间的欧几里得距离;
[0079]bi
是神经元i的输入偏置,记录了神经元i处的地形信息:
[0080][0081]
其中g是一个远大于1的数,其中,障碍物栅格指被障碍物或无人艇所占据的栅格,目标栅格指被任务点占据的栅格,空闲栅格指未被障碍物或任务点等占据的栅格;
[0082]
f(yi)函数是一个转换函数,目的是控制每一个神经元的输出在0 到1之间:
[0083][0084]
β为设定系数。
[0085]
从上述公式可以看出,神经网络的活性值会不断地更新,当障碍物出现或者消失时,临近栅格的活性值也会随之改变,所以gbnn模型能够很好地处理动态环境。
[0086]
s2:结合洋流速度对无人艇运动的影响,进一步更新各神经元的输出活性值;根据无人艇当前位置所处的神经元,选择其输出活性值最大的邻域神经元为下一时刻运行位置。
[0087]
进一步的,本发明一些实施例中,步骤s2中,进行下一步搜索位置规划时,排除已经搜索过的邻域神经元,避免执行重复搜素任务,提高搜索效率。
[0088]
洋流会对路径规划产生相当大的影响,因此,为了获得准确的计算结果,必须考虑洋流因素。本发明一些实施例中,结合洋流速度,更新神经元输出活性的方法包括:
[0089]
假设洋流速度为vc,无人艇的参考速度(即usv相对于洋流的速度)为vr,定义va为沿路径段定向(即相邻神经元之间的连接线)的合成速度,且va、vc之间的夹角可计算。显然va是无人艇参考速度vr与洋流速度vc的矢量和,如图3所示。
[0090]
洋流速度vc、无人艇相对洋流的运行速度vr,及无人艇的合成速度va之间,存在如下恒等式:
[0091]
||va||
22
||vc||
22-2||va||2||vc||2cos《va,vc》=||vr||
22
ꢀꢀꢀ
(6)
[0092]
所述合成速度,为无人艇在洋流影响下,沿当前神经元至其邻域神经元之间的方向运行的速度;
[0093]
对上述恒等式对va求解,若上式不存在||va||2的正解,意味着无人艇不能沿此路径航行,这样此次航行时间为 ∞。因此,采用求得的最大值,计算无人艇由当前神经元i至邻域神经元j之间的运行时间t
ij

[0094][0095]
更新计算神经元权重w
ij

[0096][0097]
神经网络中的神经元活性值以目标点(即任务点)为中心,逐层递减地向外扩散。
[0098]
基于更新后的神经元权重,重新计算各神经元活性值;寻找邻域内活性值最大的神经元j*作为下一步位置:
[0099][0100]
s3:无人艇运行至下一时刻搜索位置邻域神经元后,将所有神经元活性值清零并更新神经网络,重复步骤s1和s2,执行搜索任务,直至无人艇到达任务点。
[0101]
本发明一些实施例中,无人艇运行至第一任务点后,将第一任务点视为运行初始位置,将下一任务点视为运行目标位置,重复步骤s1至s3,直至运行至下一任务点。以上输出活性值的计算方法适用于本发明整个实施过程。
[0102]
以上步骤s1至s3的执行过程适用于单无人艇多任务点的运行过程。图4给出了应用gbnn算法获得无人艇避障路径的流程图。首先,将工作空间离散化为栅格,每个栅格都对应一个gbnn的神经元或无人艇的候选位置,并更新神经元的活性值。其次,选择邻域内活性值最大的点作为无人艇下一时刻的位置。由于这里可能会陷入死循环,因此需在排除已经过的位置的基础上,择优选择下一步。之后判断是否已到达目标点,若已到达便表示已经得出规划的路径;若未到达,便将活性值全部清零并更新环境信息与神经网络。如此循环多次,直至无人艇到达目标点。
[0103]
考虑到复杂任务中,多无人艇会联合执行多任务,在无人艇实际应用中,无人艇需要一次访问大量任务点才能完成任务。这些任务点应首先被分配给各个无人艇并确定优先级,然后各个无人艇沿着规划出的路径分别到达相应的任务点。因此,将多无人艇任务分配与单无人艇路径规划相结合,可以解决协同路径规划问题。通过将连续任务点视为起点和目标点,利用步骤s1和s2即可解决连续任务点之间的单无人艇路径规划问题,因此本发明
一些实施例中,针对多无人艇多任务分配的问题,进一步包括以下步骤。
[0104]
s4:根据gbnn算法构建代价矩阵,并利用匈牙利算法解决任务点数量与无人艇数量相等时的平衡分配问题。
[0105]
首先,我们考虑由n艘无人艇与n个任务点组成的简单系统。每艘无人艇仅执行一个任务,每个任务也仅由一艘无人艇来执行。
[0106]
确定平衡任务分配问题的数学表达式:
[0107][0108]
其中c=[c
ik
]∈rn×n是候选解矩阵,是最优解矩阵。c
ik
=1代表第 i艘无人艇被分配执行第k项任务,c
ik
=0代表第i艘无人艇没有被分配执行第k 项任务,n为无人艇的数量以及任务的数量;j
ik
为第i艘无人艇完成第k项任务的代价:
[0109][0110]
xi(t 1)代表无人艇所在位置的神经元的活性,以表示每个任务点的搜索难易度,活性越大,搜索越容易,活性越小,搜索越复杂;
[0111]
具体的说,使用gbnn算法,我们可以通过活性值扩散得到地图中每个任务点的活性值。如果我们分别以每个任务点为目标点,那么每个无人艇执行此任务点的难易程度就可由每个无人艇所处位置的活性值反映出来。活性值越大表示该处的无人艇执行此任务越容易,活性值越小则表示越困难。从公式(3)和公式(5)容易看出,活性值是一个取值在0~1之间的数,并且地图越大其数量级越大。
[0112]
利用代价构造代价矩阵:
[0113]
j=[j
ik
]∈rn×n;
[0114]
利用匈牙利算法对代价矩阵求解,逐一将每个任务分配给每个无人艇。
[0115]
s5:对传统匈牙利算法进行改进,改进构造代价矩阵的方法,并基于改造后的代价矩阵求解,避免其在解决不平衡任务分配问题时陷入局部最优解。
[0116]
传统方法中,代价矩阵的构造方法如表1和表2所示。传统的匈牙利算法可以处理平衡任务分配问题,即无人艇的数量等于任务的数量。然而,在大多数情况下任务分配是不平衡的,目前常用的策略是构造一些虚拟的无人艇或虚拟任务,以使无人艇与任务数量相等。但是这里得到的代价矩阵中的每一个元素值指的都是无人艇的初始位置到各个任务点所需的代价,而无人艇执行任务是一个动态的过程,每艘无人艇的位置都是在随时更新的。由于匈牙利算法总是贪婪地选择代价最小的任务点,因此在很多情况下只能找到局部最优解。
[0117]
表1:添加虚拟执行者的代价矩阵
[0118][0119]
表2:添加虚拟任务的代价矩阵
[0120][0121]
为解决这个问题,本专利改变了代价矩阵的构造方法。
[0122]
参考表3和表4,以具有4个任务点、3艘无人艇的系统来说明。本发明一些实施例中,代价矩阵的构造方法进一步包括:
[0123] (1)如表3,将各任务视为虚拟无人艇,与实际无人艇一起,作为代价矩阵的各行。具体的,考虑到无人艇在到达当前任务点后应该前往下一个任务点,因此我们将每一个任务点也看作一个像无人艇一样的“执行者”,其代价同样由gbnn计算。
[0124] (2)如表4,构建虚拟任务,与实际任务一起,作为代价矩阵的各列,以使代价矩阵为方阵;
[0125] (3)将各实际无人艇执行虚拟任务的代价值设定为无限大的数a,将各虚拟无人艇执行虚拟任务的代价值设定为0。
[0126] (4)将各虚拟无人艇执行自身实际任务(如虚拟无人艇1执行实际任务1,虚拟无人艇2执行实际任务2,依次类推)的代价值设定为无限大。具体的,根据gbnn的计算原理,易知每个任务到达自身的活性值为1,相应的代价为0,最优解将是自锁的(即每个虚拟无人艇选择自己作为下一个目标),因此我们将j41,j52,j63,j74处的值设置为一个很大的数a,即可避免自锁现象。
[0127]
计算代价矩阵中其他元素的代价值,获得代价矩阵。
[0128]
表3:修改后的代价矩阵
[0129] 任务1任务2任务3任务4无人艇1j11j12j13j14无人艇2j21j22j23j24无人艇3j31j32j33j34任务1j41j42j43j44任务2j51j52j53j54任务3j61j62j63j64任务4j71j72j73j74
[0130]
表4:修改后的最终代价矩阵
[0131] 任务1任务2任务3任务4虚拟任务1虚拟任务2虚拟任务3
无人艇1j11j12j13j14aaa无人艇2j21j22j23j24aaa无人艇3j31j32j33j34aaa任务1aj42j43j44000任务2j51aj53j54000任务3j61j62aj64000任务4j71j72j73a000
[0132]
基于改进的代价矩阵,我们可以通过匈牙利算法得到任务分配结果。
[0133]
然而,若任务点数量大于无人艇数量,每个无人艇分得多个任务点,通常存在图5a所示的情况,即无人艇已经形成到达指派任务点的路径,但其他任务点自身形成了闭合路径(如图中左下角的三个任务点)。这是由于某些任务点之间间隔较近而它们离无人艇较远造成的,也就是自行完成这些任务的代价比由无人艇来完成所需的代价更低。
[0134]
为解决上述问题,可断开闭合路径并将其合并到已分配的无人艇任务列表中,如图5b所示,若各任务点之间形成闭合路径,则断开路径,并将其合并到已分配的无人艇任务列表中;在断开路径的步骤中,需要确定断开点,可以计算闭合路径各任务点与无人艇已分配任务列表中最后一个任务点之间的代价,选择代价最小的点为断点。即选择闭合路径中到达无人艇所需执行的最后一个任务点的代价最小的点为“断点”。
[0135]
多无人艇协同路径规划的总体流程图如图6所示。首先,通过 gbnn算法对整个神经网络进行初始化,并在此基础上根据一定的约束条件构造和修改代价矩阵。然后,利用匈牙利算法得到初始任务分配表,并对未分配任务进行二次分配,直至完成任务分配与排序。接着,分别将连续任务点作为无人艇的起点和目标点,利用gbnn算法规划无人艇路径。当无人艇到达一个任务点后,它将继续执行下一个任务点,直到无人艇任务列表中的所有任务都被访问为止。
[0136]
最后,我们采用一个包含20个任务点的复杂场景来验证方法的可行性。如图7所示,采用改进的匈牙利算法和gbnn算法,实现了多无人艇之间的任务分配和各无人艇的路径规划。任务点以较低代价高效地分配给无人艇,每艘无人艇将安全地避开障碍物并按顺序访问其任务点。综上所述,本专利非常适合于解决面向多任务点的无人艇协同路径规划问题。
[0137]
以上所述,仅是本发明的较佳实施例而已,并非是对本发明作其它形式的限制,任何熟悉本专业的技术人员可能利用上述揭示的技术内容加以变更或改型为等同变化的等效实施例应用于其它领域,但是凡是未脱离本发明技术方案内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与改型,仍属于本发明技术方案的保护范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献