APP下载

基于实时操作系统的小型四轴飞行器设计

2017-03-01杨述斌黄俊榕

武汉工程大学学报 2017年1期
关键词:陀螺仪飞行器姿态

杨述斌,黄俊榕

武汉工程大学电气信息学院,湖北武汉 430205

基于实时操作系统的小型四轴飞行器设计

杨述斌,黄俊榕

武汉工程大学电气信息学院,湖北武汉 430205

针对四轴飞行器控制实时性较差的问题,提出了一种利用移植实时操作系统的STM 32单片机进行飞行器控制的解决方案.以32位ARM(Advanced RISCMachines)微控制器STM 32F103CB单片机作为飞行器的控制芯片,采用四元数结合PID(proportion,integral&derivative)控制算法并利用RTX(Real-Time eXtension)实时操作系统对四轴飞行器进行姿态控制,同时使用多传感器并发处理技术实现了四轴飞行器的数据采集.实验表明,本设计实现了四轴飞行器上,控制信号和电池电量数据的双向、快速传输,获取的姿态信息精度高,四轴飞行器姿态角更新更迅速且易操作,提高了飞行器运行的稳定性,具有实时性.

RTX实时操作系统;STM32F103CB;四轴飞行器;并发处理

四轴飞行器是一种比较新型化的飞行器,目前国际上对四轴飞行器的研究比较热门,它在民用与军事领域都拥有十分广阔的应用前景.四轴飞行器的灵活性主要体现在能够在空中自由悬停和快速移动两个方面.与传统的直升飞机相比,他的机械结构简单,因此成本较低;操控方便,因此稳定性较高[1].四轴飞行器除了可用于航拍之外,还有诸如大气气象数据采集、运送物资等方面的应用[2].

针对四轴飞行器的姿态控制问题,学者们提出了不同的控制算法,例如自适应控制方法、针对无人机的不确定性和非线性问题设计的DI/QFT控制器等.本设计在解决四轴飞行器的控制方面主要使用PID控制算法,并结合实验目标对样机进行建模仿真,同时使用地面站上位机软件进行飞行姿态仿真,验证其飞行的可靠性与稳定性[3].姿态测量所采用的是三轴陀螺仪和三周加速度计相结合的方式完成,将上述两传感器测得数据传给主控模块进行姿态解算得到滚动角、俯仰角、偏航角来分析飞行器的实时姿态.

在确保硬件电路正常功能的情况下,解决了部分电磁兼容问题.考虑到成本等综合因素,微控制器使用的是STM 32F103CB单片机;为保证控制的实时性,软件设计用了嵌入式实时操作系统RTX[4].实现飞行器对操作动作的迅速响应(响应时间小于20ms)、准确(角度变差在±5°以内),高度控制误差低于(30 cm),设计利用2.4 GHz频率的无线通信技术实现飞行器与地面站之间的双向通信,控制飞行器飞行轨迹,有效控制范围50m;自行搭载一块360mAh可充电电池(可额外扩充一块),正常情况下能不间断连续飞行5 min~7 min.采用STM32F103CB作为微控制器,其中飞行器还包括陀螺仪、各种传感器(气压计MS5611、电子罗盘HMC5883L)、无线通信模块(NRF24L01)、动力系统模块.

1 系统的总体设计

民用四轴飞行器的发展是伴随着单片机资源的丰富和一系列新型传感器的问世而出现的.因为不需要调整旋翼与飞行器之间的角度,4个螺旋桨与电机采用直接相连的结构.布局方面常有“十字形”布局和“✕字型”布局,四轴飞行器通过调整4个电机的转速来完成自身姿态的调整[5].本设计使用一款成熟的STM32单片机作为主控芯片,使用陀螺仪对其状态参数进行采集,使用无线收发芯片完成与外界实时数据通信,使用RTX嵌入式实时操作系统实现四旋翼飞行器的软件设计方案.飞行器总体设计框图如图1所示.

图1 系统整体结构Fig.1 Overall structure of the system

2 主要硬件电路设计

2.1 硬件总设计框架与硬件资源分配

