WiFi环境下的微型四轴飞行器系统设计

2016-03-20 09:14:47钟永熙吴黎明张珊珊
单片机与嵌入式系统应用 2016年11期
关键词:线程飞行器姿态

钟永熙,吴黎明,张珊珊

(广东工业大学信息工程学院,广州510006)

WiFi环境下的微型四轴飞行器系统设计

钟永熙,吴黎明,张珊珊

(广东工业大学信息工程学院,广州510006)

为改善传统四轴飞行器体积大、不便于携带、航模遥控器操作复杂等问题,从易用性的角度出发,提出了基于WiFi控制的微型四轴飞行器设计方案。系统以STM32处理器为核心,MPU6050、HMC5883组成惯性测量单元测量飞行器姿态,上位机通过WiFi与飞行控制器进行数据交互;并引入RT-Thread嵌入式实时操作系统,以满足飞行姿态控制的实时性要求。经实验测试,飞行器能在较短时间内对上位机的操作指令进行响应,并按照指定操作稳定飞行,系统基本完成预期目标。

四轴飞行器;飞行控制器;嵌入式实时操作系统;姿态控制

引 言

四轴飞行器和传统的飞行器相比,具有机械结构简单、飞行稳定、操控灵活、系统高度智能化等优点,决定其在未来将有着更为广阔的应用前景。四轴飞行器的设计难点在于多传感器数据融合、姿态控制算法等问题[1]。常见的四轴飞行器多以无线电遥控作为控制载体,操作复杂,易用性差。本文设计一种面向室内环境或狭小空间的短距离遥控微型四轴飞行器。该系统以WiFi作为控制载体,引入嵌入式实时操作系统,具有操作简单、飞行稳定等特点,增大了系统应用的灵活度。

1 四轴飞行器原理概述

四轴飞行器拥有两对对称的旋翼,对称的一对桨叶旋转方向相同,而相邻的桨叶旋转方向相反。四只旋翼独立工作,利用相互作用抵消各旋翼的反桨力矩,并分别控制四个旋翼的转速即可改变飞行器的飞行姿态。

姿态用来描述一个刚体的刚体坐标系和参考坐标系之间的角度位置关系,常使用欧拉角来表示,即俯仰角(Pitch)、横滚角(Roll)和航向角(Yaw)。为了获得四轴飞行器的当前飞行姿态,需要使用加速度传感器、角速度传感器(陀螺仪)和地磁传感器等多种传感器来检测飞行器姿态[2]。

加速度传感器测量相对于水平面的倾斜角度;陀螺仪输出刚体绕一旋转轴的角速度,将角速度对时间进行积分得到连续时间段内的角度值。地磁传感器通过地磁力投影来检测活动物体的姿态角,从而确定物体坐标系与地理坐标系之间的方位关系。为消除传感器的测量误差,需要将三者的姿态数据进行融合,才能得到准确的测量值[3]。

根据被控姿态的表示方式不同,分为不同的控制方法。控制的思路为:设定一个目标飞行姿态,调整各旋翼转速,使得当前姿态不断逼近目标姿态。

2 四轴飞行器硬件系统设计

本文设计的飞行器控制系统主要包括以下几个部分,如图1所示。

图1 系统总体设计

2.1 控制器

控制器实现四轴飞行器的姿态解算、姿态控制等算法。在IMU运算与控制算法运算时,涉及到大量的矩阵与乘除法运算,同时,处理器与各模块之间需要不同的接口与外设进行数据交换。设计选用意法半导体公司的STM32F103微处理器,如图2所示。芯片采用Cortex-M3内核,最高工作频率可达72 MHz,具有64 KB片上Flash及20 KB片上SRAM,以及ADC、SPI、I2C等片上外设,可满足系统设计需求。

图2 控制器原理图

2.2 姿态测量单元

由3轴重力加速度传感器、3轴陀螺仪传感器、3轴地磁传感器组成惯性测量单元,用于测量飞行器姿态。设计选用InvenSense公司的运动处理器单元MPU-6050,整合3轴角速度和3轴加速度传感器,能有效避免轴差问题。选用Honeywell公司的弱磁传感器HMC5883L,对四轴飞行器航向进行测量。如图3、图4所示,MPU-6050通过I2C总线与处理器连接。通过辅助I2C总线与HMC5883L连接,并由主I2C接口以单一数据流形式提供完整的9轴融合数据。

图3 陀螺仪及加速度计

图4 磁场传感器

2.3 电源及动力单元

