林 华, 徐宇宝, 汪 鑫, 吴 瑶, 邬志军, 曹昌勇
(皖西学院机械与车辆工程学院, 安徽 六安 230712)
智能汽车竞赛中的双车会车组,两车要经过圆环、路障、断路和会车区等元素并快速稳定地完成任务,其车模设计制作工作量大,调试过程也更加繁琐复杂。陈磊等[1]基于恩智浦MK60并综合多种传感器研究了电磁导航智能车双车通信控制系统,严明辉[2]等研究制作了摄像头组双车,主要依靠摄像头获取赛道的会车区特征,并讨论对比了会车的多个逻辑设计。林华[3]、乔纬国[4]、林嘉裕[5]等研究了两轮自平衡车的姿态融合算法和串级控制等控制研究,一定程度提高了智能车系统的快速性和稳定性。魏磊[6]等研究了三轮车模的电磁传感器布置方案,研究了系统的弯道侧滑问题等,其主要采用了Ackermann公式和分段式PID相结合的复合方向控制模式。王能才[7]在LabVIEW中调用MATLAB对电磁感应线圈在磁场中的特性进行了分析,优化了传感器的排布。都针对当年的规则对车模和控制算法等进行了研究和实践,从多个方面提高了车模的综合性能。本文主要针对摄像头与电磁导航的两轮直立车、三轮车以快速性和稳定性等目标,对其机械结构、硬件电路和程序算法等进行研究和实践。
直立车的整车系统框图如图1所示。整车主控芯片采用恩智浦Kinetics系列单片机K60DN512Z,由电磁传感器采集赛道信息并通过运算放大器将微弱电磁信号进行倍数放大来确定赛道位置,由姿态检测传感器采集车身的姿态信息,由光电编码器采集车模行走速度信息作为速度反馈信号,由两个直流电机执行速度输出和方向差速,采用NRF通讯模块进行双车之间的通讯,采用按键、拨码开关、蓝牙和上位机等调试工具。
由于两轮直立自平衡车其动力学系统具有非线性、多变量等特点[3],不合理的结构设计和装配会导致车模质量过大、重心分散,会导致车模转动惯量增大,以至于车模在高速过弯时会出现打滑并损失大量速度分量,车模运行的稳定性也会大打折扣[8]。所以,为提高车模的加减速性能和高速过弯稳定性,须尽量减小总重,在重心设计上使重心尽量低且相对集中,本车模的创新性做法主要有:电路板设计上将所有电路设计在同一个电路板上;车模配件选择和装配上尽量减轻重量;部分装配件采用3D打印件等。
整体框图如图1所示。由CMOS摄像头与电磁传感器共同采集赛道信息和边界识别,角速度传感器来解算运动的角度,由光电编码器采集测算电机转速并反馈,车模速度和方向由两个直流电机执行。
由于三轮智能车采用两轮差速,比传统舵机转向的四轮车更灵活,转动半径更小,但又因为是两轮后驱,高速运行中的不稳定性比四轮车要高,方向控制难度更大,所以对传感器的灵敏性的要求更高,控制的精度和快速性也更高。三轮车机械结构与重心调整方面主要存在的问题是:如果重心太过靠前,会导致转弯时转动半径过大,后轮失去动力而滑出赛道;如果重心过于靠后,会使车模在加减速时车模抬头而导致传感器采集到的赛道信息突变,影响车模高速时的稳定性。
针对上述问题,本车模在机械结构等调整时主要采用的做法有:优化一切可以减重的配件,使总重降低;装配时尽可能紧凑并使整车重心集中于后轮电机两轴线中间并且重心尽可能降低;轮胎及齿轮等的调整。
智能车双车直立车和三轮车实物图如图2所示。
图1 智能车系统整体框图
图2 智能车双车实物图
为优化机械结构布局,为提高硬件电路本身的可靠性,在主控板的设计上作了优化,主要有[8]:将单片机的最小系统与电机驱动等电路设计在一块PCB上;采用LQFP封装芯片;单独的运放电路;芯片供电和信号采集等分别供电。整个系统由7.2V镍镉电池供电,电源设计上采用TPS7350将电池电压7.2V稳压至5V,用TPS7333将5V稳压到3.3V,给K60、姿态传感器、摄像头和通讯模块等器件供电。驱动由IR2104作为驱动芯片的MOS驱动电路,整体板中间用74LVC245做隔离,整体板如图3所示,该板占用空间小,运行稳定性高。电磁传感器用运算放大器将电感采集到的电流信号进行放大,采用OPA2350双路运算放大器,该运放具有放大倍数高、失真低、精度高等优点,采用TPS7350进行供电,利用可调电阻来进行放大倍数的调节,电路如图4所示。
图3 PCB整体板图
图4 运算放大电路图
智能车系统控制总流程图如图5所示,各个模块初始化开始后进入一个主函数循环,在循环里获取利用主控芯片对图像和电磁传感器采集到的赛道信息并进行处理,然后检测拨码的状态来决定串口调试等功能是否使用,循环的最后是进行起跑线的检测以决定是否停车,不断循环直至结束。
车模均采用1024线光电编码器采集车模两个驱动轮的脉冲数经过传动比和车轮直径计算出当前车模的行驶速度,反馈至单片机进行闭环,经过处理后控制器输出PWM控制电机以达到各种运行状态。
为提高直立车的运行稳定性,须避免频繁加减速,在直立车的速度控制采用增量式PI控制,辅以积分限幅控制和分段控制法,在总体速度控制上采用近匀速运行的思想,经调试可以总体上实现直立车模的高速稳定运行,缺点是对于日益复杂的赛道而言速度和稳定性往往是不可兼得,需大量调试。
三轮车速度控制采用增量式PI算法,优点是计算量较小,可以快速达到目标速度,这对于追求速度的三轮车而言是必须首要考虑的,但其不足之处是当速度偏差为0时就无法实现增速,同时会出现积分饱和的影响。另外,三轮车的驱动力和方向控制均来自后轮,因此在行驶过程中会出现速度环的输出与方向环的输出相互抑制的现象,即在弯道中或者在出弯时会出现突然减速的现象。针对上述现象,这里采用增量式PI算法配合棒棒算法,限制积分饱和和积分分离、比例分段输出等处理方式,总体上实现了车模的高速运行。
图5 系统控制总流程图
在直立车的直立与方向控制中,如何提高整体运行的速度和成功率是主要目标,从以下几点进行分析研究:
首先必须程序整体执行效率要高,在直立车的众多控制算法中,串级控制的整体执行效率高、鲁棒性好,本文采用三环串级控制方案[8]:“速度环—角度环—角速度环”,其中,速度环是最外环,角速度环PID控制是最内环。直立环采用PD控制、速度环采用PI控制、方向环采用PD和补偿控制。控制函数全部在定时器中断完成,直立环与PWM输出需要较高的响应速度,可利用K60的PIT中断,设置1ms的中断时间,并分步实现5ms周期,将直立环与电机输出控制在1ms周期中、方向环10ms控制周期、速度100ms控制周期。
其次在获取车模姿态角度方面必须要快和准确,这里采用加速度计和陀螺仪检测车模运行姿态的检测,并采用卡尔曼滤波的方法进行多传感器信息融合得到姿态角度等信息。卡尔曼滤波比一阶互补滤波要更快速和准确[3]。
最后车模自身的方向和赛道位置信息的获取要准确,这里将电感采集到的车身位置信息、角速度传感器采集到的偏航角的角速度变化信息与各电机编码器的方向速度反馈值关联形成多反馈调节系统,能够实现方向的精确快速调整。实际转角和车身位置的获取策略:使用电磁杆上四个电感来采集,采集到的电感值利用中值滤波实现杂波等干扰的滤波后,将电感值两两作差得到车身位置信息,通过设定参数可以将车身位置信息拟合出三个区间:左、中间和右区间,分别表示赛道中间电磁线的左方、正上方和右方,且此三个区间是关于电磁线对称的。
会车要处理的元素较多,有圆环、障碍、断路等,这些元素特征皆不相同,需要对每个元素进行单独的处理,以下对一些特殊元素的特点进行分析提出相应的处理方法,提出切实可行的会车的策略并进行实践。
3.3.1 圆环算法
圆环元素的铺设是由一条电磁线在环岛中环绕一圈而成,直径不一。其特征为:几何特征是圆环与直的电磁线相切,主要磁场特征是切点处由两个同向磁场叠加[6]。一般的处理方法是:用竖直电感来判别入环特征,其能在入环切点处有较大的瞬间感应电压增幅,此时利用算法将水平电感循迹切换为竖直电感来进行偏差的计算,则可使小车进行循迹较平稳入环。缺点是小车在环内时运行时,传感器的电感值特征不足以区分环岛特征,导致车模在环内速度较低,浪费了较多时间。
这里针对上述问题,这里调试了两种处理方法,第一种是大家常用的,第二种是本实验室首次提出的。
第一,车模增加姿态传感器或角速度传感器,利用其在环岛过程中的角度和角速度值变化特征(如积分)来区分环岛判断车身的姿态,进行消除环岛标志。优点是入环较易、环内运行快、出环稳定、调试方便。缺点是增加了传感器,入环时有速度波动,若轮胎打滑则在高速入环时有严重偏离车道的风险,试验中的三轮车使用此方法处理圆环,取得了较好的效果。
第二,车模只用水平电感来判别入环。当小车在经过圆环切点时,由于在切点处电感值最大,车体会发生轻微的横摆方向振动,这时四个水平电感的电感值会交替发生变化,通过对各个电感值的变化波形曲线进行分析,可依据曲线的波峰相位差来判断是否到达圆环及所在圆环的左右方向。调试中使用此算法可以在不使用垂直电感、在环内不用陀螺仪模块的信息的情况下能实现循线入环出环、波动很小,成功率很高。试验中的直立车使用此方法处理圆环,取得了很好的效果。
3.3.2 障碍算法
赛道障碍为一个长方体横放在赛道上,并且比赛道略宽,电磁线从障碍下方穿过。可采用摄像头、超声波距离传感器等方法来实现障碍检测。本文利用灰度传感器检测赛道障碍的反射光强,可通过公式计算出与前方障碍的距离。这里提出一种方法可以实现车模在不严重损失速度的情况下稳定绕过障碍。主要思路如下:根据计算的与障碍的距离拟合出可以有效避过障碍的路径,路径可包含三段,检测到障碍时,向左侧或者右侧打一个固定角度并且通过编码器算出行驶的路程;当行驶到固定路程时,切换成原方向并直线行驶一小段路程;最后切换到与第一段方向成直角的方向上行驶直至采集到主赛道电感值并循迹完成绕障碍的动作。其中向左侧或者右侧打的固定角度约为30度,为方便调试可用按键来调整,行驶的距离可用以下计算公式:
S=K·Vad
式中:Vad为红外传感器采集的数值,K为比例值,这里可取K=0.17。
3.3.3 断路算法
针对断路特征,由于其图像特征明显,采用并调试了直立车模双向灰度检测,即使用两个灰度传感器来同时检测断路,只有当两个灰度都检测到断路时才处理。三轮车模采用摄像头和灰度传感器共同检测断路,当摄像头离断路1米检测到断路时减速行驶,当灰度传感器再次检测到断路时停车等待。这种方法成功率很高,在调试与比赛中没有出现失误。
3.3.4 会车算法
会车的处理方式很多,本算法采取的是会车后三轮车跟随直立车行走,这样的处理方法其实会浪费一定的时间,但简便、可行和稳定。双车的会车算法和处理流程如图6所示。
三轮车先检测到断路时停车等待并同时打开NRF发送和接收中断,当直立车模到达断路时直立车发送信号给三轮车,三轮车模经过一定时间后启动,跟随直立车行驶,直到检测到终点停车;
直立车先到达断路时,掉头并进行等待,开启接收信号,同时开始不断发送信号,当接收到三轮车到达断路时NRF发出的信号,此时直立开始行驶,并通知三轮车开始准备跟随行走,直到结束。
针对摄像头与电磁导航的两轮直立和三轮智能车进行了设计制作和控制研究,主要有:
1) 从机械结构的总体布局、重心配置、配件选择等各个方面进行优化,为提高车模的高速稳定运行打好基础;
2) 采用多种控制方法相结合,优化采集、处理和执行等各环节算法,进一步提高了车模运行快速性和稳定性;
3) 讨论了赛道特殊元素的处理方法并给出了双车会车策略等。
比赛中,双车成功会车并通过所有特殊元素,圆满完成比赛并冲进赛区决赛,其中直立车速度约2.6m/s。