APP下载

基于模拟CCD传感器和图像矫正的自循迹机器人设计

2015-03-03赵思蕊吴亚东杨文超蒋宏宇

西南科技大学学报 2015年2期
关键词:黑线循迹摄像头

赵思蕊 吴亚东,2 杨文超 蒋宏宇

(1.西南科技大学计算机科学与技术学院 四川绵阳 621010;2.西南科技大学核废物与环境安全国防重点学科实验室 四川绵阳 621010)



基于模拟CCD传感器和图像矫正的自循迹机器人设计

赵思蕊1吴亚东1,2杨文超1蒋宏宇1

(1.西南科技大学计算机科学与技术学院 四川绵阳 621010;2.西南科技大学核废物与环境安全国防重点学科实验室 四川绵阳 621010)

设计了一种基于模拟CCD图像传感器和图像透视矫正算法的自动循迹机器人。分别完成了机器人的总体设计和软硬件设计。该循迹机器人以32位单片机MK60DN512ZVLQ10为主控制器,采用模拟CCD摄像头获取黑色引导线信息,并转化为有效的舵机和电机控制量。为提高控制精度,利用PID控制算法实现机器人的闭环控制。由于采集的图像存在梯形失真,所以利用图像透视变换对原始图像校正,实现机器人精确的循迹。测试结果表明:该循迹机器人对场地适应性强,具有低成本、低功耗等优点,在核辐射和高压电等特殊环境下有很大的使用价值。

模拟CCD 图像传感器 自循迹 机器人 透视校正

循迹机器人是一种集环境感知、规划策略、自动行驶等功能于一体的综合系统[1],在核辐射和高压电力等环境下具有重要的使用价值和广阔的应用前景,如利用循迹机器人对人工难以作业的核辐射环境进行检测与预警、对关键设施进行维护等[3]。根据循迹采用传感器的不同,循迹机器人循迹方式主要分为光电循迹、电磁循迹和视觉循迹。光电和电磁因为易受光线和场地等环境因素的影响,应用范围十分有限,而视觉循迹依靠图像处理技术有着更强的适应性和更广泛的应用场景[2]。

本文借鉴Freescale智能汽车竞赛经验,在核辐射实验室铺设双黑线引导线,将模拟CCD摄像头作为循迹机器人的视觉传感器,实现路径识别和自动循迹的功能。由于视觉传感器安装的朝向位置倾斜向下,所以采集到的图像存在梯形失真,这种失真将会造成后续的引导线识别以及计算出的图像偏差存在较大误差,从而无法达到准确按规定路线循迹的目的[4],所以利用透视变换对原图像进行矫正,从而大大提高了循迹机器人循迹的准确度。该循迹机器人能为核辐射、高压电等特殊环境的监测和检修提供一种低成本、低功耗的有效解决办法,具有一定的应用价值。

1 系统总体设计

循迹机器人系统采用Freescale高性能的32位单片机MK60DN512ZVLQ10作为主控制器,利用模拟CCD图像传感器获取路径信息,根据采集的路径图像中黑色引导线与机器人的体中心线的偏差,完成对舵机转角的控制,采用500线光电编码器实时采集和反馈速度信号,并利用增量式PID算法实现对循迹机器人速度的精确控制。整个系统采用模块化设计,硬件由主控模块、电源管理模块、图像采集模块、电机驱动模块、舵机驱动模块、速度检测模块、辅助调试模块组成。软件编写相应的图像信号采集、信号处理、路径引导线提取识别和PID控制等功能模块函数,从而达到机器人准确的循迹目的。系统组成如图1所示。

图1 系统整体框图Fig.1 Block diagram of the system

2 系统硬件设计

2.1 主控模块

主控模块采用MK60DN512ZVLQ10最小系统板。K60是飞思卡尔公司推出的Kinetis系列微控制器,基于32位处理器内核ARM Cortex-M4[6],内部加入了DSP运算指令,能进行浮点运算,运算频率可高达1.25 DMIPS/MHz,而且提供了50 MHz,72 MHz,100 MHz,120 MHz和150 MHz的CPU频率,本系统采用超频技术使主控模块安全工作在150 MHz,从而大大提升了机器人实时处理信息的能力。此外,K60在定时器和控制方面,FlexTimers支持通用、PWM和电机控制功能,丰富的外部IO接口更是为后续的开发提供了保障。

