李鹏博
(河北工程大学信息与电气工程学院,河北邯郸056038)
智能车(intelligent vehicle,IV)又称轮式移动机器人,是一个集环境感知、规划决策、操作控制等功能于一体的智能体,涉及机械、运动学与动力学、电子、计算机、信息处理、控制和人工智能等科学技术领域[1]。在智能车技术的运用中,除了能够让其自动识别各种不同形式的道路外,如何让其达到并维持较高的运行速度,是智能车控制的一个关键问题。
舵机的响应速度和道路信息提取的可靠性,是制约智能车车速的两个主要因素。在提高舵机响应速度方面,张淑谦等[3]对智能车舵机转向控制算法进行了研究,提出了效果较好的PD控制算法。韩毅等[4]通过细化舵机控制量及延长舵机力臂来提高其控制精度和响应速度。在道路信息提取方面,目前普遍采用边缘检测法。本文通过改进舵机的安装方式,增加其力臂长度,进一步提高其响应速度;通过引入一个动态阈值来改进道路信息提取的可靠性和稳定性。
系统硬件以飞思卡尔半导体公司的16位系列单片机XS128为主控核心,共分为5大模块单元:电源管理单元、图像采集单元、方向控制单元、电机驱动单元、车速检测单元。其中,电源管理单元如图1所示。
电源的质量决定一个系统的电气稳定性。智能小车所有模块单元的电源均来自于7.2 V的充电电池,鉴于各自的工作电压各不相同,因此需要独立的电压变换电路为其提供电源。对于采用5 V电压的元器件如单片机、车速检测单元等,采用低压差稳压芯片LM2904进行供电(图2);H桥的MOS管需要较高的开启电压,并且电压越高其内阻越小,所以H桥驱动单元采用与CCD摄像头单元相同的12 V电压,设计时用MC34063通过电阻编程将电压升压到12 V(图3);对于舵机,实验发现升高供电电压可以提高响应速度,而电压过高则又容易造成舵机烧毁或打齿,因此通过在其供电电路中串联1个或2个二极管来为其供电。
道路信息的提取是智能小车巡航的依据。采用一台实验室电视显示设备,将模拟CCD摄像头的视频输出端接到电视设备的视频输入端,供电后不断调整镜头,当图像达到最清晰时锁死镜头。利用高速AD转换芯片TLC5510将模拟信息转换为8位的数字信息后送入单片机的P0端口。结合视频同步分离芯片LM1881,将行中断和场中断信号同步分离出来,为单片机读取图像提供时序。行场中断信号分别接入PE1和PJ0引脚,鉴于行场中断信号为正脉冲信号,将单片机端口寄存器配置为中断触发模式,正跳变沿触发,这样单片机就能够及时捕捉到中断信号,读取数据。视频制式为PAL制式,每秒有25帧图像输出,由于每帧图像由奇偶两场组成,因此只需采集两者之一即可,这样可以节省一个图像采集周期用做单片机的信息处理。LM1881信号同步分离电路如图4所示。
由于白色赛道和黑色中心线经过摄像头采集后的图像灰度值相差很大,通常近处黑色中心线的灰度值大于0而小于十进制数30;白色赛道的灰度值则大于180而小于255。因此,可通过边缘检测法对道路信息进行提取[3]。然而由于摄像头的畸变和距离的影响会导致黑线采集后的灰度值随着距离的变远而变大,对此根据距离的远近引入一个动态阈值进行提取,以提高识别率和稳定性。
方向控制所用的舵机属于位置伺服电机,其输出转角与其输入的PWM脉宽成一定的线性关系。通过改变输入的PWM脉宽,可以控制舵机转动一定的角度。舵机的中心位置对应的PWM脉宽值一般在1 600左右,8位的PWM寄存器不能满足脉宽值的要求,所以将MC9S12XS128的2个8位PWM寄存器PWM0、PWM1级联成一个16位PWM寄存器,这样就可以满足舵机PWM的脉宽值基数的要求,细化PWM的控制量,提高其控制精度[5]。为了进一步提高舵机的响应速度,采用将舵机竖放的方法,并将其垫高;通过尽可能增加其力臂,使其在摆动相同的方向下只需转动较小的角度,减少其执行时间,提高响应速度。
鉴于电机驱动单元的能耗比较大,特别是在启动和行驶中调速时极易导致电源电压过低导致使单片机复位,因此在电容电感等器件的选择上需要注意参数间的相互配合。对于电机的驱动采用了基于分立器件搭建的“H”桥全桥驱动电路[6-7]。“H”桥全桥驱动电路的开关器件选用大功率场效应晶体管IRF3205。利用“H”桥全桥驱动电路可对电机实施反转控制的特性,在需要制动时可采取反转策略得到类似刹车的制动效果,迅速降低车速,以安全的速度迅速入弯,最大化节省时间。“H”桥全桥驱动电路如图5所示。
智能小车通过光电编码器实时测得小车速度。通过在后轮驱动齿轮上咬合一个光电编码器,将光电编码器输出的脉冲信号经过运算放大器电路放大整形后,再输入到单片机的输入捕获引脚进行采集计数,根据计数值计算得出对应的车速。
智能小车的控制流程是先提取道路信息,然后结合车速检测单元测得的当前实时车速,准确驱动电机运转和舵机转向,使舵机转向的时机与速度配合得当,达到智能小车又快又稳巡航行驶的目的。图6为主程序流程图。
道路信息的准确、快速提取,对于智能小车的巡航行驶意义重大。设计中使用片外高速AD转换芯片代替单片机自带的AD转换功能,既省大量的CPU时间,又可以使每行采集到的图像点数增加到一百余点,这样就为根据前瞻距离来调整采集点数提供了空间,提高了算法提取的可靠度和稳定度;通过对场中断进行延时采集的方法解决视野宽窄远近合适但偏离中心位置的现象。
使用边缘检测法提取黑线。根据道路信息提取情况,选取一个能够将白色赛道和黑色中心线区分开的阈值,采用单边缘或双边缘跳变检测法提取赛道中心黑线。为了达到更好的道路信息提取效果,引入了动态阈值法和多阈值法。设计中分成将图像从上到下分成3部分,对每一部分求灰度值的平均值作为此部分中心线的提取阈值。中心线提取的程序如下:
舵机是控制小车运动方向的部件,如果程序能够控制舵机及时准确地做出反应将大大提高智能小车的速度。PID算法具有较好的鲁棒性,且算法简单,通过对其参数的合理标定,可以使舵机在直道平稳而对弯道灵敏。控制舵机的PID算法模型通过下式实现:
其中,MVn、MVn-1是当前操作量和上次操作量;ΔMVn是当前操作量的微分;en、en-1、en-2是当前、上次、上上次的偏差;Kp、Ki、Kd是系数。在设计中考虑到积分环节是一个累积过程,有一定的滞后性,不利于舵机的响应速度,决定将其去掉。且经过实验不断验证,得出对舵机的控制采用去掉积分环节的 PD 算法更为合适[8-9]。
为了使智能小车的车速控制成闭环控制方式,同时为了使其反应更灵敏快速,也采用了去掉积分环节的PD算法[6]。车速计算公式如下:
6式中:e=Set_speed-Cur_speed;Set_speed是要设置的车速,Cur_speed是光电编码器检测到的实时车速,两者之差代回上式做计算,通过Kp和Kd计算修正后,可得到需要输出的车速。PD算法控制器参数的标定需要通过不断的试验得出,这是使用PD算法的一个不足之处。实验表明,该控制器可快速灵敏的对车速进行精确控制,表现出非常好的控速效果[4]。
通过对影响智能车速度的相关因素的分析,实现了基于视频的自动巡航智能小车的快速稳定行驶。实验和实践证明,该智能小车自动巡航效果好,实现了不同场地光照条件下的自动巡航,抗现场光线干扰能力强,具备良好的速度和灵活特性,在2010届全国大学生智能车竞赛上取得了东北赛区一等奖的好成绩,证明了相关技术的合理性和有效性。
[1] 付梦印,邓志红,刘彤.智能车辆导航技术[M] .北京:科学出版社,2009.
[2] 沈志熙,黄席樾,杨镇宇,等.基于Boosting的智能车辆多类障碍物识别[J] .计算机工程,2009,35(14):241-242.
[3] 张淑谦,王国权.智能车黑线识别算法及控制策略研究[J] .电子技术,2009(3):89-91.
[4] 韩毅,杨天.基于HCS12单片机的智能寻迹模型车的设计与实现[J] .计算机工程与设计,2008,29(18):4736-4739.
[5] 韩庆瑶,洪草根,朱晓光,等.基于AVR单片机的多舵机控制系统设计及仿真[J] .计算机测量与控制,2011,19(2):332-334,339.
[6] 吴斌华,黄卫华,程磊,等.基于路径识别的智能车系统设计[J] .电子技术应用,2007(3):80-83.
[7] 胡莲君,宋 弘.移动智能机器人避障规划研究[J] .四川理工学院学报:自然科学版,2008,21(4):87-90.
[8] 台秀华.一致性方法的多仿生机器鱼编队对齐行为[J] .黑龙江科技学院学报,2012,22(1):79-84.
[9] 潘峥嵘,杜宝强,王树东,等.基于CPLD的彩色视觉移动机器人路径跟踪系统[J] .计算机工程与设计,2007,28(5):1102-1103.