关于第二十届智能车竞赛备赛的总结
写在前面
2025 浙江省智能车竞赛落幕,在 C1 - 极速光电龙芯赛道拿到了省三等
第一次作为 A 类赛的主程,作为一个小白学习到了很多。
有点遗憾的是最终因为种种原因只跑完了 2.3 m/s 的低速稳定版(不过就算全速跑完貌似也是省三等)。
不得不说浙江赛区的强度确实很大啊,有国赛名额的队伍进国赛之后排名都是很靠前的,学习到了很多。
关于学习
首先就是 B 站上的大佬很多,对于我们四轮镜头组,属于传统竞速组别,B 站苏格拉没有底大佬的文章写的非常不错。
然后就是一定要多交流,避免闭门造车。理工类竞赛的参赛选手大部分都是很好的人,大部分人都秉着开源精神分享自己的调试经验,推荐 TWU 智能车交流群 (538366435) ,应该是智能车赛领域最大的一个交流枢纽,有什么问题可以直接在群里问。
当然问问题也是有方法的,一般来说不会收到回答的问题有两类:太简单的和太抽象的。一个好的问题需要能引起思考,这里的引起思考指的是具有一定深度且能有思考的切入点。GitHub 有一篇很好的文章提问的智慧详细阐述了一个好的问题需要具备的条件(尤其是在理工科领域)。
其次就是多读文献,往年的技术报告是非常值得学习的,通过学习技术报告一定能从中找到突破瓶颈的思路,并有所收获。
关于备赛
提速虽然很重要,但是提速是调车的最后一步。抛开具体的算法之外,车模的调教中一定会遇到一些小问题,例如车模左右不对称,圆环姿态不对等等问题,这些小问题一定要在备赛前期尽早解决,不要先提速然后把一些小问题留到后期解决。很有可能你眼中以为的小问题其实解决起来非常麻烦,甚至可能导致所有参数的重新调整。做好了前期的准备工作,参数不需要很精细的调整速度就能上去。
如果想要拿到好的名次,准备的时间一定要早。开始准备到比赛的这段时间当然不需要每天泡在实验室调车,但是较长的准备时间意味着有更多的时间思考调车过程中遇到的问题,而不是眼看着DDL干着急。
调车遇到问题的时候没有思路或者在一个方向上调试很久没有结果是很正常的事情,遇到这种情况应该意识到当前的思路或者方向错误。此时不妨稍微歇一歇,在休息的过程中保持思考,问题的答案往往自然而然就会浮出水面。
关于赛场
赛场的发挥是很重要的。和以往在学校调试不同,赛场的赛道非常干净,甚至可以用光滑来形容,容易导致一些参数超调。
解决地面问题,在初赛的时候可以通过烧代码调参解决,当然也可以通过加大负压增大摩擦力暴力解决。
其次就是赛场的环境光,如果光太亮或者太暗可以手动调整,但是现在自动曝光已经很成熟了,为什么不用呢?
还有就是地面的反光,这点可以通过偏振镜解决,当然直接用人体和蓝布也能遮挡一部分的光线。
赛前紧张是正常的,但是还是要保持充足的睡眠,毕竟发车并不仅仅是跑代码那么简单,还需要对代码进行烧入调试。
如果对裁判的判罚有疑议,甚至导致了没有完赛,必须要保留视频证据,然后不要在成绩确认单上签字。
比赛之前可能有一些舆论风波,切记不要瞎凑热闹,如果跑了一个好成绩赛后很有可能被对手针对。
关于车对称问题
C 车的对称问题涉及到多个方面,在我的调试过程中遇到了车模左右转向不对称以及车模转弯半径过大的问题,这些问题都和车对称问题有关。
首先是舵机的调整,经过我的调试发现舵机在机械省并不能很好的对齐实际中值,需要在代码中对舵机的中值进行手动设置。舵机中值正确的标准是:闭环左右电机速度环,车模在当前中值下能跑直线。
另外需要注意的是,逐飞库当中的可能会存在一些对舵机 PWM 值的限幅,这个限幅的区间一般是关于某一个固定中值中心对称的,而不是关于我们之前调教好的中值。这一点会导致限幅的区间不对称,进而导致车模左右打角的不对称。
其次是左右电机,这个利用左右速度环单独闭环就可以解决。但是因为我的车现在是开环方案,实际上我在代码中使用的是左右两侧不对称的 PID 参数解决的。
然后就是摄像头,B站苏格拉没有底大佬讲的已经很详细了,需要补充的是,可以通过降低摄像头画质来降低中线值计算时存在的零点漂移,以此减少摄像头不对称带来的影响。
关于视觉
一个好的视觉决定了车路径的稳定性。
实际上为了压缩图像处理的时间,我们将 320 * 480 的摄像头图像映射到了 60 * 80 的矩阵,以此增加图像处理效率。
对于圆环的判入标准应该非常严格,对于圆环中间状态的转移应该适当放宽。圆环补线补的越像正常道路,给到控制的压力就越小。
对镜头给适当的虚焦可以减轻后期摄像头滤波算法的压力。
虽然这次省赛我没有使用偏振镜,但是偏振镜确实是需要安装的。其次就是一个合适的自动曝光算法。比赛的时候听说许多队伍因为摄像头过曝以及场地反光的问题没能完赛,心里还是有点后怕的。
关于控制
我们在比赛中使用了模糊 PD + 分段 PD 的算法。
其中模糊二次 P 使用了 $$ abs(error) * error * kp2 $$,二次 D 使用了 $$ gyro * kd2 $$,参考了紫丁香车队的技术报告。
同时我们根据图像截止行的不同对参数分段为四段,对着四分别进行调试,效果还可以。
阿克曼差速可以使用直接通过运动学解算的,但是自己通过 PID 算法手动拟合一个差速曲线实际上也有不错的效果,而且更为灵活。
理论上这一套控制算法的上限是很高的,可惜调试时间过短,大概就调了两天左右,没有发挥出来。
关于机械
这一部分我其实不是很懂,只有一些经验。
首先就是负压必须在前期就开始设计,在前期调试过程中可以不开负压跑,等后期速度上去了再打开负压。
但是如果前期速度上去了发现需要负压再对车模结构进行修改,可能会导致参数的大调整,甚至让车跑的不如从前。
然后就是有条件一定要买整套备件,在临近省赛的最后几天高强度调试过程中,我们出现了很多机械结构包括舵机在内的损坏问题,幸好有备件,因此没有耽误我们调试。貌似隔壁组的备件就不是很全,导致了他们最后硬件故障没有完赛。
然后车模机械的调教教程都很全了,不过多赘述。
Comments | NOTHING