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

一种基于改进麻雀搜索算法的水下多AUV路径规划方法与流程

2021-10-09 00:14:00 来源:中国专利 TAG:水下 路径 规划 方法 麻雀

一种基于改进麻雀搜索算法的水下多auv路径规划方法
技术领域
1.本发明涉及自主水下机器人(autonomous underwater vehicle,auv)的一种路径规划方法,尤其涉及一种基于改进麻雀搜索算法的水下多auv路径规划方法。


背景技术:

2.auv作为人类探测海洋的主要工具,在水下和外部环境进行交互时,能够安全避开障碍,规划出一条合理的路径对于保证水下机器人的安全是至关重要的。目前,多auv系统相比于单auv效率更高,使用范围更加广泛。国内外学者对于单一auv系统有了很多研究,然而针对多auv系统的研究仍然是一项挑战。
3.目前,水下机器人的路径规划在二维环境研究中众多,如典型的a*算法,蚁群算法(ant colony algorithm,aco),人工势场法(artificial potential field method,apf)等,但都有着各自的缺陷,比如a*算法在处理大规模地图时运算速度慢,蚁群算法前期收敛速度慢,人工势场法容易陷入局部最优,而且不适用于多auv的路径规划。
4.粒子群算法(particle swarm optimization,pso)和麻雀搜索算法(sparrow search algorithm,ssa),作为新型的智能优化技术,在解决优化问题上有了很成熟的应用。两种算法都具有参数简单、搜索速度快的优点,然而麻雀搜索算法相比于粒子群算法,收敛速度更快,能够适用复杂的海洋环境。粒子群算法在解决优化问题方面有着很好的收敛性。
5.而如何通过具体的方法来在对每个auv快速分配到最优的任务目标的同时,又快速地规划出每个auv的无碰撞最优路径,成为亟需解决的技术问题。


技术实现要素:

6.发明目的:对于auv在复杂海洋环境下工作时容易受到海流影响,并且考虑到auv的动力消耗;以及针对多auv和多目标的情况,为了规划出多auv的最优路径,本发明提出了一种基于改进麻雀搜索算法的水下多auv路径规划方法,首先将粒子群算法用于多auv的任务分配,然后改进的麻雀搜索算法用于多auv的路径规划问题,在保证每个auv快速分配到最优的任务目标的同时,快速地规划出每个auv的无碰撞最优先路径。
7.技术方案:本发明基于改进麻雀搜索算法的水下多auv路径规划方法包括以下步骤:
8.(1)利用栅格法构建海洋环境二维地图,对水下机器人auv的工作环境进行单元分割;
9.(2)针对多机器人多目标,利用粒子群算法对每个水下机器人进行任务分配;具体步骤如下:
10.(2.1)通过粒子群算法搜索粒子的最佳位置,每个粒子看作d维搜索空间的一个搜索个体,将粒子的速度v
id
更新为公式(1),粒子的位置x
id
更新为公式(2):
11.v

id
=ωv
id
c1r1(p
id

x
id
) c2r2(p
gd

x
id
)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1)
12.x

id
=x
id
v

id
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(2)
13.其中,ω为惯性因子,ω的值为非负,较大时全局寻优能力强;较小时,局部寻优能力强;c1和c2为学习因子,均为常数;r1和r2是[0,1]随机数,p
id
为个体最优解,p
gd
为全局最优解;v

id
为更新后的粒子速度;x

id
为更新后的粒子位置;
[0014]
(2.2)根据目标与auv之间的距离和auv到达目标的理想时间得出粒子群的适应值函数;
[0015]
(2.3)采用粒子群算法根据式(1)和(2)不断更新,寻找最优解,在迭代完成后,输出每个水下机器人和目标的匹配情况,完成任务分配;
[0016]
(3)采用基于速度合成法并融合洋流的改进麻雀搜索算法进行多auv的路径规划,具体过程如下:
[0017]
(3.1)在洋流速度已知的情况下,通过调节auv的速度和方向并利用洋流来进行路径规划,此时水下机器人auv期望的速度v
e
为公式(4):
[0018][0019]
α1为vc和x轴之间的夹角;α2为v
e
和x轴之间的夹角;α3为v
a
和x轴之间的夹角;v
c
为洋流速度矢量;
[0020]
根据公式(4),以及水下机器人auv与该auv对应的目标之间的欧式距离构建了改进麻雀搜索算法的适应值函数f(i)如公式(5):
[0021]
f(i)=d(i)
·
0.5 d(i)/v
e
c
·
100
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(5)
[0022]
其中,d(i)为粒子生成路径的总长度,如公式(6)所示;c为穿过障碍物的惩罚系数;
[0023][0024]
d为麻雀的维度,d也代表auv在路径规划中生成的中间路径点;x
id
为当前麻雀在二维地图中横坐标的值,y
id
为当前麻雀在二维地图中纵坐标的值,x
id
‑1表示第i只麻雀搜索路径的第d

