低成本四旋翼高清图像采集功能的研究与实现
2018-06-19马正华顾苏杭
马正华,孙 斌,顾苏杭
(常州大学 信息科学与工程学院,江苏 常州 213100)
0 引 言
目前四旋翼飞行器的研究和应用领域已经十分广泛,而关于四旋翼飞行器的设计和研发,也涌现出了一大批成熟有效的设计方案。如利用DSP高速数字处理器对四旋翼硬件平台进行研发和设计的方案[1]、利用ARM微处理器实现四旋翼飞行器的电视引导察打一体化的设计方案[2]。在这些设计方案中,由于预算的原因,某些方案不得不采用低成本的四旋翼飞行器。然而,很多低成本的四轴飞行器难以在脱离遥控的情况下自稳飞行,部分能自稳飞行的四轴飞行器又不能拍摄高清图片,成本已然成为这类四旋翼飞行器发展的瓶颈。为解决这个问题,使低成本四旋翼飞行器能够做到在脱离遥控定高自稳飞行的同时拍摄500万级像素的高清图片,设计了一种以低成本四旋翼为载体的高清图像采集系统。所设计的四旋翼飞行器以中低端单片机STM32为控制核心,并利用串级PID及时间片轮式控制算法控制飞行器的姿态,使之具备脱控自稳飞行的能力;在飞行器达到稳定的飞行状态时,开启图像采集模块拍摄图片,该模块采用了高清摄像头+SDRAM+CPLD的缓存模式[3,4],可在不影响控制中心运算速度和存储中心运行效率的情况下采集高清图像,并以无线的方式传输给PC机。从而实现了低成本四旋翼飞行器依然可以完成高精度自稳控制、高清采图等任务的效果。
1 四旋翼飞行器硬件总体设计
该四旋翼飞控系统采用ST意法半导体公司的中低端单片机STM32F407VGT6作为控制中心。该芯片最高主频可达168 Mhz,具有192 KB的SRAM、1024 KB的FLASH,自带12个16位定时器,并且配备3个SPI、3个IIC、6个串口、2个USB(HOST/SLAVE)等总线,扩展性强[5],可支持飞行器完成绝大部分的飞行任务。
地磁传感器AK8975以及MPU6050共同完成四旋翼的9轴姿态结算任务。MPU6050通过其第二IIC接口与AK8975相连接。MPU6050内置了一个数字运动处理器DMP,其可根据InvenSen公司提供的运动处理资料包,方便的将9轴姿态数据解算出来。
MS5611高度气压计和超声波模块相结合,可使四轴飞行器实现定高的功能。在实际测试过程中,发现超声波模块由于其自身的缺陷,在飞行高度超过地面3 m后因噪声增大而影响性能。此时就应用MS5611气压计代替超声波实现定高的功能。
四旋翼通过四路无刷直流电机控制其姿态的变换。在预算有限的情况下,为保证飞行器动力充足,实验平台选用了朗宇的2212 KV800无刷直流电机,并选用最大输出20A的电调作为电机与MCU的沟通桥梁。
为实现无线传输的功能,采用CC2530无线透传模块[6]。由于高清图像采集模块的输出接口为串口,而与PC机沟通的模块为USB转TTL,故采用CC2530无线串口模块。该模块可实现带确认的点对点传输,数据丢包率为0.00%,而且支持串口不间断发送,适合本四旋翼飞行器的应用场景。四旋翼具体结构如图1所示。由图1可知,实验平台所用功能模块及主控MCU均不是高成本器件,机架、电机、电调、飞控板等重要部分总成本不超过300元人民币,但其组成的四旋翼飞行器却可以实现高精度自稳及高清采图这些昂贵飞行器才能实现的功能。
2 四旋翼飞行器控制算法设计
2.1 四旋翼飞行器建模分析
要使低成本四旋翼飞行器完成采集高清图片的任务,前提是飞行器可以达到高精度脱控自稳的飞行状态。要实现飞行器的自稳控制,需要分析其动力学模型,简化模型如图2所示。
图1 四旋翼飞行器硬件总体设计结构
图2 四旋翼飞行器简化模型
(1)
式中:U1为飞行器上升的总升力控制量,U2代表横滚姿态φ以及y方向上的运动控制量,U3代表俯仰姿态θ以及x轴方向的控制量,U4代表航偏姿态ψ。
由质心运动定理和欧拉运动方程,可建立机体坐标系下x、y、z轴方向上合外力方程以及绕x、y、z轴的合外力矩方程
(2)
式中:∑Fx,∑Fy,∑Fz分别为机体坐标系下各轴方向上的合外力;∑Mx,∑My,∑Mz为轴上绕三轴的合外力矩[8]。u,v,w分别为机体坐标系下x,y,z轴上的线速度。p,q,r分别为机体坐标系下x,y,z轴转动的角速度。Ix,Iy,Iz分别为3个轴方向上的惯性主矩。
可通过矩阵R来获得机体坐标系到地理坐标系的转换
(3)
式中:C和S分别代表三角函数Cos和Sin。由转移矩阵R可推算出四旋翼飞行器对应地坐标系的非线性方程
(4)
式中:Rij表示转移矩阵R中对应第i行第j列的元素。Fx,Fy,Fz分别表示四轴飞行器体坐标系下所受合外力在各轴方向的分量,m表示四旋翼的质量。姿态角与机体坐标系下角速度的关系如方程(5)所示
(5)
由方程(5)可进一步整理为
(6)
由式(6)可知,四旋翼飞行器最终的飞行状态和姿态角加速度以及线加速度有关。单级PID控制系统不能够同时处理位置、速度、加速度等因子,因此,必须采用串级PID来控制飞行器的飞行状态。
2.2 四旋翼串级PID控制算法设计
由2.1分析可知,要实现四旋翼姿态的自稳控制功能,须采用串级PID来控制飞行器的飞行状态[9,10]。这里以3个欧拉角(横滚角ROLL、俯仰角PIT、航向角YAW)的串级PID控制系统以及定高控制的PID控制系统为例。
图3 姿态角串级PID
四旋翼平稳飞行的另一要求是定高,而定高功能的实现是以自稳为基础的。因此在为四旋翼建立自稳功能串级PID控制系统后,亦建立了串级PID高度控制系统。
图4 高度控制串级PID
2.3 四旋翼时间片轮式任务调度
四旋翼飞行器的飞控程序由非常多的任务组成,而每个任务的执行周期均不同,因此只有把多个任务规划好才能实现飞控系统的有序运行。
在普通的四轴飞行器控制算法中,所有的任务都在一个循环中运行,任务的优先级由对应中断的优先级控制。该种控制算法虽然也能使四旋翼完成基本的飞行任务,但是在其飞行过程中,始终需要遥控器对其飞行姿态进行调整;更甚者,若中断设置不合理,还可能造成因任务冲突而引起的摔机事故。因此,需要对飞行器的控制算法进行改进。
在改进版飞控程序的设计过程中,应严格控制代码执行的顺序和时间,不能随意进行软件延时,以保证系统的效率;不能随意采用多个优先级不同的中断,以保证程序的执行顺序足够可靠;重要的任务需要统计每两次相邻调用的时间间隔,以保证系统的稳定性。因此,在整个程序执行过程中,仅开启Stm32自带的高优先级Systick定时器,并通过时间片轮的方式执行多个任务[11]。Systick定时器又称滴答定时器,每1 ms产生一个中断,而每个周期都有对应的标志位,Systick定时器每产生一个中断,周期的标志位加一。在主循环中,每一个任务都有自己的执行周期,控制器通过比较执行周期的标志位数值来执行相应的任务。当周期标志位数值达到其对应的值时,任务开始,任务开始前,周期标志位清零并开始自增;任务结束后,标志位再次清零开始下一个任务循环。采用该时间片轮的方式在执行多个任务的同时还可以统计重要任务每两次相邻执行的时间间隔,从而对重要任务是否正常执行做出判断,故系统的稳定性也能得到保障。具体时间片轮式任务调度机制如图5所示。
图5 时间片轮式任务调度机制
至此,四旋翼飞行器的控制算法的改进工作完成。该低成本四轴飞行器已经能够完成自稳飞行和定高的任务。
3 四旋翼飞行器高清图像采集系统
所设计的四旋翼飞行器采用STM32F407ZGT6作为其主控制器。该款芯片的SRAM为192 KB,自带的FLASH也达到了1024 KB,相对于其它的单片机来说,STM32F407的存储容量已很大。但是,该低成本四旋翼需要拍摄至少500万像素级的图片,而500万像素级的高清图片即使压缩为JPEG格式,其大小也有600 KB~2 MB。因此,仅靠STM32F407的SRAM和FLASH是无法完成拍摄任务的,更何况FLASH的读取速度很慢,会严重影响MCU的运行效率。为解决这个问题,设计了一款基于高清摄像头+SDRAM+CPLD模式的图像采集系统。该图像采集系统可以绕开拍摄高清图片所需要的内存空间和处理速度,使中低端单片机可以像高端的微处理器一样,拍摄500万像素级甚至800万像素级的高清图片。
3.1 高清图像采集系统硬件结构
如图6所示,虚线框中为图像采集系统的硬件结构图。可知该图像采集系统主要由高清摄像头OV5640、高速处理器CPLD、大容量存储器SDRAM三部分组成。若对图像有更高的要求,可以用800万像素的OV8865摄像头替换OV5640,这里以OV5640为例说明。
在图像采集系统中,由OV5640完成采集图像的任务。OV5640是OmniVision公司设计的一款分辨率为5 MP的摄像头。其感光面积为1/4英寸,像素大小为1.4 μm*1.4 μm,且内置自动对焦马达,可对焦的范围为5 cm~无限远。其内置的JPEG压缩引擎,可直接输出高质量的JPEG格式的图像数据。该摄像头极大简化了超清拍摄的应用开发过程。
EPM240T100是由Altera公司推出的一款具有革命性意义的CPLD产品。它基于全新的CPLD架构,几乎囊括CPLD全系列产品的IO管脚。并且EPM240T100采用全新的查表体系(LUT),在降低成本和功耗的同时,保留上一代MAX系列原有的瞬时启动、单芯片结构、非易失性和易用性等优势,具有革命性意义。EPM240T100在本图像采集系统中,作为传递数据信息的桥梁,协调OV5640摄像头、SDRAM以及主控MCU完成数据传递的工作。
W9864G6KH是由Winbond公司推出一款8M Byte的高速SDRAM。其具有功耗低、容量大、成本低的优点。在本图像采集系统中,当OV5640摄像头采集到图像后,便将数据直接存储在该SDRAM中,等待CPLD将其数据发送给主控MCU的数据接口。W9864G6KH在工作过程中,总是需要外部设备对其进行定时性刷新充电,在此图像采集系统中,它的刷新和读写都是由CPLD完成的。
图6 高清图像采集系统硬件结构
3.2 高清图像采集系统工作过程
当图像采集系统上电初始化后,PC机发送一个“握手”指令,该指令通过CC2530模块以无线的方式被传送至四旋翼飞行器。四旋翼飞控接到指令,再次以无线的方式将“确认”指令传送给PC机,地面站PC机和四旋翼配对成功。
此时,若PC机发送“拍照”的指令,该指令将会通过CC2530无线串口模块再次传送给四旋翼飞行器。四旋翼主控MCU接到“拍照”指令后,通过I2C总线将该指令传入OV5640高清摄像头,OV5640执行拍照的操作。由于OV5640自带JPEG图像压缩引擎,其在采集到图像后直接输出JPEG格式的图像数据。该图像数据经过CPLD内置的数据总线仲裁器存储在SDRAM中。当图像数据存储完毕后,主控MCU利用自带的SPI总线通过CPLD的“24位地址及图片长度寄存器”以及“SPI移位输出寄存器”一段一段(程序中设定,每一段为512字节)的将图像数据从SDRAM中搬运至MCU的“SPI图像数据接收单元”。被搬运出来的图像数据再经主控MCU内部的“UART指令及数据接口”传送给CC2530无线模块,最后以无线的方式传送给地面站PC机。通过PC机的上位机,可将图片显示出来。
4 实验验证
由于设计的高清图像采集系统是以低成本四旋翼为载体的,故实验验证分为两部分。第一部分是验证四旋翼飞行状态的稳定性,第二部分是验证图像采集系统采集到图像的质量。
4.1 验证四旋翼飞行状态的稳定性
四旋翼飞行过程中会受到的很多影响因素影响,如:重力、陀螺效应、空气动力等。因此在实际测试中,很多硬件参数需要标定,本四旋翼的相关参数如下:l=25cm,m=1.25kg,Ix=0.0202kg·m2,Iy=0.0201kg·m2,Iz=0.0404kg·m2。
由2.2中的图3可知,本设计采用串级PID来控制四旋翼的飞行姿态,而在该串级PID控制系统中,每一级PID输出量的位置式表达式为
(7)
因此,测试和标定姿态角的比例系数KP、积分系数KI、微分系数KD则至关重要。经过多次实验和调试,最终确定3个姿态角的PID参数见表1,在该PID参数下,四旋翼可以达到平稳的飞行效果。
表1 姿态角PID参数
当四旋翼的PID的参数整定完毕后,对四旋翼低空自稳飞行时的姿态角进行实时监控,姿态角的具体变化如图7所示。从图中可以看出,滚转角和俯仰角的变化均在-5°~5°之间,而航偏角的变化均在-30°~-15°之间,充分证明了控制算法的有效性和稳定性。
图7 四旋翼自稳状态下姿态角曲线
4.2 高清图像采集系统的测试
本文为该款低成本四旋翼设计的图像采集系统,采用高清摄像头OV5640+CPLD+SDRAM的缓存模式。摄像头采集到的图片数据首先存入SDRAM中,再利用主控MCU一段一段的将图像数据发送出去。采用该种模式的图像采集系统,可帮助中低端MCU绕开拍摄高清图片所需要的处理速度和存储空间,而只需像驱动低速设备一样即可实现高清图像拍摄。
如图8所示,在无风的室外环境下对四旋翼进行测试。在低空状态下,在四旋翼达到稳定飞行状态后,开启图像采集系统拍摄图像。
图8 四旋翼室外飞行状态测试
为了对比本图像采集系统的效果,使用目前市面上普通的低成本四旋翼与本设计做比较。两个四旋翼先后在大致同一位置,开启图像采集系统。如图9所示,左图为本图像采集系统拍摄的高清图片,右图为市面上低成本四旋翼自带图像采集系统拍摄的图片。由图可知,本图像采集系统拍摄的图片效果远远超过普通低成本四旋翼的图像采集系统。
5 结束语
在四旋翼的研究和应用领域越来越广泛、四旋翼的需求量越来越大的情况下,一部分低成本四旋翼很难做到在高精度自稳控制的同时采集高清图片。本文针对这类低成本四旋翼飞行器的缺陷,对其飞行控制算法和图像采集系统进行了改进。在飞控算法中,采用多个串级PID来控制四旋翼的飞行姿态和高度;同时采用时间片轮的方式协助MCU进行多个任务的调度,极大了保证了四旋翼飞行的稳定性,使低成本四旋翼亦可实现高精度的自稳控制。在图像采集方面,本文借鉴文献[3,4]的设计思路及相关的实际工程项目,采用高清摄头+SDRAM+CPLD的缓存模式改进飞行器的图像采集系统,使中低端的MCU依然可以实现高清图片的拍摄效果。最终,低成本四旋翼飞行器可以实现在高精度自稳控制的同时拍摄高清图片。
参考文献:
[1]JI Yidao,PAN Xun,GUO Yukun,et al.Hardware platform design and realization of quadrotor UAV system[J].Computer Engineering and Design,2016,37(1):76-80(in Chinese).[吉一纛,潘汛,郭玉坤,等.四旋翼飞行器系统硬件平台设计与实现[J].计算机工程与设计,2016,37(1):76-80.]
[2]CHEN Jie,WANG Risheng,JIANG Yufeng,et al.Design and realization of ARM-based fly task control system in UAV,guided by small TV with the ability of attacking and scouting[J].Science and Technology Review,2013,31(1):27-32(in Chinese).[陈杰,王日胜,蒋玉峰,等.基于ARM的小型电视引导察打一体无人机任务控制系统设计与实现[J].科技导报,2013,31(1):27-32.]
[3]Bourrasset C,Maggianiy L,Sérot J,et al.Distributed FPGA-based smart camera architecture for computer vision applications[C]//International Conference on Distributed Smart Cameras.IEEE,2013:1-2.
[4]Bourrasset C,Serot J,Berry F.FPGA-based smart camera mote for pervasive wireless network[C]//Seventh International Confe-rence on Distributed Smart Cameras.IEEE,2013:1-6.
[5]ZHANG Yang,LIU Jun,YAN Hanyu.Proficient in Stm32:Library function version[M].Beijing:Beihang University Press,2015(in Chinese).[张洋,刘军,严汉宇.精通STM32F4:库函数版[M].北京:北京航空航天大学出版社,2015.]
[6]YANG Song,HU Guorong,XU Peicheng.Design and implementation of MAC layer in ZigBee based on CC2530[J].Computer Engineering and Design,2013,34(11):3840-3844(in Chinese).[杨松,胡国荣,徐沛成.基于CC2530的ZigBee协议MAC层设计与实现[J].计算机工程与设计,2013,34(11):3840-3844.]
[7]MA Zhenghua,CHEN Jie,CHEN Lanping,et al.Gyroscope achieves the four rotor UAV attitude stabilization control[J].Computer Simulation,2016,33(10):32-38(in Chinese).[马正华,陈杰,陈岚萍,等.四旋翼无人机陀螺仪实现姿态稳定性控制[J].计算机仿真,2016,33(10):32-38.]
[8]LIAO Yihua,ZHANG Tiemin,LAN Yubin.Design and test of attitude stabilization control system of multi-rotor unmanned aerial vehicle applied in farmland information acquisition[J].Transactions of the Chinese Society of Agricultural Engineering,2017,33(3):88-98(in Chinese).[廖懿华,张铁民,兰玉彬.农田信息采集用多旋翼无人机姿态稳定控制系统设计与试验[J].农业工程学报,2017,33(3):88-98.]
[9]TAN Guangchao.Design and implementation of attitude control system for a quadrotor UAV[D].Dalian:Dalian University of Technology,2013:25-29(in Chinese).[谭广超.四旋翼飞行器姿态控制系统的设计与实现[D].大连:大连理工大学,2013:25-29.]
[10]CHEN Qi.Research on advanced control method and realization of unmanned quadrotor helicopter[D].Nanjing:Nanjing University of Aeronautics and Astronautics,2013:15-16(in Chinese).[陈琦.四旋翼无人直升机先进飞行控制方法及实现研究[D].南京:南京航空航天大学,2013:15-16.]
[11]XIAO Zhu.Research of dispatching algorithm and reliability control in multitask flight control system[D].Chengdu:University of Electronic Science and Technology of China,2012:18-25(in Chinese).[肖柱.多任务飞行控制系统中调度算法与可靠性控制研究[D].成都:电子科技大学,2012:18-25.]