在本次比赛中,所采用的赛车软件开发工具为由清华大学开发的专门面向于Motorola S12系列微处理器的BDM调试工具以及由MetroWerks 公司开发的CodeWarrior编译器。BDM背景调试手段与传统调试方法最大区别在于其能在不影响单片机运行的前提下很好的监视单片机的运行状态,观察内部的存储器及I/O资源的情况。这一优点摒弃了传统的仿真器调试手段,实现了在线运行,在线调试的目的,提高了软件调试的效率与准确性。
赛车的硬件开发工具主要为Protel 99SE,通过该软件来完成电路原理图的绘制及PCB板制作。
整个赛车的制作过程主要按照单片机各模块功能开发,硬件电路及传感器选型与布局设计,控制算法框架构造与系统各硬件模块机械定型与制作,赛车整体调试及控制算法完善这几个阶段进行。通过逐步使赛车实现对舵机与直流电机的驱动和控制,对路径的准确有效识别,能够依照路径行驶,最终能稳定的沿路径以较快的速度行驶,从而完成赛车的制作和调试。
赛车的调试过程主要是算法的改进过程。对于赛车来说,其面对的主要矛盾就在于如何在稳定沿黑色路径运行的同时追求更快的速度。速度的提升毫无疑问会影响赛车运行的稳定性,反之倘若希望求稳则必定要舍弃部分速度,而控制算法的作用就在于使赛车能够在这二者之间寻求到最优组合,从而赢得比赛。
舵机的转角与赛车的速度实际上是相互耦合的两个变量,在赛车调试过程中曾经尝试过一套复杂的控制算法来控制二者,希望通过一个控制器依照赛道情况输出相应的控制作用。但是在实际调试过程中发现单一的算法无法完全解决赛道中可能遇到的各种问题,同时由于算法本身的复杂性,其还会引入系统振荡等一系列不良控制效果。随后采用一些简单但具有较好鲁棒性的控制算法,同时对于赛车可能遇到的特殊情况采用异常处理算法,利用这两种控制算法的互补性进行分段控制,取得了较好的控制效果。


