徐博,张娇,王超
哈尔滨工程大学 自动化学院,黑龙江 哈尔滨 150001
随着无人机、无人战车、机器战士逐渐在战场上显示出越来越大的威力,无人化战争的发展已经呈现出相对清晰的蓝图。海洋空间智能无人运载器,如无人水面艇(USV)、自主式水下机器人(AUV)和无人水下机器人(UUV)等也得到迅速发展,开始在未来海洋国土安全、海洋开发方面发挥越来越大的作用。国内外均十分重视该领域的研究,已取得多项鼓舞人心的成果,并逐渐在军事和其他领域得到应用[1]。
集群运动是自然界中一种非常普遍的现象,典型的代表有鸟群的集体飞翔、昆虫的集体迁移,甚至是生命体中蛋白质等物质的集体移动[2-5]。在这些群体类似的运动中,如何形成协调有序的集体运动模式以及如何迅速改变当前运动状态,一直是集群运动控制研究中的热点问题。在多AUV集群运动编队方法中,有很多问题需要考虑,如稳定性、可控性等,为解决这些问题,不少学者提出了自己的想法,比如领航跟随者法(Leaderfollower)、基于行为的方法、图论法以及人工势场法等[6]。
Balch等[7]提出了一种基于行为的编队方法,即将队形控制分解为一系列基本行为,通过行为的综合来实现运动控制。该方法有明确的队形反馈,并实现了分布式控制,但对群体的行为没有明确定义,难以进行数学分析,不能保证队形的稳定性。
潘无为等[8]提出了一种虚拟结构方法,即将AUV编队从整体上看作是一个刚体的虚拟结构,每个AUV是刚体上相对位置固定的一点。该方法可通过定义刚体的行为来控制AUV的运动,但不能根据环境的变化来改变队形,因而限制了其应用范围。
俞辉等[9]研究了一种领航跟随者法,该方法是将AUV整体拆分为两两一组,即一个领航AUV,一个跟随AUV,通过跟随者对领航者保持一定的角度和距离来实现队形控制;根据领航者与跟随者的相对位置关系,可以形成不同的网络拓扑结构,当在环境中遇到障碍物时,可以通过改变队形来避开障碍物。但是这种主从式策略的自适应性以及鲁棒性不强,无法全面反映自然界中的个体自行选择或跟踪目标的能力。
Khatib[10]首次提出了人工势场的概念,即假定场内的个体在受到目标和障碍的力的作用时,令其沿着势能函数值最小的方向运动。在早期,该方法仅用于静态环境,而在针对动态环境时由于忽略了诸多动态因素,故仅选择相对位置作为输入量。针对此类问题,Khatib对该方法进行了改进,使之与其他方法结合,更适合于多AUV编队控制。
刘明雍等[11]提出在编队控制领域需要对集群的分群运动进行研究,因为分群强调了集群中的运动分化,可通过不同的组群来实现不同的目标任务,例如避障、跟踪等,但他们只针对该问题进行了理论建模,还缺少实验验证。AUV的数量对多AUV集群运动的导航以及控制算法具有重要影响,AUV的数量越多,相应的控制难度也就越大。
综合以上问题,本文将提出一种基于动态网络拓扑的集群运动控制方法和基于人工势场法的避障方法,对人工势场函数进行改进,并通过Matlab软件进行仿真实验以验证算法的可行性。
假设第i个AUV的控制律为ui,
考虑由N个AUV组成的群体,动态方程则为
式中:qi=[xi,yi]T,为个体位置;,为速度向量;ui=[uxi,uyi]T,为控制输入;Z为正整数集;R2为二维实数集。qij=qi-qj,为第i个与第j个AUV之间的相对距离向量。
将群体中的每个AUV都视为网络有向图中的一个节点。AUV在运动过程中网络拓扑也会随之动态地发生改变。通过动态网络方法,可以对AUV的群体运动行为进行建模,从而使得网络节点可以维持其与邻近个体之间的平衡距离。
定义1(邻接图):设G=(v,ε),为n个节点的权重有向图,其中v={1,2,…,n},为顶点的集合,ε为边的集合。A=[aij],为权重邻接矩阵,其中对于∀i,j∈I={1,2,…,n},i≠j,aij≥0;对于∀i∈I,aij=0。设r为任意两台AUV节点间的距离,节点vi的邻接集合用Ni表示,定义为
很显然,边集ε(q)由q决定(q为个体位置),(G(q),q)就是邻接结构。
将群体中的每一个AUV都视作是网络中的一个节点,AUV在运动中形成了动态网络。为在真实的集群中捕获明显的空间顺序,使用栅格模拟AUV集群节点的几何结构。找出一系列的q以及n个节点,令这些节点与相邻节点保持相同的距离,由式(5)描述为
公式中,q的选取在很大程度上影响着AUV集群的期望队形,故将其定义为格子型对象。
定义2:将在式(5)限制下的q几何配置看作是一个α格子,尺寸大小为d,AUV个体称作α个体。多个邻近的个体相连就形成了α格子。由α格子形成的邻接网络的边长都是相等的。
为了构建光滑的集成势场,并构建相应的空间邻接矩阵,将σ范式的非负地图做如下定义:
在本文中,ε的值保持不变。在这里建立新的范式是因为在任何时候都可微,而在z=0(z表示函数变量)处是不可微的。
冲击函数ρh(z)为标量函数,在0~1之间光滑,用来构建光滑的势场函数和邻接矩阵。冲击函数选择如下:
式中:h∈(0,1);冲击函数ρh(z)在[1,∞)内,一致趋于z。利用该冲击函数,可定义空间邻接矩阵A(q):
为了构建光滑的成对势场,又引入了行为函数ϕα(z):
最后,提出了分布式控制算法,用来研究多AUV集群运动中的编队控制。
人工势场法的基本思想是:在目标点位置和障碍物位置分别构造引力场Uatt和斥力场Urep,相应的势场力会吸引AUV向目标点附近运动,而阻止其向障碍物附近运动,在合力的最终作用下,指引AUV向目标点运动。
斥力场函数的设计与障碍物有关,距离障碍物越近,斥力就越大;引力场函数与之类似。为了对该方法进行必要的理论研究,在既简化问题又不失通用性的基础上,构建了二维平面、带有静态威胁的人工势场模型[13]。
将二维平面内的AUV与目标点距离的函数定义为
其产生的引力场为
式中:r(x1,y1)指AUV的位置;g(x2,y2)指目标点位置;m为正常数,m的值是决定势场函数曲线形状的因素;ξ为目标势场系数。在这里我们取m=2,这是因为当m=1时会使引力场求导后出现引力无界的问题,造成AUV在目标点附近抖动,因此,将m值取为最小值2。
目标点对AUV的吸引力为
式中,nRG为AUV至目标点的单位矢量。
本文中,由于AUV的目标点是固定的,因此在设计引力势场时不必考虑AUV与目标点之间的相对运动(图1)。
将障碍物的位置设为o(x3,y3),Frep1为AUV与障碍物间的排斥力,其使得AUV向远离障碍物的方向运动。与上面的分析类似,这里假定障碍物为静态,不考虑AUV与障碍物间相对速度对AUV运动的影响,Frep为由AUV速度产生的斥力,该斥力大小与速度在AUV和与障碍物连线上的速度分量大小成正比,方向为沿AUV与障碍物的连线且远离障碍物的方向(图2)。
斥力势场为
式中,M为障碍物的个数;ρi(r,o)=,为AUV与第i个障碍物间的距离函数。因此,式(15)可以写作
式中,η为斥力势场系数。
与二维空间S中第i个障碍物的斥力势场相对应的排斥力为
因此,总的排斥力为
将空间内的引力势场与斥力势场进行合成,得到的合成势场为
空间合成势场力为
常规的人工势场函数的自变量是距离的二次方,这种形式的函数曲线升降过快,这也使得引力和斥力变化过快,因而在选取参数时比较严苛,很可能会因参数选取的问题而无法完成路径规划。所以,这里采用的势场函数都是经过改进的,采用指数函数来作为势场函数,结构如下:
对于引力场,指数函数自变量X的表达式为
对于斥力场,X的表达式为
选取了指数函数,势场函数仍然为距离的函数,但函数曲线不再是二次曲线,而是指数曲线。由指数函数的特点可知,m和n的取值均大于1,引力势场系数β和斥力势场系数γ为正的常数,因此X>0。又由指数函数曲线的特点可知,U(ρ(r,g))图像取区间[0,∞)部分,该部分的变化较为缓慢,较容易控制,可达到比较稳定的效果。
为了验证基于人工势场法的多AUV路径规划算法,下面对其进行仿真验证:取目标势场系数ξ=5;对于引力场,取相邻个体数目α=5,引力场系数β=0.5;对于斥力场,取相邻个体数目α=1,斥力场系数γ=2。设置10台AUV,在目标点的引力与障碍物的斥力的共同作用下完成避障运动。将10个AUV的运动速度初值(单位:m/s)设置为:
图3中,左下角的“x”标志代表10个AUV,右上角的“X”标志代表目标点位置,坐标不变;平面内部的圆圈代表障碍物,坐标分别为(80 m,100 m),(100 m,100 m),(120 m,100 m),(180 m,200 m),(200 m,150 m)和(240 m,200 m);虚线为10个AUV的运动轨迹。图3(b)所示为10个AUV降速0.8 m/s后的轨迹。图4为减速前与减速后x和y方向上的多AUV集群运动轨迹。
由图3和图4的仿真结果可知,基于人工势场的避障方法,所有AUV均可顺利避开障碍物,准确到达目标点附近的安全区域;并且速度越慢,AUV距离障碍物越远,避碰效果越好。可见,基于指数函数的人工势场法能准确实现AUV的避障。
本文针对多AUV协同定位过程中出现的集群内个体间保持聚集以及避免互相碰撞的问题,采用了一种基于动态网络拓扑的编队方法,即将AUV看作网络中的节点,通过设置势场函数来满足编队要求;另外,针对航行中可能出现的障碍物,采用人工势场法进行在线规划,将势场函数作为指数函数进行了仿真。仿真结果表明,在基于人工势场函数的多AUV避碰方法中,指数函数法可实现多AUV对障碍物的实时规避。