2.2 电源模块

电源模块是整个系统的能源动力机构,所以良好的电源供给是系统稳定运行的前提。系统的总电源采用7.2 V,2 A/h的可充电镍镉电池供电。由于电路中的不同电路模块所需要的工作电压和电流容量各不相同,因此电源模块应该包括多个稳压电路,将充电电池电压转换成各个模块所需要的电压,系统的电源管理模块设计如图2所示。

图2 电源模块框图Fig.2 Block diagram of power module

2.2 图像采集模块

2.2.1 图像传感器选型

摄像头是使用最为广泛的图像传感器,根据信号处理方式的不同,主要分为模拟摄像头和数字摄像头[7],而根据采用的传感器芯片的不同,主要分为CMOS和CCD两种类型。由于模拟CCD摄像头在图像质量、感光度、噪声等方面都大大优于数字CMOS摄像头,经过实际环境测试,最终采用Sony模拟CCD摄像头作为循迹机器人的图像传感器,该摄像头像素可达30万,按一定的分辨率,以隔行扫描的方式采集图像上的点[7],输出标准视频信号每秒有60场图像,分辨率为640×480,所以每一场输出312.5行图像,行周期为64 μs。

2.2.2 视频信号处理

循迹机器人采用模拟CCD摄像头作为图像传感器,模拟式的采集需要先将摄像头输出的复合视

频信号进行分离,得到独立的行同步脉冲信号和场同步脉冲信号。本系统采用经典的LM1881视频同步信号同步分离芯片进行电路设计提取图像信号中的时序信息,并转换成TTL电平直接输出给单片机的I/O口作中断控制信号。

2.2.3 硬件二值化电路

由于模拟摄像头采集到的图像信号为模拟信号,不能直接被单片机处理,所以需要先将模拟的图像灰度信号转换为数字信号。模数转化通常利用AD转换芯片或单片机自带的AD资源进行处理。考虑到单片机的处理能力有限,而且即使利用AD转化得到图像灰度数据,最终还是需要利用软件设置二值化阀值进行黑白判断,由于不同环境下的二值化阀值的大小往往不同,从而极大地影响软件算法的适应性。对此,设计如图3所示的硬件二值化电路,将模拟CCD采集到的灰度信号通过模拟比较器LM393后得到一组方波信号,然后直接输入到单片机的一位I/O口,对该位的端口进行读取,高电平“1”表示采集到的为白色图像,低电平“0”表示采集到黑色图像。根据现场环境光照等因素,调节滑动变阻器就可以改变图像二值化阀值。

2.3 电机驱动模块

电机驱动电路采用两片IR2104半桥驱动芯片和四片NMOS管组合搭建成全桥驱动。IR2104是半桥驱动芯片,可以驱动高端和低端两个 N 沟道 MOSFET,能提供较大的栅极驱动电流,并具有硬件死区、硬件防同臂导通等功能。使用两片 IR2104半桥驱动芯片可以组成完整的直流电机 H 桥式驱动电路。

图3 硬件二值化电路Fig.3 Circuit of hardware binarization

3 系统软件设计

循迹机器人的系统软件采用C语言编程实现,主要使用到了单片机的普通I/O模块、PWM输出控制模块、定时器模块、串口通信模块和中断模块。系统软件由图像信号采集、黑色引导线提取、转向控制和速度控制等功能组成。

3.1 图像采集

图像采集根据摄像头的行同步脉冲信号和场同步脉冲信号对图像模拟量进行采集。在摄像头机械位置固定的情况下,采集图像的行数和列数决定了循迹机器人前瞻、盲区的大少以及视野的宽度。本系统使用的Sony CCD图像传感器分辨率为480×320,即采集的一幅图像最大为320行和480列,考虑到微处理器K60的存储容量和处理能力有限,不可能对每一行图像都采集,而且黑色引导线的线宽为25 mm,图像纵向至少精度要达到25 mm,因此通过现场调试,均匀采集110行和220列,使用二维数组保存单片机读取到图像黑白像素值。采集到的几种典型路径二值化图像如图4所示,图4(a)为直道入弯,图4(b)为弯道,图4(c)为十字交叉路口。