飞行器的整个控制系统包括电源模块、姿态数据采集模块(包括陀螺仪、气压计、电子罗盘)、无线通信模块、旋翼空心杯电机、主控制器及接口与扩展等部分[6].

其中核心的控制器模块主要包括一块STM 32F103CB单片机,由意法半导体公司设计出品,其对比起廉价的C51系列单片机来说有非常丰富的外设资源,包括4个标准定时器、3个串口通信端口、2个SPI通信端口,以及2个12位高速A/D转换.根据主控模块所需完成的任务进行资源分配:分别控制4个无刷电机驱动;以IIC总线通信和陀螺仪(MPU6050)、电子罗盘(HMC5883L)进行通信的数据获取端和时钟提供端;使用的是硬件SPI总线通信与红外模块(NRF24L01)通信引脚.

2.2 电源模块

稳定的电流是任何控制系统正常运行的前提条件;对于四轴飞行器,还需要为电机的正常工作提供大功率的电源保障,同时由于使用电池供电,功耗、续航时间以及电池的重量都需要考虑[7].此外为了区分模拟电路部对地电压及数字电路部分对地电压,使用2个XC6206做三端稳压电源芯片[8].其中J7为电池插座,电源模块电路如图2所示.

图2 电源模块电路图Fig.2 Circuit diagram of powermodu le

2.3 姿态测量模块

姿态测量模块是四轴飞行器的一个非常重要的模块,由3个传感器协同工作完成.飞行姿态主要依靠三轴加速度计、三轴陀螺仪和电子罗盘共同完成;气压传感器的主要作用是获取温度和压力值,之后由微控制器计算出飞行器的海拔高度[9].其中,三轴加速度计和陀螺仪使用的是InvenSense公司的6轴MPU6050芯片如图3所示.

电子罗盘则使用Honeywell公司生产的HMC5883L型号磁阻计,如图4所示.

图3 陀螺仪外围电路图Fig.3 Peripheral circuitdiagram ofgyroscope

图4 电子罗盘外围电路图Fig.4 Peripheral circuitdiagram ofelectronic compass

根据压力值可计算出飞行器所处的海拔高度,同时使用测得温度对计算结果进行补偿修正(海拔越高,气压越低,温度越低),气压计是EMAS公司出品的MS5611数字气压传感器,其外围电路如图5所示.

图5 气压计外围电路图Fig.5 Peripheral circuitdiagram ofbarometer

2.4 无线通信控制模块

在调试阶段,可以利用无线通信控制模块将飞行器运行过程中的关键参数传回地面站以供分析[10].在实际操作中,利用自定义的控制协议,遥控器可以通过NRF24L01传输控制命令控制4个旋翼.通信模块电路如图6所示.

2.5 飞行器主控模块

主控模块核心部件是一块微控制器(Micro controller Unit,MCU),这块MCU在绝大多数的情况下直接决定飞行器的各种性能.在实时系统的任务调度下,MCU实时执行大量任务:读取Sensor数据[11]、以此数据为依据进行控制量计算、以该计算结果为依据控制电机等等.因此,在选择四轴飞行器的MCU时必须兼顾较高的主频以保证运算、控制的实时性,同时尽量降低MCU上的功耗以达到更长的续航时间;除此以外还应预留一定数量的IO口,以确保该设计在未来具有一定的可扩展空间(添加摄像头、GPS定位系统等设备).因此挑选了意法半导体公司的STM 32F103作为核心芯片。该芯片基于ARM Cortex-M3架构,工作频率最高达72MHz.飞行器主控模块电路如图7所示.

图6 通信模块电路图Fig.6 Circuitdiagram of communicationmodule

图7 微控制单元电路图Fig.7 Circuitdiagram ofmicrocontroller unit

2.6 动力系统模块

动力系统模块主要由驱动电路和电机组成,考虑到大小、重量、成本、电压匹配,选择直径为7 mm、长度为20mm空心杯电机.每个电机的重量为3.4 g,工作电压为3.3 V至4.2 V,工作电流在3.3 V时空转电流130mA,堵转电流1.2 A.其中J1为电机电源插座,电机电路如图8所示.

