集群编队控制有集中式和分布式两种。集中式控制需要一个控制中心,受限于中心计算机计算资源的限制,无法做到大规模编队,且中心计算机被击毁后,系统将失控。

分布式控制没有一个中心点对集群进行控制,通过集群中相邻个体之间的信息交换实现编队控制,理论上编队可以做到无穷大,而且集群系统的灵活性、可扩展性、鲁棒性更高。

1.分布式控制的几种控制方式

1.1 基于长机-僚机的分布式编队控制方法

其基本思想为leader-follower机制,是一种类似于树的结构,由优先级高的节点向优先级低的节点传送信息,层层下达,以实现无人机集群的控制。这种方法是自上而下的信息传输,没有精确的队形反馈,如队列中出现故障无人机、导致了信息传送不到位等,系统将处于瘫痪。

1.2 基于行为的分布式编队控制

根据对无人机系统实施控制后所期望产生的行为模式,对每个无人机的个体行为规则和局部控制方案进行设计,得到一个“行为库”并储存于编队控制器中。当无人机系统得到指令后,会根据指令在行为库中选取行为并执行。无人机之间的协调则依赖于无人机之间的位置、状态输入值等信息的共享,每架无人机需获取周围无人机的信息。这种方式的实现较为简单、计算量较小,但只能描述事前设计的、有限的动作,难以实现复杂、精确的控制。

1.3 基于人工势场的分布式编队控制

无人机系统中的每一个个体,都与周边的其他无人机、环境产生相互作用。不同无人机之间需避免碰撞,故产生斥力场;不同无人机之间产生集群需要的引力场;无人机与障碍物之间产生斥力场;无人机与目标位置之间产生引力场。多种作用的合力下,无人机沿最小化势能方向运动。

1.4 基于虚拟结构的分布式编队控制

2.AirSim集群编队控制算法

这里的控制算法参考论文[2]实现,是一种比较接近于人工势场的方法。考虑以下三种情况:

  • 避碰,考虑无人机与无人机之间的斥力场:
    简单的集群调度及监控 集群控制_java
  • 中心聚集,考虑无人机集群所需的引力场:
    简单的集群调度及监控 集群控制_学习_02
  • 速度一致,考虑无人机与目标点之间的引力场:
    简单的集群调度及监控 集群控制_服务器_03

其中,

  • 简单的集群调度及监控 集群控制_简单的集群调度及监控_04为系数;
  • 简单的集群调度及监控 集群控制_学习_05表示第简单的集群调度及监控 集群控制_学习_06个无人机周围的无人机,简单的集群调度及监控 集群控制_服务器_07表示周围无人机的数量,一种选择方法为KaTeX parse error: Undefined control sequence: \and at position 16: N_i=\{j|j\neq i\̲a̲n̲d̲ ̲||r_{ij}||<r^{m…,即选择每个无人机半径简单的集群调度及监控 集群控制_java_08范围内的无人机邻居;
  • 简单的集群调度及监控 集群控制_无人机_09为两架无人机之间的距离,简单的集群调度及监控 集群控制_学习_10为无人机到目标点之间的距离。

得到以上三个速度后,相加即为最终的无人机速度指令
简单的集群调度及监控 集群控制_简单的集群调度及监控_11
对其进行限幅后为
简单的集群调度及监控 集群控制_java_12

[1] 技术分享 | 浅谈——四种集群分布式控制算法:https://www.bilibili.com/read/cv12625148/

[2] Schilling F , Lecoeur J , Schiano F , et al. Learning Vision-based Cohesive Flight in Drone Swarms[J]. 2018.