扑翼飞行器的多机协同飞行设计与实践

2022-01-25 18:55张泽坤韩建福宋广华杨波威
计算机工程与应用 2022年2期
关键词:航点飞手固件

张泽坤,韩建福,宋广华,杨波威

浙江大学 航空航天学院,杭州 310027

近年来,随着复合材料、现代制造技术、嵌入式计算技术、飞行控制技术的发展,出现了各式的微小型飞行器。扑翼飞行器(flapping-wing aerial vehicle,FAV)是一种模仿动物飞行模式的新型飞行器,和传统的固定翼和旋翼飞行器不同,其具有重量轻、声音小、具备仿生性的特点[1],在民用和军用领域具有较高的利用价值,如机场驱鸟、晚会表演、协同侦察等场合。

人们提出并设计了各式模仿动物飞行方式的扑翼飞行器结构,有蝙蝠、蜂鸟、蜻蜓、苍蝇、海鸥等[2-7]。其中比较有名的有麻省理工学院的Phoenix扑翼机[8]、德国Festo公司的SmartBird[9]。随着人们对扑翼飞行器驱动及机械结构的不断研究和改进,扑翼飞行器目前已经具有较高的飞行性能。但是目前对扑翼飞行器的控制仍以手动为主。虽然在专业飞手的操纵下可以最大程度地发挥扑翼飞行器的飞行性能并应对多种可能的突发状况,但这对飞手的数量和操控水平提出了很高的要求。在2019年的春节联欢晚会上数十名专业飞手操纵40架仿凤凰的扑翼飞行器完成了壮观的飞行表演。然而这种需要大量专业飞手的表演很难在较小的表演场合推广开来。

现阶段对扑翼飞行器的研究主要集中于其结构设计和气动分析。由于扑翼飞行器在扑动的过程中机翼形变的不确定性且容易受到风等外界因素的影响[10]。因此,扑翼飞行器的稳定自主控制一直是无人机飞行控制领域的研究热点和难点。

在一些扑翼飞行器的应用场合,如飞行表演、机场驱鸟等,需要大量飞手对每一架扑翼飞行器进行控制。此外,受到阳光、雾霾等天气环境的影响,飞手的视野也会受到影响。传统的基于手动控制扑翼飞行器的方式难以大规模推广,而且飞行效果容易受到天气的影响。基于串级PID的扑翼控制器已经在工程上得到了应用[11-12]。但是使用串级PID控制扑翼飞行器不具有自适应性且无法应用于可调变化中[13],使得扑翼飞行器的多机控制难以像旋翼机和固定翼飞机那样保持稳定的队形。在一些特定的应用场景中,基于串级PID的控制方式来实现多机协同飞行仍具有广泛应用前景,比如机场驱鸟、飞行表演等。刘军涛[1]提出了一种带翼型的扑翼飞行器结构以及机构方案,并基于PX4平台利用串级PID对扑翼飞行器进行姿态和位置控制,成功完成了户外飞行试验,从而证明了使用串级PID控制扑翼飞行器在一些特定场合应用的可能性。

PX4作为一种专业的板载飞控软件,为固定翼和多旋翼飞行器提供了很好的串级PID控制算法支持。基于PX4框架对扑翼飞行器的特性进行定制,可以让扑翼飞行器具备高度和航点跟踪能力。QGC地面站可以对PX4提供原生支持,通过QGC作为地面控制中心将主机的位置作为航点发送给从机就能实现多机协同飞行。

本文提出一种基于PX4固件和QGC(QGroundControl)地面站框架的扑翼飞行器多机控制方案。以解决传统手动多机控制人手不足、视野范围小、成本高等问题。最后,对该系统进行了实际飞行试验,验证了这种控制方式的可行性。整个系统结构如图1所示。QGC地面站作为控制中心,不断接受主机发送过来的航点信息,经判断后将航点发送给从机。

图1 系统总览Fig.1 System overview

1 扑翼飞行器设计

扑翼飞行器是一种集仿生学、机械、控制、空气动力学等多学科为一体的飞行器。近年来随着人们对扑翼飞行器的不断研究,出现了各式性能优异扑翼飞行器。目前比较前沿的两种扑翼飞行器有:麻省理工学院的Phoenix扑翼飞行器(如图2所示)机架以碳纤维制成,翅膀采用单段翼设计。Festo公司的研制的SmartBird扑翼飞行器(如图3所示)由碳纤维和聚氨酯泡沫制作而成,翅膀采用双段翼设计。

