基于摄像头的智能车路径识别与方向控制算法
2015-03-01陈庆强汤龙梅蔡文培
陈庆强,汤龙梅,蔡文培
(福建工程学院信息科学与工程学院,福建福州350118)
基于摄像头的智能车路径识别与方向控制算法
陈庆强,汤龙梅,蔡文培
(福建工程学院信息科学与工程学院,福建福州350118)
针对A/D转换精度高但速度慢而电压比较器速度快但精度低,提出了结合二者来对摄像头输出的道路视频信息进行采集的方法。每行分别可靠采集12个高精度点和132个二值点,去噪后采用最小二乘法拟合直线获得智能车控制所需要的路径信息。采用跟踪智能车偏离引导线中心的平均距离和引导线斜率的双指标改进PID算法实现对智能车的方向控制。较传统的路径识别与方向控制算法相比,该算法具有数据采集和方向控制精确、系统鲁棒性更好的特点。实验结果验证了所提出方法的可行性。
摄像头;智能车;路径识别;方向控制
智能车在现代物流业、柔性制造系统中有着重要的应用,并在仓库自动化、工业生产、图书馆、餐饮服务、国防等领域有着极为广阔的应用前景[1]。智能车技术涵盖了控制、模式识别、传感技术、电子、电气、计算机、机械等多学科交叉技术[2-5]。智能车控制的关键技术之一是利用传感器获取实时道路信息并对其分析处理,确定路径,再实现对智能车运动方向和速度的自动控制,使其沿着既定轨道准确、安全、平稳、快速地行驶。本文以飞思卡尔智能车竞赛为背景,设计了基于摄像头的智能车软硬件系统,采用了AD转换和电压比较器相结合的路径采集方案,实现了跟踪智能车偏离引导线中心平均距离和引导线斜率双指标的改进PID方向控制算法,数据采集和方向控制效果均较为理想。
1 总体结构设计
智能车总体结构如图1所示,摄像头OV5116负责采集智能车前方约50 cm范围内的道路信息,并将视频信号直接送往电压比较器LM339,可获得一组二值化道路信息,同时经同步分离芯片LM1881对视频场、行分离后送往MC9S12XS128单片机的A/D转换模拟信号输入端,可获得一组8位数字量道路信息。结合这二组信息进行分析、处理,实现对智能车前方路径的识别,为智能车的行驶方向和速度控制提供准确的数据。通过编码器E6A2-CS3C获取智能车当前行驶速度。根据路径识别的信息和当前的行驶速度,按照预定的控制算法由单片机输出PWM信号给驱动电路分别控制电机和舵机,使智能车按照预想的方向和速度可靠地行驶。电源模块给各电路模块提供所需的电源。
图1 总体结构Fig.1 Overall structure of smart vehicle
2 路径识别方案
智能车赛道含有直线、大小弯道(含S弯)和十字交叉等元素,宽度为50 cm,路面为白色,中间有宽度为2.5 cm的黑色带状标志作为引导线[6]。赛道路径识别对智能车控制至关重要,没有准确的路径识别,再好的控制算法也无法发挥作用。路径识别主要包括路径数据采集以及控制所需信息提取两部分。
2.1 赛道信息采集
赛道信息采集的功能是将道路信息以数字量的形式输入到单片机内,并且应具有足够高的分辨率。
摄像头可产生320×240 pics图像信号,图2是用示波器观察到的一行含有蓝色背景、白色道路和黑色引导线的视频信号。使用A/D转换其分辨率足以区分黑色引导线与蓝色背景,但由于视频信号中一行的扫描时间为64μs,扣除行同步和行消隐占用的时间,图像信号大约只有52μs。按照MC9S12XS128单片机16 M标准工作主频,A/D转换设为8位,则转换一次最快约需4 μs[6],这样一行最多只能获得12~13个数据,故分辨率不高。通过把MCU超频到64M和减少A/D采样时间[7-9],可提高采集点数,在一定程度上解决了方向控制所需分辨率,但存在CPU工作不稳定的隐患,且采集的点数依然有限,无法满足高质量控制算法的需要。
图2 一行视频信号Fig.2 Path video signal line of smart vehicle
使用电压比较器则可以获得较多采样点[10]。如果采用汇编语言编写采集子程序,一行可获得132点以上的二值化数据。但是,从图2可以看出,蓝色背景对应的电平只比黑色引导线高出0.15 V左右,这就要求基准电压的设置必须非常准确。由于受到环境光线变化、电池电压变化以及负载状况的变化影响,基准电压并不是固定值,常出现蓝色背景被电压比较器处理成黑色的情况,从而导致控制决策的严重错误。有学者通过调节A/D转换模块的高、低参考电压实现二值化来提高采样点数并避免误判[11],但参考电压的设置依然比较困难且采集点数仍然有限。
为解决两种采集方式的不足,本文将A/D转换和电压比较器两种方法结合在一起,各取所长,对每个采集行采用下列处理方法:
1)检测行同步信号,延时4μs去除消隐信号;
2)从LM339的输出端连续采集11个1位数据;
3)等待A/D转换完成,并读取一个8位A/D转换结果;
4)重复前两个步骤12次,可获得132个二值数据和12个8位A/D转换数据;
5)在A/D转换数据中找到引导黑线位置M(1≤M≤12);
6)将M映射到二值数据数组中,并在二值数据数组中,以映射后的位置为中心、左右各22个点区间[T1,T2]范围内精确定位引导黑线中心位置N(1≤N≤132),T1、T2的值分别为:
由于黑色引导线与蓝色的背景距离有24 cm左右,因此在[T1,T2]范围内不可能有蓝色背景。这样,就能得到每行132像素点高分辨率数据,完全能满足控制算法的需要,并且减少了引导线中心的定位时间,同时又没有额外增加数据采集的时间开销。
由于受MCU内部RAM资源的限制无法存储整帧数据,为减少数据量,只在前150扫描行中每5行保留一行,故最终采集数据为两个数组:8位ADC数据数组AD[30][12]和1位二值数据数组SW[30][132]。经实验验证,采集的数据可满足控制要求。
采用以上方法后,LM339的基准电压可设置为对应蓝色时摄像头输出的电平,且允许一定范围的误差,也不易受环境光线变化、电池电压变化以及负载状况变化的影响,能准确获得黑色引导线的位置。
2.2 信息处理与分析
信息处理与分析的功能是利用黑色引导线的连续性先对所采集到的数据去除噪声干扰,再计算智能车方向控制所需的车体偏离前方引导线中心的平均距离D、引导线斜率K和前方可视距离L(使用最远端扫描线位置表示)。其步骤是:
1)由于环境光线的不同和摄像头性能的限制,不同环境时的黑色引导线对应的视频电平会有所差别;相同环境时,同一颜色与摄像头距离不同,对应的电平也有差别。为解决这一问题,可在智能车行驶前静态采集若干含有引导线的图像帧,获得各扫描行中黑色像素对应的A/D转换平均值,并将其作为黑色像素电平的标准值BV0[30]。
2)逐行扫描AD[30][12],将|AD[i][j]-BV0[i]|<ε(ε=5)的像素均标识为黑色像素点,并去除噪声干扰,按照前一小节所给方法找出引导线中心坐标位置数据{(x1,y1),(x2,y2),…,(xi,yi),…,(xn,yn)},其中xi为扫描线位置,yi为扫描线中黑色像素的中心位置N,xn为摄像头可视距离L。同时对十字交叉口和终止线等特殊状态作相关的标记。
4)摄像头前方可视距离约50 cm,为简化算法,可将引导线视为直线。设直线为y=Kx+b,则可用最小二乘法(式1)计算其斜率K:
至此,获得控制算法所需的L、D和K值。
3 方向控制算法设计
智能车的行驶目标是以最快的速度沿着指定的轨道平稳前进。智能车车体偏离前方引导线中心的平均距离即D是大多数方向控制算法的依据,如文献[12]。但在图3所示赛道中,由于该时刻D接近0,故并不调整方向,只有在下一方向控制周期出现D不为0时才会调整,因此角度控制存在滞后现象。当智能车达到一定速度时,往往来不及调整方向而导致智能车冲出赛道。如果该时刻能利用引导线斜率K提前调整智能车方向,则显然控制效果会更好。
图3 D为0,K不为0Fig.3 Smart vehicle path when D is 0 and K is not 0
另外,在图4所示情形中,智能车位于引导线偏右,需要往左调节方向,但同时引导线方向向右偏,为避免智能车频繁大角度调整,显然结合引导线斜率一起调整可以达到更好的方向控制效果。
图4 D不为0,K不为0Fig.4 Smart vehicle path when D is not 0 and K is not 0
当然,如果只以引导线斜率K为调整依据,则在图5所示情形下,由于K接近于0,故无需调整方向。若该赛道前方是一段右拐弯路线,则智能车很可能冲出赛道,这显然也达不到正确的方向控制目标。
图5 D不为0,K为0Fig.5 Smart vehicle path when D is not 0 and K is 0
可见,无论采用单一参数D还是K进行方向调节,都存在明显的缺陷。理想的方向控制算法应结合D和K参数进行调节,使智能车在任何时刻都能尽量紧贴着引导线快速行驶,即任何时候都使D和K的值趋近于0。
由于传统PID控制结构简单,效果及稳定性好,在各种控制中应用广泛。对于智能车的方向控制也可使用PD调节[13]。PID算法在工程上常用其数字增量控制法,其形式为:
大型综合型公立医院要实现其管理目标,需依靠科学有效的管理方法与制度,特别是建立现代医院管理制度。目前我国的现代医院管理制度[3],是与社会主义市场经济体制相适应的、在新型的公共治理框架下形成的政府、所有者代表与公立医院之间责、权、利关系的一组制度安排与制度模式。
针对本文拟采取的双参数方向控制,对应的PID控制算法也应作相应改进,即采用如图6的控制方式。
图6 改进PID算法框图Fig.6 Block diagram of improved PID algorithm
相应的,需对式(2)进行改进,得到式(3)所示改进PID算法公式。其中,u(k)对应k时刻智能车行驶角度的调节量,也即MCU输出到舵机的PWM值,u1(k)、u2(k)分别对应出现D和K偏差时的调节量;KP1、KI1和KD1分别为对应D误差值调节的比例系数、积分系数和微分系数;KP2、KI2和KD2分别为对应K误差值调节的比例系数、积分系数和微分系数。
由于智能车舵机存在比较严重的滞后特性,对D的误差调节应以比例调节为主,对K的误差调节以微分调节为主。具体各系数应根据车体性能、车速、道路摩擦系数等依实验效果择优选取。
为说明本文所提出的双参数PID调节算法优于单参数调节算法,现以图3、图4和图5所示的三种轨道情形为例,分析三种不同控制算法的执行效果。
为简明起见,假设智能车在Ti-1时刻的D、K和角度调节量均为0,在Ti时刻智能车的行驶分别遇到图3、图4和图5所示的三种轨道,则三种控制算法在Ti时刻输出的角度调节量和在Ti+1时刻的参数D和K的值如表1所示。
标准视频场扫描频率为50Hz,故PID调节的控制周期最短也需要20ms,即Ti+1=Ti+20ms。若智能车以2 m/s的速度行驶,则一个控制周期智能车将向前移动4 cm。
表1 各控制方法偏差控制对比Tab.1 D,K difference comparison among different steering methods
对于单参数D的控制算法,当轨道为图3时,由于D=0,故角度调整量也为0,智能车按照原方向往前行驶。由于轨道向右延伸,故在Ti+1时刻,D=dp,将明显大于0,而K基本保持不变,行车方向与轨道方向出现偏离。当轨道为图4时,由于D=-47,故角度调整量Ud2将使智能车向左行驶。由于轨道向右延伸,故在Ti+1时刻,D=dp,将明显大于0,而K基本保持不变,行车方向与轨道方向偏离将愈加严重。当轨道为图5时,由于D=53,故角度调整量Ud3将使智能车向右行驶,控制目标为D=0,在Ti+1时刻,D=d0。d0虽然无法达到理想值0,但它接近于0,同时K也接近于0,智能车行驶方向正确。
对于单参数K的控制算法,当轨道为图3时,由于K=2.14,故角度调整量Uk1将使智能车向右行驶,而轨道也向右延伸,故在Ti+1时刻,K=k0。k0虽然无法达到理想值0,但它接近于0,同时,D也接近于0,智能车行驶方向正确。当轨道为图4时,由于K=1.11,故角度调整量Uk2将使智能车明显向右行驶,且其控制目标为K=0,故在Ti+1时刻,K=k0。k0虽然无法达到理想值0,但它接近于0;但D的偏差无法得到纠正,智能车行驶方向不正确。当轨道为图5时,由于K=0,故角度调整量也为0,智能车按照原方向往前行驶,D的偏差无法得到纠正,行驶方向也不正确。
对于本文所提出的D和K双参数控制算法,当轨道为图3和图5时,在Ti+1时刻,其D和K的值分别与单参数D和单参数K的控制算法类似。当轨道为图4时,角度调整量Udk2为D、K偏差产生的调节量总和,在Ti+1时刻,D=d0,K=k0,d0和k0虽然无法达到理想值0,但它们都接近于0,智能车行驶方向正确。
对智能车速度的控制可根据L、D、K及检测的速度采用PID或“Bang-Bang”调节算法。
4 实验结果
为验证本文提出的方法可行,依次对数据采集和方向控制算法进行了测试。
4.1 数据采集方案测试
数据采集测试以图4为测试赛道,该赛道包含白色道路、黑色引导线和蓝色的背景等信息。表2是单独AD转换方法[7]、单独二值化方法[10]和本文算法对该赛道各行中获得的引导线中心位置。为便于比较,表中ADC法得到的各中心坐标是按比例换算到132点情形后的坐标值。
表2 不同算法获得的引导线中心位置Tab.2 The center of guide line acquired by different path collection algorithms
从实验结果可知,由于单独AD转换方法分辨率较低,在多数采集行中引导线中心位置存在较大的偏差;而单独二值化方法虽然分辨率较高,但容易把蓝色的背景当作引导线,从而产生错误结果。而采用本文算法,既能获得高精度的定位,又不会出现对蓝色背景的误判。
利用本文路径识别方案依据表2可计算出智能车偏离引导线中心的平均距离D为-47.6,引导线斜率K约为1.11,从而为后续方向控制提供依据。
4.2 方向控制算法测试
在得到实时D和K后,依次按单D、单K和D、K结合的PID方向控制算法,让智能车分别以1、1.5和2m/s左右的速度在包含直道、大S弯和小S弯的赛道上各运行20次,智能车冲出赛道次数见表3。从表3可以看出,双参数的PID算法效果更优。当然,随着速度的提高,三种方式冲出赛道的次数均会增多,但相比较单参数控制方法,本文的控制算法仍然较优。
表3 智能车冲出赛道次数统计Tab.3 The statistics of smart vehicle’s running out of steering path
5 结论
本文采用了二值化与A/D转换相结合实现道路视频数据采集,优点是精度高、环境适应性好,在背景光线变化大且跑道背景为蓝色的情况下,也能准确地获得路径信息。利用跟踪智能车偏离引导线中心的平均距离和引导线斜率的双参数改进PID算法实现对舵机的控制,与单独采用偏离中心线距离的PID控制算法相比,智能车行驶的稳定性得到明显提高。但PID调节参数受车体性能和跑道摩擦系数的影响,理想参数的整定比较困难。如何根据环境的变化自动调节PID的有关参数有待今后进一步的研究。
[1]薄亮亮,张小栋.光导AGV智能循迹测控系统的建模与仿真[J].测控技术,2011,30(5):85-88,97.
[2]曾星星.基于摄像头的路径识别智能车控制系统设计[J].湖北汽车工业学院学报,2008,22(2):73-76.
[3]Minguez J,Montano L.Sensor based robotmotion generation in unknown,dynamic and troublesome scenarios[J].Robotics and Autonomous Systems,2005,52(4):290-311.
[4]Gonzalez Galvan E J,Cruz Ramirez SR,Seelinger M J,et al.An efficientmulti camera,multi target scheme for the three dimensional control of robots using uncalibrated vision[J].Robotics and Computer Integrated Manufacturing,2003,19(5):387-400.
[5]Wasik Z,Saffiotti A.A fuzzy behaviollr based control system formanipulation[C]∥IEEE International Conference on Intelligent Robots and Systems,Sept.30-Oct.4 2002.New York:IEEE,2002,2:1596-1601.
[6]卓晴,黄开胜,邵贝贝.学做智能车:挑战“飞思卡尔”杯[M].北京:北京航空航天大学出版社,2007.
[7]王明顺,沈谋全.传感器与智能车路径识别[J].电子产品设计,2007,4(1):142-143.
[8]刘建刚,程磊,黄剑,等.基于CCD图像识别的HCS12单片机智能车控制系统[J].光电技术应用,2007,22(6):52-55,59.
[9]程亚龙,周怡君.基于CMOS传感器的智能车路径识别研究[J].机械制造与研究,2007,36(5):13-15.
[10]曾军.基于MC9S12DG128单片机的智能寻迹车设计[J].电子设计工程,2009,17(3):54-56.
[11]刘博,张盛兵,马志强.基于最优路径的智能车设计与实现[J].计算机测量与控制,2012,20(8):2264-2269.
[12]韩毅,杨天.基于HCS12单片机的智能寻迹模型车的设计与实现[J].计算机工程与设计,2008,29(18):4736-4739.
[13]李国柱.基于CMOS摄像头的智能车路径跟踪系统设计[J].现代电子技术,2011,34(18):12-14,17.
(责任编辑:肖锡湘)
Camera-based path identification and steering control algorithm for smart vehicle
Chen Qingqiang,Tang Longmei,CaiWenpei
(College of Information Science and Engineering,Fujian University of Technology,Fuzhou 350118,China)
A combined method of A/D conversion and voltage comparator was proposed to improve the precision and speed of road video data collection.12 high-precision point data and 132 binary data per row were achieved.The necessary path information for the smart vehicle to steer automatically was acquired by using linear least squares fittingmethod after denoising the data.An improved proportion,integration and differentiation(PID)algorithm was implemented to control the direction of the vehicle,considering both the average distance between the smart vehicle and the center of the guide line and the slope of the line.The proposed algorithm can acquire the path information and control the steermore accurately and ismore robust compared with the traditional path recognition and steering control algorithm.The experimental results demonstrate the feasibility of the proposed method.
camera;smart car;path identification;direction control
TP336
A
1672-4348(2015)03-0229-06
10.3969/j.issn.1672-4348.2015.03.005
2015-03-28
陈庆强(1965-),男,福建仙游人,副教授,硕士,研究方向:嵌入式系统开发、数字图像处理。