1、第 1 页 共 9 页基于 CCD 传感器的智能寻迹模型车的研究与实现董长远长安大学汽车学院车辆工程系,陕西省西安市 710064摘 要: 研究并实现了一种基于 CCD 传感器的智能寻迹模型车系统。采用飞思卡尔公司 HCS12 系列 16 位单片机 MC9S12DG128 作为核心控制单元,使用 CCD摄像头采集路面信息。赛车完成的主要功能是能够自主识别黑色引导线并根据黑线走向实现快速稳定的寻线行驶。关键词: 智能车;CCD 传感器;路径识别;捷径Investigation & implementation of an intelligent-searching track car model
2、 based on CCD Image SensorDONG ChangYuanAutomobile School, CHANG-AN University, Xian City, Shanxi Province 710064, ChinaAbstract: An intelligent-searching track car model based on CCD image sensor is investigated and implemented. The intelligent car system, with Freescale HCS12 series 16 bit single-
3、chip MC9S12DG128 as its control micro-processor, uses CCD camera to obtain lane image information.The main function that the intelligent car may achieve is that the car should track the black-guide-line automatically and move forward following the line as fast and stable as possible.Key words: intel
4、ligent car;CCD Image Sensor;lane detection;royal road1. 引言车辆和我们的社会生活息息相关,然而当今车辆的智能化发展还不是很迅速,特别是在安全性,智能性,车与路之间交互信息等方面当今的车辆技术与未来的智能车辆技术还存在着巨大的差距。几天的汽车工程师正面临着巨大的挑战,需要在新旧技术之间建立一座桥梁,通过应用先进的电子技术,信息技术,电子通信技术推动车辆技术的进步。智能车辆是当今车辆工程领域研究的前沿,它体现了车辆工程、人工智能、自动控制、计算机等多个学科领域理论技术的交叉和综合,是未来汽车发展的趋势。本文所述的智能寻迹模型车系统基于 Fre
5、escale HCS12 单片机开发与实现,系统采用 CCD 摄像头识别道路中央黑色的引导线,自动控制小车前进和转向,从而实现快速稳定的寻线行驶。为保证智能车在行驶过程具有良好的操稳性和平顺性,控制系统对转向舵机控制和直流电机驱动控制提出了较为理想的解决方案。为了在比赛中取得良好的成绩,我们更加关注此智能车对弯直道的判断,从而实现安全过弯,快速通过直道。第 2 页 共 9 页2. 硬件系统的设计与实现智能寻迹模型车(以下简称智能车)的硬件部分以 Freescale 公司 16 位单片机 MC9S12DG128 为核心控制器,由电源管理模块、路径识别模块、转向控制模块、电机驱动模块和车速检测模块
6、组成。智能车控制系统总体结构如图 1所示:图 1 智能车控制系统总体结构2.1 核心控制单元智能车的控制核心为 MC9S12DG128。其主要特点是资源丰富,功能高度集成,易于扩展,并且支持 C 语言编程,有利于系统开发和调试。在智能车系统设计中,单片机的 I/O 资源分配如下:PAD0 作为 CCD 模拟视频信号输入端;PT0 检测视频行同步信号, PS2 检测视频奇偶信号; PACN0 用于车速反馈的输入口;PWM01 用于伺服舵机的 PWM 控制信号输出;PWM23 和 PWM45 分别用于驱动电机正反向 PWM 控制信号的输出。2.2 电源管理模块智能车主电源由 7.2V/2000mA
7、h Ni-cd 充电电池提供。为避免电机和舵机等器件对系统产生干扰,各功能模块均采用单独供电。具体实现方案如图 2 所示:第 3 页 共 9 页N i C d 电 池 ( 7 . 2 V )L M 1 0 8 4L M 7 8 1 2二 极 管单 片机车 速检 测模 块电 机驱 动模 块C C D 摄像 头舵 机直 流电 机M C 3 4 0 6 3图 2 电源管理分配图 采用低压差稳压芯片 LM1084S-50 将电源电压稳压至 5V,供给单片机和车速检测模块,如图 3。图 3 5V 稳压电路 将电源电压 7.2V 直接供给驱动电机;对于转向控制模块,为提高舵机的响应速度,采用提升舵机供电电
8、压的方法,通过串联二极管将电源电压降至6.5V 左右来给舵机供电。 采用 DC-DC 变换器 MC34063 将电源电压升压至 24V 用于电机驱动模块MOSFET 管驱动,同时再利用 LM7812 将 MC34063 的输出电压降至 12V用于 CCD 摄像头供电,如图 4。第 4 页 共 9 页图 4 24V 升压电路2.3 路径识别模块路径识别模块采用 320 线黑白 CCD 摄像头作为赛道黑线的检测元件。利用摄像头采集道路图像信息,然后将其送入单片机的 A/D 端口,由于黑色引导线和白色道路的图像灰度值存在较大差异,因此通过设置合理阈值对采集图像进行二值化处理,就能够有效的分辨出黑线位
9、置。对视频信号中行同步以及场同步脉冲的分离和提取采用了 LM1881 视频同步分离芯片,其应用电路如图 5 所示:图 5 LM1881 视频同步分离电路图摄像头的输出视频信号分为两路:一路送入 MC9S12DG128 单片机的 AD 端口PAD0 进行 A/D 转换;另一路通过图 5 中引脚 2 送入 LM1881 进行视频分离;分离出的行同步信号(引脚 1)接入 MC9S12DG128 的 PH0 口;由于 PH0 口自带中断功能,因此不需要使用等待查询的方式来检测行同步信号,从而节省了 CPU资源;此外,通过单片机的 PS2 口来检测 LM1881 输出的奇-偶场同步信号,当该信号发生跳变
10、时就能够准确得判断图像换场,方便图像的处理。2.4 转向控制模块智能车系统采用 Futuba 公司的 S3010 型舵机完成转向控制。舵机属于位置伺服电机,如图 6 所示,正常工作状态下,其输出转角与给定的 PWM 脉宽成线性关系,通过改变 PWM 脉宽,就能够控制舵机转向。系统将 MC9S12DG128 的两个 8 位 PWM 发生器 PWM0、PWM1 级联成一个 16 位 PWM 输出舵机控制信号,这样做的好处是能够大幅提升舵机 PWM 的控制周期,细化 PWM 控制量。级联后若以第 5 页 共 9 页PWM 控制字 6000 为舵机中位,则舵机在左右极限转角分别为 5000 和 700
11、0,可见舵机 PWM 的调节范围非常大,从而有效的保证了转向控制精度。同时,S3010作为一款扭力型舵机其转动扭矩可达 6.5kgcm(6V) ,因此可以充分利用其转矩余量来提高舵机的响应速度。如图 7,在舵机转盘和转向拉杆之间增加了一段输出臂,这样在舵机角速度恒定的情况下,由于输出臂的增长使得转向拉杆移动的线速度得到提升,从而能够有效提高智能车的转向灵敏度。图 6 舵机输出信号与控制信号的响应关系图 7 舵机安装示意图2.5 电机驱动模块智能车系统采用后轮驱动,驱动电机选用 RS-380SH 型直流电机;对于电机的转速采用了基于“H”桥驱动电路的 PWM 控制。如图 8 所示,电机驱动模块选
12、用大功率场效应晶体管 IRL3803 作为 H 桥开关元件。实验发现,当 IRL3803 的栅源电压 VGS为 16V 时,其导通电阻仅有 6m 左右,因此可以大大降低管压降,提高电机的驱动功率。同时系统对电机进行全桥驱动,将 PWM2 和 PWM3 以及PWM4 和 PWM 5 级联分别来控制电机的正反转,这样在智能车速度过快时可对电机实施反向制动,从而迅速降低车速。实验证明,当智能车车速由 70%降至 40%时(PWM 占空比) ,采用全桥驱动方式,电机响应时间仅为 0.1 秒左右,减速效果十分显著。第 6 页 共 9 页图 8 电机驱动模块控制电路图2.6 车速检测模块智能车系统通过车速
13、检测模块来读取实时车速。采用的方法是在后轮减速齿轮上粘贴一个均匀分布有黑白条纹的编码盘。利用图9所示的检测电路来对编码盘上的黑白条纹进行检测。根据光电反射原理,在车轮转动时,红外接收管接收到反射光强弱高低变化,就会产生与车轮转速相对应的脉冲信号,将该脉冲信号进行放大整形后输入单片机的输入捕获引脚PACN0,记录一定时间内所得到的脉冲数,就能够表示出当前车速。图9 车速检测模块电路原理图3. 软件系统设计与实现智能车系统的基本控制策略是根据路径识别模块和车速检测模块所获得的黑线位置信息和当前车速信息,准确控制舵机和直流电机运动,以达到智能车的稳定快速行驶。图10为主系统程序流程图。第 7 页 共
14、 9 页开始系统初始化启动定时器摄像头采集黑线位置计算黑线偏差 , 控制舵机转向采样时间到 ?速度采样 , 读入实时车速调用 P D 函数 , 控制车速清标志位 , 中断返回YN图 10 主程序流程图3.1 赛道黑线的识别赛道黑线的准确识别对于智能车完成快速、稳定的寻线行驶至关重要。本系统设计了如下算法来确定黑线位置:先对图像进行逐场隔行扫描,同时进行A/D转换;经测试,通过设置锁相环将系统总线时钟由24MHz超频至40MHz时,MC9S12DG128单片机对于单行视频信号可以进行40次A/D转换,即单行采样分辨率为40个像素。这样,将每行扫描到像素点存储在一维数组ccdline (0line
15、40) 中;提取黑线时,每行前6个数据对应的是视频中的无用信号,因此从每行第6个数据开始,判断ccd lineccd line +3dif(dif为设置的黑白阈值) ;若不满足,则继续搜索下一点直至该行结束;若满足,则表示找到了黑线的左边界,将line值赋给变量temp,然后接着继续判断以后各点是否同时满足ccd line- ccd line+32,若同时满足,则表示找到了黑线的右边界。从而黑线位置为: ()/2blackinelitemp黑线距离车体中心线rol_mid的偏差error也可由此得出: _rolirolid实验证明,只要黑白阈值选取得当,该算法能够很好的提取出赛道黑线,并且还可
16、以根据现场赛道特点对阈值进行初标定设计,在此不再赘述。3.2 弯、直道判断及速度和舵机控制算法影响赛车速度成绩的一个重要因素就是对弯道和直道的提前识别判断,从而实现安全过弯,快速通过直道,达到走捷径的目的,以此提高比赛成绩而摄像头方案在这方面有天然的优势:相对于光电传感器,可以获得较远的路况信息;不仅可以得到单行的黑线信息,还可以同时获得多行的黑线信息在单行黑线边沿检测提取算法的基础上,可以根据 10 行数据中的每行黑线第 8 页 共 9 页位置与 10 行平均位置(公式(1) )的相对位移,求 10 行相对位移之和(公式(2) ) 。最后根据该值的大小并且结合实际赛道试验数据,来确定弯道和直
17、道之间的阙值大小,随着弯道系数的增大,该位移之和也会相应增大。每行中心点的位置是由该点在 X 方向上的坐标表示的,我们用数组 X9来来表示每行图像中黑线的中心点,其中 X0表示第一行的中心点,X9表示第十行的中心点。X=Xrow/ROW_MAX (row=oROW_MAX) (1)Curve=|Xrow- X| (row=oROW_MAX) (2)上式中的 Curve 是程序中定义的一个变量,用它的大小可以定性的判断前方黑线的弯曲情况,Curve 不是数学上所定义的曲率,但是和曲率有一些相同点,如都是用来表示曲线的弯曲程度,如果曲率大,那么 Curve 值也大,所以,我们在程序中使用了 Cur
18、ve 值来判断前方黑线的弯曲情况,然后 CPU 判断是否需要进行速度控制,如进弯减速和出弯加速等等。图 11 是由直线进入弯道然后出弯进入知道的过程示意图。图 11 直道与弯道示意图序列 1 2 3 4 5 6 7Curve 7 6 9 24 13 18 10表1 直道及弯道处的Curve值由上表数据可以得到,在弯道中 Curve 数值一般都大于 10,而在直线或切线位置处出现小于 10,但是作为弯道的判断已经足够了,而且随着曲率半径的减小 Curve 值也会相应的增大。因此可以根据 Curve 的值来设置几个阙值,判断赛车前方的路况信息,决定赛车是否加减速。如在 Curve 小于 10 的直
19、线上可以让电机输出比较高的转速,实现小车加速行驶。在 Curve 值大于 10 的弯道上让电机的转速下降以便让小车减速以此来保证小车过弯时的稳定性。同时速度控制算法可以采用以 Curve 为变量的 P 控制,公式如下:Speed=(SPEED_MAX-SPEED_MIN)/Curve_VALVE*Curve+SPEED_MINCurve_VALVE 是比例系数,它的值与小车处于直线上的 Curve 值接近。如果转向舵机的控制也采用以 Curve 为参数的 P 控制算法,虽然可以快速冲过 S 弯,并且普通弯道也能够在内侧行驶,但却要冒撞到赛道边沿标志杆的风险,所以为了能够可靠地通过各种弯道,可以
20、采取转向舵机的 P 控制,公式如下:Steer=STEER_CENTER+K*(X-video_center)式中: K=(STEER_LEFT-STEER_RIGHT)/(LINE_MAX-LINE_MIN)video_center=(LINE_MAX-LINE_MIN)/2第 9 页 共 9 页其中:STEER_CENTER 为舵机转向中心;X为当前黑线位置;STEER_LEFT,STEER_RIGHT 为舵机左、右转极限;Video_center 为摄像头图像中心;LINE_MAX,LINE_MIN 为摄像头图像左、右极限位置。采用这一方案进行速度和方向控制的优点是充分考虑到了赛道黑线的
21、实际情况,同时充分发挥了摄像头的预瞄效果,能够提高小车在直线上行驶的稳定性,同时可以根据弯道曲率的不同值实时调整小车的行驶速度,在保证小车行驶稳定性的同时也可以保持较高的行驶速度,这样能很好的适应比赛要求。4. 结束语本文介绍了一种智能寻迹模型车的设计与实现。下面的照片为智能车实物。实践证明,该智能车寻迹效果好,系统响应快,具备良好的动力性能和转向性能,证明了控制算法的有效性和稳定性。参考文献:1 MC9S12DG128 Device User Guide Z.Freescale Semi-Conductor Inc,2005.2 卓晴,黄开胜,邵贝贝. 学做智能车:挑战“飞思卡尔”杯M. 北
22、京:北京航空航天大学出版社,2007. 3 邵贝贝. 单片机嵌入式应用的在线开发方法M. 北京:清华大学出版社,2004.4 吴斌华,黄卫华,程磊,杨明. 基于路径识别的智能车系统设计J. 电子技术应用,2007(3):80-83.5 王晓明. 电动机的单片机控制M. 北京:北京航空航天大学出版社. 2002.6 卓晴,王琎,王磊. 基于面阵CCD的赛道参数检测方法J.电子产品世界,2006(4):141-1437 程钊,万齐齐,唐旋来等. 智能车道路识别及控制研究J. 伺服控制,2007(11):49-518 潘峥嵘,杜宝强,王树东等. 基于 CPLD 的彩色视觉移动机器人路径跟踪系统J. 计算机工程与设计,2007,28(5):1102-1103,1107