第三章 路径检测模块的设计
方案的比较和选择
路径检测模块是智能车系统的信号输入模块,主要检测的是赛道相对智能车的偏移量、方向、曲率等信息,这些信息是车模自主沿赛道运行的信息基础,获得更多、更远、更精确的赛道信息是提高车模运行速度的关键。所以说,路径识别方案的好坏,直接关系到最终性能的优劣。
一般来说,可以将路径识别方案分为两种,一种是红外检测方式,即利用红外发射接收管检测路面的信息。路面只有黑和白两种颜色,红外发射管发射的信号从路面反射回来的强度不同,从而可以识别出黑线的位置及智能车相对黑线的偏移量。可以通过合理改变红外管的数量和空间分布,来获取更多、更远、更精确的路面信息,以便智能车系统可以利用更多的有用信息。图3.1为红外传感器的几种分布形式。

图3.1红外传感器的几种分布形式
在智能车的制作过程中也尝试过用红外传感器来识别路径,我们当时采用的是双层红外管,并且采用模拟光电识别的方式,之所以不采用数字式光电传感器的原因在于数字式光电传感器精度不高,丢掉了路径探测中的大量有用信息。而模拟式光电传感器可以大大提高路径探测精度。模拟式光电传感器的发射和接收都是锥角一定的圆锥形空间,其电压大小与传感器距离黑色路径标记线的水平距离黑色路径标记线的水平距离有定量关系:离黑线越近,电压越低,离黑线越远,则电压越高,如图3. 2所示。

图3.2传感器电压与偏移距离关系
因此,只要掌握了传感器电压-偏移距离特性关系,就可以根据传感器电压大小确定各传感器与黑色标记线的距离(而不是仅仅粗略判断该传感器是否在线上),进而获得车身纵轴线相对路径标记线的位置,得到连续分布的路径信息。根据实车试验,可以将路径探测的精度提高到 5mm,数字式光电传感器精度则为十几到二十个毫米。采用模拟式光电传感器采集信息就能保证单片机可以获得精确的赛道信息,从而为赛车的精确控制提供了保证。
经过大概两个星期的调试,智能车平均速度能达到2.0米/秒。但是由于前瞻性不够,最远只能照到离前轮25mm的路面,返回给单片机的有用信息太少,智能车潜力的发挥得到了限制。所以最后决定采用另一种方式:CCD摄像头检测方式。
本次采用的是黑白面阵CCD,CCD摄像头输出的信号是PAL制式的电视信号,经过信号分离后送供单片机处理。由于路面只有黑白两种颜色,采用黑白摄像头就可以满足要求。
其实,无论采用红外传感器检测方式还是CCD摄像头检测方式都各有优劣点,两种方式的对比如表3.1所列。本智能车的设计在综合考虑了两种方式的优劣点后,决定选用潜力较大的CCD检测方式。

表3.1两种检测方式的比较
2 CCD检测方式
CCD摄像头引出三个端子,一个为电源端(供电电压为9-12v),一个为接地端,另一个就为PAL制式视频信号端(有的摄像头多出一个端子,那是音频信号端)。
3.2.1 PAL制式电视信号概述
PAL电视信号采用每秒25帧的标准,每帧图像信号的总行数为625,分两场扫描。也即电视信号帧频为25Hz,帧周期为40ms;场频为50Hz,场周期为20ms;行频为15625Hz,行周期为64μs。在一行信号中图像信号占52.2μs,其余11.8μs是扫描的逆程时间。逆程时间很短,而且逆程信号不能在屏幕上显示出来,因此逆程电平不能高于黑电平。行同步也即保证水平同步,行同步信号是叠加在行信号的逆程之中,其电平与图像电平有所区分。
一帧电视信号称为一个全电视信号,一个全电视信号由奇数场和偶数场组成,每场扫描行数为625/2=312.5行,其中的前22行和后3行作为场的回扫和场同步用,不传送图像,因此每场传送图像的行数为287.5,每帧实际传送图像为575行。
3.2.2 CCD摄像头的主要工作原理
CCD摄像头按一定的分辨率,以隔行扫描的方式采样图像上的点,当扫描到某点时,就通过图像传感芯片将该点处图像的灰度转换成与灰度成一一对应关系的电压值,然后将此电压值通过视频信号端输出。具体而言(参见图3.3),摄像头连续地扫描图像上的一行,就输出一段连续的电压视频信号,该电压信号的高低起伏正反映了该行图像的灰度变化情况。当扫描完一行,视频信号端就输出一低于最低视频信号电压的电平(如0.3V),并保持一段时间。这样相当于,紧接着每行图像对应的电压信号之后会有一个电压“凹槽”,此“凹槽”叫做行同步脉冲,它是扫描换行的标志,持续4.7μs。然后,跳过一行(因为摄像头是隔行扫描的方式),开始扫描新的一行,如此下去,直到扫描完该场的视频信号,接着就会出现一段场消隐区。此区中有若干个复合消隐脉冲(简称消隐脉冲),在这些消隐脉冲中,有个脉冲,它远宽于(即持续时间长于)其他的消隐脉冲,该消隐脉冲又称为场同步脉冲,持续(2.5*64)μs,它是扫描换场的标志。场同步脉冲标志着新的一场的到来,不过,场消隐区恰好跨在上一场的结尾部分和下一场的开始部分,得等场消隐区过去,下一场的视频信号才真正到来。摄像头每秒扫描25幅图像,每幅又分奇、偶两场,先奇场后偶场,故每秒扫描50场图像。奇场时只扫描图像中的奇数行,偶场时则只扫描偶数行。

