APP下载

飞行器摄像头模块设计及自适应循迹算法研究*

2017-12-26杨红莉曾宪阳杜安国

电子器件 2017年6期
关键词:黑线循迹飞行器

杨红莉,曾宪阳,杜安国,孙 君

(1.南京工程学院数理部,南京 211167;2.南京工程学院工业中心,南京 211167;3.南京大学数学系,南京 210093;4.太阳雨集团有限公司,江苏 连云港 222002;5.南京工程学院机械工程学院,南京 211167)

飞行器摄像头模块设计及自适应循迹算法研究*

杨红莉1,3,曾宪阳2,3*,杜安国4,孙 君5

(1.南京工程学院数理部,南京 211167;2.南京工程学院工业中心,南京 211167;3.南京大学数学系,南京 210093;4.太阳雨集团有限公司,江苏 连云港 222002;5.南京工程学院机械工程学院,南京 211167)

针对四旋翼飞行器循迹较为复杂、姿态难以控制的问题,设计了一套完整的摄像头循迹系统模块。采用独立的STM32单片机系统进行控制,提高了工作效率。对循迹路线进行了分析简化,得出四幅场景图像,给出了判别依据:仅需对图像横向扫描然后判断等差数列的个数,以及是否扫描到黑线的情形来判断区分四幅图像,简化了图像识别步骤,提高了程序执行效率及可靠性。PID调节实验结果表明,该摄像头循迹模块具有较强的自适应抗干扰能力。

电子技术;摄像头模块;循迹算法;等差数列;PID调节

四旋翼飞行器稳定飞行控制是近年来新兴的研究方向,特别是飞行器沿黑线稳定循迹成为科研工作者研究的热门话题[1-3],比较典型的循迹路线如图1所示。飞行器从A区起飞,沿直线径直飞至B区;或者飞行器从A区起飞,沿外环顺时针方向飞行到达B区,然后继续沿外环顺时针方向飞回至A区然后降落。要完成循迹飞行任务,飞行器除了具备稳定的姿态控制系统外,还需具备能实时识别循迹路线的循迹模块装置。基于此,本文采用面阵摄像头OV7670设计了一套完整的循迹系统,并对循迹算法做了深入研究。

图1 飞行器典型循迹路线图

1 系统设计思路

由于摄像头数据量大,会占用较多的单片机资源,为防止对上位机单片机姿态控制系统产生影响,因此本文设计的下位机循迹模块将采用独立的单片机系统进行控制,并且具有独立的按键显示人机交互系统,便于现场参数调试等。还设计了程序下载接口、上位机通信接口,DC-DC稳压电源等,因此系统结构框图如图2所示。

图2 系统结构框图

2 硬件电路设计

根据系统设计思路,设计的硬件电路原理图如图3所示。考虑到摄像头数据量大,对单片机处理速度、数据存储器RAM要求较高,因此选用单片机STM32F103RET6作为主控芯片[4-5],其工作频率高达72 MHz,内部RAM为64 kbyte,程序存储器达到512 kbyte,因此足够摄像头循迹软件程序运行。摄像头采用当前较为流行的OV7670面阵摄像头,其自带FIFO数据缓冲器,方便图像数据读取。显示模块采用体积较小的0.96 inch OLED显示模块,如图中U1所示,还设置了4个LED发光二极管,用来指示循迹方向左转右转前进后退等,便于用户直观调试等[6-7]。分别设置了并行与串口接口,保证了与上位机通信的灵活性。

图3 系统硬件电路原理图

3 程序算法设计

3.1 数据采集方式

OV系列的摄像头一般采用SCCB控制时序与单片机建立通信[8-9]。由于循迹现场为黑白场景,只需摄像头输出亮度信号,因此需将摄像头配置为YUV格式,然后在软件中进行二值化处理即可。

OV7670摄像头每幅图像输出数据量大,共240行,每行320个像素点。当前很多学者在循迹算法上对图像分别进行了横向、纵向数据扫描,这会占用CPU大量的时间,使系统响应变慢。本文经过仔细分析发现,实际图像识别过程中只需进行横向扫描,且只需要扫描20行数据足可满足图像识别要求,如图4所示,首先将240行数据均分成21等分,每隔11行采集一次数据,使得数据采样行间隔均匀的分布在图像区域。

图4 数据采集方式图

3.2 数据滤波处理

摄像头采集到每个像素点的灰度数据为0~255之间的数,单片机通过二值化处理来判断该点是白色还是黑色,如果大于200,则认为该像素点为白色,用0表示,如果小于200,则认为该像素点为黑色,用1表示。但是有时候由于环境光照度不均匀等原因,导致采集到的灰度数据不准确,以至于输出结果出现错误,该问题需要在软件中通过多重滤波措施将错误信息去除。

首先滤除短孤立点数据,如图5所示。反复实验研究发现,飞行器室内飞行高度为1 m左右,因此黑线所在数据区宽度一般不小于2.5 byte,如果该行数据连续出现1的个数小于2 byte,则可认为该数据为孤立错误数据1,应当将其修正为0。

图5 孤立点干扰数据示意图