图4 几种典型路径二值化图像Fig.4 Binarization images of several typical path

3.2 图像信号处理

3.2.1 图像滤波

由于图像在生成、传输过程中极易产生噪声[10],图像中存在的的噪点对图像边沿检测、轨迹识别等影响比较大,所以图像去噪是后续图像处理的前提。考虑单片机的处理能力有限,不可能使用复杂的去噪算法,此外摄像头采集的图像信号中噪声点占少数,所以选用经典的中值图像滤波算法对采集的图像进行去噪,中值滤波是基于排序统计理论的一种能有效抑制噪声的非线性信号处理技术[11]。其思想是:在采集的图像窗口范围内对像素样本P(n-N)…P(n)…P(n+N)取中值,即第n个像素点的灰度值为:

Y(n) = med[P(n-N)…P(n)…P(n+N)]

(1)

其中med[ ]表示对所选图像范围内的所有像素点进行从小到大的排序后,然后取中间值。实际中,我们对采集到的每一行图像进行中值滤波,在待处理像素点的设置领域内,对所有像素点的灰度值进行排序后取中间点的灰度值代替当前像素点的灰度值。经过实验测试,该方法取得了很好的去噪效果,并能保持图像中的边缘特性。

3.2.2 梯形失真矫正

由于循迹机器人的摄像头与地面成一定角度安装,造成了采集的图像存在梯形畸变,即采集到的图像存在近端物体宽大,远端物体窄小[4],这样的畸变对后续黑色引导线的识别以及计算出的偏差控制量存在较大误差,从而不能实现循迹机器人的准确循迹的目的。因此,采用图像透视投影变换对原始图像进行正投影校正。

如果将摄像头获取到的图像信息映射到平行于地面的平面上,即重投影变换,其效果相当于将摄像头镜头垂直于地面向下看得到的物体真实形状。设循迹机器人采集到的图像所在的坐标平面为XOY,校正后的坐标平面为X' O' Y',其中坐标原点O和O' 为图像的左上顶点,再设(x,y)是平面XOY中任意待校正的点,(x,y)在校正平面X' O' Y' 的像点坐标为(x',y' ),则有

(2)

式中a,b,c,d,e,f,u,v均为常数。分析式(2)可知,实现图像的重投影变换只需在平面XOY和X'O'Y' 上找到4对“物点和像点”,有了这4对点的对应关系就可以确定常数a,b,c,d,e,f,u,v的值。

实际校正中,使用规范化坐标系作为重投影平面,则重投影平面的4个顶点坐标依次为A' (0,0),B' (1,0),C' (0,1),D' (1,1),由于他们依次对应原图像的4个定点ABCD的坐标可以通过PC上位机图像得到,设A点坐标为(x1,y1),C点坐标为(x2,y2),则B点和D点的坐标依次为(L-x1,y1),(L-x2,y2),其中x1和y1为采集的有效路径图像的左上顶点相对坐标系原点O的横轴和纵轴的距离,x2和y2为有效路径图像的右上顶点相对坐标系原点O的横轴和纵轴的距离,L为采集的原有效路径图像的宽度,将以上四组坐标分别带入(2)式联立形成方程组即可得到常数a,b,c,d,e,f,u,v的值:

(3)

在计算得到a,b,c,d,e,f,u,v的值后,就可以在单片机程序中编写常量表,利用(2)式完成相应的梯形失真校正。

3.3 黑色引导线提取

在黑线引导线提取时,采用经典的边沿跟踪提取算法。黑线提取算法如图5所示。通过分析摄像头采集到的图像数据,发现图像在近端比较清晰,即使是外界自然光线变化比较大,采集到的图像也基本不变,所以对前4行进行全行扫描,直到找到黑线行为止,并且提取左右的黑白跳变点。在前4行确定的情况下,以此4行作为基准,在确定的有效引导线范围内,对后面的所有的行进行边沿搜索:先计算搜索到的3行黑线的斜率K,根据路径的连续性,若K<0,黑线的变化趋势向右,从左向右搜索;若K>0,黑线的变化趋势向左,从右向左搜索。此外,循迹环境中存在十字交叉口,为了排除十字叉的干扰,在计算斜率的基础上,判断前一行的列值,若列值过大,则采取从右向左搜索,若过小,则从左向右搜,搜索范围会根据黑线的远近端以及前一行是否丢失黑线来确定。若前3行没有搜索到黑线,则认为黑线丢失,黑线丢失标志置1,即退出搜索,黑线提取完毕,有效行在退出前要再次进行更新。

