传感器的连续路径识别算法
对于红外光电传感器来说,相应于不同的路面条件(主要是黑白度),接收管接收到地面漫反射红外线后其两端电压将有所不同,即传感器接收管正对白色路面,则其电压较高,若正对黑色的路径标记线,则电压较低。基于此原理可以提出一种比较常见的路径离散识别算法:通过普通I/O端口将接收管电压读入单片机,根据端口输入的高低电平逻辑来判断该传感器是否处于路径标记线上方,再筛选出所有处于标记线上方的传感器,便可以大致判断此时车身相对道路的位置,确定路径信息。 这种离散算法简便易行,对硬件及算法要求都比较低,在传感器数目较多的情况下也可以实现较高的识别准确性。但它的一个致命缺陷在于路径信息只是基于间隔排布的传感器的离散值,对于两个相邻传感器之间的“盲区”无法提供有效的距离信息,因此在传感器数目受到限制的智能车赛事中,其路径识别精度极大地受制于传感器数目及其间距。 即使传感器数目不受限制,路径识别精度足够高,离散路径识别算法仍有其难以克服的固有缺陷。由于离散算法得到的路径信息为离散值,如果直接应用到转向及车速控制策略中,势必造成转向及车速调节的阶跃式变化,这将会对赛车的性能产生以下不利影响:其一,转向及车速控制僵硬,对路径变化反应不灵敏,同时易产生超调及振荡现象;其二,舵机输出转角相对于路径为阶跃式延迟响应,对于追求高速性能的高车速短决策周期控制策略来说,很可能因为舵机响应不及而造成控制失效。 为了解决以上问题,一方面可以从路径识别算法上着手,寻找识别精度高,不受传感器数目限制,识别信息连续的路径识别算法;另一方面也可以从控制算法上着手,寻找基于离散路径信息的连续控制算法。本文着眼于第一条思路,提出一种将有限间隔排布传感器采集的数据连续化的方法,来实现连续路径识别。 光电传感器特性 该连续化方法主要是建立在对光电传感器特性的深入研究的基础上。 事实上,红外光电传感器特性并非如前文所述那样简单(白区高电压,黑线低电压),其电压大小与传感器距离黑色路径标记线的水平距离有定量关系:离黑线越近,电压越低,离黑线越远,则电压越高,(具体的对应关系与光电管型号以及离地高度有关。 因此,只要掌握了传感器电压—偏移距离特性关系,就可以根据传感器电压上的大小确定各传感器与黑色标记线的距离(而不是仅仅粗略判断该传感器是否在线上),进而获得车身相对路径标记线的位置,得到连续分布的路径信息。 连续路径识别算法 传感器特性测定 传感器电压—偏离距离曲线的测定是实现连续路径识别的基础,需在软件调试阶段预先完成。以下将以一套实际设计的传感器为实例,说明曲线测定的过程。 预标定 考虑到赛道差异以及传感器温漂对传感器电压整体变化产生的影响,每次赛车出发前需要进行赛道预标定,从而为下面算法路径识别部分中的归一化处理提供准确的归一化基本参数。 在标定过程中,赛车处于停车状态,但传感器及其电压A/D转换通道仍在工作,单片机不断记录读入的电压值。在赛道上移动赛车使其所有传感器均能扫过白色的路面以及黑色的赛道标记线,这样单片机就能记录下在该赛道上道路传感器的电压最大值(白区电压)以及最小值(黑区电压),为算法中的归一化处理提供基本参数。 路径识别 路径识别(即路径信息获取)为控制算法的核心内容,各步骤在单个决策控制周期内完成。首先,在每个决策控制周期中,通过A/D转换将传感器电压转换为数字量读入单片机中。然后,利用在标定过程中得到的传感器电压最大、最小值将得到的传感器电压进行归一化处理。下面需要确定能够用于确定路径信息的有效传感器。接着,就需要调用传感器特性曲线参数进行路径信息计算。最后,为了能够提高路径信息的准确性,减小单个传感器探测及数据转换的误差,可以将根据三个有效传感器计算得到的三个偏移距离取平均,得到较为准确的路径信息。 值得注意的是,这样得到的路径信息是车身中心偏移路径标记线的距离,是一个连续变化的量,不但能在传感器处于赛道标记线正上方时探测到赛道,也能在传感器偏移标记线时给出具体的偏移距离,因此消除了传感器间隙的“盲区”,实现了连续的路径识别。 问题及展望 连续路径偏差识别算法比起普通离散算法来说,不但具有定位精确、响应连续的特点,而且从理论上来说连续算法可以在任意数目传感器配置的控制系统中都保证较好的路径识别效果,为控制的流畅性提供了可能。 同时需要指出的是,采用该算法时硬件设计上需要注意一些相关问题: 需要根据实际路径标记线宽度,以及传感器离地高度选择合适的光电传感器。 为了保证算法的简单,使所有传感器能够共用一个分段线性模型,最好能够保证所有传感器的均一性,即所有传感器的特性曲线都具有大致相同的形状。这一点实际上很难做到,但若设计时稍加注意,如对元件进行分级筛选,仍可以部分改善问题,给算法实现上带来方便。 |