对于我们而言,准确的寻线并不是最终目的,在不冲出赛道的情况下,尽可能缩短赛车单圈行驶时间才是我们所追求的。从这个意义上说,路径识别和寻线算法只是我们为了保证完成比赛而采取的辅助手段。但是除了在这种辅助手段上花费功夫,我们很难在别的地方有突破性的进展。概括起来,提高车速的方法大概有以下几类:
1)在赛车的机械结构上作优化。主要包括主销后倾角、主销内倾角、前轮外倾角、前轮前束、重心的位置、地盘离地间隙、后轮轮距以及后悬挂纵向减震弹簧的预紧力等。
2)舵机的机械调整。这一内容包括对舵机输出角度的机械放大、舵机反装等,其中心目的是提高舵机的反应速度。
3)增强驱动电机的加减速性能。驱动电机的加减速性能首先与驱动芯片的性能密切相关。很多队伍提出了多片MC33886并联使用的方法,也有的队干脆自己设计驱动芯片,这要求在相关方面具有比较强的实力。其次是软件方面,如果使用PID算法控制电机,则PID参数对加、减速性能的影响也是很大的。但无论如何,优化参数是不可或缺的一步。
4)在舵机控制算法上优化,使之过弯道走内弯、S型曲线直接冲过,其中心目的就是使赛车少走弯道,缩短行驶距离。我们在实验中曾发现,如果不进行控制算法的优化,单纯增加赛车的直线速度并不总是能缩短单圈的时间,因为速度快到一定程度后,赛车在过弯时将发生侧滑,赛车走过的距离增加了,抵消了速度增加带来的优势。
5)记忆算法。如果能够事先知道赛道的形状,我们甚至可以不用寻线传感器而就能完成比赛。基于既定环境的控制显然要比环境未知的控制来的简单,效果要好。但是比赛赛道在比赛前是不对外公开的,于是就有了这么一种可能:赛车行驶第一圈时把赛道情况记录下来,第二圈就相当于是在既定环境中进行控制了。让赛车把赛道情况记录下来并不难,难的是如何确保记录准确性,以及如何根据记录选择控制策略。
因为比赛的实质是一种寻优,这种寻优包括对路径的寻优和对速度的寻优,但不是二者简单的相加,二者之间存在着一定的约束关系。
由于实际的对象非常复杂,而算法不可能太复杂,所谓的“最优”几乎是难以实现的,我们只能退而求其次,只要求达到“更优”就可以了。但该文作者也承认,由于赛车初圈记忆的准确性难以保证,第二圈基于记忆的控制策略是存在一定风险的。特别是赛车在比赛场地上很难对自己进行全面的定位,更难以对整个赛道进行整体的把握,所以路径寻优十分困难。相比之下,速度的寻优容易一些,只要知道前方弯道的大体位置就可以进行针对性的加速和减速。
实现记忆的难点在于理清“过去”、“现在”、“将来”三种信息的关系,赛车使用记忆算法后,第二圈的速度明显提高,但是过弯时的情况仍然对舵机控制算法有很大的依赖性。所以改善控制算法是最根本的。
但是由于时间有限,系统中尚存在许多问题有待改进:
1) 抗干扰处理。赛车在赛道上会遇到各种情况,如交叉线、断续线,以及还有实验赛道上的干扰点,以及由环境光线不均匀造成的干扰。如何确保在任何情况下都能识别出赛道,或者判断出赛车在场上的位置,需要做进一步的努力。
2) 参数计算的准确性。虽然实现了斜率和曲率的计算,但是其精度仍然不够理想,特别是在能够识别的路径比较段的情况下,计算出的数据与实际有很大的偏差。笔者曾设想了一种基于最小二乘法捏合圆的方法,但是发现计算及其复杂,简化了条件后得出的结果又不够理想。这个方面值得继续探索。
3) 控制算法的改进。本系统采用了双闭环加前馈的控制方法,这在控制算法中是比较复杂的,实际应用也验证了效果的良好,但是仍然存在不尽如人意的地方。
经过六个多月的精心准备和不懈努力,我们的智能车系统各方面性能均达到了我们最初的设计目标,并在东北赛区的比赛中得到了认证。在未来的十几天的时间里,我们会继续不断完善系统,希望在马上就要到来的决赛中发挥出自己的水平,赢得更好的成绩。


