暑假参加了第十三届全国大学生“恩智浦”杯智能车竞赛。由于我们是第一届双车对抗,没有任何前人的经验,在比赛的过程中遇到了很多问题,绕了很多路,甚至有的问题是在比赛现场在想到解决方案,更改已经来不及,留下了一些遗憾。
我们的比赛分为两个部分,硬件和软件。硬件部分包括,赛车的车模,赛车要用到的核心板,赛车要用到的传感器,以及PCB板电池在车上位置即机械结构。我和另一个队友负责软件部分。
软件和硬件分开调试,但在调试之前应该想好要使用的传感器,双车追逐,建议使用摄像头,和车尾加上测距的鸳鸯模块或者其他模块(我们就没有加这个模块导致无法精确确定双车,车身是否错开)。在确定所有的硬件之后,就要设计机械结构,电池、pcb、以及摄像头的位置(严格按照比赛要求设置)。这些的设计要考虑到,赛车的重心,赛车防撞,反光等问题。结构将影响赛车跑起来的稳定性,转弯性能和刹车性能(重心影响特别严重,建议中心放低靠前一点点),在设计机械机构的同时也要利用上一届的赛车进行软件调试。
软件调试一般有两个同学完成,一个做图像处理,一个做舵机、电机PID、即双车通信的处理。
两个同学都应该测试小车用到的传感器,测试24L01通信、蓝牙、摄像头、电机 、舵机、编码器、oled显示、这些硬件一定要提前测试,后面再发现问题进行修改会增加时间成本,修改起来也比较麻烦。
当准备工作做好之后就可以进行赛车调试了,在我主要负责,通信、舵机、电机的调试。
采用迷你编码器采集脉冲数(不推荐使用迷你编码器,采集的脉冲数变化范围比欧姆龙的大很多,建议采用欧姆龙的编码器),由于使用k60单片机,发现k60的脉冲采集通道只有一个,无法同时采集双脉冲信号。但幸好我们的迷你编码器兼容正交解码,所以分析我们有两种方案可以选择。
第一种方案,采用分时方案,每隔10m采集一次脉冲,先采集左轮脉冲,再采集右轮脉冲,采集一次控制一次电机,即时间间隔10ms采集一次脉冲,20ms控制一次电机,经过测试在宏观运行上该方案完全能让小车稳定高速运行,以及PID参数很容易调节。
第二种方案,采用正交解码的方式,获取脉冲数,经PID参数整定比较麻烦,难以找到合适的PID,在宏观上的运行也不是很理想。综上两种方案最后采用第一种方案。
滤波方案,没有对输入的信号进行特殊滤波,根据实际测试,编码器的误差对赛车的宏观速度没有多少影响,所以没有对输入脉冲进行特殊滤波,但需要进行限幅滤波考虑到会有个别失真的脉冲。
电机PID控制,增量式对速度有较好的控制,所以电机采用增量式PID的控制方式并且使用PI控制,。在增量式中加入了积分分离(赛车在调试过程中出现了超调分析原因是启动过程中因为积分作用产生超调,因此加入积分分离,这个问题解决)、限幅、以及误差分离(根据实际现象添加,赛车运行过程中发现赛车无法进入稳态,经过多次测试以及分析算法,分析原因是赛车上次误差与本次误差相同,导致,比例部分失去作用,又因为积分作用比较弱,或者积分被分离出去没有作用,导致速度无法到达稳态,形成有差系统,类似于纯比例系统,在引入误差分离后解决该问题)。速度PID的调试采用经验法,先调节P观察赛车的速度波形变化,能够快速达到稳态时,加入积分环节。
差速方案,为了让赛车快速过弯,让赛车进行根据舵机的反馈值进行差速,分析差速方案两种,方案一采用一个PID进行差速,类似于软件实现差速器的功能,取两轮速度的平均值进行PID控制后,与舵机的反馈值进行差速。没有测试该方案,但通过观察其他队采用该方案的同学发现实际运行效果并没有方案二号好。
方案二采用,分别差速的方式,即左轮、右轮在PID计算后分别与舵机反馈值进行差速,观察该方案差速效果明显,小车过弯能力有明显提升尤其是提升小车通过急弯的能力。最后采用方案二。
刹车减速方案,刹车减速采用点刹的控制方式,即不停地检查当前速度(没20ms检测一次),与期望速度的大小,当前速度如果大于期望速度,开启刹车系统刹车,当检测到当前的速度小于实际速度时,关闭刹车系统,当检测到赛道速变化时,即需要检测刹车时在开启刹车系统。该方案经实际测试,刹车效果明显,刹车距离短,即使高速也能较快的进行减速刹车。
舵机PID控制,因舵机控制需要知道上次的值故采用位置式pid,根据图像得到的中性线误差控制舵机,采用PD控制。
舵机与电机PID控制采用分段控制,不同的赛道元素采用不同的PID,以及速度,主要分为两段,直道和弯道,包括差速刹车测也是在直道弯道切换时开启。通过这样的方式是,舵机PID,电机PID,刹车控制,差速控制有效的结合在一起使赛车能够稳定快速的运行。
通信方案,双车通信采用24L01通信,经过分析两车在赛道上的通信为镜像关系。因此两车采用相同的通信协议,而在通信过程中会出现许多逻辑问题,需要长时间调试解决,因此通信建议使用一到两周的时间进行调试。
竞赛遗留问题:
1,只有摄像头模块,无法确定赛车是否完全错开。
2,通信会出现延时问题。
3,一个车停车后可能会出现另一个车停止不动
如果觉得《“恩智浦”杯智能车竞赛总结》对你有帮助,请点赞、收藏,并留下你的观点哦!