汤明文
(国网福建省电力有限公司福州供电公司,福州350000)
ARM和NuttX的多旋翼飞行器飞行控制系统设计*
汤明文
(国网福建省电力有限公司福州供电公司,福州350000)
针对多旋翼飞行器在特种任务需求复杂作业中的稳定、安全和可靠性问题,提出一种基于ARM和Nutt X的无人飞行器飞行控制系统。该系统采用基于Cotex-M4内核的低功耗和高性能TM4C123GH6PZ芯片作为主控单元,并结合双冗余惯性测量传感单元完成高可靠硬件电路设计;并以四轴八旋翼无人机为载体,完成了系统功能和性能的飞行试验验证。试验结果表明,该系统不仅能满足飞行控制的稳定性和可靠性需求,而且可扩展性好,软件算法的运行资源充足。
Cotex-M4;TM4C123GH6PZ;Nutt X;多旋翼飞行器;多任务
近年来,随着无人机技术的快速发展,多旋翼飞行器以其机械结构简单、机动性好、悬停凝视、定点悬拍、垂直起降等优点,已成为许多国家或科研机构的研究热点,在军事和民用多个领域也都有广阔的应用前景。随着多旋翼飞行器任务功能作业需求的日趋复杂性,无人机对高可靠、安全和高稳定飞行控制系统的需求尤为迫切。一旦飞控系统出现问题,无人机就会失去控制进而坠落。因此,拥有一个多任务处理能力强和安全稳定的飞控系统显得至关重要。
针对多旋翼飞行器在复杂作业中的稳定、安全和可靠性问题,本文提出一种基于ARM和Nutt X的无人飞行器飞行控制系统,充分发挥了ARM内核微处理器的高性能、低功耗、外设接口丰富的优点和嵌入式实时操作系统Nutt X的多复杂任务程序控制优点。其中,ARM内核微处理器选用TI公司的TM4C123GH6PZ芯片,作为飞控系统的主控单元,该芯片是基于Cotex-M4内核实现,最高具备80 MHz主频,非常适用于本文中多旋翼无人机中高性能、低功耗嵌入式控制领域,它同时具备多个高精度定时器和多种通信接口,可以输出多达16路互补且带有死区时间控制的PWM波形,完全兼容旋翼数量不同的飞行器;Nutt X是一个强调标准兼容和小型封装的实时操作系统,具有从8位到32位微控制器环境的高度可扩展性,主要遵循Posix和ANSI标准,采用模块化设计,完全可抢占式内核,并且支持类Unix的ScIipt控制和类Bash的NuttShell控制台,非常适用于本文中的飞控系统执行复杂任务时多旋翼无人机多项飞行功能任务的控制实现。
1.1 系统硬件总体架构设计
多旋翼飞行器飞控系统的硬件结构包括电源模块、惯性测量传感器模块、无线模块、SD卡存储模块及USB转串口电路等部分,系统框图如图1所示。其中,电源模块能够提供全冗余5 V输入,TM4C123GH6PZ通过SPI总线及I2C总线采集得到惯性测量传感器信号,并实时解算出当前飞行位置和姿态,然后根据遥控器发送的目标姿态及当前的姿态差计算出PID电机增量,最后将PWM信号提供给电子调速器来实现飞行器的稳定飞行。此外,系统能够通过USB或者无线数传模块与地面站进行通信,同时,飞行中的所有姿态、位置数据和遥控操作数据均可存于SD卡中,方便对系统进行调试。
图1 飞控系统硬件系统框图
1.2 电源模块设计
电源模块采用芯片LTC4417进行电源管理,电路图如图2所示。LTC4417可根据优先级将3个有效电源之一连接至一个公共输出端,从3个输入中选择优先级最高的电源。优先级由引脚分配来确定,V1被分配了最高的优先级,而V3则为最低的优先级。当某个电源的电压连续处于其过压(OV)或欠压(UV)窗口之内的时间至少为256 ms时,此电源就被定义为“有效”。假如优先级最高的有效输入脱离了OV/UV窗口,则立即将该通道断接,并把优先级次高的有效输入连接至公共输出。基于冗余供电设计思想,当主电源发生故障时,系统可以在第一时间内不停机切换至备份电源,由此可有效提高飞行的安全性,在工程实践中具有重要意义。
图2 电源模块电路
1.3 传感器模块
为进一步提高飞控系统的安全性和可靠性,本文采用了双惯性测量传感器冗余设计。主陀螺仪采用ST公司的3轴16位精度传感器L3GD20 H;3轴加速度计和3轴电子罗盘采用LGA-16封装的LSM303D;气压计采用瑞士MEAS公司的MS5611芯片,包含一个高线性度压力传感器和一个超低功耗的24位∑型A/D转换器,分辨率可达到10 cm。此外,还采用了Invensense公司的MPU 6050三轴陀螺仪/加速度计作为飞控系统的惯性姿态测量备份单元,保证在主惯性测量传感器发生故障时,飞控系统仍能正常工作。上述所有传感器都具备高速SPI接口,与主处理器可并联在同一总线上,简化了PCB设计。此外,还采用了I2C总线接口的外置罗盘HMC5883,进一步提高系统的抗电磁干扰能力。
1.4 无线模块
无线模块包括遥控接收模块和与地面站通信数传模块两个部分。
为了节省I/O资源,简化布线操作,遥控接收模块采用脉冲位置调制(Pulse Position Modulation,PPM)形式输出,只需一根信号线即可传输多个通道的PWM信号。
无线数传模块基于新型无线射频模块XTend进行设计。该模块是DIGI公司研发的基于ZigBee技术的带独立RF的调制解调器,能提供长距离(高达40英里)低功耗的无线解决方案,工作在5 V电压下,电流消耗只有780 m A,输出功率可达1 W(30 dBm)。该模块可输出符合FCC标准的4 W功率,同时提供256位AES数据加密功能,并在调制解调器中加入了抗干扰技术,保证了高空飞行时数据传输的可靠性。
2.1 基于NuttX的飞控任务分配
基于Nutt X的程序架构设计思想是将一个大的应用程序分成多个相对独立的任务来完成。本飞行控制系统的所有功能都通过任务进程实现,主要包括传感器数据采集、姿态解算、遥控器数据采集、姿态控制、数据通信及日记记录等,以下将对各个任务进程进行介绍。
①传感器数据采集进程:在飞行过程中不断地采集所有传感器数据,并对读取的传感器数据进行处理;
②姿态解算进程:根据采集得到的传感器数据,基于扩展卡尔曼滤波器解算出飞行器当前的姿态;
③遥控器数据采集进程:采集并解算遥控器接收机输出的PPM脉冲信号,从而得到对应的姿态指令;
④姿态控制进程:将得到的姿态指令与当前姿态数据进行比较,基于前馈PID计算出当前所需的PID控制量,并分配到各旋翼转速,以达到姿态控制的目的;
⑤数据通信进程:一方面,接收地面站发送的指令,主要包括起飞、降落、返航及姿态改变等;另一方面,将飞控系统的参数实时回传给地面,主要包括当前姿态、遥控输入及电机输出等数据
⑥日记记录进程:将飞行过程中的主要飞行参数数据存储至SD卡中。
2.2 进程间通信
进程间通信是飞控系统软件架构的重要组成部分,本文采用了一种微对象请求代理机制(Micro Object Request Broker,μORB)来实现,其肩负了整个系统的数据传输任务,所有的传感器数据、遥控器PPM信号均通过μORB传输至各个模块进行计算处理。μORB实际上是多个进程打开同一个设备文件,进程间通过此文件节点进行数据交互和共享。进程通过命名的总线交换的消息称之为主题,一个主题仅包含一种消息类型。每个进程可以订阅或者发布主题,其程序流程图如图3所示。
一个主题可以存在多个发布者,或者一个进程可以订阅多个主题,但是一条总线上始终只有一条消息,进程并不用关注信息交换的对象。这种机制可高效简洁地实现进程间数据的共享,进而提高程序开发效率。
基于上述的μORB机制,多旋翼飞行器飞控系统软件结构图如图4所示,其中姿态解算进程利用传感器采集进程得到的数据实时解算出飞行器当前姿态;姿态控制进程订阅遥控器及姿态数据,计算出当前所需的PID控制量,并推送至uORB;数据通信进程将接收到的控制指令发布,同时订阅系统各个参数数据;最后,日记记录进程从uORB处得到系统数据后进行存储。
图3 订阅/发布主题程序流程图
图4 多旋翼飞行器飞控系统软件结构图
为验证设计的飞控系统的功能和性能,本文以轴距为750 mm的四轴八旋翼异形飞行器为测试平台,对系统进行了室外飞行实验,实验场景。
图5为所得到横滚、俯仰和偏航角的响应曲线,从实验结果可以看出,飞行姿态角始终能快速准确地跟踪指令值,保证飞行器的稳定飞行,达到系统设计的要求。此外,通过Nutt XShell可以得出TM4C的空闲运行资源达到了62.17%,能满足后续更强大的各种运算及应用开发需求。
图5 飞控系统姿态采集的实验结果曲线
本文在充分发挥ARM处理器的高性能、低功耗和接口丰富,以及Nutt X系统的可多进程任务处理优势基础上,实现了一种可靠、稳定和高效的多旋翼飞行器飞行控制系统设计,并在四轴八旋翼无人机平台上完成了该系统功能性能的外场飞行试验验证。试验结果表明,通过在TM4C123GH6PZ上嵌入Nutt X实时操作系统,可实现多任务进程间的信息共享和交互,高效地完成多旋翼飞行器的飞行控制;通过采用冗余的惯量测量传感单元,实现较稳定的动、静态姿态角测量,并进一步提高飞控系统的容错设计和可靠性;该系统不但具备复杂任务作业能力,而且可扩展性好,非常有利于用户的后续开发,为多旋翼无人机飞行控制系统设计提供了一种行之有效的解决方案。
[1]常国权,戴国强.基于STM32的四轴飞行器飞控系统设计[J].单片机与嵌入式系统应用,2015(2):29-32.
[2]高嘉阳.嵌入式CORBA的精简ORB实现[J].计算机工程, 2004,30(4):73-75.
[3]郭晓鸿,杨忠,杨成顺.一种基于STM32的四旋翼飞行器控制器[J].应用科技,2011,38(7):35-40.
[4]杨浩,杨斌,杨成顺.嵌入式Linux实时控制的四轴飞行器进程分析[J].单片机与嵌入式系统应用,2015(11):26-29.
[5]李昌.基于μC/OS III的多功能控制器[J].单片机与嵌入式系统应用,2014(3):33-38.
汤明文,主要从事智能电网、无人机在电网应用等相关领域研究工作。
Flight Control System for Multi-rotor Aircraft Based on ARM and NuttX
Tang Mingwen
(State Grid Fujian Electric Power Company Fuzhou Power Supply Unit,Fuzhou 350000,China)
Aiming at the problems of the multi-rotor aircraft under complex task requirement such as the stability,safety and reliability, the flight control system of unmanned aircraft based on ARM and Nutt X is proposed.This system takes TM4C123GH6PZ as the control unit,and the reliable hardware circuit is designed using the redundancy IMU.Lastly,the function and performance are verified on the four-axis eight-rotor unmanned vehicle.The experiment results show that the proposed method can meet the stability and reliability requirements,and the soft resource is also rich enough to run,which has a high value in the engineering application.
Cortex-M4;TM4C123GH6PZ;Nutt X;multi-rotor aircraft;multitask
TM368.2
:A
杨迪娜
2016-05-30)
*国家级-新型大气数据传感系统的状态自确认方法研究(61401414)。