1个路径点的横坐标,y
id
‑1表示第i只麻雀搜索路径的第d

1个路径点的纵坐标;
[0025]
(3.2)设置麻雀种群规模为m,迭代次数为t,发现者个数为m*0.2,预警者个数为sd,搜索空间为d维,针对k个auv,每个auv分配d/k个维度的搜索空间;
[0026]
(3.3)假设有m只麻雀在d维搜索空间中,则第i只麻雀在d维空间的位置x
i
为公式(8),适应值f
i
为公式(9):
[0027]
x
i
=[x
i1
,...,x
ij
,...,x
md
]
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(8)
[0028]
f
i
=f[x1,...,x2,...,x
m
];
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(9)
[0029]
其中,x
i1
代表第i只麻雀在第1维的位置,x
ij
代表第i只麻雀在第j维的位置,x
md
代表第i只麻雀在第j维的位置;x1代表第1只麻雀,x2代表第2只麻雀,x
m
代表第m只麻雀;
[0030]
(3.4)根据麻雀的适应值大小进行排序,选取适应值最佳的麻雀作为发现者去发现地图中的更优位置并为加入者提供优化的方向;其中,发现者的更新公式为(10):
[0031][0032]
代表在第t 1次迭代时第i个麻雀在第j维的位置;代表第t次迭代时第i个麻雀在第j维的位置;a代表0~1的随机数,q代表0和1之间的随机数;t代表当前迭代数,t
max
为最大迭代次数;r2为预警值,st为安全值;l是一个1*d的矩阵,矩阵中的每个元素都为1;
[0033]
当r2<st时,表明此时的搜索空间没有遇到捕食者,发现者搜索最优位置;当r2≥st时,表明有麻雀遭遇到了捕食者,并向整个麻雀种群中其他麻雀发出危险警告;
[0034]
(3.5)加入者根据发现者发现的更优位置,不断更新自己的位置;加入者的位置更新公式为(11):
[0035][0036]
代表截止t 1次迭代时麻雀发现的最佳位置,a

代表a

=a
t
(aa
t
)
‑1,其中,a
t
表示a的转置矩阵;a为一个1*d的矩阵;表示第i只麻雀在第t次迭代时的位置,j表示解的维数;x
worst
为目前发现者所发现的全局最差的位置;
[0037]
(3.6)预警者是意识到危险的麻雀,预警者的位置更新公式为如下:
[0038][0039]
其中,β为均值等于0,方差为1服从正态分布的随机数;k为

1和1之间的随机数,f
i
为第i个麻雀的适应度,f
g
为第i个麻雀的当前最佳适应值,a是一个避免分母等于零的情况的常数;k为麻雀移动的方向同时也是步长控制参数;fw表示当前麻雀的最差适应值;
[0040]
代表第t次迭代时所有麻雀发现的最佳位置,表示这个位置的麻雀是种群中最佳位置;代表第t 1迭代时所有麻雀发现的最佳位置。
[0041]
其中,步骤(1.1)中,对水下机器人auv的工作环境进行单元分割,并区分出障碍物和自由区域。
[0042]
步骤(2.2)中的适应值函数fitness(i)公式如下:
[0043]
fitness(i)=d(i)
·
0.5 d(i)/v
e
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(3)
[0044]
其中,i表示第i个粒子,d(i)表示第i个粒子生成的路径长度;v
e
表示auv期望的速度,d(i)/v
e
表示auv到达目标的理想时间。
[0045]
步骤(3)中,将麻雀搜索到的最小适应值所对应的位置作为最佳位置,并根据不同auv和不同目标规划出多条最优路径。
[0046]
步骤(3.1)中,c为穿过障碍物的惩罚系数,c如公式(7)所示:
[0047][0048]
当麻雀组成的路径穿过障碍物时,e为大于其他粒子适应值的正常数;而当路径没有穿过障碍物时,c为0。
[0049]
步骤(3.4)中,根据麻雀的适应值大小进行排序,选取适应度最佳的前10~20个麻雀作为发现者去发现地图中的更优位置并为加入者提供优化的方向。
[0050]
步骤(3.5)中,矩阵a中的每个元素值随机赋值1或