图5 黑线引导线提取算法流程图Fig.5 Flow chart of black guide line extraction

3.4 速度控制算法

循迹机器人在循迹过程中,对于不同的路径,摄像头所采集的图像的有效行数和偏差值也各不相同。直道采集到的有效图像行数最多,偏差值最小,在进入弯道时,采集到的有效图像行数会减少,偏差值会增大,所以将图像偏差值作为电机的PWM控制量,并结合搜索到的图像引导线的有效行,使用鲁棒性很好的经典PID算法多循迹机器人实现闭环控制。由于增量式PID控制算法计算量小[8],适合本循迹机器人系统,所以采用增量式PID控制算法对循迹机器人的速度进行控制,将速度的增量作为电机的控制量。将(4)式减去(5)式即可得到增量式PID控制算法,其表达形式为式(6)。

(4)

(5)

Δu(k)= KpΔe(k)+Kie(k)+

Kd[Δe(k)-Δe(k-1)]

(6)

4 系统测试与结果

本循迹机器人系统的测试主要包括两个部分:图像梯形失真校正效果测试和机器人循迹准确性测试,其中机器人循迹准确性测试又分为图像校正影响对比测试和环境适应性测试。

为了验证本文图像梯形失真校正算法的正确性。将循迹机器人采集到的路径图像通过单片机串口发送到PC上位机显示,并保存图像灰度信息。图6(a)为采集到的直道路径灰度图像,图像底边实际长度为0.6 m,纵向长度为1.9 m。利用(3)式计算得到常量表,并通过Matlab编写程序,利用式(2)进行透视重投影校正,图像校正后采用灰度插值算法填补像素间隙。原始灰度图6(a)经过校正最终显示结果如图6(b)所示。

图6 图像校正效果图Fig.6 Pictures of correction effect

对比图6(a)和图6(b)可知,直道路径图像中的黑色引导线由原来的上窄下宽校正为宽度一致,可见此梯形失真校正算法能正确还原路径图像,达到预期效果。

为了测试图像校正对循迹机器人循迹准确度和速度的影响,在核辐射实验室铺设双黑色引导线,让机器人在相同日光灯照射下,分别以2 m/s和2.7 m/s的速度进行循迹,循迹路径包括10 m长直道,十字交叉,30°,45°,75°,135°弯道。测试结果如表1所示。

表1 图像校正影响测试结果Table 1 Experimental results of image correction effect

从表1测试数据可以看出,当机器人以2 m/s速度循迹时,使用和不使用图像校正算法,对机器人的循迹准确性影响不大。当机器人的循迹速度提高到2.7 m/s时,不使用图像校正算法情况下的机器人循迹失败率明显高于使用图像校正的情况。可见使用本文的图像失真校正算法可以大大提高机器人循迹的准确性和循迹速度。

与此同时,为了测试循迹机器人对环境的适应性,让机器人分别在自然光和日光灯照射下以2.5 m/s的速度进行循迹,循迹路径也是10 m长直道,十字交叉,30°,45°,75°,135°弯道。测试结果如表2所示。

表2 机器人适应性测试实验结果Table 2 Experimental results of robot tracking

分析表2数据可知,本循迹机器人在自然光和日光灯照射条件下均能以2.5 m/s的速度稳定循迹,并且两种光照条件下测试结果相差不大,说明循迹机器人有一定的环境适应性,循迹成功率较高,具有一定的实用价值。

5 结论

本文设计了一种基于模拟CCD图像传感器和图像梯形失真矫正算法的自动循迹机器人,实现了对双黑色引导线的准确循迹。机器人以32位单片机MK60DN512ZVLQ10为核心控制芯片,采用模拟CCD摄像头提取核辐射实验室地面铺设的双黑色路径引导线,利用路径图像中的黑色引导线与车体中心线的偏差,完成了对舵机转角的控制,并使用增量式PID控制算法实现对机器人速度的闭环控制。针对采集到的路径图像存在梯形失真问题,使用透视重投影变换对原图像进行了正投影校正。测试结果表明,本文设计的循迹机器人循迹成功率较高,并且具有嵌入式系统低功耗、低成本的优点,在核辐射和高压电力等环境下具有重要的使用价值和广阔的应用前景。

