基于离散布置光电传感器的连续路径识别算法
扫描二维码
随时随地手机看文章
引言
全国高等学校自动化专业教学指导分委员会受国家教育部委托,举办第一届“飞思卡尔”杯大学生智能车邀请赛。在智能车赛事中,路径识别方法主要有两大类,一类是依靠红外光电传感器,一类是依靠摄像头。红外光电传感器以其体积小、价格低廉、安装灵活方便且不受环境可见光干扰等特点得到了广泛的应用。
对于该类传感器来说,相应于不同的路面条件(主要是黑白度),接收管接收到地面漫反射红外线后其两端电压将有所不同,即传感器接收管正对白色路面,则其电压较高,若正对黑色的路径标记线,则电压较低。因此,基于这个原理可以提出一种比较常见的路径离散识别算法:通过普通I/O端口将接收管电压读入单片机,根据端口输入的高低电平逻辑来判断该传感器是否处于路径标记线上方,再筛选出所有处于标记线上方的传感器,便可以大致判断此时车身相对道路的位置,确定路径信息。
这种离散算法简便易行,对硬件及算法要求都比较低,在传感器数目较多的情况下也可以实现较高的识别准确性。但它的一个致命缺陷在于路径信息只是基于间隔排布的传感器的离散值,对于两个相邻传感器之间的“盲区”无法提供有效的距离信息,因此在传感器数目受到限制的智能车赛事中,其路径识别精度极大地受制于传感器数目及其间距。
即使传感器数目不受限制,路径识别精度足够高,离散路径识别算法仍有其难以克服的固有缺陷。由于离散算法得到的路径信息为离散值,如果直接应用到转向及车速控制策略中,势必造成转向及车速调节的阶跃式变化,这将会对赛车的性能产生以下不利影响:其一,转向及车速控制僵硬,对路径变化反应不灵敏,同时易产生超调及振荡现象;其二,舵机输出转角相对于路径为阶跃式延迟响应,对于追求高速性能的高车速短决策周期控制策略来说,很可能因为舵机响应不及而造成控制失效。
为了解决以上问题,一方面可以从路径识别算法上着手,寻找识别精度高,不受传感器数目限制,识别信息连续的路径识别算法;另一方面也可以从控制算法上着手,寻找基于离散路径信息的连续控制算法。本文着眼于第一条思路,提出一种将有限间隔排布传感器采集的数据连续化的方法,来实现连续路径识别。
光电传感器特性
该连续化方法主要是建立在对光电传感器特性的深入研究的基础上。
事实上,红外光电传感器特性并非如前文所述那样简单(白区高电压,黑线低电压),其电压大小与传感器距离黑色路径标记线的水平距离有定量关系:离黑线越近,电压越低,离黑线越远,则电压越高,(具体的对应关系与光电管型号以及离地高度有关),如图1所示。
图1 传感器电压与偏移距离关系示意图
因此,只要掌握了传感器电压—偏移距离特性关系,就可以根据传感器电压上的大小确定各传感器与黑色标记线的距离(而不是仅仅粗略判断该传感器是否在线上),进而获得车身相对路径标记线的位置,得到连续分布的路径信息。
连续路径识别算法
算法总流程框图如图2所示,分为光电传感器特性测定、比赛开始前预标定、正式比赛三个步骤。
(1)传感器特性测定
传感器电压—偏离距离曲线的测定是实现连续路径识别的基础,需在软件调试阶段预先完成。以下将以一套实际设计的传感器为实例,说明曲线测定的过程。
传感器组参数如表1所示。
图2 连续路径识别算法总流程图
表1 传感器组参数
图3 实测传感器电压—偏离距离特性曲线
图4 归一化后的传感器电压—偏离距离特性曲线
测定过程中,首先需要选择测试点,即选择与道路标记线远近距离不同的点,如10cm、9cm、8cm……2cm、1cm等;然后在这些点上进行传感器电压采样,得到这些点所对应的传感器接收管电压值;最后将电压值与距离参数一一对应,便可绘制出传感器电压—偏离距离曲线。实测曲线如图3所示。
从曲线中不难看出,由于器件制造工艺的问题,各个光电管的性能特性存在很大差异,特别是电压波动范围相差较大。因此,为了给算法制定统一的标准,给数据处理带来方便,需对各传感器的特性曲线进行归一化处理,具体方法有很多,比如可以把各传感器的电压值都处理成相对该传感器最大电压(白区电压)和最小电压(黑区电压)的变化百分比,以使所有的特性曲线的范围都将在0到100之间。
归一化处理后的特性曲线如图4。由曲线可知,该组光电管传感器的电压—偏离距离特性曲线基本上呈现三段形态:即两边偏离黑线较远处为斜率较小的直线段,中间为斜率较大的陡升段,黑线附近处底部呈现小平台(某些传感器特性曲线没有显示出平台是因为测试点间隔较大的原因)。利用软件工具对这些曲线进行分段直线拟合,以得到可供算法应用的简单线性关系曲线,结果如图5。
图5 线性拟合后传感器电压—偏离距离特性
有了这些曲线,便可以根据传感器电压,来计算各传感器与赛道中心标记线之间的距离,进而得到连续分布的路径信息。在算法编写过程中,需将上述得到的传感器特性曲线参数写入程序,作为数据库进行保存。
(2)预标定
考虑到赛道差异以及传感器温漂对传感器电压整体变化产生的影响,每次赛车出发前需要进行赛道预标定,从而为下面算法路径识别部分中的归一化处理提供准确的归一化基本参数。
在标定过程中,赛车处于停车状态,但传感器及其电压A/D转换通道仍在工作,单片机不断记录读入的电压值。在赛道上移动赛车使其所有传感器均能扫过白色的路面以及黑色的赛道标记线,这样单片机就能记录下在该赛道上道路传感器的电压最大值(白区电压)以及最小值(黑区电压),为算法中的归一化处理提供基本参数。
(3)路径识别
路径识别(即路径信息获取)为控制算法的核心内容,各步骤在单个决策控制周期内完成。
首先,在每个决策控制周期中,通过A/D转换将传感器电压转换为数字量读入单片机中。
然后,利用在标定过程中得到的传感器电压最大、最小值将得到的传感器电压进行归一化处理。
下面需要确定能够用于确定路径信息的有效传感器。从原始传感器特性曲线中不难看出,曲线在低电压值处的直线度较好,斜率较大,与我们所选取的分段直线模型较为近似,而在高电压值处则有较大偏差,因此为了保证路径信息准确性,需要对传感器信息进行筛选,选用那些所得电压值百分比较小,即与黑色赛道标记线相距较近那些传感器。例如可以选择电压百分比最小的三个传感器作为有效传感器。
接着,就需要调用传感器特性曲线参数进行路径信息计算。从特性参数数据库中调用先前确定的有效传感器的陡升段斜率,传感器中心位置等参数信息。然后根据这些参数以及传感器电压百分比,就可以计算由每一个有效传感器得到的车身中心位置偏离路径标记线的距离。
最后,为了能够提高路径信息的准确性,减小单个传感器探测及数据转换的误差,可以将根据三个有效传感器计算得到的三个偏移距离取平均,得到较为准确的路径信息。
值得注意的是,这样得到的路径信息是车身中心偏移路径标记线的距离,是一个连续变化的量,不但能在传感器处于赛道标记线正上方时探测到赛道,也能在传感器偏移标记线时给出具体的偏移距离,因此消除了传感器间隙的“盲区”,实现了连续的路径识别。
问题及展望
连续路径偏差识别算法比起普通离散算法来说,不但具有定位精确、响应连续的特点,而且从理论上来说连续算法可以在任意数目传感器配置的控制系统中都保证较好的路径识别效果,为控制的流畅性提供了可能。
同时需要指出的是,采用该算法时硬件设计上需要注意一些相关问题:
(1)需要根据实际路径标记线宽度,以及传感器离地高度选择合适的光电传感器。具体来说,为了保证分段线性模型的准确性,最好选择那些传感器电压—偏离距离特性曲线中陡升段斜率较大的传感器,但同时若斜率过大,又将使得传感器最低到最高电压变化的距离范围过小,从而降低传感器信息的探测宽度。另外,尽量选用特性曲线无平台的传感器,以免影响路径识别准确性并给算法处理上带来麻烦。
(2)为了保证算法的简单,使所有传感器能够共用一个分段线性模型,最好能够保证所有传感器的均一性,即所有传感器的特性曲线都具有大致相同的形状。这一点实际上很难做到,但若设计时稍加注意,如对元件进行分级筛选,仍可以部分改善问题,给算法实现上带来方便。