- UID
- 864567
|
智能化是当今汽车研究的重点,已经成为衡量各国汽车工业发展水平的重要标志[1],智能汽车作为一种全新的汽车概念和汽车产品,将成为汽车生产和汽车市场的主流产品[2]。而“飞思卡尔”杯全国大学生智能车竞赛由高等学校自动化专业教学指导分委员会主办,飞思卡尔半导体公司协办,并由各个分赛区的承办大学组织。比赛以迅猛发展的汽车电子为背景,涵盖了控制、模式识别、传感技术、电子、电气、计算机、机械等多个学科交叉的科技创意性,旨在培养大学生对知识的把握和创新能力,以及从事科学研究的能力[3]。根据“飞思卡尔”智能车大赛规则要求:使用统一车模,核心控制单元采用飞思卡尔MC9S12DG128CPU。在此基础上,自主构思控制方案及系统控制电路的设计。系统控制电路设计包括:传感器信号的采集、处理电路设计、驱动电机及转向舵机控制电路设计以及各类接口电路设计。控制方案设计包括:控制系统的组成设计、各类算法的设计及优化等内容。系统设计、调试完成后,在规定的、标有引导线的赛道上完成自寻迹行走,其赛道是在白色底板上铺设黑色引导线,以完成时间最短者为优胜。比赛分为光电组和摄像头组。笔者为摄像头组,采用的是摄像头寻迹方式。
智能小车(以下简称小车)的控制系统主要由三大部分组成:传感器信号采集及处理、车速控制和转向控制。由摄像头采集道路信息,经处理分析后识别路径,根据不同的路径决策出不同的速度和转向角度[4-5]。在保证安全的基础上,一方面需要考虑如何提高极限速度,另一方面需要考虑如何提高平均速度,其平均速度的大小最终将决定比赛成绩。分析历届比赛可以发现,整个赛道中60%~70%的长度为弯道,因此,小车弯道行驶速度很大程度上决定了小车在整个赛道上平均速度的大小。本文将针对小车在行走过程中,就如何利用图像数据,给出合理的转向策略进行深入探讨。
就普通驾驶员而言,驾驶车辆行驶在公路上,直道时保持高速运行状态,而弯道时会根据不同的弯道做出合理的决策。一般为先减速,然后在一个比较低的速度下通过弯道,过弯后加速,最终回到直道速度。而在赛车场上的情景则不同,赛车选手轻易不会选择普通驾驶员的转弯策略,而是利用前轮转向带来的向心力并结合赛车入弯前的固有惯性达到快速转弯的目的。对于一辆有视觉的智能小车是否也可以模拟这种高速运动过程,从而赢得比赛?笔者在综合分析视觉图像的特点、舵机模型以及圆周运动的特点后提出了一种可以高速入弯而不必减速或轻微减速、同时又能保证小车不会冲出赛道的安全过弯策略。
1 道路信息提取
要实现一个完整的基于视觉寻迹的智能小车,首先需利用摄像头获取道路信息,然后对采集到的原始图像进行数据处理,以获取赛道中引导线在图像坐标系中的位置[6-8]。
图1为摄像头安装示意图。其中,Z1为摄像头距地面的高度;w为视野场景的宽度,其大小与摄像机安装的俯角和高度都有关系;b为轮间距。对场景中的特征点,只要知道其在场景中的位置,即可计算出该点与小车的相对位置。由上往下延Z轴反方向看,可得到场景平面,如图2所示。其中,场景平面离小车的距离为d,这段距离为盲区,场景平面宽为W,长为H。定义小车的中线为基准线,由摄像头获得的图像即是场景平面。受MC9S12DG128CPU单片机处理能力的限制,选用356×292 CMOS黑白摄像头,将其设置为逐行扫描模式。单行采样106点。根据实验结果,综合考虑各种因素,选取其中64行信息形成一幅64×106的图像平面,用来判断弯道、直道以及弯道位置,从而达到减小计算量的目的。图像如图3所示。
在图3图像平面的基础上,利用参考文献[9~10]中的方法逐行扫描提取引导线位置。对于没有引导线的行将其标记出来并将没有引导线的边界行记为row_sure,这个值记录着64行数据中从第几行开始没有引导线,简称为出界点。得到引导线在图像中的位置,可根据引导线的图像坐标来控制舵机的转角。单行图像数据的图像坐标与其对应的真实场景坐标呈线性变换关系,即每行任意两像素坐标的列差值乘以一个近似固定的比例系数K就可得到真实场景对应行坐标的差值:
ΔXworld=K×ΔXimage=K×(line2-line1) (1)
式中ΔXworld为真实场景坐标中两点的距离,ΔXimage为图像平面对应行上两点的像素坐标的列差值。
利用上面的关系,可以间接测量出小车与目标引导线之间的偏角,如图4所示。若设AB为基准线,即车的中线;AK为引导线;过F点向y轴做垂线,与基准线AB的交点为C,定义C点为基准位置。在三角形AFC中,角β为基准线与引导线之间的夹角:
在理想情况下,控制舵机向左偏转β角度即可让小车追随到引导线。但这样计算角度的计算负担很重,简化参考文献[2]中横向偏差的测量方法,在基准位置固定的情况下,可用CF的长度近似表示角度β的大小:
|CF|=K×β (3)
式中,K为一个比例系数。结合图像平面与场景平面之间的关系,定义CF的长度即为偏差,转化到图像平面为:
err=line1-linem (4)
式中, linem为基准位置对应的列值,line1为同行引导线的列值,err为位置偏差。因此,在实际的软件设计中,不必得到真实场景坐标,可以直接对引导线实际位置与基准位置间图像坐标的差(line1-linem)设计控制算法。如增量PID控制器可设计为: |
|