环境干扰引起的错误数据长度有时候也可能会超过2.5 byte(如:环境大面积光线不均匀问题),这时应当从5行扫描的数据中进行判断滤除孤立点。飞行器前行,如果第1行有数据段不在预知范围,并且随着时间的推移,后面几行数据中,至少有两行又没有出现该段数据,也应当滤去,将其修正为0即可。

3.3 数据压缩处理

由于每行320个像素点,每个像素点占用1 byte的数据,经二值化处理后变成0、1两种状态,每个状态只占用1 byte中的一位,其他7位空闲,因此首先将二值化处理后的数据重新按序放置,清除空闲位。处理后320 byte的数据变成了320位数据,也即40 byte数据,这个数据量仍然较大,会占用较多的处理时间。本文继续做如下压缩处理,如图6所示。将每个字节的数据继续压缩成1位数据,压缩规则为:如果该字节8位数据中1的个数超过4个,则该字节用一个数据位1来表示,否则用一个数据位0来表示。这样就把40 byte的数据压缩成了40位,即5 byte,单片机通过处理这5 byte的数据来判断当前位置,这种处理方式不仅不会破坏图像原态,还会给CPU快速处理创造条件。

图6 数据压缩示意图

3.4 状态识别与判断[10-11]

经过数据采集、滤波及压缩处理后的数据较为准确,对其判断识别即可得到当前飞行器的位置状态。对循迹路线图1分析可知,摄像头采集到的图像有以下4种可能的情形,如图7所示.

图7 摄像头采集到的几种图像

图8 图7(a)的横向扫描分析图

软件系统必须能识别区分以上4种图形,可通过判断这些图形线条存在不同斜率的个数来区分。而斜率的区分可以用等差数列来判断,因此首先对以上4种图形数据进行横向扫描分析,通过各个位置坐标之间形成的数列是否构成等差数列来判断区分以上4种图形。

摄像头拍摄到a图可能的画面有3种情形,如图8所示,对其中任一图像经横向扫描后形成xn数列:

xn={x1,x2,…x20}

设Δx1=x1-x2;Δx2=x2-x3;……Δx19=x19-x20,由于图中的黑线只有一个斜率,在一定误差范围内Δx1=Δx2=…=Δx19,因此xn就构成了一个等差数列,而且等差数列的个数只有一个。因此a图的识别方式为:判断是否构成了唯一一个等差数列。

拍摄到b图可能的画面情形如图9所示,其中图7b-1、图7b-3由于两条黑线斜率不同,因此可以扫描到两组等差数列。而在无偏角的图7b-2中,只能扫描到一组等差数列,但底部会出现扫描不到黑线的情形,因此也得到了b图的识别方法。

同理分析图7的c图,如图10所示。分析可知图7c-1、图7c-3均可扫描到4组等差数列。而在图7c-2中,可以扫描到3组等差数列(公差为零),且每条扫描线均可扫描到黑线,因此得到了图7c图的识别方法。

图9 图7(b)的横向扫描分析图

图10 图7(c)的横向扫描分析图

分析图7d图,如图11所示。由于存在圆弧,因此图7d图采集到的数据圆弧段不构成等差数列,因此可通过判断采集到的数据是否构成等差数列来识别区分图7d图。

因此综合以上得出4种图形的区分方法:当图像扫描数据形成的等差数列为1组,且每条扫描线均扫描到黑线时,则当前图像为a图;当图像扫描数据形成的等差数列为2组,且每条扫描线均扫描到黑线,或当图像扫描数据形成的等差数列为1组,且存在扫描不到黑线情形时,则当前图像为b图;当图像扫描数据形成的等差数列多于3组时,则当前图像为c图;当图像扫描数据不构成等差数列时,则当前图像为d图,如表1所示。

图11 图7(d)的横向扫描分析图

图12 PID调节结构图

等差数列组数是否全部扫描到黑线判断结果1组2组1组3组0组是是否是×a图b图b图c图d图

3.5 PID调节控制

为保证循迹的稳定性,图像识别处理后的结果需要对上位机飞行器进行PID调节控制[12-14]。将黑线偏离图像区域中心的距离作为误差,采用增量式PID调节控制方式,经反复实验验证得出控制参数:KP=15.3,KI=0.01,KD=0.56,代入增量式PID调节公式:

Δu(K)=Kp[e(K)-e(K-1)]+KIe(K)+

KD[e(K)-2e(K-1)+e(K-2)]

u(K)=Δu(K)+u(K-1)

图13 系统响应PID调节波形图

将摄像头模块采集处理后的数据发送给上位机PC,得出系统响应PID调节波形如图13所示。

从图13可以看出,当系统出现较大偏差时,系统将会快速响应并恢复到平衡位置,说明系统满足设计要求。图14为系统实物图及拍摄效果图,图15为飞行器循迹效果现场图。

图14 设计的摄像头循迹模块实物及拍摄效果图

图15 飞行器循迹效果现场图

4 结论