[1] 徐文福,毛志刚. 核电站机器人研究现状与发展趋势[J]. 机器人,2011, 33(6): 758-766.

[2] 瞿哲奕,唐秦崴,朱熀秋. 基于路径识别的巡线机器人控制系统设计 [J]. 制造业自动化,2010, 32(10): 30-34.

[3] 谢宁,周翔,刘露露. 基于XS128单片机的智能循迹车硬件系统设计 [J]. 应用天地,2012, 31(12): 63-66.

[4] 胡荣春,杨涛,马娟. 视觉训线机器人中的摄像头图像透视校正方法 [J]. 计算机与数字工程,2012, 40(6): 104-108.

[5] 夏澎,郝卫东,刘溯奇. 基于S3C6410的视觉巡线机器人系统设计 [J]. 计算机系统应用,2009, (5): 111-114.

[6] 刘颖. 基于K60单片机的智能车控制算法的仿真与实现 [D]. 西安:长安大学,2014.

[7] 李兴泽,王福平. 基于CCD摄像头的小区自动循迹停车系统 [J]. 计算机系统应用,2013, 33(S1): 321-323.

[8] 柯其延,阙大顺,杨锦涛,等. 基于边缘检测算法的智能车循迹系统设计 [J]. 计算机技术及其应用,2014, 36(3): 48-50.

[9] GAO Zhen-dong, WANG Xiao-hui, LI Zhi-wen. Design of intelligent line-tracking robot based on STM32 [J]. Journal of Measurement Science and Instrumentation, 2014, 5(2): 55-58.

[10] 胡越黎,计慧杰,吴频,等. 图像中值滤波算法及其FPGA实现 [J]. 计算机测量与控制,2008, 16(11): 1672-1675.

[11] 刘国宏,郭文明. 改进的中值滤波去噪算法应用分析 [J]. 计算机工程与应用,2010, 46(10): 187-189.

Design of Self-tracking Robot Based on Analog CCD Sensor and Image Correction

ZHAO Si-rui1, WU Ya-dong1,2, YANG Wen-chao1, JIANG Hong-yu1

(1.SchoolofComputerScienceandTechnology,SouthwestUniversityofScienceandTechnology,Mianyang621010,Sichuan,China; 2.FundamentalScienceonNuclearWastesandEnvironmentalSafetyLaboratory,SouthwestUniversityofScienceandTechnology,Mianyang621010,Sichuan,China)

A self-tracking robot has been designed based on analog CCD image sensor and image perspective correction. The overall design as well as hardware/software design is completed. The tracking robot uses the MK60DN512ZVLQ10 as main controller and collects the black guide line image information using analog CCD camera,the image information is converted to effective steering gear and motor control. In order to improve control accuracy,using the PID control algorithm to realize the closed-loop control of the robot. Due to the collection of image is trapezoidal distortion, perspective transformation is used to correct the original image and realize accurate tracking of robot. Result of the test indicates that the tracking robot which has strong adaptability is strong and has the advantages of low cost,low power consumption, it has great value in the special environment such as radiation, high voltage, etc.

Analog CCD; Image sensor; Self-tracking; Robot; Perspective correction

2015-03-19

国防基础研究项目(10ZG6102, 13ZXNK12);四川省科技厅项目(2011JQ0041, 11ZS2009);中国科学院“西部之光”人才培养计划(13ZS0106);四川省教育厅重点项目(11ZA130, 13ZA0169)。

赵思蕊(1991—),男,硕士研究生,研究方向为嵌入式系统、图形图像处理。E-mail:1174936496@qq.com

TP391.41

A

1671-8755(2015)02-0081-07

猜你喜欢

黑线循迹摄像头
浙江首试公路非现场执法新型摄像头
基于DFT算法的电力巡检无人机循迹检测系统设计
摄像头连接器可提供360°视角图像
黑线
基于单片机的智能循迹小车的设计
虾背黑线真的特别“脏”吗
智能差分循迹小车设计
基于MC9S12XS128处理器的智能循迹小车分析研究
七巧数独
奔驰360°摄像头系统介绍