2.1.1 路径检测模块
路径识别模块是智能车系统的关键模块之一,路径识别方案的好坏,直接关系到最终性能的优劣。在以往比赛中光电传感器寻迹方案应用最多,单独采用CCD摄像头寻迹方案或者CCD摄像头寻迹与光电传感器寻迹结合在一起的方案也都有应用。
所谓光电传感器寻迹方案,即路径识别电路由一系列发光二极管、接收二极管组成,由于赛道中存在轨迹指示黑线,落在黑线区域内的光电二极管接收到的反射光线强度与白色的赛道不同,由此判断行车的方向。光电传感器寻迹方案的优点是电路简单、信号处理速度快[3]。光电传感器的排列方法、个数、彼此之间的间隔都与控制方法密切相关,但一般的认识是,在不受到外部因素影响的前提下,能够感知前方的距离越远,行驶效率越高。
由于光电传感器电路板不可能伸出车体太远,因此不少参赛队伍调整了光电传感器电路板与地面的夹角,使光电传感器可以感知更远一点的赛道情况。
图2.1、图2.2是两种典型的光电寻迹方案。图2.1中模型车采用了8对光电传感器且分布得较宽,图2.2中模型车只采用了3对光电传感器,放置在向外伸出的小电路板上,探测的范围较小。具体何种方案合适,与光电传感器扫描前方的距离和宽度以及控制策略密切相关。
但是,基于光电管阵列检测赛道参数的方法主要具有如下的缺点:
1) 赛道空间分辨率低:一方面受到大赛规则关于传感器个数的限制;另一方面,过多的光电传感器在固定安装、占用CPU输入端口资源等方面也有限制;
2) 识别道路信息少,一般只能检测路径中心位置;
3) 由于固定位置的限制,光电管只能安装在车模前面不远的位置,观测信息前瞻性差;
4) 容易受到环境光线的干扰;

以上问题会影响车控制精度以及运行速度。通过一定的硬软件设计,虽然可以部分解决上述的问题,但相比之下,使用面阵CCD器件则可以更有效的解决这些问题。CCD器件在比赛规则中算作一个传感器。普通CCD传感器图像分辨率都在300线之上,远大于光电管阵列[4]。通过镜头,可以将车前方很远的道路图像映射到CCD器件中,从而得到车前方很大范围内的道路信息。对图像中的道路参数进行检测,不仅可以识别道路的中心位置,同时还可以获得道路的方向、曲率等信息。利用CCD器件,通过图像信息处理的方式得到道路信息,可以有效进行车运动控制,提高路径跟踪精度和车运行速度。
因此,我们选择使用面阵CCD,它能够有效利用S12单片机内部硬件资源
的路径参数检测方法。普通CCD图像传感器的工作电压一般为12V,输出NTSC或者PAL制式的模拟视频信号。利用S12内部的AD转换器,配合从视频信号中分离出的同步信号,可直接将图像信号采集到单片机内部RAM中,然后通过软件对图像信息进行处理,得到路径各种参数。
2.1.2 速度检测模块
随着电池电压的逐渐下降,电机供给电压也会随之降低,导致电机的转速不断下降。若采用闭环控制,将车轮转速信息反馈给微控制器,从而使电机的实际转速值等于指令转速值,就能提高速度的准确性。
常用的有以下两种测速传感器[5]:
(1) 轴编码器 它常被用来测量旋转轴的位置和转速。“绝对式位置编码器”被用来测量轴的实际位置,这种编码器长被用于伺服系统中来获得一定的转轴位置。“增量式轴编码器”常被用来测量转轴的转速(速率和方向)。增量式轴编码器可以产生直接对应于轴转速的脉冲序列,如果采用有两相信号输出的增量式轴编码器实际只能称之为转速计。工程中应用最多的是光学编码器,但也有一些利用电磁原理制成的霍尔效应编码器。
(2) 模拟转速计 它也被安装到电机的输出轴上,但输出的是正比于电机转速的电压。
比较两种方式,从输出信号的格式看,轴编码器输出的是方波信号,很容易输入到控制器中,而模拟转速器输出的是模拟信号,还需AD转换,另外,模拟转速器对动力大小也有影响,而轴编码器对它几乎没有影响,要对智能车进行速度的测量,故比较之下选用增量式轴编码器。
增量式轴编码器又可分为反射式光学编码器、光栅式编码器和基于霍尔效应的编码器。如图2.3所示。
光栅式编码器的可靠性高于反射式编码器,而基于霍尔效应的编码器采用纯机械的方法无法承受长时间的使用,且精度不高。因此,速度的测量采用光栅式编码器。