文中设计了一套完整的飞行器循迹模块系统,为减少对上位机飞行器的影响,对摄像头进行了独立的高速单片机控制,设置了按键显示人机交互界面,可方便进行系统参数调试。通过对循迹路线分析,得出几种摄像头可能采集到的图像。通过对图像横向扫描分析,给出了4种图像画面识别判断的依据。通过PID调节实验验证分析,系统可以控制飞行器在黑色轨迹线上进行循迹,并且系统具有较强的自适应抗干扰能力。

[1] 李世光,王文文,申梦茜,等. 基于STM32的姿态测量系统设计[J]. 现代电子技术,2016,39(9):12-14.

[2] 曾宪阳,杨红莉,郁汉琪. 基于STM32单片机四旋翼飞行器建模分析与系统设计[J]. 电子技术应用,2016,42(12):65-68.

[3] 王宇飞,吴庆宪,姜长生,等. 近空间飞行器的多模型切换控制[J]. 控制与决策,2012,27(10):1452-1458.

[4] 曾宪阳,杨红莉,郁汉琪,等. 基于单片机控制的旋转倒立摆建模分析与系统设计[J]. 电子技术应用,2016,42(9):76-79.

[5] 曾宪阳,杨红莉,郁汉琪,等. 间歇式低功耗多网点甲醛含量无线监测系统设计[J]. 电子器件,2016,39(6):1467-1471.

[6] 康华光. 电子技术基础[M]. 北京:高等教育出版社,2003.

[7] 单成祥. 传感器的理论与设计基础及应用[M]. 北京:国防工业出版社,1999.

[8] 隋修武,刘蕾,杜玉红,等. 基于线阵CCD的可吸收缝合线线径在线检测系统[J]. 传感技术学报,2014,27(8):1154-1158.

[9] 武万军. 计算机视觉技术在船舶吨位检测中的应用[J]. 舰船科学技术,2015,37(2):168-171.

[10] 刘涛,吕勇,刘立双. 智能车路径识别与控制性能提高方法研究及实现[J]. 电子技术应用,2016,42(1):54-57.

[11] 黄刚. 实时修正偏移量的循迹机器人控制系统研究与实现[J]. 仪器仪表学报,2015,36(11):2538-2547.

[12] 李世光,王文文,申梦茜,等. 基于变论域模糊PI四轮机器人的仿真与研究[J]. 科学技术与工程,2016,16(10):191-194.

[13] 蔡磊,牛小骥,张提升,等. MEMS惯导在旋翼飞行器中导航性能的实验分析[J]. 传感技术学报,2016,29(5):711-715.

[14] 赵世荣,孙运强,石喜玲. 基于信息融合四旋翼飞行器稳定性改进设计[J]. 电子器件,2015,38(6):1417-1420.

TheDesignofCameraModuleandtheResearchofAdaptiveTrackingAlgorithminVehicle*

YANGHongli1,3,ZENGXianyang2,3*,DUAnguo4,SUNJun5

(1.Department of Mathematics and Physics,Nanjing Institute of Technology,Nanjing 211167,China;2.Industry Center,Nanjing Institute of Technology,Nanjing 211167,China;3.Department of Mathematics,Nanjing University,Nanjing 210093,China;4.Sunrain Co. Ltd.,Lianyungang Jiangsu 222002,China;5.School of Communication Engineering,Nanjing Institute of Technology,Nanjing 211167,China)

In view of the problems in picking up the trail and in controlling the flight attitude,a set of complete camera tracking system module has been designed for the four rotor aircraft. The independent STM32 single chip microcomputer system is used in controlling to improve the efficiency. At first,the route tracking is simplified and analyzed,and then four images are obtained which are the discriminant basis,at last the judgment and distinguish are made to these images on the numbers of the arithmetic progressions and on the scanning situations whether to find the black line on the data. This whole processing improves the efficiency of program execution and ensures the accuracy of the data. The experiments under PID controlling show that the camera module for tracking has strong adaptive judgment ability and control ability.

electronic technology;camera module;tracking algorithm;arithmetic progression;PID control

10.3969/j.issn.1005-9490.2017.06.018

项目来源:南京工程学院创新基金重大项目(CKJA201410);国家自然科学基金项目(11701274);江苏省自然科学基金项目(BK20170760)

2016-11-19修改日期2017-01-13

TP273+.2

A

1005-9490(2017)06-1421-05

杨红莉(1980-),女,汉族,江苏靖江人,南京大学博士后,南京工程学院讲师,主要研究方向为算法分析与设计,数学建模与仿真等,yanghongli1016@163.com;

曾宪阳(1979-),通讯作者,男,汉族,湖北随州人,南京大学博士研究生,南京工程学院教师,主要研究方向为电子与通信,控制理论与控制工程等,zxy@njit.edu.cn。

猜你喜欢

黑线循迹飞行器
基于DFT算法的电力巡检无人机循迹检测系统设计
高超声速飞行器
黑线
基于单片机的智能循迹小车的设计
复杂飞行器的容错控制
虾背黑线真的特别“脏”吗
智能差分循迹小车设计
基于MC9S12XS128处理器的智能循迹小车分析研究
七巧数独
神秘的飞行器