摘要
为解决无人机集群混合合作定位中高精度、高实时性的节点筛选问题,提出了一种高效节点筛选算法。该算法将定位方差作为评估定位精度的依据,利用减少一个节点导致定位方差变化的递推关系,筛选出指定数目的定位节点参与定位解算。与此同时,该算法增加了运算量调节因子,解决了传统节点筛选算法在较多节点数情况下计算量大、实时性差的问题。通过仿真实验,将该算法得到的方差和运算耗时与其他优化算法进行了实验对比,实验结果表明,该算法在大大减小计算量的同时保证了定位精度,具有良好的实时性和可行性。
Abstract
In order to solve the problem of node screen with high precision and high real-time in the hybrid cooperative location of UAV swarm, an efficient node screen algorithm was proposed. The algorithm used the variance of positioning as the basis for evaluating positioning accuracy and used the recursive relationship between the variance of positioning caused by the removal of one node to select the specified number of nodes for positioning calculation. At the same time, the algorithm added an operation volume adjustment factor to solve the problem of large computation volume and poor real-time performance of traditional node selection algorithms in the case of a large number of nodes. Through simulation experiment, the variance and operation time consumption obtained by the algorithm are compared with the corresponding results of other optimization methods. The experimental results show that the algorithm greatly reduces the amount of calculation while ensuring the positioning accuracy, and has good real-time performance and feasibility.
Keywords
当前,无人机集群是无人机系统和体系的重要发展方向[1]。无人机集群具备功能分布化、体系生存率高、成本低、效率高等优势。在民用领域,无人机集群协同飞行可应用于灾害救援、智能巡航、智能搜索、科学考察和航空飞行表演等多种应用领域;在军事领域,无人机集群协同飞行可以有效克服复杂战场飞行环境下单架无人机执行任务能力有限、抗毁伤性不足等问题[1]。
在无人机集群合作定位过程中,当无人机节点可见卫星数量不足时,一般将定位状态良好的邻居节点以及当前可见卫星节点当作备选锚节点,从备选锚节点集合中,筛选一定数量定位锚节点来辅助当前无人机节点完成绝对定位[2]。这样无人机节点可以利用无人机集群的优势,实现合作定位解算,从而提高集群整体的定位导航精度。
传统节点筛选算法一般只考虑了定位锚节点的位置几何分布对定位精度的影响[3-7],而忽略了锚节点自身定位误差的影响。如何实现无人机导航的高定位精度与高实时性之间的平衡,成为无人机集群合作定位中需要解决的一个重要问题[8-12]。
本文针对无人机集群合作定位中节点筛选问题,重点考虑了合作定位场景中高精度、高实时性之间的平衡,提出了一种新的节点筛选算法。该算法既考虑了空间几何位置对定位结果的影响,也考虑了锚节点自身的定位误差对定位结果的影响。与此同时,该算法优化了节点筛选的计算过程,对提高无人机集群协同导航能力具有较高的应用价值。
1 无人机集群节点筛选算法研究概述
传统的节点筛选算法主要包括最小几何精度因子(geometric dilution of precision,GDOP)筛选算法和最大四面体体积筛选算法[13]、模糊节点筛选算法[14]、基于节点对GDOP贡献的节点筛选算法[15]、基于夹角余弦值的次优节点筛选算法[16-17]、基于曼哈顿距离的次优节点筛选算法[18-19]、自底向上优化节点筛选算法[20]、加权GDOP节点筛选算法[21]、启发式群智能算法的节点筛选算法[22-26]等。
最小GDOP筛选算法(后文简称MinGDOP算法),即遍历所有节点组合,得到最小的GDOP,需要计算Cnm(m为定位锚节点数,n为指定的筛选数)次GDOP 值,需要大量的矩阵相乘和求逆运算,实时计算量比较大,计算量随节点数呈指数级增长[2],达不到实时性要求。
最大四面体体积筛选算法[13]使用无人机节点到定位锚节点的单位向量的端点构成的四面体体积大小来替代计算GDOP,当四面体体积达到最大时GDOP最小。算法仅适用于四个节点定位情况,超过四个节点的情形,锚节点单位向量组成的多面体体积与GDOP值不满足严格单调增函数关系条件[7],更多数目的源节点定位情况可以类似使用体积计算替代,但是计算相对复杂。
模糊节点筛选算法[14]采用模糊综合评价算法来选取节点组合。使用两个模糊向量得到表征高度角和方位角之间模糊关系的矩阵,确定对应的权重,进而构造出权向量,通过模糊变换,得到模糊变换后矩阵,矩阵最小的元素所对应的节点即为当前筛选出来的节点,以此迭代,直到选出指定数目的节点。
基于节点对GDOP贡献的节点筛选算法[15]包括直接节点筛选算法(后文简称DirDeltG算法)、递推节点筛选算法(后文简称RecuDeltG算法)。DirDeltG算法通过循环遍历计算每个节点对整体GDOP的贡献ΔG,并将ΔG按从大到小排序,筛选出前n个贡献较大的节点。RecuDeltG算法在DirDeltG算法基础之上,增加一重外层循环遍历。其内层循环负责计算剩下备选节点集合中每个节点对整体GDOP的贡献ΔG,外层循环则删除当前最小贡献的节点,直到选出最优组合的n个节点。
在基于夹角余弦值的次优节点筛选算法[16-17](后文简称Sum(cos(2θ))算法)中,定义任意两个节点间的代价值为J=cos(2θ),优化方向为求取节点间最小代价和。该算法能够有效剔除相互之间夹角很小或者很大的卫星。该算法最大的优势在于计算负载小,能快速筛选出可用的节点组合。
以上MinGDOP算法和最大四面体体积筛选算法、模糊节点筛选算法、DirDeltG算法、RecuDeltG算法、Sum(cos(2θ))算法均只考虑了卫星节点参与定位时节点选择对定位精度的影响,并且认为所有卫星的用户等效测距误差(user equivalent range error,UERE)是等同的,定位精度只取决于GDOP。
基于曼哈顿距离的次优节点筛选算法[18-19](后文简称ManDis算法)与Sum(cos(2θ))算法思想类似,该算法最大的优势在于计算负载小,能快速筛选出可用的节点组合,与前面几种筛选算法不同的是,该算法考虑了备选节点自身方差,提高了定位精度。
直接节点筛选算法、递推节点筛选算法、次优节点筛选算法均是自顶向下逐步筛选,即先考虑最大的备选节点集合,再逐步减少备选节点集合大小,直至指定数目节点集。Abedi等考虑自底向上优化节点筛选算法[20](后文简称D2T算法),即先使用次优节点筛选算法初始化指定数目的节点集合,然后将剩下的节点依次加入集合中来。
近几年,也有很多学者提出启发式群智能算法实现节点筛选,例如改进粒子群优化[22]、混沌粒子群算法[23]、多目标约束的遗传算法[24]、基于深度强化学习的方法[25]、基于改进麻雀搜索算法[26]等,该类型算法在节点数大时,耗时比MinGDOP 算法短,但是该类型算法很容易陷入局部最优问题,而且该类型算法的筛选性能与启发式群智能算法中参数的设置有很大关系。
2 基于定位方差贡献的优化递推节点筛选算法
2.1 无人机集群合作定位中节点筛选问题形式化描述
无人机节点在Tk时刻可见卫星节点集合为S(k)u,测距通信范围内邻居锚节点集合为N(k)u,卫星节点的UERE的集合为D(k)S,已定位邻居锚节点方差集合为D(k)n,已定位邻居锚节点到无人机节点之间的点对点(peer to peer,P2P)测距方差集合为D(k)P2P,采用混合合作定位节点筛选算法,从集合S(k)u和集合N(k)u中,选出m个节点(m≥4)构成集合A(k)u,采用集合A(k)u解算出无人机的位置。
无人机集群混合合作定位示意如图1所示。
图1无人机集群混合合作定位示意图
Fig.1Schematic of UAV swarm hybrid cooperative location
2.2 基于定位方差的混合合作节点筛选原理
定位精度是控制无人机集群飞行的一个主要技术指标。在基于卫星节点/邻居锚节点混合合作绝对定位方式下,无人机的定位精度主要取决于三个方面:①定位锚节点所构成的几何构型GDOP的大小;②定位锚节点自身的定位误差;③定位锚节点到无人机节点间的Prange/P2P测量误差。
对于卫星节点而言,一般使用UERE替代卫星节点自身的位置误差与卫星节点到无人机节点间伪距测量误差所造成的综合误差[27]。对于邻居锚节点而言,其节点自身全球导航卫星系统(global navigation satellite system,GNSS)/惯性导航系统(inertial navigation system,INS)组合导航数据一般经扩展卡尔曼滤波(extended Kalman filter,EKF)算法进行数据融合。当前无人机节点可以通过与这些邻居锚节点进行通信,获得邻居锚节点EKF后的协方差矩阵与定位位置信息。另外,当前无人机节点通过与邻居锚节点间P2P测距,还可以获得与邻居锚节点间的距离信息。根据已知的P2P测距设备的测距误差与EKF协方差矩阵叠加,可以获得当前无人机节点与邻居无人机节点间的等效误差。本文用无人机等效误差(unmanned aerial vehicle equivalent error,UAV-EE)表示已定位邻居锚节点自身的定位误差与节点间P2P测量误差所造成的综合误差。
将n个节点的观测矩阵记为Hn,从n个节点所构成的构型中去除第j个节点(j=1,2,3,···,n),得到n-1个节点所构成的构型,这个构型节点集合的观测矩阵为,则矩阵Hn和矩阵之间的关系如下:
(1)
其中,hj为第j个节点的观测矢量,hj=[ej1,ej2,ej3,1],ej1、ej2、ej3为第j个节点的方向单位向量。
考虑到不同节点有着不同大小的等效误差(UERE/UAV-EE)、不同无人机节点的实时等效误差也不同,使用加权最小二乘(weighted least squares,WLS)算法进行定位解算,则矩阵 WnHn和矩阵之间的关系如下:
(2)
式中,Wn为权值矩阵,σj为第j个节点的用户等效误差的标准差。令:
(3)
其中,,则Qn为WLS定位解的定位误差协方差矩阵。
(4)
(5)
使用Shermarr-Morrison公式变换可得:
(6)
其中,是一个标量,则令:
(7)
式(6)可转换为:
(8)
等式两边分别求矩阵的迹,根据矩阵迹的性质,可以得到以下递推关系:
(9)
由式(9)可知,由n-1个节点组成的构型经WLS解算所得到的方差等于由n个节点组成的构型经WLS解算所得到的方差加上相应的方差贡献。容易证明,tr(ΔQn-1)>0。
随着参与无人机定位解算的节点数量的增加,定位方差tr(Qn)会单调递减,故在无人机集群合作定位过程中,应选择尽可能多的卫星节点/邻居无人机节点进行定位解算。但是随着参与解算的节点数量的增加,定位计算耗时也会相应地显著增大,而且达到一定数目之后,定位方差tr(Qn)的递减幅度将越来越小。
2.3 优化递推节点筛选策略
为了综合考虑无人机集群合作定位中高精度定位解算与高实时性之间的平衡,本文提出基于定位方差贡献的优化递推节点筛选算法(后文简称RecuDeltQ算法),以WLS定位解的定位方差作为节点筛选的依据,在递推节点筛选算法思想的基础之上,采用自顶向下的节点筛选过程,优化设计内层循环运算次数,即增加内层循环运算量调节因子k,在每次外层循环时就确定本轮循环需要排除的节点数。每次内循环排除的节点数等于剩下需要排除的节点数除以k向上取整。k为浮点数类型,k的取值范围从1到N-n(一般设置为1~2),k越小筛选速度越快,与此同时,筛选的准确度也会下降。当k=1时,与DirDeltG算法效率一致,当k=N-n时,与RecuDeltG算法效率一致。
RecuDeltQ算法的伪代码如算法1所示,具体步骤如下:
步骤1:输入节点总数N、所有备选锚节点集合S、所有节点观测向量H、指定的筛选数目e。初始化当前剩余节点数为N。
步骤2:判断当前剩余节点数是否大于指定的筛选数目。若是则进入步骤3;否则转步骤6,输出筛选结果。
步骤3:计算本轮循环需要排除的节点数d。初始化结果列表为空。计算当前所有剩余节点所组成构型的Qn。
步骤4:对于备选锚节点集合S中的所有节点,计算ΔQn-1并将计算结果加入结果列表中。
步骤5:对结果列表进行从大到小排序,在备选锚节点集合S中,排除掉结果列表中最后d个元素所对应的节点。更新当前剩余节点数。
步骤6:输出锚节点集合E。
算法1 RecuDeltQ算法
Alg.1 RecuDeltQ algorithm
3 仿真验证及结果分析
本节通过仿真实验将基于定位方差贡献的优化递推节点筛选算法与最小GDOP筛选算法、直接节点筛选算法、递推节点筛选算法、基于夹角余弦值的次优节点筛选算法、基于曼哈顿距离的次优节点筛选算法、自底向上优化节点筛选算法进行对比。最小GDOP筛选算法遍历所有节点组合,选择出最优组合。DirDeltG算法和RecuDeltG算法通过计算节点对整体构型GDOP的贡献ΔG来筛选节点,不同的是,DirDeltG算法只需要一重循环遍历,而RecuDeltG算法需要两重循环遍历。Sum(cos(2θ))算法、ManDis算法都需要两重循环遍历,但代价值函数计算简单,不需要使用矩阵运算。D2T算法也需要两重循环遍历,因其每次保持最小节点数,其内层循环次数相比较RecuDeltG算法而言大大减少了。
本文从两个方面衡量不同算法性能,分别是定位耗时和定位精度,当所有备选锚节点均为卫星节点时,认为所有卫星节点具有相同的UERE,此时使用GDOP代表定位精度,GDOP表明卫星几何分布对定位误差的影响[27],其大小只与可见卫星节点的几何分布有关,数值越小则表明几何分布越好。当备选锚节点集合中既有卫星节点,又有邻居无人机节点时,使用定位标准差作为定位精度,采用WLS作为定位解算算法,将定位锚节点的UERE或者UAV-EE的倒数作为各锚节点权值。定位耗时则是指使用不同筛选算法,从所有节点N中筛选出指定数目e所耗费的时间,其值越小则算法实时性越好。
各算法复杂度对比如表1所示。
表1各算法复杂度对比
Tab.1 Various algorithms complexity comparison
在不同算法定位耗时对比实验中,设计实验场景一和场景二(所有备选锚节点均为卫星节点)。
场景一:使用北斗卫星系统(Beidou system,BDS),北斗卫星星座由地球同步(geostationary earth orbit,GEO)卫星、倾斜地球同步轨道(inclined geo synchronous orbit, IGSO)卫星、中等地球轨道(medium earth orbit,MEO)卫星组成,设置北斗卫星星座构成为3GEO+3IGSO+24MEO,设置卫星节点仰角大于5°可见,取时间段2020-06-17的13:00—15:00,可见卫星节点数N=15。
场景二:使用GNSS,设置GNSS由全球定位系统(global position system,GPS)、BDS、格洛纳斯导航系统(GLONASS navigation system,GLONASS)、伽利略卫星导航系统(Galileo satellite navigation system,Galileo)组成,设置星座构成为30GPS+15BDS+21GLONASS+24Galileo,设置卫星节点仰角大于30°可见,取时间段2020-06-17的13:00—15:00,可见卫星节点数N=26。
在场景一、场景二的情形下,分别进行各算法定位耗时对比实验,如无特殊情况,本节实验中k=2,实验结果如图2所示。
图2各算法定位耗时对比
Fig.2Positioning time consuming comparison of various algorithms
由图2可知,在相同计算平台下筛选出同样数目节点,ManDis算法、DirDeltG算法效率最高,其次是Sum(cos(2θ))算法、RecuDeltQ算法、D2T算法,RecuDeltG 算法定位耗时相对较大。
在场景二的情形下,进行各算法定位精度对比实验,实验结果如图3所示。
图3(b)是图3(a)的细节放大版。由图3可知,在只有卫星节点的情况下,RecuDeltQ算法、RecuDeltG算法、MinGDOP算法均是以GDOP作为筛选标准,故RecuDeltQ、RecuDeltG算法筛选结果的定位精度与MinGDOP算法得到的最优节点集合精度效果几乎一致,其次是D2T算法、DirDeltG算法。ManDis算法、Sum(cos(2θ))算法虽然运算效率较高,但在定位精度效果上较前几种算法差很多,最差的是Sum(cos(2θ))算法。
图3各算法定位精度对比
Fig.3Positioning accuracy comparison of various algorithms
图4是RecuDeltQ算法在不同k取值条件下的定位耗时、定位精度对比结果(场景二实验数据)。实验结果与2.3节分析一致。
在集群混合合作定位解算的情况下,即备选锚节点既包括卫星节点又包括邻居无人机节点时,设计以下实验场景三。
场景三:采用场景二的GNSS与时间段,设计由196架固定翼无人机组成的无人机集群,部署在以本地导航系统坐标原点为中心的5 000 m×5 000 m范围内,各无人机初始点随机均匀分布在整个场地300~500 m高度范围内(如图5所示);各无人机飞行路径包含直线飞行、曲线飞行,均匀分布在整个场内(如图6所示);飞行模式为定高飞行;无人机节点内部采用GNSS/INS组合导航;GNSS信号频率为1 Hz;使用EKF作为滤波算法。RecuDeltQ算法中使用的节点权值为该节点在EKF后标准差的倒数。整个集群中,30%的无人机节点能够接收到4颗及以上的卫星信号进行定位解算(在可见卫星集合中随机选取),其余70%的无人机节点只能收到4颗以下的卫星(随机选取),无人机间P2P测距和通信范围均为500 m(如图7所示)。为了实现三维空间位置解算,每个未定位无人机节点选择5个节点(邻居锚节点或者卫星节点)进行合作定位解算,采用蒙特卡罗仿真策略,仿真飞行时长500 s,仿真次数为100次。
图4RecuDeltQ算法在不同k取值条件下的定位耗时、定位精度对比
Fig.4Comparison of positioning time consuming and positioning accuracy of RecuDeltQ algorithm under different k values
图5随机生成无人机集群飞行场景
Fig.5Randomly generate UAV swarm flight scenarios
仿真实验中采用均方根误差(root mean squared error,RMSE)衡量定位精度(只统计需要混合合作定位的节点),公式如下:
(10)
其中,(X,Y,Z)、(x,y,z)分别是真实和解算的坐标值,m为当前需要混合合作定位的节点总数。
图6随机生成的无人机集群飞行路径
Fig.6Randomly generated UAV swarm flight path
图7无人机集群通信&测距时变拓扑
Fig.7UAV swarm communication &ranging time-varying topology
仿真运行500 s,前110 s实时输出的RMSE数据如图8所示。分别统计各算法的平均定位精度,本文提出的RecuDeltQ算法具有最好的定位精度效果,RecuDeltG算法其次,DirDeltG算法效果最差,如图9所示。
图8定位精度对比
Fig.8Positioning accuracy comparison
本文采用累积分布函数(cumulative distribution function,CDF)来更直观地表示各算法定位性能的对比差异,CDF对比结果如图10所示。
综合考量各算法的平均定位耗时与平均定位精度,以RecuDeltQ算法为基准,分别统计各算法与RecuDeltQ算法的平均定位耗时、平均定位精度比值,结果如图11所示。RecuDeltQ算法相较于RecuDeltG、DirDeltG、Sum(cos(2θ))、ManDis、D2T算法在定位精度上分别提升了17.4%、44.4%、43.2%、32.9%、18.7%的算法性能。RecuDeltQ算法相较于RecuDeltG、D2T算法在计算耗时上分别提升了71.5%、51.9%的算法性能。
图9平均定位精度对比
Fig.9Average positioning accuracy comparison
图10CDF对比
Fig.10CDF comparison
图11定位精度比值与定位耗时比值情况
Fig.11Positioning accuracy ratio and positioning time consumption ratio situation
4 结论
本文以无人机集群合作定位为背景,提出了一种基于定位方差贡献的优化递推节点筛选算法,优化设计了运算量调节因子k,综合考虑了定位精度与运算量之间的平衡,在不损失较大定位精度的情况下,大大减少了筛选算法的计算量。本文的主要创新点包括:①使用WLS定位解的协方差矩阵之间的递推关系Qn-1=Qn+ΔQn-1构造了节点筛选算法,该算法减少了大量的高阶矩阵运算、矩阵求逆运算,并且具有较高筛选准确度;②优化设计了运算量调节因子k,使得递推算法的复杂度从O(N2)下降到O(N(N-logkN));③算法综合考虑了定位精度与运算量之间的平衡,不仅适用于卫星星座节点筛选场景,同样也适用于卫星节点/邻居无人机节点混合合作节点筛选。