图8 动力驱动模块电路图Fig.8 Circuitdiagram ofmotormodule

3 系统软件设计

系统软件主要通过C语言对STM 32F103微控制器进行编程.实现微控制器对各传感器模块测量数据的采集,并将采集到的数据进行姿态融合后得到准确的位置信息,将这些位置信息送入PID控制程序获得控制信息,利用这些信息控制各旋翼提升力的调节[12].

经过对各个嵌入式实时操作系统的横向比较,最终采用意法半导体公司自带的RTX实时操作系统[13].主要利用RTX系统的任务调度器在各任务之间相互切换;包括获取各传感器数据信息的任务、各算法任务、通信任务、电机控制任务.在RTX任务调度器的介入下控制飞行器稳定运行.下位机软件架构如图9所示.

图9 下位机软件架构图Fig.9 Software architecture diagram of lower computer

3.1 飞行器各驱动软件设计

为了保证整个系统在RTOS软件下运行,选择RTX实时操作系统.按照硬件资源的需求,把所有需要处理的过程细分为具有不同优先级的任务,虽然同一时间点仍然只能运行一个任务,但是任务间的切换更合理,因此整个控制系统的效率得到了相应的提高,具体表现为提升了飞行器的反应速度与稳定性.软件工作流程应为:首先启动硬件初始化、操作系统初始化、设置好任务调度时间,然后创建其他需执行的任务,系统调度方式配置为抢占型内核,其优点是:一旦系统中优先级最高的任务准备就绪后,无论当前系统是否空闲都立即去执行优先级最高的任务.这样做可以确保系统的实时性,实现关中断的最大时间为1μs.用信号量、事件等进行通信.使四轴飞行器具有快速反应、易扩展的特点.软件流程图如图10所示.

图10 软件流程图Fig.10 Diagram ofsoftware process

3.2 硬件初始化与系统初始化

硬件初始化部分负责完成微控制器和各传感器之间互相通信,底层的总体初始化(调用自己的库函数),其功能有两部分:一是设置主频时钟,同时对将要使用的外围设备,如串口、IIC、EEPROM等进行初始化[14];二是RTX系统的内核启动代码的初始化.

底层初始化之后对RTX系统进行初始化,配置任务堆栈大小、设置不同任务优先级高低、新建任务句柄、新建任务之间通信所需的信号量、邮箱等,以及为了保证系统数据不会出错所需要的互斥量.

随着各个任务被一一创建,RTX系统介入程序的运行过程;即从所有准备就绪的任务中挑选优先级最高的开始执行.此时,对比无操作系统的大循环类型软件,实时系统的优势开始慢慢显现出来.并且涉及的外围设备资源越丰富,这种优势会越显著.

3.3 下位机软件任务设计

程序从主函数开始运行,随后各个任务被一一创建,创建的任务主要有NRF24L01的DMA方式通信任务,这个任务用于获取同步各个传感器的数据;电机控制任务,用于控制电机让飞行器保持空中航线;算法任务主要实现姿态融合与PID控制[15].

当姿态测量任务启动之后,陀螺仪和电子罗盘的数据将被MCU用来进行姿态解算,流程图如图11所示.

图11 姿态解算框图Fig.11 Diagram ofattitude calculation

在完成硬件及系统初始化之后启动RTX系统,创建所有任务,包括各传感器数据的获取、滤波及四元数算法、PID控制算法以及无线模块的通信任务;因为陀螺仪的动态特性比较高,所以对陀螺仪测量出的角速度进行积分,可得到旋转角度,该计算值是姿态解算的重要数据之一.以加速度计的测量数据作为基准对陀螺仪长期累积下来的角速度积分误差进行补偿(因为加速度计瞬时测量值不如陀螺仪可靠).电子罗盘测量的是地球磁场,由此数据可测算出飞行器的偏航角.

4 实验测试结果

图12是基于RTOS的四轴飞行器焊接成形后的底板图,尺寸为8 cm×8 cm.

图12 飞行器PCB板设计图Fig.12 PCB design ofaerial vehicle

