无人驾驶的智能汽车将是新世纪汽车技术飞跃发展的重要标志,智能车提高了车辆的控制与驾驶水平,保障车辆行驶的安全畅通、高效。车辆智能化将是汽车工业今后的发展趋势,而路径识别跟踪技术是汽车智能化发展水平的一个重要标志。本智能小车模型通过OV7620数字摄像头检测目标道路信息,结合当前的行驶状态,对其行驶方向与行车速度进行智能化调整,从而实现准确、快速地跟踪。
本系统设计要求是,小车白色的场地提取黑色引导线,进而识别赛道,在上能自适应地沿着一条任意给定的黑色带状导引线行驶。这包含两方面的内容,一方面智能小车要准确无误地对白色路线进行识别;另一方面是在准确获取道路信息的基础上,采用有效的控制策略,使智能小车能够快速、有效地进行路径跟踪,并确保其稳定性。用图像处理算法提取赛道有效信息,在此基础上提出智能车的控制决策算法。
我们设计的智能车系统采用CMOS数字摄像头OV7620进行赛道识别,图像采集处理是整个软件的核心内容。
1 图像采集硬件系统
智能车的总体运动过程是:摄像头采集赛道信息,通过I/O口输入到单片机,经过特定的程序算法提取出赛道的信息,通过对不同路径的识别,产生不同的控制信号,进而控制舵机的转角和电击的转速,从而影响智能车的运动路径。CMOS摄像头功耗低,当电机启动和急刹车时,电压突变对摄像头图像质量影响小,CMOS摄像头供电简单只需要5V的电源电压,而CCD的功耗大,供电复杂需要采用DC-DC升压到12V。CMOS摄像头相对于CCD来说图像的刷新频率高,但是CMOS摄像头的感光度低,动态效果差,清晰度较差。综合以上情况我们选用OV7620的CMOS摄像头。
摄像头对电源要求比较高,为了获得稳定的图像给摄像头供电的电源电源文波要小,噪声要小,电源容量要大。综合以上要求我们选用纹波小,低压差,线性度好的LM2940。LM2940还含有一个静态电流降低电路,当输入输出电压超过3V时,可以减少地电流。在输出电流为1A或输入输出压差为5V时,静态电流仅为30mA。LM2940特别适合于汽车、机动车辆、船舶等的使用。
2 图像采集软件系统
我们设计的智能车系统采用CMOS数字摄像头OV7620进行赛道识别,图像采集处理就成了整个软件的核心内容。利用原始图像信息提取出赛道信息,计算出赛道偏移量,进而转化为舵机输出值,又增加了使智能车在赛道内切行驶这一辅助算法,改善了智能车转向特性。
2.1 摄像头信息采集
OV7620摄像头每秒钟30帧画面,每帧画面分为奇场和偶场,在每场的开始有一个脉冲。当场中断到来时需要将行计数器置为0以便读取新一场的数据,同时还需要读取脉冲累加器中的数据获取当前智能车的速度值,关闭场中断等待行中断的响应。与场中断类似,为了区分行与行之间的数据在每行的开始会有一个行中断信号。在行中断中要完成图像灰度值得读取。在采集完最后一行数据之后再对数据进行分析处理,通常情况下白色的赛道灰度值较大,黑色的边沿灰度值较小,通过灰度值的不同来提取赛道边缘信息图像信号采集作为整个控制算法的基础,具有举足轻重的地位,同时也是智能车软件设计的一个技术难点。其设计得好坏与否,直接关系到智能车的整体性能。此智能车以OV7620作为主传感器,以红外对管作为辅助传感器对赛道的信息进行采集。OV7620把赛道的亮暗程度转化成像素的灰度值,并通过数据总线传送给单片机。单片机将采集的原始图像的灰度值存储到自身的RAM中,由于单片机的内部RAM和速度的限制并不是将所有的像素灰度值都存储下来,而是选取特定的行,每行读取184个灰度值。这些行是通过实际标定选取的,对应实际空间的行间距是相等的。
2.2 图像处理算法
采集到了原始图像并不代表完成了图像的处理,我们还需要提取其中的有用信息将图做像压缩处理。实际硬件条件和实时性考虑考虑,我们采用边沿跟踪检测算法。为了解决边沿检测法效率低的问题,我们将单纯的边沿检测法改进为跟踪边沿检测法。由于黑色的引导线是连续的曲线,用摄像头对其采样后相邻两行的边沿的位置相差不大。我们可以利用前一行或两行边沿的水平位置来推算下一行边沿的位置,并在预测的位置进行搜索即可。这样一来可以大大的提高边沿检测法的效率,为单片机处理数据节省了大量的宝贵时间。
寻找左(右)基准行:从前五行的中间向(左)寻找下降沿。当存在连续的两行找到下降沿并且下降沿的水平距离小于18个像素点时便认为找到了左(右)基准行,记录下左(右)基准行与下降沿的水平位置。左(右)边沿跟踪:从左(右)开始向下一行需找下降沿,寻找的范围是前一行下降沿左右是个像素点。找到下降沿纪录水平位置,跟踪寻找后面一行的下降沿。
3 路径识别
我们根据标定从图像的240行中采集40行数据,每隔实际距离的3cm采集一行,从而前瞻达到120cm,足以达到控制的需要。其中标定的方法是:在跑道上每隔3cm用黑色胶带做标记,将智能车放在跑道中间,然后用摄像头逐行采集,记录各个标记所对应的行数,所记录的40个数据便是用来控制所需采集的行数,通过标定我们可以利用这些准确的信息去识别不同的赛道并且很方便的利用各段去控制。根据大量的实验采集数据统计与调试,当左边有效行和右边有效行中所在共同的行数大于6时,我们将两条黑导引线进行归中处理,即计算出中心导引线,否则我们根据一般去控制,哪边采集到的有效行数多便利用哪边,我们将所采集的40行数据进行分段求斜率并且根据智能车在跑道上位置动态地求偏移量,根据这些数据我们足以将各种赛道区分开来,进而更好地去控制。
4 结论
本系统采用基于基于OV7620摄像头的路径识别方法,通过摄像头采集的道路信息送入单片机处理,通过边沿跟踪检测算法提取出赛道黑线中心,识别弯道、窄道、坡道、起跑线等信息。通过大量试验及参加比赛结果表明,本智能小车寻迹系统能够准确识别道路情况,效果较为理想。该系统满足实时、安全、稳定快速的要求,具有广阔的应用前景,是当前智能车辆导引技术研究的主流方向和发展趋势。
参考文献
[1]侯明,付兴建,吴迎年等基于LabVIEWVISA智能车无线调试系统[J].国外电子测量技术,2012,(1):67-69,88.
[2]卓晴,黄开胜,邵贝贝.学做智能车—挑战飞思卡尔杯[M].北京:北京航空航天大学出版社,2007:1-18
[3]黄开胜,陈宋.汽车理论与智能模型车机械结构调整方法[D].清华大学汽车安全与节能国家重点实验室,2006.
[4]安鹏,马伟.使用S12单片机控制舵机[D].清华大学工程物理系,2007.
[5]李晨,宓超.基于飞思卡尔单片机MC9S12XS128的智能车设计[J].上海海事大学学报,2012,33(1):82-84.
[6]吴振宇,赵亮,冯林等.基于分数阶PID控制器的智能车控制[J].控制工程,2011,18(3):401-404.