如图5所示,电源系统采用1 s锂电池(3.7 V),经LM2736电压转换器转换为3 V供微处理器及各模块使用。电源经分压后连接到处理器模拟输入端用于电压检测。

动力单元由微型电机、驱动电路组成,接收控制器的控制信号驱动螺旋桨。处理器输出PWM信号经场效应管AP2306功率放大后驱动空心杯电机。

图5 电源电路

2.4 通信模块及辅助功能

通信模块连接上位机,实现用户操作。上位机提供四通道信号和其他控制信号,并接收飞行器状态信息。处理器使用串口连接USR-WiFi232模块,用于飞行器与上位机之间的无线通信。电机驱动电路如图6所示。

辅助功能提供电池电压检测、飞行器状态显示等功能。

图6 电机驱动电路

3 四轴飞行器软件系统设计

3.1 RT-Thread实时操作系统。

飞行控制器需要执行多个复杂的算法计算和各种不同的工作。而严格的实时性对于飞行控制系统非常关键,因此本设计引用RT Thread嵌入式实时操作系统来满足系统的实时性要求。

在飞控程序中,各个线程执行着各自的工作。线程分为底层和应用层,底层靠近硬件,如读取传感器。应用层基本与硬件无关,如姿态计算。用优先级来区分线程对实时性的要求,优先级数字越小则线程的优先级越高,相应线程的实时性越好。

表1列出了操作系统系统中的核心线程,它们之间有先后执行关系。

表1 系统核心线程

使用系统提供的信号量实现线程之间的同步。当上级线程完成工作,如传感器数据读取完成,且新的计算周期开始后,就发送一个信号量给下级线程,下级线程在工作之前会一直等待该信号量,除非达到设定的超时时间造成超时返回。超时返回后,执行相应的处理方案,比如发送错误信息到调试口,或者重启上级线程。图7表示核心线程的执行顺序。

3.2 通信协议

通信协议实现遥控器和飞行控制器之间的信息交换。为满足系统实时性要求,通信协议需要尽量简单,以尽量少的数据传递尽量多的数据。本系统拟定的通信协议如下所示。

码 头指令码参数长度参 数校验码码 尾0x55 Cmd Length Par CRC 0x0D

图7 核心线程执行顺序

遥控指令分为两类,控制类与查询类。命令字高两位用于区分指令类型,低6位为相应的指令码。控制指令用于飞行器的连接、解锁、姿态控制、PID参数设置等功能。查询指令用于查询飞行器当前姿态及电量信息。下面列出了通信协议中较为重要的命令,控制指令如表2所列。

表2 控制指令

3.3 数据处理

(1)提取传感器数据

飞行控制器上集成了9个自由度的传感器,所有的传感器都以I2C设备的形式,挂载在I2C总线设备上,由RTThread的设备驱动进行管理。传感器数据的读取,是由线程gyro、acc、compass负责的,其功能包括传感器初始化、取值、单位变换、滤波、输出、动态量程处理等。传感器通过硬件中断驱动MCU的外部中断引脚,在中断程序中释放一个信号量给线程以通知其读取新的数据。

(2)姿态算法

获得传感器的数据后,通过姿态算法计算得出实际的飞行器角度值。它将上一时刻中的飞行器姿态与当前时刻的传感器输出进行结合,并计算出当前的姿态。姿态计算使用四元数算法,用四元数来计算空间旋转,相对于方向余弦矩阵来说可以减少很多的计算量。将传感器的输出量转换为四元数,并与上一时刻的四元数相乘,进行姿态递推,然后再将四元数中转换成较为直观的欧拉角进行输出。递推的过程即是姿态更新的过程[4]。

系统中,将加速度计的输出转换为roll与pitch相对地平面的旋转量,地磁传感器则计算出当前磁北的位置,即yaw的旋转量。获得与目标姿态角度的偏差,在下一次计算四元数之前,将其与陀螺仪输出的角增量用变参数互补滤波器进行融合,再计算四元数。

(3)控制算法与输出映射

姿态算法的结果直接被用于控制算法的计算,以修正瞬时误差,使四轴飞行器向目标的姿态逼近。这一部分的工作,是由“ctrl”线程负责执行的。系统中,使用双闭环PID算法,输入量为姿态误差,输出量为三个轴(roll, pitch,yaw)对应的姿态角度的控制量[5]。这个输出并不能直接赋值给电机,需要一个转换过程,将各个轴的输出量转化成飞行器中的各个伺服器需要的输入量[6]。四轴飞行器的控制输出映射如表3所列。