因为动力系统是四轴飞行器飞行的关键,所以要实时控制电机转速,此刻STM 32读取无线接收机的PWM信号,获取遥控器的指挥信号,以此控制直流电机的速度;此时每个周期定时器不断更新捕获比较寄存器的数值,从而达到更新PWM占空比的效果.经过多次试验,最终选择控制频率200 Hz、分频系数13μs;自动重载寄存器数值为999.

通过匿名地面站上位机软件对四轴飞行器的飞行状态进行仿真,获得飞行器运行的时候传感器的数据,并且将飞行器工作的实时数据通过NRF24L01无线收发芯片接收,再由串口传输给主机,用于分析飞行器的实时姿态和各旋翼电机状态等关键数据.在保持四轴飞行器和上位机通信的情况下,使用逻辑分析仪检测IIC通信器件的SCL时钟线和SDA数据线,可以得到飞行器对遥控器指令的响应时间周期以及每次通信的数据之间的时间间隔,如图13所示.

图13 IIC的通信波形Fig.13 Communication waveform of IIC

在使用RTX系统时的情况下,通信时钟一直是间隔96μs左右,时钟信号非常稳定.其中姿态更新速度和姿态角稳定性的误差均在10%以内,海拔高度的准确度和通信误差均在5%以内.

测试的结果如表1和表2所示,可以看出在有RTX系统的情况下,飞行器的控制响应和通信周期的稳定性比没有RTX系统的“裸版”工作情况更优秀,达到了设计目的.

表1 RTX系统测试结果Tab.1 Test resultswith RTX system

表2 无RTX系统测试结果Tab.2 Test resultswithoutRTX system

经过姿态测量得到当前姿态量与控制量比较得到PID的调节偏差,由于PID的固有特性导致P、I、D的3个参数的不固定性,因此需要对飞行器的P、I、D这3个参数进行调节,如图14所示.使用遥控器和飞行器做联合调试过程,修改PID的参数从而改变各轴向升力,达到维持飞行器工作状态平稳的目的.

图14 四轴飞行器飞行效果Fig.14 Flighteffectof quad-rotor aerial vehicle

在四轴飞行器的设计制作与调试过程中同样遇到其他一些问题,例如四轴飞行器的机身材料选定如何能更加抗摔,桨叶材料选定,STM 32定时器的控制,PCB的电磁兼容等等.

5 结语

本设计采用RTX嵌入式实时操作系统和多任务机制,实现了对飞行器的无线控制,使其具有很好的实时性.采用PID算法编程对飞行器进行姿态控制;使用联合调试的方法调整PID参数.飞行器可在50 m内稳定飞行,续航时间为5min~7 m in,飞行器的IIC通信时钟间隔非常稳定(间隔为96μs,误差小于1%),提高了姿态更新速率(比无操作系统的飞行器提高了10ms),并且使飞行器的控制精准度得到了提升(姿态角误差小于10%),达到了预想的效果.

参考文献:

[1]易先军,周敏,谢亚奇.四旋翼飞行器控制系统的设计与实现[J].武汉工程大学学报,2014,36(5):1789-1791.

YI X J,ZHOU M,XIE Y Q.Design and imp lementation of four rotor aircraft control system[J]. Journal ofWuhan Institute of Technology,2014,36(5):1789-1791.

[2]阮征.面向全景视觉的四轴飞行机器人控制系统研究与实现[D].武汉:武汉工程大学,2014.

[3]杨锦.数字PID控制中的积分饱和问题[J].华电技术,2008,30(6):64-67.

YANG J.Integral saturation in digital PID control[J]. Huadian Technology,2008,30(6):64-67.

[4]王东平.基于嵌入式的四轴飞行器控制系统研究与设计[D].厦门:华侨大学,2013.

[5]刘杰.四轴飞行器研究与设计[D].南京:南京邮电大学,2013.

[6]江斌.小型四旋翼低空无人飞行器综合设计[D].杭州:浙江大学,2013.

[7]李尧.四旋翼飞行器控制系统设计[D].大连:大连理工大学,2013.

[8]高云淑,汪威,徐建.基于RTOS的四轴飞行器[J].电子制作,2015(10):14.

