快生活 - 生活常识大全

基于的四旋翼目标追踪


  崔晓康+高润秋+王芮+庄志鹏
  【摘 要】本文主要是介绍基于二值化摄像头OV7725四旋翼自动追踪目标的控制研究。本案例采用STM32F407RBT6作为整个系统的主控板,采用SBUS协议对四旋翼进行控制。MK60DN512ZVLQ10作为图像处理的处理芯片,把摄像头采集到的图像硬件化为二值图像后,再回传信息给STM32F407做控制处理。除此之外,STM32F407上还外接超声波,电子罗盘,LC12S外设模组用来控制四旋翼的高度,方位。
  【关键词】MK60;STM32;Pixhawk飞控板;LC12S;SBUS协议;OV7725
  一、引言
  四旋翼飞行器一直以来都是国内外航空领域类研究的热点,四旋翼与其他多旋翼相比,控制直观,只需要控制四个电机调节螺旋桨的转速进而平衡四个螺旋桨的升力来实现空中准确悬停和精确飞行[1]。导航系统是四旋翼组成的关键部分,它分为室外导航,室内导航和惯性导航。对于室外导航,可以通过GPS来实现四旋翼的室外定位,巡航等功能。对于室内导航,我们主要采用视觉导航。由于四旋翼由STM32F407控制,其最大速率只有168Mhz,不能够用采用一般图像处理算法,因此我们选用具有硬件二值化的摄像头来完成视觉导航。惯性导航,主要用于检测四旋翼飞行器自身姿态进而稳定自身姿态。对于上述三种导航方式,我们需要根据实际的需要做具体的调整。
  二、系统设计原理框图
  STM32F407时ST公司2012年初推出的基于ARM Cortex-M4内核,具有浮点运算能力的高性能32位处理器,也采用成熟的90nmNVM工艺,自适应实时闪存加速器(ART加速器)以及多层总线协议[2]。改芯片主频可以达到168Mhz,拥有丰富的USART,I2C,SIP,CAN,ADC ,TIM,GPIO等外设接口并且与其他Cortex-M系列兼容。在整个四旋翼控制系统中,HC-SR04配合光流模块实现四旋翼的定高定点;通过JTAG接口,实现STM32F407代码调试和烧录;USART2与LC12S无线透传模块相连,用于回传STM32F407的SBUS通道参数,飞行高度,罗盘数据回传到上位机,上位机也可以向STM32F407下发控制指令;MK60将图像二值化后,把所需的信息回传到STM32F407主控板上;通过I2C接口,主控板读取GY-29电子罗盘数据,确认飞机航偏角;最后主控板通過软件模拟SBUS协议将通道控制数据下发到Pixhaw飞控板。
  三、软件设计
  系统软件设计全部采用C语言开发,主控板STM32F40在Keil4.70集成开发环境使用STM32F4xx_StdPeriph_lib v1.0.2.7 标准库进行开发,图像处理板MK60在IAR6.0下进行开发,采用野火嵌入式工作室建立的野火Kinetis库。采用固件库进行开发,开发效率高,代码可读性强。
  (一)主控板STM32控制流程图
  首先初始化STM32中断向量控制器,配置各个外设中断优先级;将PA0设置成输出,通过软件模拟SBUS协议发送数据;软件初始化USART2,USART3,USART2作为主控板STM32数据回传口以及紧急指令接受口,USART3则用来与MK60通信;在解锁前,先读取GY-29磁偏角,其值为四旋翼初始方向角度;定时器2配置成输入捕获模式,PB3配置成定时器2输入捕获引脚,用来捕获超声波的数据脉冲。;定时器3配置成定时模式,用于控制四旋翼飞行总时间。在完成飞行控制流程算法如下:
  第一步:四旋翼解锁;第二步:四旋翼起飞定高;第三步:四旋翼定高定点结束,开启定时器,等待串口3收到摄像头指令;第四步:对方向向量进行处理,修改飞机通道控制参数;第五步:通过SBUS协议将通道控制数据发送到Pixhaw飞控板。
  (二)MK60控制流程图
  MK60设置中断向量控制表,初始化ADC,配置串口0,串口2,串口0用来与上位通信,串口2用来与主控板STM32通信。做图像处理算法时,首先是要配置像素点的有限范围,硬件二值化摄像头的相对阈值;第二步是设置图像原点坐标;第三步读取图像,每读取完一帧图像进行行扫描,找出阈值内黑点;第四步计算方向向量,然后将该帧方向向量发送给主控板。
  四、四旋翼飞行测测试结果
  本次飞行是独立于遥控器飞行。在整个过程中,四旋翼运行平稳,能够很好的识别黑色物体,并悬在物体上方一米处,当移动贴有黑圆的板子时,飞机跟着物体前行,直到定时结束降落。本次实验飞行动作流程,四旋翼没有出现失控等情况。
  五、结语
  本文通过理论和实际飞行效果实现了四旋翼的自动追踪。对于微处理器,采用二值化摄像头进行图像处理方式是一种很实用的机器视觉处理方式。本文所描述的追踪处理算法是基于二值化图像,我们下一步的工作方向可以朝着对彩色图像进行处理,实现四旋翼在复杂环境下的自动追踪。
  【参考文献】
  [1] 四旋翼飞行器轨迹及运动目标跟踪控制研究;张佳;燕山大学;2016
  [2] STM32F40xxx、STM32F41xxx、STM32F42xxx、STM32F43xxx基ARM内核的32位高MCU参考手册;ST公司;2012
  [3] K60 Sub-Family Reference Manual Supports: MK60DN256ZVLQ10, MK60DX256ZVLQ10,MK60DN512ZVLQ10, MK60DN256ZVMD10, MK60DX256
  ZVMD10,MK60DN512ZVMD10
  [4]Document Number: K60P144M100SF2RM;2011
网站目录投稿:丹翠