1。
[0051]
步骤(3.5)中,当i>n/2时,适应度低的第i个加入者麻雀搜索其他地方获得更高的适应度。
[0052]
步骤(3.6)中,当f
i
>f
g
,表明此时的麻雀处于整个种群的边缘,受到捕食者的威胁。
[0053]
步骤(3.6)中,当f
i
=f
g
时,表明处于种群中间的麻雀发现了威胁,前往其他位置来避免危险。
[0054]
有益效果:与现有技术相比,本发明具有以下优点:
[0055]
(1)本发明首先利用栅格法构建了二维地图,通过对水下机器人auv的工作环境进行单元分割,能够很好地储存环境信息,利于算法的运行;
[0056]
(2)粒子群算法收敛速度快,精度高,本发明利用粒子群优化算法进行多auv的任务分配,能够保证每个auv快速分配到最优的任务目标。
[0057]
(3)实际情况下,海洋中存在着海流的影响,auv的路径规划受海流影响最大,本发明利用速度合成法调整auv的速度和方向,来抵消洋流的负影响,并通过麻雀搜索算法的适应值函数,使auv在运行时充分利用洋流,节约了auv的能量,即通过采用结合速度合成法的麻雀搜索算法在路径规划时保证auv充分利用洋流,减少不必要的能源消耗。
[0058]
(4)改进的麻雀搜索算法收敛速度快,参数设置少,在多auv和多目标的情况下,利用该改进的麻雀搜索算法来进行多auv的路径规划,实现多auv的动态安全避障,保证每个auv完成任务,且快速规划出每个auv的无碰撞最优路径。
附图说明
[0059]
图1为本发明基于改进麻雀搜索算法的水下多auv路径规划方法的流程图;
[0060]
图2为本发明基于栅格法的二维地图;
[0061]
图3为本发明速度合成法示意图;
[0062]
图4为本发明基于改进麻雀算法的多auv路径规划图。
具体实施方式
[0063]
实施例:
[0064]
如图1所示,本发明基于改进麻雀搜索算法的水下多auv路径规划方法,首先利用栅格法进行二维环境建模,即利用栅格法构建海洋环境二维地图;并运用粒子群算法进行多auv和多目标的任务分配。由于海洋环境复杂,auv在水下航行时受洋流影响大,因此考虑到洋流对auv的影响,本发明提出结合速度合成法的适应值函数并将该适应值函数运用到改进麻雀算法中;使算法根据洋流信息和麻雀目前所处位置,综合估计出每个麻雀的适应值。在算法不断迭代后,找到具有最优适应值的解,然后进行多auv的路径规划。
[0065]
本实施例中,基于改进麻雀搜索算法的水下多auv路径规划方法具体包括以下步骤:
[0066]
(1)利用栅格法构建海洋环境二维地图,对水下机器人auv工作环境进行单元分割,用相同大小的方块表示出来。如图2所示,黑色方块表示障碍物,白色区域表示自由区域。
[0067]
图2中,1号指1号水下机器人auv,2号指2号水下机器人auv,3号指3号水下机器人auv。
[0068]
(2)针对多机器人多目标,利用粒子群算法对每个水下机器人进行任务分配,即进行多auv的任务分配,以本实施例中的3个水下机器人auv为例,目标是得到3个auv的准确位置,采用粒子群算法,该算法产生多个粒子,多个粒子在该算法作用下优化出最终的3个水下机器人auv位置,具体步骤如下:
[0069]

粒子群算法模仿鸟类的活动,随机搜寻该粒子群算法中粒子的最佳位置,每个粒子看作d维搜索空间的一个搜索个体,粒子具备2种属性:粒子的速度v
id
和粒子的位置x
id
,该粒子的速度v
id
更新公式为(1),粒子的位置x
id
的更新公式为(2):
[0070]
v

