基于图像处理的四旋翼自主跟踪智能车设计

2018-10-22 06:09任丽莉成子健闫冬梅
长春师范大学学报 2018年10期
关键词:欧拉角PC机旋翼

任丽莉,成子健,康 冰,闫冬梅

(1.长春师范大学网络中心,吉林长春 130032;2.吉林大学通信工程学院,吉林长春 130022;3.吉林大学大数据和网络管理中心,吉林长春 130000)

四旋翼飞行器(quadrotor)是指由4个螺旋桨交叉安装构成的旋翼式飞行器[1]。一般采用微型控制器作为其控制核心,其飞行姿态只需要通过改变4个电机的转速就能实现。四旋翼飞行器的概念提出已经有100多年的历史,早在20世纪初就出现了旋翼式飞行器的原型机[2]。目前多旋翼飞行器有着轻便、灵活、机动性强、拓展性广的诸多优点,在商业、军事上愈来愈受到国内外的重视。

随着图像处理技术的日益成熟,四旋翼无人机在灾难环境下的目标搜索、农业上的农药喷洒和应用在军事上的侦查工作,都成为研究热点[3]。本文的设计涵盖了本科教学中闭环控制、图像处理、通信、电机控制等多项知识,可以作为本科生实验的平台。

1 四旋翼飞行器的姿态获取及计算

1.1 飞行坐标系的解算

描述飞行器飞行姿态可以使用四元数和欧拉角两种方法[4-5],四元数在计算上比较方便,而欧拉角更符合人们的直观感受,欧拉角表示和四元数表示分别如图1和图2所示。对陀螺仪和加速度计获取的角速度和角加速度,通过归一化和一阶龙格库塔计算出四元数,并转化为欧拉角。

公式(1)展示的是欧拉角和四元数的转换,通过计算并更新四旋翼当前的俯仰角、偏航角和翻滚角。

(1)

1.2 空间坐标系的获取

四旋翼下方搭载Pix4Flow光流传感器,其内部集成的算法可以直接输出与地面x,y方向的相对速度,通过IIC接口发送给四旋翼的MCU[6-7]。

在室内环境中,在精度允许的范围内选取超声波模块来测量四旋翼的当前飞行高度。

图1 欧拉角表示

图2 四元数表示

2 图像的采集和处理

2.1 图像的采集

四旋翼下方搭载的USB摄像头采集图像,通过具有集成了openwrt的WIFI图传模块将图像传输到PC机,只需在PC机上连接图传模块的WIFI,读取视频流,即可获得USB采集的图像[8]。此外,图传的速率可以达到150 Mbit/s,能够满足实时处理的需求。

2.2 图像的处理

摄像头采集到的图像格式为RGB格式,而HSV格式更能被人们直观感受,从而被方便调节所需要识别的颜色[9]。HSV格式中的分量:色调(H)、饱和度(S)、亮度(V)。这三个分量中,S和V取值范围在0~1,影响了判别颜色的精确程度。而H的取值在0~360,其中,橙色:0~22、黄色:22~38、绿色:38~75、蓝色:75~130、紫色:130~160、红色:160~179。因此,只需要调节H的阈值,便可以改变需要识别的物体的颜色。RGB转换为HSV的公式如下:

(2)

(3)

V={R,G,B}max.

(4)

在得到HSV格式的图像后,利用OpenCV的函数库,根据设定好的HSV阈值进行二值化处理,在得到的二值图像上,利用开运算去除背景噪声,再应用闭运算填充目标内的孔洞,便提取出阈值颜色内的物体,然后计算出所识别物体中心与图像中心的偏差,传递给四旋翼的MCU。

3 四旋翼稳定飞行和目标追踪

四旋翼自主追踪智能车流程如下:

首先,四旋翼的姿态控制依靠MCU输出四路PWM,通过电子调速器控制无刷电机的转速来实现以下6个动作:垂直、俯仰、偏航、翻滚、前后、左右[10]。

其次,通过进行翻滚、俯仰和偏航这3个动作保持欧拉角在一定误差范围,使四旋翼保持平稳飞行的姿态。而追踪物体首先需要自身高度恒定,在设置目标高度后,通过超声波模块获得的高度数值,利用串级PID,即当前高度和目标高度差作外层PID,当前速度和目标速度作内层PID运算,调节适当的PID参数便可以实现四旋翼恒定高度飞行。

图3 系统结构图

最后,通过上位机发送的四旋翼机体与目标偏差位置的x,y坐标,建立平面坐标系并给偏差坐标赋予加权值,计算出x和y两个方向的期望速度。通过光流传感器获取的当前速度与期望速度作PID运算,调节四旋翼作出相应的前后、左右动作,实现对目标的追踪[11-12],如图3所示。

4 系统实验数据分析

4.1 测试结果

为了便于控制,利用Qt平台结合OpenCV函数库编写用于操作的上位机软件(图4)。图4中在行进中的智能车上放置红色标识物(图4中黑框已标出),系统启动后,在上位机视图中可见四旋翼采集回传的图像,其中目标物体能被精准地识别。

图4 上位机界面

4.2 飞行数据分析

四旋翼的起飞过程是缓慢增加油门值,离地后进入定高状态。图5中,下面的曲线为四旋翼离地高度,上面曲线为电机的油门值,可见在接近预期高度时油门增加速度减慢,防止上升过快导致失调。同样,在控制高度一定过程中串级PID发挥了很大的作用,使四旋翼始终保持同一水平高度飞行。

图5 高度和油门值

四旋翼在飞行过程中,保持姿态角的稳定至关重要。图6中曲线表示俯仰角变化,图7中曲线表示飞行过程中的翻滚角变化。可见,收到外界干扰时四旋翼利用PID调节仍能保持自身趋于稳定的状态。

图6 俯仰角变化

图7 翻滚角变化及抑制

5 结语

本系统通过四旋翼下方搭载的USB摄像头采集地面信息,利用WIFI模块传输给PC机,在PC机上对传输的图像进行处理,识别出行进中的智能车,并将两者的相差位置坐标发送到四旋翼的MCU,进而控制四旋翼追踪智能车。

四旋翼主控板为STM32F103VCT6,利用MPU6050获取数据并计算出当前的姿态角,通过Pix4Flow光流传感器获取四旋翼対地速度,由超声波模块得到四旋翼高度,在高度控制和姿态控制上都采用了串级PID算法,使四旋翼能够按指令定向。而在图像处理方面,利用Qt平台和OpenCV函数库结合编写上位机,作为系统间的纽带,同时完成对目标识别和控制指令的传输,最终完成四旋翼和智能车的联动。

猜你喜欢
欧拉角PC机旋翼
改进型自抗扰四旋翼无人机控制系统设计与实现
大载重长航时油动多旋翼无人机
基于STM32的四旋翼飞行器的设计
基于三菱FXPLC的感应淬火机床与PC机的串行通信实现
从CATIA位置矩阵求解欧拉角的计算方法分析
VC.NET下实现dsPIC单片机与PC机的通信
一种基于EGI和标准人脸模板的三维人脸点云拼合算法
排除OLT设备登录故障
四旋翼无人机动态面控制
VIVID3彩色超声仪结构原理及维修