无人机集群协同飞行算法
2022-08-22于长敏林雨奇
申 海, 于长敏, 林雨奇
(沈阳师范大学 物理科学与技术学院, 沈阳 110034)
0 引 言
随着无人机技术的蓬勃发展,单架无人机已经不能满足军用及民用的需求。基于生物行为的研究涌现出众多集群智能算法,由集群智能引发的无人机集群系统恰好可弥补该不足。无人机集群除了具有数量上的优势外,还具有成本低、灵活性好和鲁棒性强等特点。目前,生物集群智能算法是无人机集群协同问题研究的新方法,此类方法在军用及民用中具有广泛应用,因而受到了国内外学者的广泛关注[1-2]。
无人机集群协同飞行是无人机集群协同问题之一,要求多架无人机通过群体内的协作,能够实现自主协同飞行。另外,由于飞行区域内存在障碍物,还需要无人机集群躲避障碍物。因此,无人机集群协同飞行问题的研究应包括协同飞行和协同避障2个子问题的研究。首先,本文介绍了集群智能及无人机集群的产生背景和目前研究情况;其次,介绍了可实现协同飞行的LFPSO(leader-follower-particle swarm optimization)算法,并进行了仿真测试,验证了LFPSO算法可实现协同飞行,基于避障问题,设计了无人机协同避障算法;最后,将协同飞行LFPSO算法与协同避障算法相结合,形成了ALFPSO算法。仿真测试结果验证了此算法的正确性和鲁棒性。
1 无人机集群系统
1.1 集群智能
集群智能(swarm intelligence,SI)的研究,源于1959年法国生物学家PierrePaul Grasse的研究。他发现昆虫之间存在着简单的沟通,但凭借这种简单沟通,生物群体能够完成一些复杂的任务[3-4],执行任务的效率也远远超过单个个体的效率。这种利用单个个体间简单的沟通协作从而完成复杂任务的行为就是生物集群智能的雏形,显示出生物群体的集体智慧行为。通过对昆虫间集体智慧行为的研究逐渐衍生出许多集群智能算法,如粒子群算法、蜂群算法和狼群算法等[5-7]。
1.2 无人机集群
从生物集群智能的研究获得灵感,无人机集群技术应运而生[8-10]。无人机技术向无人机集群技术的转变,不仅是数量上的改变,更重要的是集群智能与无人机技术的结合。无人机与生物个体有许多共同点,比如都是单一智能个体,且执行任务的效率远不如群体带来的优势。将集群智能引入到无人机技术中,能够使无人机集群自主协同飞行,避免增加额外的地面操作和人工操作。因此,无人机集群成为现代战争的主要研究方向,可以以无人、自主和协同3个方面特征取得战争的优势[11]。
2 无人机集群协同飞行
2.1 粒子群优化算法
粒子群优化算法(particle swarm optimization,PSO),也称粒子群算法或鸟群觅食算法,是由Kennedy和Eberhart等[12]于1995年提出的一种生物启发式算法。在粒子群算法中,粒子群中的每个粒子都可以看作鸟群中的鸟,且存在社会认知和个体认知,粒子寻找最优解过程代表鸟群不断觅食过程。在每次迭代过程中,粒子群里离食物源最近的粒子设定为全局最优解,即社会认知;每个粒子曾飞行的历史最优位置为个体认知。每个迭代过程代表社会认知的个体并不是固定的。粒子通过当前位置、社会认知和个体认知的综合决策后决定下一时刻的位置。粒子群算法是一种基于群体的随机优化算法,在解空间中较容易找到全局最优解,因而被广泛应用。
2.2 长机-僚机编队方法
无人机编队是指无人机飞行过程中的队伍形状,此问题的研究源于无人机集群飞行中需要灵活地调整队形以适应不同任务不同环境的要求[13]。目前常用的无人机编队方法有长机-僚机法、虚拟结构法和行为法等。其中,长机-僚机可类比为大雁的飞行方式,由头雁带领其他大雁飞行。多架无人机飞行中,设置一架无人机为长机,其余无人机为僚机[14]。长机可以理解为管理者,负责任务的统筹;僚机属于附属者,主要任务是完成管理者的任务,或配合管理者来完成任务。长机根据目标的识别情况或感知情况进行飞行,僚机通过调整自身的速度和偏航角等信息实现跟随状态,从而达到保持编队队形的目的。由于此编队方法较为成熟,易于实现,因而本文采用此种方法实现无人机集群飞行的队形保持。
2.3 协同飞行算法
本文将长机-僚机编队方法与PSO算法相结合,设计了可实现无人机集群协同飞行的算法,即LFPSO算法。在LFPSO算法中,设定每个粒子仅有社会认知,没有个体认知。社会认知代表全局最优解,即长机-僚机编队方法中的长机。长机和僚机均具有不同的位置信息和速度信息,长机运动具有随机性,僚机跟随长机飞行。无人机协同飞行相对运动如图1所示。
图1 无人机协同飞行相对运动Fig.1 Relative motion of UAV cooperative flight
如图1所示,长机A在坐标系内坐标为(xA,yA),速度大小为vA,航向角为φA。飞行过程中,长机航向角φA随机变化,长机位置坐标不断更新。僚机B在坐标系内坐标为(xB,yB),速度为vB。长机运动模型如式(1)所示。
(1)
僚机跟随长机运动,规定僚机B朝向长机A下一位置运动,引入僚机位置分量ratio,如式(2)所示。
(2)
式中:(xB,yB)为僚机B当前时刻位置坐标;vB为僚机B的速度。
通过僚机B位置分量计算其下一时刻位置,如式(3)所示。将式(2)代入式(3),得到式(4)所示的僚机B运动数学模型。
设定飞行区域为100×100,长机和僚机均在飞行区域内进行飞行,要求不能越过边界或与边界发生碰撞。长机和僚机开始下一时刻飞行之前,通过计算当前位置与限定飞行区域边界之间的距离是否小于速度×单位时间进行判断。长机如即将越过边界或与边界碰撞,则长机速度调整为原来一半,并重复调整航向角,直至长机判断出下一时刻不会越过边界或与边界不发生碰撞为止;如不能越过边界或与边界碰撞,则根据判断后的最佳航向角完成下一时刻飞行。僚机计算与长机之间的位置分量ratio,通过ratio计算僚机下一时刻位置。僚机如不能越过边界或与边界碰撞,则完成下一时刻飞行;如即将越过边界或与边界碰撞,则在下一时刻暂停飞行,即保持当前位置和速度不变。由于长机位置不断变化,因而僚机预估的下一时刻位置也在不断变化,直至判断不能越过边界或与边界发生碰撞为止。LFPSO算法具体流程如图2所示。
图2 无人机协同飞行算法流程图Fig.2 Flow chart of UAV cooperative flight algorithm
2.4 仿真测试
为验证本文提出的无人机集群协同飞行算法的有效性,本文选取1架长机和4架僚机进行仿真测试,测试结果如图3所示。本文主要采用的计算机硬件CPU为AMD Ryzen 5 5600G,主内存为16GB,操作系统为Windows 10,利用Matlab 2019软件编写程序并进行测试。飞行区域限定为100×100,长机和僚机位置均随机产生。从图3中可看出,本文设计的LFPSO算法能够满足在各个无人机初始位置不同的前提下,僚机不断向长机方向进行飞行,最终完成与长机的汇集,同时也避免了在设定的飞行领域发生飞出范围的情况。
图3 1架长机与4架僚机协同飞行测试图Fig.3 Cooperative flight test of 1 leader and 4 followers
3 无人机协同避障
无人机避障行为是指无人机在移动过程中感知到预定路线上所存在的障碍物时,为防止碰撞,通过算法计算避障路线,实时更新路径,从而成功避开障碍物的一种行为模式[15]。无人机协同避障是指多个无人机飞行过程中,除了需要避开已有障碍物外,为防止无人机之间发生碰撞,还需要无人机之间进行避障。因此,无人机协同避障包括2个方面的问题,一方面是飞行路径上的障碍物避障;另一方面是无人机之间进行避障。本文采用人工势场法实现上述2个方面的避障。
3.1 人工势场法
人工势场法(artificial potential field)是无人机避障研究中最为常见的一种方法,是由Khatib[16]于1986年提出的。此方法有着简单实用、与工程结合紧密和实践性强等诸多优点。算法将物体运动区域视为势力场,势力场包括引力势场和斥力势场。引力势场主要与距离成正比,距离越大,物体之间所受引力势场的势能值则越大;距离越小,物体之间所受引力势场的势能值则越小。引力势场函数及相应的负梯度函数如式(5)和式(6)所示。
式中:Fatt(X)为引力场负梯度;η为正比例增益系数;ρ(q,qg)表示物体之间的距离,距离值为|q-qg|。
斥力势场的势能值大小同样与物体间距离有关, 在安全阈值ρ0范围外, 势能值为0; 反之, 势能值与距离呈反比例函数。 斥力势场的势能值势场函数及相应的斥力场负梯度函数如式(7)和式(8)所示。
式中:Frep(X)为斥力场负梯度;k为负比例增益系数;ρ0为常数,表示物体之间的安全阈值;ρ(q,q0)表示物体当前位置与安全阈值间的距离,距离值为|q-q0|。
3.2 协同避障算法
本文基于人工势场法,设计了无人机集群协同避障算法。 设定无人机飞行区域为(0,0)至(100,100),飞行区域内的障碍物周围及每个无人机周围都存在引力场和斥力场。 设定(100,0)为长机初始位置,(0,100)为长机目标位置。僚机初始位置在飞行区域内随机产生,飞行目标区域为x∈[0,10],y∈[90,100]组成的方形区域。 长机从初始位置出发,在目标点的引力势场作用下向目标位置飞行, 僚机则通过长机引力场作用向长机方向运动。 飞行过程中,长机和僚机均受障碍物斥力作用, 从而躲避障碍物。为保障无人机之间不碰撞,无人机之间也存在斥力场。 无人机在势力场的作用下飞行示意图如图4所示。
图4 无人机在力的作用下飞行示意图Fig.4 UAV flight diagram under the action of force
长机所受的合力为受目标点的引力,由僚机间的斥力及与障碍物间的斥力组成,如式(9)所示。 僚机所受的合力为受长机的引力和斥力, 由其他僚机间的斥力及与障碍物间的斥力组成, 如式(10)所示。
式中:FZ为长机所受的合力;Fatt(G)为长机受目标点的引力;Frep(L)为长机与僚机间的斥力;Frep(obs)表示长机与障碍物间的斥力;FL为单架僚机所受到的合力;Fatt(Z)为僚机受长机的引力;Frep(Z)为僚机与长机间的斥力;Frep(Li)为僚机与其他僚机之间的斥力;Frep(obs)表示僚机与障碍物之间的斥力。各项引力值和斥力值的计算方法采用式(6)和式(8)进行计算。
协同避障算法具体实现步骤如下:
Step 1 确立无人机的飞行区域范围,并设置长机、僚机和障碍物的相关信息。
Step 2 长机向目标点运动。在运动过程中,计算长机与目标点的引力,与障碍物间及与其他僚机间的斥力。将长机所受的引力与斥力进行矢量叠加,并在合力的作用下运动。
Step 3 僚机向长机方向运动。在运动过程中,僚机计算与长机之间的引力和斥力、与障碍物间的斥力,以及与其他僚机间的斥力。将僚机所受的引力与斥力进行矢量叠加,并在合力的作用下向长机周围运动。
Step 4 判断长机是否到达目标点,若长机未到达目标点,则重复Step 2;若长机到达目标点,则长机停止飞行。判断僚机是否到达飞行目标区域,若到达,则僚机停止飞行;若未到达,则继续重复Step 3,直至到达飞行目标区。
算法流程如图5所示。
图5 无人机协同避障算法流程图Fig.5 Flow chart of UAV cooperative obstacle avoidance algorithm
4 仿真测试
本文将提出的协同飞行算法和协同避障算法相结合,形成无人机集群协同飞行避障算法,即ALFPSO算法。为测试ALFPSO算法的有效性,选取1架长机和4架僚机进行仿真测试,测试结果如图6所示。测试采用的计算机硬件CPU为AMD Ryzen 5 5600G,主内存为16GB,操作系统为Windows 10,利用Matlab 2019软件编写程序并进行测试。
如图6所示,图6(a)至图6(d)各子图中的左图均为无人机集群运动轨迹图,右图均为各无人机位置分布图。图6(a)为飞行起始图,长机在(100,0)位置,僚机位置随机产生;图6(d)为飞行结束图,长机到达(0,100)位置,僚机跟随;图6(b)和图6(c)分别表示长机从起点到达目标点期间,长机和僚机协同飞行及避障情况。通过各子图的左图可观测出,长机从初始位置出发,最终到达目标位置。僚机跟随长机飞行,最终所有僚机均顺利到达飞行目标区域,实现了无人机集群协同飞行。通过各子图的右图可观测出,无人机集群飞行过程中,无人机之间不发生碰撞,且长机和僚机都能够对飞行路径上的障碍物进行有效避障,从而满足无人机集群飞行的协同避障要求。
图6 1架长机和4架僚机协同飞行及避障仿真测试图Fig.6 Cooperative flight and obstacle avoidance test of 1 leader and 4 followers
5 结 论
本文主要对无人机集群协同飞行避障问题进行讨论,并提出了可实现协同飞行且避障的ALFPSO算法。ALFPSO算法中,由长机-僚机编队方法和粒子群算法相结合的LFPSO算法实现了协同飞行功能;基于人工势场法设计的无人机协同避障方法实现了协同避障功能。通过仿真测试可看出,在静态飞行区域和已知障碍物环境下,本文设计的ALFPSO算法能有效实现由1架长机和4架僚机组成的无人机集群,在设定的飞行区域内,自主协同飞行且自动规避障碍物,并顺利到达飞行目标点。因此,该算法具有正确性与鲁棒性。在实际的无人机飞行过程中,飞行环境是不可预知的,障碍物可随时出现在飞行区域内,下一阶段可对动态飞行环境的协同飞行避障问题进行深入研究。