GAO Y S,WANG W,XU J.Quadrotor base on RTOS[J].Practical Electronics,2015(10):14.

[9]刘火良.STM 32库开发实战指南[M].北京:机械工业出版社,2013.

[10]刘浩蓬,龙长江,万鹏,等.植保四轴飞行器的模糊PID控制[J].农业工程学报,2015,31(1):71-77.

LIU H P,LONG C J,WAN P,et al.Fuzzy self-adjusting proportion integration differentiation for eppo quadrocopter[J].Transactions of the Chinese Society of Agricu ltural Engineering,2015,31(1):71-77.

[11]常敏,崔永进,何蓓薇,等.四轴飞行器姿态控制系统设计[J].通信电源技术,2015(5):144-147.

CHANG M,CUI Y J,HE P W,et al.Design of four axis spacecraft attitude control system[J].Telecom Power Technologies,2015(5):144-147.

[12]刘峰,吕强,王国胜,等.四轴飞行器姿态控制系统设计[J].计算机测量与控制,2011(3):583-585.

LIU F,LYU Q,WANG G S,et al.Design of attitude control system for quad-rotor[J].Computer Measurement&Control,2011(3):583-585.

[13]万俊.四轴飞行器的研究与制作[D].武汉:华中师范大学,2014.

[14]周智,周国鹏,吴菲.四轴飞行器的增量式PID控制[J].湖北科技学院学报,2016(3):5-7.

ZHOU Z,ZHOU G P,WU F.Incremental PID control of four axis aircraft[J].Journal of Hubei University of Science,2016(3):5-7.

[15]方璇,钟伯成.四旋翼飞行器的研究与应用[J].上海工程技术大学学报,2015(2):113-118.

FANG X,ZHONG B C.Research and application of Four-Rotor aircraft[J].Journal of Shanghai University of Engineering Science,2015(2):113-118.

本文编辑:陈小平

Design of M ini-Type Quad-Rotor Aerial Vehicle Based on Real Tim e Operating System

YANG Shubin,HUANG Jun rong
School of Electrical and In formation Engineering,W uhan Institute of Technology,W uhan 430205,China

Aiming at inefficiency in the real time control ofmini-type quad-rotor aerial vehicle,we used the STM32 microcontroller to transplant real time operating system.The 32 bit advanced RISC machines microcontroller STM32F103CB was used as the control chip,and the Real-Time eXtension operating system and four elements combined with proportion,integral and derivative control algorithm were used to control the attitude of mini-type quad-rotor aerial vehicle.Finally,the date collection of quad-rotor aerial vehicle was implemented by using themultiple concurrent sensor processing technology.Experimental results prove that the quad-rotor aerial vehicle quickly complete the two-way transmission of control signal and battery quantity data,and obtain high precise attitude information.Therefore,the attitude angel of quad-rotor aerial vehicle updates more quick ly and operates easily,which improves the stability and real time ofquad-rotor aerial vehicle.

RTX;STM32F103CB;quad-rotor aerialvehicle;concurrentprocessing

TP23

:Adoi:10.3969/j.issn.1674⁃2869.2017.01.015

1674-2869(2017)01-0083-08

2016-10-08

智能机器人湖北省重点实验室开放基金项目(HBIR201406)

杨述斌,硕士,教授.E-mail:hzkcool@163.com

杨述斌,黄俊榕.基于实时操作系统的小型四轴飞行器的控制设计[J].武汉工程大学学报,2017,39(1):83-90. YANG S B,HUANG JR.Design of control system for mini-type quad-rotor aerial vehicle based on real time operatingsystem[J].JournalofWuhan Institute of Technology,2017,39(1):83-90.

猜你喜欢

陀螺仪飞行器姿态
高超声速飞行器
基于EMD的MEMS陀螺仪随机漂移分析方法
攀爬的姿态
全新一代宋的新姿态
跑与走的姿态
复杂飞行器的容错控制
我国著名陀螺仪专家——林士谔
微机械陀螺仪概述和发展
MEMS三轴陀螺仪中不匹配干扰抑制方法
神秘的飞行器