图2 MIT的Phoenix扑翼机Fig.2 Phoenix of Massachusetts Institute of Technology

图3 Festo公司的SmartBirdFig.3 SmartBird of Festo

通过对以上两种的扑翼飞行器的研究,研制了单段翼和双段翼两种具有较好飞行性能的扑翼飞行器。双段扑翼飞行器采用双曲柄摇杆结构,翼展约1.8 m,重量约400 g,单段翼扑翼飞行器采用空间连杆结构,翼展约1 m,重量约280 g,其外形如图4所示。单段翼扑翼飞行器相比于双段翼扑翼飞行器具有更快的飞行速度,在飞行时可以到达7 m/s的飞行速度,且相比于双段翼具有更好的爬升率。本文选用单段翼扑翼飞行器作为测试协同飞行的飞行器。

图4 自主设计的扑翼飞行器Fig.4 Independently designed flapping-wing aerial vehicles

2 扑翼飞行器自主飞行控制

自主飞行控制能够让飞行器自主完成预先设定的飞行任务,如自动起降、按航点飞行等,只有当扑翼飞行器故障时飞手才会对飞行器进行人工干预。基于串级PID的多旋翼飞行器和固定翼飞行器的控制理论已经比较成熟,本文通过将串级PID应用于扑翼飞行器上,来实现扑翼飞行器的多机协同飞行。

PX4是可以应用于多种载具类型的开源飞行控制软件,支持多旋翼飞行器、固定翼飞行器、直升机、无人车等载具。PX4的高度模块化设计为无人机应用提供了丰富且稳定的开发工具包,方便无人机开发人员在PX4固件的基础上对特定机型进行定制。本文实现的扑翼飞行器的自主飞行控制由基于PX4固件的串级PID实现,其位置控制器(如图5所示)使用L1制导律[14]来进行制导,使用TECS(total energy control system)[15]来同时控制飞行器的空速和高度。位置控制器输出扑翼飞行器当前的期望姿态角和油门,然后输入姿态控制器对扑翼的姿态进行控制。

图5 扑翼飞行器位置控制Fig.5 Position control of flapping-wing aerial vehicle

扑翼飞行器的姿态控制机理和传统的三角翼飞行器类似。飞行器的姿态控制通过串级PID来实现,其外环通过PID控制姿态角,内环通过PI控制期望角速度。

现在的扑翼飞行器的制作仍然需要大量的手工操作,难以保证每一架扑翼飞行器在结构上都完全相同。单段式扑翼飞行器参数的确定,需要飞手先在默认参数下进入自稳模式测试扑翼飞行器的盘旋半径及机身抖动情况,当扑翼飞行器在自稳模式下可以灵活地转弯,且具有较好的爬升效率,就可以进一步进行自动起降和按航点飞行试验。

扑翼飞行器的自动起飞和降落可以让飞行器在起飞和降落阶段无需人为干预,实现自主的起飞和降落,大大降低了起飞难度,且可以方便扑翼飞行器回收。自动起飞一般在自主飞行控制的起飞阶段使用,飞行器将第一个航点作为起飞航点,当飞行器在起飞阶段达到了起飞航点可接受半径后,飞行器完成起飞。PX4固件对飞行器的起飞方式包含滑跑起飞和手抛起飞,本文所设计的扑翼飞行器没有起落架,需采用手抛的方式起飞。在原生PX4固件中,若飞行器采用手抛起飞方式,飞行控制系统会在检测到飞行器加速度到达一定阈值之后将油门从怠速状态的20%迅速增加到100%。在实际飞行试验中发现,这样的油门控制容易导致在起飞阶段扑翼飞行器翅膀连杆部分断裂(如图6所示)。本文采用的手抛式起飞策略将其修改为在起飞阶段2 s之后才会将油门加到最大,这样可以很好地在起飞阶段保护扑翼飞行器不受损坏。

图6 断裂的翅膀连杆Fig.6 Broken wing connecting rod