表3 四轴飞行器姿态控制输出映射

4 系统测试

为使飞行器稳定飞行,需要进行PID参数的调节。先调节处环PID,再调节内环PID。以Roll轴调节为例,首先把四轴飞行器的一个旋转轴(pitch)固定,使其只能以某一旋转轴旋转(roll)。先调节比例P,然后依次加入积分I调节和微分D,使四轴飞行器能稳定在一个角度。人为添加一个外力及初速度或左右打横滚杆,观察四轴飞行器能否恢复自稳。具体需要结合实际飞行时的反应进行微调。pitch、roll、yaw的PID参数调节方法基本一致。

为实时监测飞行器的控制及姿态信息,采用matlab编写测试程序对飞行器状态进行实时监控。飞控定时给上位机发送传感器信息和姿态信息,上位机通过串口发送给matlab,并进行实时显示,测试结果如图8所示。图中显示了姿态角的输出信号,并以图形的形式表示出飞行器的当前姿态。Matlab实时监控程序如图9所示。

最后,对四轴飞行器的动态性能进行测试。测试条件:姿态采样频率为1 k Hz,姿态解算频率为100 Hz,航向角、俯仰角、横滚角的最大舵量均为30°。设定不同的目标姿态,重复实验,取平均值,测试数据如表4所列。

图8 PID调节方法

图9 matlab实时监控程序

表4 四轴飞行器动态性能

由测试数据可得,系统具有较短的稳定时间。系统动态响应迅速,能满足飞行器姿态调整的平稳性和快速性要求。

结 语

本文设计了一种基于WiFi控制的微型四轴飞行器,该系统以RT-Thread实时操作系统为软件载体,实现了自稳飞行、姿态控制等功能,操作简单,可在室内或狭小空间内稳定飞行。但该系统还缺乏足够的室内定位手段和SLAM能力,如能在后续设计中实现,将使其使用范围更加广泛,更加智能化。

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

[2]高宗余,李德胜.多MEMS传感器姿态测量系统的研究[J].电光与控制,2010,17(3):68-70.

[3]何川,李智,王勇军.基于STM32的四旋翼飞行器的姿态最优估计研究[J].电子技术应用,2015,41(12):61-64.

[4]冀亮,钱正洪,白茹.基于四元数的四轴无人机姿态的估计和控制[J].现代电子技术,2015(11):112-116.

[5]徐大远,王英健,陈冠军,等.四轴飞行器的动力学建模和位置控制研究[J].电子科技,2015,28(1):69-72.

[6]陆伟男,蔡启仲,李刚,等.基于四轴飞行器的双闭环PID控制[J].科学技术与工程,2014,14(33):127-131.

钟永熙(硕士研究生),主要研究方向为嵌入式系统和自动控制;吴黎明(教授),主要研究方向为嵌入式系统、通信与信息系统。

Micro Four-axis Aircraft Design Based on WiFi

Zhong Yongxi,Wu Liming,Zhang Shanshan
(Guangdong University of Technology,Guangzhou 510006,China)

In order to improve the portability of the traditional four-axis aircraft and decrease the operation complexity of the aero-modeling remote control,a design of micro four-axis aircraft based on WiFi is put forward.The system uses STM32 processor as the core,and measures the flight attitude of the aircraft by an inertial measurement unit which consists of the MPU6050 and HMC5883.The date interaction between the mobile application and the control board is completed by WiFi.The RT-Thread embedded RTOS is introduced to the system at the same time in order to meet the real-time requirement of the fight attitude control.The experiment results show that the aircraft can response to upper computer in a comparatively short time and fly steadily according to the specified operating.And the system basically can complete the expected goal.

four-axis aircraft;flight controller;embedded RTOS;attitude control

TP272

:A

杨迪娜

2016-06-06)

猜你喜欢
线程飞行器姿态
高超声速飞行器
攀爬的姿态
学生天地(2020年3期)2020-08-25 09:04:16
全新一代宋的新姿态
汽车观察(2018年9期)2018-10-23 05:46:40
跑与走的姿态
中国自行车(2018年8期)2018-09-26 06:53:44
复杂飞行器的容错控制
电子制作(2018年2期)2018-04-18 07:13:25
浅谈linux多线程协作
环球市场(2017年36期)2017-03-09 15:48:21
神秘的飞行器
Linux线程实现技术研究
么移动中间件线程池并发机制优化改进
阅读是最美的姿态