2.2 控制模块方案选择
2.2.1 路径控制模块
智能车竞赛的要求是制作的智能车在专门设计的跑道上自动识别道路行驶,谁最快跑完全程而没有冲出跑道并且技术报告评分较高,谁就是获胜者。所以对于模型车的路径规划是关系到能否在短时间内跑完全程取得优异成绩的关键因素。
结合以往的比赛情况,现主要有两种控制方法:
(1) 跟踪黑线,以黑线为基准,将小车几何中心控制在黑线上,主要是经典PID控制方法;
(2) 适合跑道,以黑线算出跑道范围,将小车看作刚体,控制使其保持在跑道范围内,可以算作一种智能的模糊控制方法。
无论那种方法,为了达到时间最短,必须对小车的行使路线进行优化。在不考虑交叉的情况下(以行使的角度考虑,交叉属于一种直线形式),一般的,根据赛道的形状主要有3种组成:(如图2.5所示)
⑴ 直线
⑵ 转弯
⑶ 波浪

对于弯道,应尽量沿着内圈行驶。(如图2.6所示)
对于波浪道,最优路线应为直线穿过。(如图2.7所示)

对两种控制方法的优化:
(1) 跟踪黑线方法对路线的优化:
跟踪黑线对路线的优化要区分开三种基本类型的跑道,再用不同的动态性能对路线优化。
直道时响应应快速、平缓,需要综合调节各参数。
弯道时可以将超调量适当放大、调节时间减小,或者进行超前控制。
波浪时应将超调量减小、调节时间加大,或者进行滞后控制。
对于波浪,跟踪黑线方法很难做到最优的直线穿越,但可以小车摆幅减小。(如图2.8所示)

(2) 适合跑道的方法对路线的优化
适合跑道的方法对路线的优化主要思想为:
A.得到较长一段赛道信息与小车在赛道上的姿态、位置。
B.根据以上信息算出小车在下一段时间内的行驶路线。
这种方法的重点主要是行驶路线的计算方法。
比较两种方法,如表2.1所示:
为了达到更好的成绩,要选择适合跑道的方法,并且要综合考虑各种情况,努力提高稳定性。

2.2.2 方向控制模块
本智能车方向的控制是通过PWM波对舵机进行控制来实现的。舵机的控制是通过周期固定的脉冲信号控制的,舵机的转位正比于脉冲的宽度,这个连续的脉冲信号可以由PWM实现。舵机内部会产生一个频率为50Hz的基准信号,通过基准信号与外部所给PWM波的正脉冲持续时间进行比较,从而确定转向和转角的大小。当所加PWM波的频率为50Hz时,脉宽与转角之间满足下图2.9所示的线性关系。
对舵机的控制采用离散PID控制,即根据CCD图像传感器采集的图像计算出当前时刻车与黑线的精确夹角,然后对方向控制量进行校正。缺点是计算量大。

2.2.3 速度控制模块
本届大赛组委会规定使用的后轮驱动电机型号为RS-380SH,工作在7.2V电压下,空载电流为0.5A,转速为16200 r/min。在工作电流为3.3A,转速达到14060 r/min 时,工作效率最大。
由于单片机输出的脉宽无法驱动大赛提供的直流电机,因此需要通过电机驱动芯片MC33886驱动电机正转、反转。由于单片机带有PWM输出端口,PWM波获取方便,为了加强灵活性,能实时改变控制量,所以我们利用PWM脉宽与速度的对应关系对电机进行控制。
2.3 执行模块方案选择
2.3.1 路径执行模块
直接利用S12单片机中的AD采集视频图像,存在着采集速度、存储数据空间、处理速度、工作电压以及同步信号分离等方面的技术难点。下面就这些问题及其解决方法进行讨论[6]。
1) 采集速度:
普通CCD图像传感器通过行扫描方式,将图像信息转换为一维的视频模拟信号输出。CCD输出的信号变化很快,比如PAL制式的视频信号,每秒钟输出50帧图像信息(分为奇、偶场),每帧图像有312.5行,每行图像信号时间为64微秒,其中有效的图像信号约为56微妙左右。相比之下,S12的AD转换器采集速度较低:根据S12器件手册,进行10位AD转换所需要的时间为7微秒。这样,采集的图像每行只能有8个像素,水平分辨率很低。另一方面,每场图像可以采集300行左右的图像信息,所以图像垂直分辨率相对较高。从这种水平分辨率低、垂直分辨率高的图像中,我们无法获取具有足够精度的路径信息。
为此,我们分析一下大赛采用跑道的形状特点:跑道都是由直线和圆弧组成,检测车模前方一段路线参数,只需要得到中心线上3~5个点的位置信息就可以估算出路径参数(位置、方向、曲率等)。这些点的位置,通过图像中若干行信息就可以检测出来(如图2.10所示)。因此,所需检测图像应该是水平分辨率高、垂直分辨率低。

