0 引言
“飞思卡尔”杯全国大学生智能车大赛是由摩托罗拉旗下飞思卡尔公司赞助由高等学校自动化专业教学指导委员会负责主办的全国性的赛事,旨在加强大学生的创新意识、团队合作精神和培养学生的创新能力。此项赛事专业知识涉及控制、模式识别、传感技术、汽车电子、电气、计算机、机械等多个学科,对学生的知识融合和动手能力的培养,对高等学校控制及汽车电子学科学术水平的提高,具有良好的推动作用。
智能车竞赛所使用的车模是一款带有差速器的后轮驱动模型赛车,它由大赛组委会统一提供。自动控制器是以飞思卡尔16位微控制器MC9S12DGl28(S12)为核心控制单元,配合有传感器、电机、舵机、电池以及相应的驱动电路,它能够自主识别路径,控制车高速稳定运行在跑道上。比赛要求自己设计控制系统及自行确定控制策略,在规定的赛道上以比赛完成的时间短者为优胜者。赛道由白色底板和黑色的指引线组成。根据赛道的特点,比赛组委会确定了两种寻线方案:1.光电传感器。
2.摄像头。
两种寻线方案的特点如下:
(1)光电传感器方案。通过红外发射管发射红外线光照射跑道,跑道表面与中心指引线具有不同的反射强度,利用红外接收管可以检测到这些信息。此方案简单易行程序调试也简单且成本低廉,但是它受到竞赛规则的一些限制(组委会要求传感器数量不超过16个(红外传感器的每对发射与接收单元计为一个传感器,CCD传感器计为1个传感器)),传感器的数量不可能安放的太多,因而道路检测的精度较低,能得到指引线的信息量也较少。若采用此方案容易引起舵机的回摆走蛇形路线。
(2)摄像头方案。根据赛道的特点斯用黑白图像传感器即可满足要求。CCD摄像头有面阵和线阵两种类型,它们在接口电路、输出信号以及检测信息等方面有着较大的区别,面阵摄像头可以获取前方赛道的图像信息,而线阵CCD只能获取赛道一条直线上的图像信息。摄像头方案的所能探测的道路信息量远大于光电传感器方案,而且摄像头也可以探测足够远的距离以方便控制器对前方道路进行预判。虽然此方案对控制器的要求比较高,但组委会提供的MC9S12DGl28(S12)的运算能力以及自身AD口的采样速度完全能够满足摄像头的视频采样和大量图像数据的处理的要求。
本文就是在摄像头方案的前提下,在实时的图像数据获取的基础上对图像信息进行数据处理,从而提取赛道中心的黑色指引线,再以此来作为舵机和驱动电机的控制依据。
1 摄像头采样数据的特点
采用的黑白摄像头的主要工作原理为:按一定的分辨率,以隔行扫描的方式采集图像上的点,当扫描到某点时,就通过图像传感芯片将该点处图像的灰度转换成与灰度一一对应的电压值,然后将此电压值通过视频信号端输出,见图1。摄像头连续地扫描图像上的一行,则输出就是一段连续的电压信号,该电压信号的高低起伏反映了该行图像的灰度变化。当扫描完一行,视频信号端就输出一个低于最低视频信号电压的电平(如O.3V),并保持一段时间。这样相当于紧接着每行图像信号之后会有一个电压“凹槽”,此“凹槽”叫做行同步脉冲,它是扫描换行的标志。然后,跳过一行后(因为摄像头是隔行扫描的),开始扫描新的一行,如此下去,直到扫描完该场的视频信号,接着又会出现一段场消隐区。该区中有若干个复合消隐脉冲,其中有个远宽于(即持续时间长于)其它的消隐脉冲,称为场同步脉冲,它是扫描换场的标志。场同步脉冲标志着新的一场的到来,不过,场消隐区恰好跨在上一场的结尾和下一场的开始部分,到该场消隐区过去,下一场的视频信号才真正到来。摄像头每秒扫描25幅图像,每幅又分奇、偶两场,先奇场后偶场,故每秒扫描50场图像。奇场时只扫描图像中的奇数行,偶场时则只扫描偶数行。
因MC9S12DGl28(S12)控制芯片的处理能力达不到计算机的运算速度,故采用了目前市面上分辨率最小的320X240的CMOS单板摄像头,它同样可以每秒扫描501幅图像。为了扩大摄像头的扫描距离来满足图像和控制处理的需要,将S12单片机的总线周期超频到32M,这样摄像头每行最多能够采集70个点。
通过实验测得摄像头扫描的每场图像中有320个行信号,其中的第23行到第310行是视频信号,即每场中有用的视频信号有288行。第3ll行到下一场第22行是场消隐信号。在实际的图像处理和控制过程当中完全没有必要对全部288行视频信号进行处理。由于每行能采集到80个有点像素点,所以在每场视频信号中每隔15行对行信号采集一次,用18行视频信号来判断前方是直道还是弯道,从而对小车进行速度和转向的控制。