id
=ωv
id
c1r1(p
id

x
id
) c2r2(p
gd

x
id
)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1)
[0071]
x

id
=x
id
v

id
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(2)
[0072]
其中,ω为惯性因子,ω的值为非负,较大时全局寻优能力强;较小时,局部寻优能力强。c1和c2为学习因子,均为常数。r1和r2是[0,1]随机数,p
id
为个体最优解,p
gd
为全局最优解;v
i
'
d
为更新后的粒子速度;x
i
'
d
为更新后的粒子位置。
[0073]

根据目标与auv之间的距离和auv到达目标的理想时间得出粒子群的适应值函数,其适应值函数fitness(i)公式如下:
[0074]
fitness(i)=d(i)
·
0.5 d(i)/v
e
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(3)
[0075]
其中,i表示第i个粒子,d(i)表示第i个粒子生成的路径长度;v
e
表示auv期望的速度,d(i)/v
e
表示auv到达目标的理想时间。
[0076]
在上面的步骤

中,将多个auv的坐标和多个目标的坐标作为粒子群算法的输入,以图2为例,输入3个auv的坐标和3个目标的坐标,通过粒子群算法得到3个水下机器人auv的位置最优解,即每个auv找到3个目标中的最优目标。
[0077]
如公式(3)所述,粒子群算法的适应值函数的值越大,表示auv到达目标的代价越大,则当前auv需要更换目标,反之,适应值越小,auv和当前目标越匹配。
[0078]

将粒子群算法的迭代次数设为100,种群大小为60,维度d为3。采用粒子群算法根据式(1)和(2)不断更新,在迭代更新完成后,输出1号水下机器人auv和目标3的匹配情况,2号水下机器人auv和目标1的匹配情况,3号水下机器人auv和目标2的匹配情况,完成任务分配。
[0079]
(3)采用基于速度合成法并融合洋流的改进麻雀搜索算法进行多auv的路径规划,具体过程如下:
[0080]

考虑到复杂海洋环境的洋流,auv在路径规划时受洋流影响比较大,本文结合了速度合成法对粒子的状态进行评估。如图3所示,v
c
为洋流速度矢量,v
a
为auv的速度矢量,v
e
是期望的auv速度矢量。v
e
的方向由水下机器人auv指向目标点。v
cn
为洋流在v
e
上的垂直分量,v
an
为水下机器人在v
e
上的垂直分量。当v
cn
和v
an
互相抵消时,洋流的副作用就被抵消了,
在洋流速度已知的情况下,通过调节auv的速度和方向就能充分利用洋流来进行路径规划。此时水下机器人auv期望的速度为公式(4)。
[0081][0082]
α1为vc和x轴之间的夹角;α2为v
e
和x轴之间的夹角;α3为v
a
和x轴之间的夹角。
[0083]
根据公式(4),以及水下机器人auv与该auv对应的目标之间的欧式距离构建了改进麻雀搜索算法的适应值函数。适应值公式如(5)式。
[0084]
f(i)=d(i)
·
0.5 d(i)/v
e
c
·
100
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(5)
[0085]
其中d(i)为粒子生成路径的总长度,如公式(6)所示;c为穿过障碍物的惩罚系数,如公式(7)所示;该公式(5)综合考虑了洋流和障碍物,使auv不仅能避开障碍物还能充分利用洋流来节约能耗。
[0086]
如公式(6)所示,d(i)为粒子生成的路径总长度,d为麻雀的维度,d也代表auv在路径规划中生成的中间路径点,d的值也决定了路径段的数量,该路径段表示auv起始点和目标点之间组成总路径的若干小段。x
id
为当前麻雀在二维地图中横坐标的值,y
id
为当前麻雀在二维地图中纵坐标的值;x
id
‑1表示第i只麻雀搜索路径的第d

1个路径点的横坐标,y
id
‑1表示第i只麻雀搜索路径的第d

1个路径点的纵坐标。
[0087]
采用麻雀算法进行路径规划的思路为,每条路径由若干小段组成,比如a,b,c

n,而每小段最优,则最终的合路径最优。
[0088][0089][0090]
其中,c为惩罚系数,该c的公式为式(7)。当麻雀组成的路径穿过障碍物时,e为远远大于其他粒子适应值的正常数;而当路径没有穿过障碍物时,c为0,因此式(7)保证生成的路径不会穿过障碍物,保证了auv在向目标运动时避开障碍物。
[0091]

