基于openMV和openCV的四轴飞行器定点悬停控制
扫描二维码
随时随地手机看文章
引言
四轴螺旋翼电机飞行器是一种小型的轻型四旋翼电机飞行器,4个电机螺旋奖与4个电机直接相连,通过改变4个电机的转速来改变飞行器飞行状态。四轴飞行器在发展过程中体积不断变小,其控制技术越来越复杂,控制效果越来越好,使得无人机在各行业中被广泛应用。四轴螺旋翼飞行器因其机动性强、飞行隐蔽、成本低及运行维护简便等特点,被应用于宣传、物流、航天拍摄、抗震救灾、巡线跑道巡检及大型农业植保等领域。为了获取飞行器实时飞行信息,通常采用GPs模块进行自动定位。然而,只有准确搜索到卫星信号,才能保证GPs模块的正常运行。若飞行器内存在任何电磁干扰或其他遮挡物,GPs等模块就可能无法实时获取机载飞行器的任何实时飞行信息。
因此,四轴飞行器可以利用openMV和openCV对目标物进行色块识别,根据现场环境的不同区分不同的色块,以获取飞行器实时信息。四轴飞行器的定点悬停移动控制系统可以大致分为两种姿态,水平移动控制和高度移动控制。首先利用openMV中的光流模块获取飞行器实时信息,然后利用openCV实现对实时图像中色块的识别,最后利用PID算法实现对四轴飞行器的定点悬停控制。
1基本原理
1.1光流传感器工作原理
光流传感器具有精度高和便携特点。目前许多国内外高等院校或专业科研机构对基于微型光流传感器的小型四轴旋翼飞行器的自动控制技术进行了深入研究。光流对比法则是通过将图中相邻两个像素点与光位移中的信息之间进行深度对比,从而计算并得出物体运动的加速度。光流是由于场景中前景目标本身的移动、相机的运动,或者两者共同运动所产生。当人的眼睛观察运动物体时,物体景象在人眼的视网膜上形成一系列连续变化的图像,这一系列连续变化的信息不断"流过"视网膜(成像平面),像一种光的"流",故称之为光流。光流表达了图像的变化,由于它包含了目标物体运动的信息,因为可被观察者用以确定目标的运动情况。四轴双旋翼载人飞行器上所搭载的四轴光学电流传感器所能使用的4个摄像头具有数据分辨率低、帧率高的特点,可以轻松实现图像数据处理与信息的快速更新。
在本文设计中,飞行器可以利用相机安装两个无线光学电流传感器,对相机捕捉的物体图像数据进行在线分析,实时
跟踪获取两个飞行器自身运动位置及物体运动速度情况。通过控制两个小型光学电流传感器之间的间隔高度并水平放置于航空飞行器下方的方法,获取四轴驱动飞行器的实时图像信息。
在本文设计中,初步提出可以采用光学电流传感器,将两个不相同型号的光学电流传感器分别置于一个飞行器下方并检测是否处于水平位置,当两个光流运动传感器检测距离和地面的高度发生变化时,两个光学电流传感器之间采集的目标图像追踪信息的两个重合节点部分也可能发生变化。利用openCV可以实现目标图像追踪、特征点追踪检测:利用新的PID算法可以实现对四轴驱动飞行器自主悬停的控制。
12压缩感知追踪原理
压缩感知理论被广泛应用于现在的电子工程图像处理中,用于获取少量的电子信号或者其他可能被压缩的电子信号。该方法不仅可以凭借音频信号稀疏的声学特性,相比较于新的奈奎斯特还原理论,从较少的信息测量数值进行还原得出原来所想了解的音频信号。核磁共振分析就是一个最有可能广泛使用此分析方法的典型应用。
本文根据这一原理首先提出正负压缩高维感知图像追踪,首先在正负压缩高维区域范围内随机采集抽取不同压缩尺度高维图像下的表观特征,之后将高维特征模型信息随机投射至低维的正负压缩样本区域,根据物体相应需要压缩的区域表观特征信息,建立特定的物体表观特征模型,使用随机稀疏矩阵技术实时压缩落于前景和背景两个目标上的物体,实现在每个压缩域中对前景目标物体进行实时图像更新感知追踪。
1.3openCV的目标追踪
openCV是一个基于跨行业平台的计算机图形视觉软件库,可以在许多不同操作系统上运行,拥有高效性、质量轻等特点。openCV由C语言和C++类编程语言构成,同时提供了不同的通用语言编程接口,例如xpython、ruby、matlab等多种语言,实现了在图像信号处理和应用计算机软件视觉设计方面很多主要通用语言的算法。
根据openCV特点,天空端机载摄像头通过无线图传将画面传输到地面站,地面站通过openCV处理图像并输出修正结果:通过无线数传将地面端结果传输回天空端进行修正,从而实现四轴飞行器对目标的识别和追踪:通过openCV对图像颜色模块的识别进行判断,对目标色块的坐标进行修正和传输,从而控制舵机的转动,实现四轴飞行器的追踪。
本文设计的核心在于机载摄像头的画面传输以及0penCV对图像颜色模块的识别,通过将获取画面转灰,将图像转化为HsV格式,再通过滑块确定所要识别的颜色,将颜色范围外的颜色去除,将图像转二值,通过膨胀化处理,将像素点放大,获取图像轮廓坐标,返回图像轮廓坐标值并绘制矩形框对轮廓进行定位,最后标出圆心,将坐标值显示在矩形中心。图像识别代码如图1所示。
1.4openMV
0penMV上的自动视觉识别算法功能包括自动识别不同色块、人脸识别、跟踪品牌标志、追踪用户眼球等,可以用来检测非法入侵,对产品的残次等级进行区分筛选,对固定标志物进行跟踪等。要想完成各种机器视觉任务,仅需要编写一些Python代码即可。
例如,可以给自己的智能飞行器产品提供人脸识别追踪能力:给各种智能车产品增加人脸追踪识别功能:给各种智能儿童玩具产品增加各种人脸识别追踪功能等。
本文通过0penMV的光流模块和摄像头模块,飞行器定点主要依靠光流模块对实时图像的识别,通过摄像头模块进行探测并分析小车的移动情况,将采集到的数据进行分析并得出PID值,再将PID值导入光流环,结合加速度和角速度环的PID值进行总的PID值调节,从而反馈给sTM32F301开发板的主控模块,最终实现对四轴飞行器实现的定点和追踪。
1.5运动状态以及高度计算
本文通过改变四轴飞行器电机转速,可以实现各种不同的运动,可将其运动分解为4个独立方向,分别为:
1.5.1上下运动
实现方法:4个驱动电机转速一致,4个电机旋翼转动产生的电机升力不应大于或小于自身的承重力。
1.5.2前后运动
实现方法:电机2、4转速不变,电机1、3转速一增一减且改变值相同。
1.5.3左右运动
实现方法:电机1、3转速不变,电机2、4转速一增一减且改变值相同。
1.5.4偏航运动
实现方法:电机1、3为一组,电机2、4为一组,转速一个增加、一个减少,且每次改变转速值相同。四轴旋翼飞行器使用机体的旋转方向与转速快的四轴旋翼的旋转速度方向相反。
为了测量四轴驱动飞行器的高度,在飞行器下方安装光流高度传感器,两端的光流高度传感器水平距离为L,光流高度传感器的角度为θ,对本次飞行高度h的分析计算过程如下:两个光学电流传感器在高度至少为h0时,从一开始就会有一个重叠区域,从两个光学电流传感器共同获取的飞行图像中会有一个重叠后的区域同时开始,当高度再一次增加h0时,重叠后的区域所在x向轴方向上的宽度为大于m0,并可以选择此处大于m0宽度的值作为一个高度参考值。假设从重叠区域开始高度区域的距离为h1时,则其对应的有重叠高度区域的宽为m1,飞行器的总体最高高度为h,其中L、θ为已知参数。
根据三角形特性,无重叠区域的高度h0计算公式如下:
计算关系如图2所示,在一个飞行器高度为2h0时,重叠参考区域内的宽度大于m0,可通过其对角点高度匹配函数算法直接计算其高度值,选取一个m0作为重叠参考区域宽度,从它的有限无重叠高度区域距离开始,高度区域距离最大为hl时其所对应的无重叠高度区域的宽为ml,飞行器高度越高,重叠空间宽度的数值越大,反之,则越小。ml同样由对角点高度匹配函数算法来确定运行值。由三角形相似原理可以,ml与其参考角点宽度大于m0的匹配关系定义如下:
则飞行器的飞行高度h为:
2系统硬件设计
该四轴飞行器系统主要由树莓派、sTM32F301开发板、UsB摄像头、无线图像传输模块、PwM驱动模块、地面站PC组成,如图3所示。
2.1树莓派
本设计应用树莓派是为了实现四轴飞行器的无线操作,凭借树莓派的强大功能完成地面PC和四轴飞行器之间的图像传输与处理,将树莓派安装在四轴飞行器上,使飞行器离开数据线的束缚,可完成远距离无线操作。通过0penMV上的摄像头模块将实时图像传输到树莓派上,在树莓派中加入上文提到的图像识别代码和算法,对识别图像中的中心坐标进行计算,并通过飞行器底部的两个光流模块进行定点,如图4所示,对地面色块进行识别,并确认中心坐标从而传输到树莓派上,在地面PC上进行监控。
2.2%ST32F301开发板
采用sTM32F301单片机作为四轴飞行器控制系统核心,通过调制PwM信号控制无刷电机的转动。在四轴飞行器的飞行控制原理学习过程中,通过学习算法、编程、调试,实现四轴飞行器的悬停。为了提高图像获取和处理的速度,采用sTM32F301开发板,通过将飞行控制核心板和串口通信进行连接,飞控板上所需要的控制量由图像处理所获得,从而实现巡线功能。在不断的调试和改进中,飞行器实现定点悬停和巡线功能。本系统主要由sTM32F301飞行控制模块和sTM32F301无线传输模块、电机控制4路PwM、激光测距模块组成,如图5所示。
2.3PWT驱动模块
四轴飞行器是一个高精度、拥有多种姿态的控制系统。本文采用PwM驱动模块是为了通过调制
PwM波控制电机的转速,实现对四轴飞行器转速的精确控制,根据图像传输回的信息,确定色块的中心坐标,并调整中心坐标,使电机随着坐标的改变而改变,如图6所示。
2.4地面站PC机
本设计采用地面站PC是为了对四轴飞行器通过摄像头所传输回来的图像进行操作、识别,再返还给四轴飞行器,以实现四轴飞行器的悬停,根据图像识别中的中心坐标,调整四轴飞行器的悬停状态。应用地面站PC能对飞行器进行更好的监控,掌握它的实时信息。
3结语
四轴驱动飞行器系统是一个高精度、多姿态、强动力耦合的飞行系统。采用OpenMV上的光流模块作为图像采集单元,利用0penCV对色块的识别检测,对目标色块坐标进行修正和传输,实现四轴飞行器的追踪,同时通过P1D算法完成对四轴飞行器的姿态控制及高度控制。本设计通过四轴飞行器对色块的识别,脱离了GPs的束缚,完成了对不同环境中各种色块的判断,实现四轴飞行器实时信息的传输。实验研究表明,在被测光线采集条件适当的情况下,采用位于OpenMV上的光线电流采集模块,对被测地面目标图像追踪信息进行实时的光线采集,并使用openCV模块实现目标图像追踪、特征点追踪检测,将目标的中心坐标传输到树莓派中,在树莓派中对坐标进行分析和计算,同时在地面站PC机上进行实时监控,对四轴飞行器的定高和姿态进行处理,使用P1D算法可以实现对四轴飞行器的定点悬停。