[0017] 下面结合具体实施方式对本发明进行详细说明。
[0018] 系统的处理器将控制总线信号发送给成像模块,同时采用中断方式来读取图像,通过高分辨率成像模块获取赛道图像信息,采集外界环境的变化,返回一幅完整的图像,使系统获得当前状态,同时采用硬件二值化,通过SCCB总线来控制器件的运行,使用高速DMA通道直接读取图像的数据;在处理器中进行图像预处理,通过脉宽调制信号控制转向舵机的转向和驱动电机的行进;测速器件读取光电信号转换成的具有一定频率的方波信号,同时根据相应的方波信号特征值来确定当前需要给于电机及舵机的两种脉宽调制信号(包括电机及舵机),重复以上步骤。
[0019] 处理器为单片机MK60DN512ZVLQ10;所述高分辨率成像模块为大规模的CCD集成器件OV7725。转向舵机型号为SD-3010,驱动电机型号为RN297。处理器接受系统的一级输出,进而执行系统的输出,RN297执行这些二级输出信号,而处理器发出的控制信号发送给驱动信号芯片74HC244或74LS244来生成二级输出缓冲信号;二级输出缓冲信号通过MOS管型大电流驱动板的两个H桥来生成驱动直流电机RN297的二级输出信号,同时避免了大功率电路与高速电路的交叉,以防止发生电源反冲导致的芯片烧毁。测速器件为系统的信号输入部件,采用欧姆龙精度500线编码器,通过监测系统的输出,返回一个信号,让系统具有负反馈的能力,将直流电机的转速转换为光电信号,再转换为一定频率的方波信号。
[0020] 获取赛道图像信息方法:赛道上只有黑白两色,只需提取探测画面的灰度信息就能识别出黑线信息,图像采集部分选用黑白摄像头,摄像头输出的是PAL制式的复合全电视信号,每秒输出112帧,每帧分为偶场和奇场,黑白视频图像信号由图像信号、消隐信号以及同步信号共同组成,首先提取出摄像头信号中的行同步脉冲,消隐脉冲和场同步脉冲,LM1881视频同步信号分离芯片从摄像头信号中提取信号的时序信息转换成TTL电平直接输给单片机的I/O口作控制信号之用,摄像头视频信号接入LM1881的视频信号输入端,同时接入单片机其中一个A/D口,LM1881的行同步信号和奇偶场同步信号分别接入单片机的带中断的I/O口PT0、PT1,设置PT1口为输入捕捉下降沿,当新的一场到来时,单片机首先采集到下降沿信息进入场中断,在场中断处理程序中先将场中断关闭,然后启动行中断,并设置PT0口为输入捕捉上升沿,当单片机捕捉到行同步信号后就进入行同步中断处理程序,开始采集图像信息,分辨率图像为160x120。
[0021] 图像预处理方法:进行二值化处理,对于输入图像的各个像素,先确定某个亮度值,当像素的亮度超过该阈值时,则将对应输出图像的像素值设为1,否则为0;黑线中心提取:先判断每行的第一个点是否为白点,如是白点则依次对白点进行计数,计数为a,当遇到连续黑点时则计数黑点个数,计数为b,再次遇到白点时则退出该行计数,此时黑线中心所在列为a+b/2,如果第一个为黑点,且不是噪声点,则直接对黑点计数,计数为b,当遇到连续白点后则退出计数,这种情况下得到的黑线中心位于第b/2列,最后将从一幅图像上得到的所有中心位置按行存入一个一维数组中,当采集到的黑点数超过正常值时,便判定这一行为特殊行,并赋予特殊标志位,用白点跳变为黑点的次数来判定是否为起始线,如果符合情况则标志出这一行,则其他的特殊行均为十字交叉情况;弯直道的判断:在直道时,每行黑线中心位置相对集中,因而每行的黑线中心与其平均值的偏差之和较小,在弯道时,黑线中心相对分散,随着弯度的增大则偏差之和相应的变大;S弯的判断,在弯道中还分为S弯和普通弯道两种情况,通过远中近三点连线的斜率来判断弯道类型,当S弯弯度较小时让小车不按原路线行驶走S形,直接按弯道路线抄近路走,这样节省小车跑完赛道的时间,能提高小车在比赛中的整体效率。
[0022] 视频图像采集:
[0023] 视频图像的采集是基于MK60DN512ZVMD10单片机来实现的。由于采用摄像头寻迹能大幅度提升赛车的前瞻距离,有利于赛车提高车速。同时,赛道上只有黑白两色,只需提取探测画面的灰度信息就能识别出黑线信息,因而从减少成本和减轻单片机采样的负担两方面考虑,图像采集部分选用黑白摄像头。摄像头输出的是PAL制式的复合全电视信号,每秒输出112帧(每帧分为偶场和奇场)。黑白视频图像信号通常由图像信号、消隐信号以及同步信号共同组成。要能有效地采样摄像头视频信号,首先要提取出摄像头信号中的行同步脉冲,消隐脉冲和场同步脉冲。LM1881视频同步信号分离芯片可从摄像头信号中提取信号的时序信息,如行同步脉冲、场同步脉冲和奇、偶场信息等,并将它们转换成TTL电平直接输给单片机的I/O口作控制信号之用。这部分的硬件设计为:摄像头视频信号接入LM1881的视频信号输入端,同时接入单片机其中一个A/D口(这里选择PAD8口);LM1881的行同步信号和奇偶场同步信号分别接入单片机的带中断的I/O口PT0、PT1。设置PT1口为输入捕捉下降沿,即采集偶场信号。当新的一场到来时,单片机首先采集到下降沿信息进入场中断。在场中断处理程序中先将场中断关闭,然后启动行中断,并设置PT0口为输入捕捉上升沿。当单片机捕捉到行同步信号后就进入行同步中断处理程序,开始采集图像信息。本系统中使用的摄像头分辨率为352x288,但由于S12单片机的A/D转换能力有限,并且赛道只有黑白两色,而本系统的目的只在于提取出黑线中心,所以不需要提取一行中所有的点。基于以上两点原因,最终方案采集160x120分辨率图像。通过试验证明,160x120分辨率的图像可以完整的反映出道路状况。
[0024] 图像预处理:
[0025] 图像预处理的目的是改善图像质量,在本系统中的目的是为单片机识别路径提供一幅更为清晰,更易判断的赛道图像。
[0026] 二值化处理:
[0027] 将图像导入matlab进行分析,发现原始图像像素值均在0-255内,而白色区域像素值一般在160以上,黑色区域一般在70以下。为了提取出黑线,检测像素值的跳变是最直观的方案,但是实际中一般黑白线边沿的像素值不是突然跳变的,而有一个过渡过程。所以,将原始图像进行二值化处理不但有清晰边沿线的功能,还能方便后续路径识别部分算法的设计与处理。二值化处理就是对于输入图像的各个像素,先确定某个亮度值,当像素的亮度超过该阈值时,则将对应输出图像的像素值设为1,否则为0。
[0028] 黑线中心提取:
[0029] 提取黑线中心部分是小车路径识别系统中最为重要的一个环节,关系到智能小车运行质量的好坏。这里黑线中心提取方法为:先判断每行的第一个点是否为白点,如是白点则依次对白点进行计数(设计数为a),当遇到连续黑点时则计数黑点个数(设计数为b),再次遇到白点时则退出该行计数,此时黑线中心所在列为a+b/2;如果第一个为黑点,且不是噪声点(即为连续的黑点),则直接对黑点计数(设计数为b),当遇到连续白点后则退出计数,这种情况下得到的黑线中心位于第b/2列。最后将从一幅图像上得到的所有中心位置按行存入一个一维数组中。但是不得不考虑两种比较特殊的情况,起始线和十字交叉线。通过观察发现这两种情况下每行出现黑点的数量远远大于黑线的黑点数(黑线一般能采集到2-3个黑点),所以当采集到的黑点数超过正常值时,便判定这一行为特殊行,并赋予特殊标志位。由于规则要求小车能识别起始线,因而还需对特殊行进行分析。考虑到车体偏离等情况,可以用白点跳变为黑点的次数来判定是否为起始线,如果符合情况则标志出这一行。则其他的特殊行均为十字交叉情况。
[0030] 路径判断:
[0031] 弯直道的判断,在直道时,每行黑线中心位置相对集中,因而每行的黑线中心与其平均值的偏差之和较小;在弯道时,黑线中心相对分散,随着弯度的增大则偏差之和相应的变大。这里,每行的黑线中心与其平均值的偏差之和可以用方差来表示。S弯的判断,在弯道中还分为S弯和普通弯道两种情况,可通过远中近三点连线的斜率可以来判断弯道类型,通常来说,S弯的三点连线。然而当S弯弯度较小时同样会出现斜率同正同负的现象,这样会误将S弯判断成弯道。其实,这种情况下可以“将错就错”让小车不按原路线行驶走S形,直接按弯道路线抄近路走,这样可以节省小车跑完赛道的时间,能提高小车在比赛中的整体效率。
[0032] 本发明优点还在于:自动沿预设轨道行驶小车在行驶过程中,能够自动检测预先设好的轨道,实现直道和弧形轨道的前进。若有偏离,能够自动纠正,返回到预设轨道上来。当小车探测到前进前方的障碍物时,可以自我调整,躲避障碍物,从无障碍物区通过。小车通过障碍区后,能够自动循迹。自动检测停车线并自动停车。
[0033] 以上所述仅是对本发明的较佳实施方式而已,并非对本发明作任何形式上的限制,凡是依据本发明的技术实质对以上实施方式所做的任何简单修改,等同变化与修饰,均属于本发明技术方案的范围内。