引言
为响应教育部关于加强大学生创新意识、合作精神和创新能力的培养的号召,清华大学汽车工程系积极组队参加了第一届“飞思卡尔”杯全国大学生智能汽车邀请赛。从2005年12月开始着手进行准备,历时8个月,研制了6代基于光电传感器的路径识别方案,开发了智能车仿真研究平台,提出了基于路径记忆算法的转向及驱动控制策略,在电源管理、噪声抑制、驱动优化等方面也都进行了研究工作,通过大量的仿真试验、道路试验和基础性能测试,开发了基于光电传感和路径记忆的智能车导航系统,为整车系统的优良性能奠定了坚实基础。本文将从该智能车总体方案、路径识别方案选择、转向和驱动控制及路径记忆算法等方面进行介绍。
智能车总体方案
智能车系统以飞思卡尔公司的MC68S912DP256为核心,由电源模块、传感器模块、直流电机驱动模块、转向电机控制模块、控制参数选择模块、单片机模块等组成,如图1所示。智能车系统工作电压由+1.6V、+5V、7.2V三个系统混合组成,其中7.2V用于给驱动电机和转向舵机供电,5V给车速传感器、MCU以及光电传感器接收管供电,1.6V给发光管供电。为了在线控制参数的调整方便,还设置了一个控制参数选择模块,可以通过几个按键的设置,调用不同的程序或控制参数,以适应不同场地条件的要求。
图1 智能车总体结构
智能车的工作模式是:光电传感器探测赛道信息,转速传感器检测当前车速,电池电压监测电路检测电池电压,并将这些信息输入单片机进行处理。通过控制算法对赛车发出控制命令,通过转向舵机和驱动电机对赛车的运动轨迹和速度进行实时控制。
想要取得智能车比赛的好成绩,模型车底盘参数优化和硬件设备的可靠性是非常重要的。其中,前轮定位参数优化、转向舵机力臂增大和底盘重心位置调整对于车模的机械性能有着较大的影响。底盘参数的优化参见[1],本文不赘述。
路径识别方案选择与电路设计
路径识别方案是首先需要确定的,主要有以下几个问题。
*光电识别还是摄像头识别;
*传感器如何排列?间隔多大、形状如何、单排还是双排;
*传感器可向前探测的远度;
*传感器信号采用数字式还是模拟式;
*电路上如何实现。
由于光电识别方案简单可靠,因此本文采用了光电识别方案。
数字式光电识别与模拟式光电识别
比赛组委会要求传感器个数最多为16个,除掉1个转速传感器,可用于探测路径的传感器为15个,而传感器允许布置的总宽度为25cm,如果采用数字式光电传感器均匀分布,对道路的探测精度只能达到17mm左右,这样赛车在前进过程中很难达到很高的控制精度和响应速度。从本质上讲,数字式光电传感器的劣势就在于它丢掉了路径探测中的大量信息。
模拟式光电传感器从理论上可以大大提高路径探测精度。模拟式光电传感器的发光和接收都是锥角一定的圆锥形空间,其电压大小与传感器距离黑色路径标记线的水平距离有定量关系:离黑线越近,电压越低,离黑线越远,则电压越高(具体的对应关系与光电管型号以及离地高度有关),如图2所示。
图2 传感器电压与偏移距离关系示意图
因此,只要掌握了传感器电压—偏移距离特性关系,就可以根据传感器电压大小确定各传感器与黑色标记线的距离(而不是仅仅粗略判断该传感器是否在线上),进而获得车身纵轴线相对路径标记线的位置,得到连续分布的路径信息。
根据实车试验,可以将路径探测的精度提高到1mm。这样传感器采集的信息就能保证了单片机可以获得精确的赛道信息,从而为提高赛车的精确控制提供了保证。
双排排列与前瞻设计
本文开发了智能车性能仿真平台[2],对传感器的布局进行了深入研究[3]。由于转向舵机、电机和车都是高阶惯性延迟环节,从输入到输出需要一定的时间,越早知道前方道路的信息,就越能减小从输入到输出的滞后。检测车前方一定距离的赛道就叫前瞻,在一定的前瞻范围内,前瞻越大的传感器方案,其极限速度就会越高,其高速行驶过程中对引导线的跟随精度也相对较高,系统的整体响应性能较好。因此路径识别模块设计成抬起与地面形成一个夹角,前排传感器用于前瞻,后排传感器对赛道始点进行识别、计算车身纵轴线与赛道中心线的偏差斜率,以利于更好地调整车辆的姿态。
为了保证在离地间隙尽可能大的情况下光电传感器仍然有足够大的发光强度,本文采用了大电流脉冲触发发光的控制方式。
根据实验测试,发光管在发光时,经过的电流约为0.5A。如果用15个传感器,则瞬时电流为7.5A。这样大的电流肯定会对电池电压造成一定的冲击,不利于整个系统的正常运行。因此将前后排传感器的发光时间错开,通过两套触发电路来控制发光。这样就有效减小了红外发光管发光时对电池电压的冲击。
转向和驱动控制与路径记忆算法
驱动电机控制
本文在电机输出轴上加一齿盘,电机输出轴的转动带动齿盘的转动。将对射光偶发光和接受管放在码盘两侧。码盘转动时,由于码盘上的齿经过发光管发出的光线时,会阻碍光线传播。所以接收管两端的电阻会有很大的变化,这样,在电路中采样电阻两端的电压就会有很大的变化。用处理器上的脉冲捕捉端口采集电压脉冲单位时间内的个数,就会获得电机转速,从而获得车速。
电机驱动采用的是飞思卡尔公司的MC33886。所不同的是本文采用了三片MC33886 并联,一方面可以减小导通电阻,提高电机驱动能力,并且MC33886的发热情况也有了很大的好转;另一方面减小MC33886 内部的过流保护电路对电机启动及制动时的影响。
电机采用PID闭环控制,可以根据不同负载状况及时调整PWM的占空比,使车辆迅速地跟踪目标速度。
为了尽量提高车速,采用在直道上设定最高目标车速,定速控制,接近弯道处开始降速,正式转入弯道时,将车速调整到过弯极限车速,将要出弯道时提前加速。
转向控制
根据目前采用的双排模拟式光电传感器布局,可以得到车身纵轴线距离赛道中心线的偏移量,还可以得到中心线相对于车身纵轴线的斜率,从而得知当前状态下车身的姿态,进而进行转向控制。
这里设定根据前排传感器信号得到的转角为θ1,根据前后排传感器信号得到的纵轴线斜率信息而得到的转角为θ2,最终的转向角度的确定公式为:
θ=k1θ1+k2θ2
采用这样的控制策略,可以实现对车实际姿态的加权控制,大大提高过弯速度,减少由于探测精度问题带来的决策累积误差。另外,大前瞻与双排的双重组合,达到了对正常弯道提前转弯,对于S弯道迟滞转向的特性。
为了使舵机更好地对给定的转角值做出响应,采用了PID调节,通过道路试验进行参数整定,使得车辆在高速时保持了很高的稳定性。
路径记忆算法
由于比赛规则要求车辆在跑道上行驶两圈,因此车辆第一圈时通过记录转速传感器采集到的脉冲数、转向舵机的转角等信息,来判断区分直道、弯道、S弯道以及转弯的方向与转弯半径等等信息。根据第一圈记录的数据信息,可以对第二圈的各个道路点进行分段处理。直道上采用最高速加速,在进入弯道之前提前进行减速,减至过弯的极限最高车速,对于不同半径的弯道,选择不同的车速。路径记忆算法的优势在于对于复杂的S弯道,可以实现类似CCD探测头达到的效果,选用小的转向角度通过,这样可以大大缩短时间。具体算法请见[4]。
经验及结论
本文的智能车开发工作经过6轮开发迭代,从最初的小前瞻单排数字式传感器,发展成脉冲发光、大前瞻、双排排列、模拟式传感器方案;控制策略从单纯的PID控制升级到路径记忆控制,使得车辆的导航性能有了很大提高。通过智能车开发过程,得出一些经验。
*开发之初需要对光电传感器特性、转向舵机特性、驱动电机特性、车辆机械性能、转向侧滑特性、电池特性等进行实际的检测。
*根据汽车理论对车辆进行规则容许范围之内的结构调整,使之达到较佳的机械性能。
*组委会开发了仿真平台,应该充分利用该仿真工具对基于光电传感器的路径识别方案进行研究,结合硬件的选型和自身在控制及电子方面的经验,确定路径识别方案。前瞻距离较远的方案有助于提高车辆的通过速度。
*车辆的控制采用PID即可满足要求,参数的整定需要结合道路试验进行。车速的加快和减慢不要太剧烈,平稳的控制也可以取得很好的效果。过大的加速度会导致电机和驱动芯片的过热以致驱动性能下降。
本文介绍了第一届大学生智能车比赛冠军车的总体方案、路径识别方案选择、转向和驱动控制及路径记忆算法等内容。由于采用大前瞻光电传感器,需要较大的电流,使得电池电能的消耗较大,跑道距离较长时,车辆电池电量下降较快,使得车辆竞速性能下降。路径记忆算法的模糊寻迹算法也有待改进。而摄像头路径识别方案既可以实现大的前瞻,电能消耗又较低,这些是今后努力的方向。