设置麻雀种群规模为m,迭代次数为t,发现者个数为m*0.2,预警者个数为sd,搜索空间为d维,针对k个auv,每个auv分配d/k个维度的搜索空间。
[0092]

假设有m只麻雀在d维搜索空间中,则第i只麻雀在d维空间的位置x
i
为公式(8),适应值f
i
为公式(9):
[0093]
x
i
=[x
i1
,...,x
ij
,...,x
md
]
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(8)
[0094]
f
i
=f[x1,...,x2,...,x
m
];
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(9)
[0095]
其中,x
i1
代表第i只麻雀在第1维的位置,x
ij
代表第i只麻雀在第j维的位置,x
md
代表第i只麻雀在第j维的位置;x1代表第1只麻雀,x2代表第2只麻雀,x
m
代表第m只麻雀。
[0096]

根据麻雀的适应值大小进行排序,选取适应度最佳的前20个麻雀作为发现者去发现地图中的更优位置并为加入者提供优化的方向。可以理解为,麻雀即auv,通过不断搜索路径,最终寻找到最优的一条路径。其中,发现者的更新公式为(10):
[0097][0098]
代表在第t 1次迭代时第i个麻雀在第j维的位置;代表第t次迭代时第i个麻雀在第j维的位置;a代表0~1的随机数,q代表0和1之间的随机数;t代表当前迭代数,t
max
为最大迭代次数。r2为预警值,st为安全值。该预警值表示麻雀发现危险的一个临界值,安全值表示此时麻雀处于安全状态。l是一个1*d的矩阵,其中每个元素都为1。
[0099]
当r2<st时,表明此时的搜索空间没有遇到捕食者,发现者自由的搜索最优位置。然而当r2≥st时,表明有麻雀遭遇到了捕食者,并向整个麻雀种群中其他麻雀发出危险警告。
[0100]

加入者不断的加入发现者的阵营,加入者根据发现者发现的更优的位置,不断更新自己的位置。加入者的位置更新公式为(11):
[0101][0102]
代表截止第t 1次迭代时麻雀发现的最佳位置,a

代表a

=a
t
(aa
t
)
‑1,其中,a
t
表示a的转置矩阵;a为一个1*d的矩阵。表示第i只麻雀在第t次迭代时的位置,j表示解的维数。
[0103]
可以理解为,为目前发现者所发现的全局最优位置,x
worst
为目前发现者所发现的全局最差的位置,其中矩阵a中的每个元素值随机赋值1或

1。当i>n/2时,适应度低的第i个加入者麻雀需要搜索其他地方获得更高的适应度。
[0104]

预警者发现当前周围的威胁,并提醒麻雀群避免危险。预警者是意识到危险的麻雀。预警者的位置更新公式为下式:
[0105][0106]
其中,β为均值等于0,方差为1服从正态分布的随机数;k为

1和1之间的随机数,f
i
为第i个麻雀的适应度,f
g
为第i个麻雀的当前最佳适应值,a是一个避免分母等于零的情况的常数。k为麻雀移动的方向同时也是步长控制参数。fw表示当前麻雀的最差适应值。
[0107]
当f
i
>f
g
表明此时的麻雀正处于整个种群的边缘,很容易受到捕食者的威胁。而当f
i
=f
g
时,表明处于种群中间的麻雀发现了威胁,需要前往其他位置来避免危险。代表第t次迭代时所有麻雀发现的最佳位置,表示这个位置的麻雀是种群中最佳位置同时也非常安全。代表第t 1迭代时所有麻雀发现的最佳位置。
[0108]
针对多auv和多目标的系统,为了得到更精确的搜索解,即解的维数越高,解越精确,故而采用提出的改进麻雀算法,本实施例中,如图2所示,以3个auv和3个目标点为例,每
个auv分配5维解,利用5维解搜索对应的最优目标,因此d=3个*5维/个=15。当采用麻雀搜索算法迭代时,根据粒子群算法任务分配的auv和目标点,计算各自auv的适应值,根据3个auv适应值,寻找15维最优解,然后每个auv根据该15维解,最终完成路径规划,如图4所示。
再多了解一些

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

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

相关文献

  • 日榜
  • 周榜
  • 月榜