自动降落是当扑翼飞行器进行自主飞行任务时,在检测到下一个航点为降落航点时触发。扑翼飞行器的降落方式和固定翼和多旋翼稍有区别。由于单段翼扑翼飞行器滑翔能力较弱,当降落时,若油门量小,单段翼扑翼飞行器会直接坠落。本文采用的方案是当扑翼飞行器处于降落阶段时,仍然保持一个较小的油门使得扑翼飞行器能够以一个较低的频率扑动,这种较低频率的扑动可以维持飞行器的平衡性,同时不至于降落太快导致扑翼飞行器损毁。

3 基于QGC框架的多机协同飞行策略设计

基于PX4固件可以使飞行器实现按航点飞行和高度控制。利用无人机地面站对扑翼飞行器进行基于航点的控制,使得多架扑翼飞行器可以沿着由主机在飞行阶段生成的航线飞行,从而达到多机协同飞行的效果。QGC地面站可以对PX4固件提供原生支持且软件架构高度模块化,工程人员可以方便地在原生代码的基础上进行定制和修改。

如图7所示,利用QGC地面站对扑翼飞行器进行集中控制,将主机的位置作为航点信息传送给从机,地面站首先判断从机当前的飞行状态是否适合前往主机当前的位置,若是,则主机发送航点信息给从机,从机在接受到从地面站发送过来的航点信息后前往主机的位置。

图7 扑翼飞行器协同飞行基本流程Fig.7 Basic process of flapping-wing aerial vehicle cooperative flight

考虑到扑翼飞行器在飞行过程中的不稳定性,减少地面站向从机发送主机的位置信息的频率可以放宽从机对主机的跟随条件。扑翼飞行器协同飞行时,地面站发送给从机的航点依据发送频率可以分为以下两种策略:(1)主机每到达一个航点给所有满足条件的从机发送航点信息;(2)主机定时向所有从机发送航点信息。

对于第一种策略,从结果来看从机会跟随着主机完成相同的航线,这种采用较低频率发送航点的方式可以大幅度地降低协同飞行的风险。和将所有飞行器设置相同的航线进行协同飞行的方式相比,这种方式的优点是可以在飞行的过程中决定哪架无人机是主机,且可以在飞行过程中解散或启动协同飞行。第二种策略具有很大的风险,由于扑翼飞行器无法悬停,这种按照时间间隔的发送方式可能会导致主机和从机相对位置的频繁变化,甚至可能出现从机会接收到来自后方的航点的情况,这种来自后方的航点不仅极易产生坠毁的危险,而且还会破坏协同飞行的效果。本文采用第一种方法来实现协同飞行方案。

在进行自主程序控制飞行过程中,扑翼飞行器易产生姿态抖动,加上易受到风等外部环境因素的影响,其机械结构容易在长时间飞行过程中产生损耗进而导致损坏。为了防止扑翼飞行器机械结构部分的断裂,需要在进行协同飞行前对每一架扑翼飞行器进行飞行前检查,具体的做法是首先检查机身连接部分是否有松动,然后在地面上大油门扑动1 min,在判断结构可靠后再进行程控飞行。

此外,在多机协同飞行过程中,飞行器和地面站之间的通信链路可能会暂时中断,出现通信数据丢失的情况。由于目前采用的方法是通过地面站进行集中控制,如果扑翼飞行器和地面站之间的通信完全中断,那么需要飞手使用遥控器控制出现问题的扑翼飞行器完成回收。从机的通信丢失不会影响整个协同飞行的进行,但若主机出现故障或通信丢失,如果此时地面站仍然还在编队控制过程中,此时地面站会因为没有主机而取消协同飞行,所有从机执行自己的飞行任务。如果在主机和地面站通信丢失之后仍然想要维持协同飞行的状态,地面站需要在检测到主机通信丢失之后选择出此时相对最靠前的从机作为主机。

为了进一步降低扑翼飞行器通信丢失的风险,当从机到达了主机给出的上一个航点位置时,从机会回到自己的航线任务中。这样做有两个好处:(1)从机不需要在已经到达了航点之后在原航点盘旋等待主机位置;(2)当主机在协同飞行中途出现通信中断时,从机可以在到达了上一个航点之后执行自己的飞行任务,并通过完成自己的飞行任务返回。