图3.3 摄像头视频信号
3.2.3 视频信号的分离
通过上面的介绍,对CCD摄像头的工作原理有了一定了解后,下面要进一步说明怎样把CCD照到路面后输出的信号分离成几个便于单片机处理和识别的信号。本方案采用LM1881分离芯片对CCD输出的视频信号进行分离,并提取出行同步、奇-偶场同步信号输入单片机作中断处理。下面对LM1881作简单介绍。
LM1881芯片的主要特点:
1)交流耦合的复合视频输入信号源;
2)大于10KΩ的输入阻抗;
3)小于10mA的消耗电流;
4)复合同步和垂直同步输出;
5)奇偶场输出;
6)色同步输出;
7)水平扫描频率可达到150kHZ;
8)边沿触发的场输出;
9)对于非标准视频信号产生默认的同步输出。
LM1881的接线图如图3.4所示。

图3.4 LM1881的接线图
其中2脚是CCD视频信号的输入端,摄像头的输出的信号有一路就是直接输入到2脚的。视频信号如图3.5(a)所示。1脚是行同步信号输出,视频信号每扫描一行都会来一个下降沿输入单片机的PE1口并产生中断,单片机根据每次中断的到来对每行的信号进行采样处理。行同步信号如图3.5(b)所示。7脚输出奇-偶场同步信号,分别分两路输入到单片机的PJ6、PJ7口,当上升沿触发PJ7中断时说明采样进入了奇场;同样道理,当下降沿触发PJ6中断时说明采样进入了偶场。

图3.5 LM1881时序图
3.2.4视频信号的采样
CCD摄像头照到路面输出的视频信号分两路,一路输入到LM1881分离芯片的2脚,另一路输入到S12单片机的一个AD转换口(AD8)。LM1881 的行同步信号端(引脚 1)接入 S12 的一个带中断能力的 I/O 口(PE1口),当每一个行同步信号中断到来时,就可以对每一行的信号进行采样。LM1881 的奇偶场同步信号端(引脚 7)分两路接入 S12的PJ6、PJ7口,用以分辨单片机的奇偶场。
在硬件的准备工作做好了以后,就可以对视频信号进行采样,由于行信号周期为64μS,其中有用的信号占约52μS。而S12的AD转换速度较低,进行10位AD转换所需时间为7μS.这样照正常采集的话每行最多只能有8个像素的精度,图像的水平分辨率很低。
要突破这个难点有两个办法:第一,CCD摄像头每个场有312.5行,图像的垂直分辨率很高,所以只要将摄像头旋转90度,输出的图像也旋转90度,水平和垂直的分辨率就会交换过来,则水平的分辨率就很高了,可以满足路面信息检测的要求。另外一种方法是将S12的CPU超频并且降低AD转换精度,最终提高AD转换器的速度。通过设定CPU内部PLL的寄存器,可以将总线提高到32至48MHZ,则每一行最多可以采集七十多个点。本智能车的采样采用将总线频率超到32MHZ,照射到路面每隔3厘米采一行,总共采集16行为控制器用,每一行采集63个点,平均精度控制在5mm左右。
图像采样的程序流程图如图3.6所示。
由于CCD摄像头输出的视频信号经AD后出来的信号不是绝对稳定,会有一定干扰,车子在行驶的过程中会由于干扰的出现而不稳定,甚至有时候会冲出跑道,所以要对其进行滤波处理。
本次采用的滤波思想是:从每场的第4行开始寻找两两差值小于8的4行作为基准行M ~ M+3。从M行开始向上找误差超过设定范围的点,并用其上下两行的平均值代替。如果是最顶行出现误差超过设定范围的情况时,用第二行代替。同理,从M+3行开始向下找误差超过设定范围的点,用上下两行的平均值代替。如果最底行出现误差超过设定范围的情况时,用倒数第二行代替。

图3.6 图像采样程序流程图
经AD采样滤波后得到的效果图如图3.7(a)、(b)、(c)所示。

(a)十字交叉线 (b)弯道 (c)S线
图3.7 LCD显示的AD采样图