将S12单片机采集的图像分辨率特点,与赛道检测对图像分辨率的要求进行对比,可以发现,在安装CCD摄像头的时候,只要将它旋转90度,输出的图像信息也相应旋转90度(如图2.11所示)。这样一来,S12中的AD转换器采集的图像信息,水平分辨率与垂直分辨率就会互换,原来水平分辨率低、垂直分辨率高的图像,就会变成水平分辨率高、垂直分辨率低的实际图像,正好满足道路参数检测的要求。

此外,我们还可以通过让S12适当超频运行、降低AD转换器精度等方式,提高AD转换器的速度。实验中我们发现,通过设定S12中的时钟PLL寄存器,可以将S12内部总线频率提高到40~48MHz,而此时CPU仍然可以正常工作。同时,可以将AD转换器时钟频率提高到12-24MHz,在损失一定转换精度的代价下,将转换时间缩短为1.5微秒左右。这样,我们就可以在一行图像信号中采集48个有效的图像信息。
将上述方法结合在一起,可以采集到300 * 48分辨率的帧图像数据。在此基础上,可以有效的检测出路径参数。通过实际测试,基于75 * 24分辨率的图像,检测出的路径参数仍能满足控制需要。也就是说,我们每隔4行采集一行数据、每行采集24个点就可以了。这样一来,所需要的图像存储空间以及图像采集的时间就大为降低了。
2) 图像存储空间:
由于将图像水平旋转了90度,需要将图像数据进行存储,在整幅图像的基础上计算出路径水平信息。S12内部有8K字节的RAM空间。如果存储300*48
分辨率图像则不够,但可以存储若干幅75*24的低分辨率图像数据。从低分辨率图像所得到的路径参数,其精度仍可以满足车模控制的需要。一般情况下,只需要两块图像存储空间即可,一块作为采集图像的存储空间,另外一块作为处理缓冲区。
3) 图像信息处理速度:
CPU的主要工作包括图像采集、图像信息处理以及运动控制等。图像采集采用中断的方式进行,如果采用75*24分辨率的图像,每隔4行采集一行图像信息,图像采集所占用的CPU时间不会超过1/4。因此,大部分的CPU工作时间可以用于图像处理以及运动控制。
由于采集到的图像由白色背景和黑色中心线组成,所以检测每一行路径中心线位置可以通过简单的阈值比较的方式计算出来。在此基础上,还可以通过参数拟合获取道路位置、方向以及曲率等参数。另外,通过适当的动态阈值的方法,可以提高算法的稳定性。核心算法如果处理相对简单,可通过适当的优化方法,在图像采集周期20毫秒内计算出结果,达到实时图像处理的要求。如果算法比较复杂,可以将核心算法采用汇编语言完成,以提高效率,配合CPU超频运行方法,保证算法需要时间小于20毫秒。
4) CCD器件工作电压:
CCD器件工作电压需要在12V左右。为此,需要在系统电路设计中,增加独立12V电源模块。具体电路后面给出。
5) 视频同步信号分离:
为了采集图像信息,CPU需要根据行、场同步信号启动AD转换器,采集稳定的图像。由于视频信号的变化很快,所以需要另外设计同步分离电路。在本方案中,使用了LM1881视频同步分离集成块,获取视频同步信号,将此同步信号连到单片机的中断输入端口。
除此之外,一般的CCD输出的视频信号的峰峰值在1V左右,可以不经过放大直接连接到单片机的AD输入端口进行采集,也可以进行适当视频信号放大后将信号的峰峰值提高到3-4V左右输入到单片机。
2.3.2 方向执行模块
本智能车的方向执行机构是舵机,舵机控制采用PWM技术,不同占空比对应不同的转角。由于舵机内部含有自带的比较电平,有利于精确控制。
舵机的额定电压一般是4.8V,本模型车舵机额定电压为6V。当额定电压为6V时,功率通常更强劲,速度也更快。这意味着只要提高舵机的电压,就可以获得更大的功率输出和更快的速度。对于提高电压这种未经认可的做法,每一家厂家的舵机反应也不尽相同。经实践认证,本模型车的舵机完全可以工作在7.2V电压下。因此,提高了功率并加快了速度。
另外,舵机的响应时间对于控制非常重要,一方面可以通过修改PWM周期获得。另一方面也可以通过机械方式,利用舵机的输出转角余量,将角度进行放大,加快舵机响应速度。本文在后面的模型车改装中将详细介绍。
2.3.3 速度执行模块
本智能车的速度执行机构是电机,采用PWM控制,利用脉宽占空比与速度的对应关系进行调速。采用电机驱动芯片MC33886[7],内部自带“H”桥,可以快速实现电机的正转反转,从而对速度进行实时调整,精确控制。
2.4本章小结
根据本章以上的模块方案比较与论证,得出本智能车控制系统模型框图如图2.12所示 :



