摘要: 本文对智能车基于赛道记忆的控制算法进行了研究,分别从赛道记忆算法的实现前提、初圈记忆、数据分析与处理以及如何充分利用记忆得到的信息四个方面进行介绍。实车试验表明,对于相对简单的比赛赛道,基于赛道记忆控制算法的智能车可以取得较好的成绩,随着赛道的日趋复杂,赛道记忆算法也有很大的潜力。
关键词: 智能车;赛道记忆;控制算法
本次“飞思卡尔”智能车邀请赛规则中明确指出,智能车在赛道上连续跑两圈,并记其中最好圈成绩为比赛成绩。这个规则的确立使得赛道记忆算法成为了可行。
如图1所示,赛道记忆算法在第一圈以最安全的速度缓慢驶过一圈,并将赛道信息保存下来,第二圈根据保存下来的信息进行车速和转角决策的相应最优化,从而在第二圈取得好成绩。无论智能车的传感器前瞻距离有多远,在跑圈时它都只能预测在一段有限距离内赛道的情况。而采用赛道记忆算法的智能车,在第二圈时已对整个赛道有了全面的认识,从而在相同条件下,将比不使用赛道记忆的智能车更具优势。
图1 赛道记忆算法
算法实现前提
要想成功实现赛道记忆算法,必须有以下几大前提:
1.赛车在第一圈必须安全走完全程。在第一圈,赛车的最主要目的是采集赛道信息,使用赛道记忆算法的智能车,在第一圈一般都会采用较缓慢的匀速走完全程。
2.赛车必须能明确分辨出赛道起点线和十字交叉线的区别。
3.赛车必须能够有足够记录一圈赛道数据的内存空间。由于单片机芯片的Ram容量有限,算法研究者需要对算法进行优化处理,改变保存的格式以节省内存空间。
4.在跑第一圈时,赛车需即时地对当前赛道数据进行处理,避免第二圈时还在进行数据处理而对赛车的控制实时性带来不良的影响。
初圈记忆
采用赛道记忆算法的智能车,第一圈的主要目的就是将赛道的重要特征按特定的格式记录下来,作为第二圈的参考。初圈最终要记录的数据的横坐标一般为行驶的路程,而纵坐标则为赛道此点的曲率半径。对于横坐标,由于初圈一般匀速驶完,一般可以直接用时间来表示,也可以用车速传感器的当前脉冲数来表示。而对于纵坐标,则无法第一时间取得当前点的曲率半径,它需要对采集到的原始数据进行相关处理后才能得出。在初圈中,我们能记录的只是当前的转角设定值,可用舵机占空比或者直接转换过来的角度值表示。
数据分析与处理
图2 韩国大学生智能车比赛赛道初圈记忆曲线
图2是在韩国比赛赛道中初圈记录下来的转角变化曲线图。对比图3的赛道图可以发现,真实赛道上的一些特征在记忆曲线图上是可以有所体现的。首先,赛道中的直道部分在曲线中的体现是值为0的直线,但会有一定的波动,如图2中的点A部分;弯道的旋转方向则体现在曲线中转角值的正负,例如B部分,则对应着赛道中大角度左转之前的一小段右转;弯道的曲率半径和弧度体现在曲线中转角值大小和长度上,如C部分,它的转角值较大,在正负之间短暂切换,在实际赛道中就是那段波浪曲线段(图3中C部分)。综上所述,在第一圈时将转角值记录下来的变化曲线,如果对其加以分析和处理,它是完全可以体现赛道的特征的。
图3 2004年韩国大学生智能车比赛赛道图
虽然我们已经能够方便地从初圈记录下的曲线图中判断出赛道的特征,但是我们还需让单片机能自动识别出这些信息,并过滤掉一些毛刺和波动。经过反复的研究,我们已成功地找到了合适的处理方法,并将图2的曲线图处理为图4所示的路线图。在处理后的路线图中,处理值为0时表示此时车处于直道上;当处理值大于0时表示车处于向左转的弯道上,曲率半径与处理值成正比关系;反之亦然。这样,第二圈就可根据此信息进行相应的最优决策。