周伙球,王骥,徐今强,李郁灿,陆俊江
(广东海洋大学电子与信息工程学院,广东湛江,524088)
四轴飞行器的结构分为十字型结构和X型结构,项目采用的四轴飞行器为 X型飞行器,X型飞行器四个电机分别如下图标号。
(1)俯仰角(Pitch)的控制:通过1、2号电机转速的增加(减少)以及3、4号电机转速的减少(增加)使飞行器前后形成力差以控制飞行器的俯仰角。
(2)滚角(Roll)的控制:通过1、4号电机转速的增加(减少)和2、3号电机转速的减少(增加)使飞行器左右形成力差从而达到控制横滚角大小的目的。
(3)偏航角(Yaw)的控制:由于螺旋桨的转动所产生的力矩使飞行器有自旋的扭力,故1、3号的螺旋桨和2、4号的螺旋桨是相反的,分别为正反桨当以抵消自旋、故1、3号电转速的增加(减少)和2、4号电机的减少(增加)可以控制不同方向的扭力以达到飞行器的偏航角控制。
(4)高度的控制:同时增加或减少四个电机的转速大小以达到飞行器高度的控制。
图1 四轴飞行器结构分析
整个飞行器系统分为软件和硬件两大部分,其中软件的硬件又分为遥控器和飞控部分,软件分为遥控器、飞控以及PC的图像处理部分。
飞行控制器部分则采用了MPU6050模块,其内部集成了陀螺仪和加速度计传感器用于获取飞行器的俯仰角(Pitch)和横滚角(Roll)姿态、利用HMC5883l磁传感器来获取地磁方向结合陀螺仪来计算飞行器的偏航角(Yaw)、超声波模块及MS5611气压计用于获取飞行器的高度。
遥控器和飞行控制器两者的通信利用了NRF24L01无线收发模块。航拍摄像头通过5.8G图传模块把图像回传电脑电脑进行图像处理后通过蓝牙模块把处理结果送给遥控器遥控器再把控制指令发给飞行控制器。飞行控制器结合遥控的指令和飞行器的传感器相结合计算出实际状态和目标状态的误差,利用此偏差作为PID控制器的输入,最终实现飞行器的稳定飞行以及目标跟踪,如图2所示。
图2 思路框架图
从成本以及性能等综合多方面考虑,项目的遥控器及飞行控制器均采用了意法半导体公司的增强型stm32f103系列作为主控芯片。Stm32f103是基于Cortex-M3内核设计,是新型的32位嵌入式微处理器,内部集成了硬件SPI、IIC等。
主要思路是不断的采集摇杆电位器的电压和NRF24L01无线收发模块的数据,为了减少CPU的负担4路ADC由DMA的方式采集存到缓冲区,每采集50个数据做一次平均,以减少噪声的所造成的误差。由于NRF24L01不能实现同时收发,故项目遥控器采用半双工的方法来切换数据的收发模式。实时通过LCD显示飞机当前状态以及遥控器所发出的指令。
飞控软件部分的实现是采用5ms定时中断读取传感器的数据并实时处理,包括数据滤波姿态解算以及PID控制器的运行,而高度解算则放在10ms的中断函数中,对高度信息进行处理,包括数据滤波高度融合以及高度PID控制器的运行。通过计算出飞行器的状态信息并接收遥控器的数据把状态数据和遥控器的给定做偏差把偏差输入到PID控制器使飞行器始终保持稳定点的状态。
其中飞控姿态解算算法利用四元数和互补滤波的方法结合了陀螺仪及加速度计的数据进行融合以获得飞行器的姿态。利用超声波和气压计两个传感器的数据作为高度观测值,结合加速度计通过卡尔曼滤波来获取飞行器的高度,而飞行器相对目标的位置则通过图像处理来获取。
图像处理部分由飞行器机载的航拍摄像头来获取图像,通过5.8G的图传把图像实时回传电脑,电脑通过OPENCV视觉开源库里的camshift视觉跟踪算法对目标进行跟踪,把飞行器与目标的相对误差最终传给飞行控制器,飞行控制器通过调整位置PID来实现跟踪的目的。
本文描述了基于视觉跟踪的四轴飞行器的设计实现,整体分为飞控,遥控和PC的视觉处理三大部分,飞控和遥控之间的通信采用2.4G无线模块的方案,PC和遥控通过蓝牙通信。飞控系统通过采集IMU和周边传感器的数据进行运算实时计算飞机的姿态,高度等信息,根据PID控制算法实现对四轴飞行器的稳定控制,PC通过获取图传回送的机载摄像头数据进行图像处理获取目标相对飞机的位置,并将位置信息发给遥控,遥控再通过2.4G无线模块传给飞控,飞机通过调整飞机位置从而实现目标跟踪。实践证明该四轴飞行器可以实现稳定、可靠的飞行,对目标也达到跟踪目的。
参考文献
[1]秦永元编著.惯性导航[M].北京:科学出版社,2006.
[2]马 克W.斯 庞 (Mark W.Spong)/赛 斯·哈 钦 森 (Seth Hutchinson)/M.维德雅萨加 (M.Vidyasagar)编著.机器人建模和控制[M].北京:机械工业出版社,2016.
[3]秦永元编著.卡尔曼.滤波与组合导航原理[M].西北工业大学出版社,2012.