在多机协同飞行的过程中,容易出现从机超越主机的情况,这样会导致主机给出的航点在从机后面。一种简单的做法是根据主机和从机执行任务的快慢,进而对从机和主机的航线做出调整,使得主机和从机航点之间的距离大致相等,这可以通过比较两架飞行器执行航点的序号大小来判断它们的相对位置。一般情况下,主机会先于从机起飞,但是当从机的位置先于主机时,主机发送的位置信息不再有效,从机执行自己的任务,直到主机发来一个先于从机的航点。

4 飞行试验

基于上述设计,在完成扑翼飞行器制作和地面调试的基础上,开展了大量的扑翼飞行器飞行试验,试验包括单机自主飞行试验和多机协同飞行试验;经过多轮迭代,进一步优化了扑翼飞行器的结构、飞控软件及GCS地面站软件。

将扑翼飞行器飞行控制及多机协同飞行引入到了浙江大学“飞行器设计与工程”本科专业的“嵌入式计算技术”课程的教学实践环节中,激发了学生的学习热情,提高了学生的创新实践能力。学生分组进行了扑翼飞行器飞控软件与GCS地面站软件的联机调试及试飞试验。

4.1 单机自主飞行试验

通过单机的自主飞行试验测试扑翼飞行器的自主飞行能力。首先在QGC地面站中规划飞行航点,由飞手通过自稳飞行确定当前扑翼飞行器的对应参数,然后测试扑翼飞行器的自动起飞,按航点飞行,自动降落能力。

本次试验设置4个航点,其中1个起飞航点高度16 m,两个普通航点高度分别为18 m和16 m,最后一个降落航点高度为0 m。其卫星图、轨迹图和三维轨迹图如图8~10所示。

图8 单机自主飞行卫星图Fig.8 Single vehicle autonomous flight satellite image

图9 单机自主飞行轨迹图Fig.9 Single vehicle autonomous flight trajectory diagram

图10 单机自主飞行三维轨迹图Fig.10 Single vehicle autonomous flight 3D trajectory diagram

4.2 协同飞行试验

通过两架扑翼飞行器测试扑翼飞行器的多机协同飞行。其中以一架扑翼飞行器作为主机,其余一架作为从机。试验时,从机本身不执行本机的飞行任务,而是飞往通过QGC地面站发送过来的航点位置。试验使用的两架扑翼飞行器如图11所示。

图11 试验用两架扑翼飞行器Fig.11 Two flapping-wing aerial vehicle for test

主机设置4个航点,其中一个起飞航点高度为16 m,两个普通航点的高度分别为18 m和16 m,最后一个降落航点的高度为0 m。从机设置的航点和主机基本相同,但是从机在主机起飞之后不再执行自己的飞行任务,只接受通过地面站传来的主机到达某航点时的位置。其飞行轨迹如图12所示,现场飞行试验如图13所示。

图12 两架飞机协同飞行三维轨迹图Fig.12 Two vehicle cooperative flight 3D trajectory diagram

图13 飞行试验现场图Fig.13 Flight test site image

5 结束语

本文针对扑翼飞行器自主控制难题,以开源QGC地面站和PX4固件为基本框架,并进行了定制化改造,实现了程控飞行控制;进而设计并实现了一种控制扑翼飞行器多机协同飞行的方法,通过飞行试验验证了该方法的可行性。这种多机协同控制方式可以可靠地实现对扑翼飞行器位置要求不严苛的多机协同飞行,并可以大大减少对专业飞手数量的要求,应用前景广阔。通过将扑翼飞行器控制与多机协同技术引入到“嵌入式计算技术”的课程教学与实践环节,提高了学生对嵌入式计算技术面向领域应用的认知和实践创新能力。

猜你喜欢
航点飞手固件
无人机随舰飞行时的航路勾径偏移
从5G“管家”到无人机“飞手”:农村新业态激发新活力
随着无人机飞防的普及
——“飞手”成了农村热门新职业
我当直播网红、你做麦田飞手 “乡村中关村”会不会来
基于网格的航道模式提取算法研究∗
世界智能无人机大赛竞速赛 国内国外飞手津门冲刺
基于固件的远程身份认证
谷歌公司推出计算机固件分析工具帮助用户阻止恶意软件入侵
英特尔发布免费固件引擎
提取ROM固件中的APP