前言


这道题目也是小车类电赛题目,十月份的电赛题,由于之前积累了一些经验,这道题目在做下来的感觉还行,但是我们看题目没有仔细审题,和题目要求有一些些偏差,但是基础大功能还是做出来辽,大家还是可以参考的


这道题目,就是我们日常生活中的科目二,倒车入库和侧方停车,要求使用前轮转向的四轮电动车,限制了车型,这是一点


但是没有限制MCU,即大家可以使用自己觉得容易上手和熟悉的MCU进行做题


这道题目我们采用的是TI的MCU,型号为TIM4C123G6HPM,就是下面这块小板子,除了引脚稍微少点,熟悉使用后和32差不多,能够很快上手



当时我们考虑到,如果今年电赛题目限制TI的MCU,所以这道题目采用的TI的MCU进行做题




赛题分析


我们首先来看这道题目的要求,基础要求就是,分别独立完成倒车入库和出库的,分别独立完成侧方入库和出库


一切都是在这个基础上进行的


根据题目,我们可知,就是倒车入库和侧方停车,不同题目要求就是邻库是否有车,是单步倒车入库或侧方停车还是连续进行


好,我们根据题目来分析


1. 车型选择
2. 沿库线边线循迹
3. 倒库停止准备倒车标志
4. 倒库操作or侧方入库操作
5. 邻库有车,小车进库和出库


这道题目主要最关键的还是车型的选择准备倒库倒车停止标志




1、车型的选择


这道题目,限制了车型,要求必须使用前轮转向的四轮小车


由于在跟随小车系统中使用过前轮舵机转向的四轮小车,所以这道题目我们采用的是前轮舵机转向,后轮为驱动轮的四轮小车


但是我们由于是练习,并未在小车的大小上仔细深究,还是把之前做跟随小车系统中的小车修改了一下结构,直接使用


而且注意,题目在小车的大小也做了限制,要求如下


所以这道题目不同于之前限长小于25,车型变大了,对于倒车入库和侧方停车还是有些难度的


建议大家根据题目要求来合理选择自己的车型


在赛前多准备几种车型,多留一手




2、沿库边循迹


题目要求小车右侧投影离库边线约为5cm



这道题目这里的要求我们忽略了,所以在做题时并不是距离库边线5cm,一丢丢小瑕疵




这个如何实现呢,基础的红外、灰度当然不能实现,因为库边线在小车右方,所以只能采用摄像头进行循迹



这里使用的是摄像头模拟灰度传感器的方式,根据小车的运动姿态,给出不同的偏差值,小车再根据传回来的偏差值err,对自身的姿态进行纠正,让小车始终处于巡线期望值前进


和前两期分享的知识点相同,这点就不做过多重复介绍了


大家可以去看前两期分享的博客,里面有详细的介绍,关于小车循迹的几种方法以及32端如何接收OpenMv传回来的偏差值进行PID计算




3、倒库停止准备倒车标志


小车的主要目的还是倒车入库or侧方停车,当小车循迹前进时,什么时候停车准备倒库呢



我们是将摄像头的右上部分,划分感兴趣区域,然后进行模板匹配的方式,进行匹配


因为大家可以看到无论是倒车入库还是侧方停车,第三个库的库角都和前两个的特征不同,根据这个特征就可以进行模板匹配





当摄像头匹配到库角标志时,发送标志位给小车,小车根据标志位进行停车,准备倒库




4、倒库操作or侧方入库操作


当小车识别到准备倒库标志后,后面的操作我基本上是写死的


  • 先往前走一段,打方向向后倒车,倒车到与车库平齐,方向回正,向后倒库

这里的切换时机是根据小车行进的距离进行判断,还有向后打方向倒车时,可以给后轮一个小小的差速,更加方便小车向后倒车


  • 进库后停止2s,准备出库,出库后继续巡线,直至侧方停车停止线的识别

侧方停车的步骤基本上和倒车入库相同


大家要找到合适的时机以及合适的舵机方向(即PWM),然后衔接起来


就完成了倒库或者侧方停车



当然,我在B站上,也看到很多大佬的入库非常丝滑,很值得学习
无名小哥的教程就起初给了我很大的启发
大家 可以多逛逛B站,发掘一下自己的灵感




5、邻库有车,小车进库和出库


这一点我们发现,如果采用上述说过的方法,有很大可能识别不到准备倒库停止标志,因为可能邻库的车把库角挡住了,然后摄像头识别不到或者是识别的概率大大降低


这一点我们还未解决,这也是瑕疵之一,有概率识别不到,小车就直接跑了,倒库失败


由于时间紧迫,我们这道题目就做了个大概,基础倒库和侧方均可实现,但是有瑕疵,但是程序逻辑和基础思路大家还是可以参考学习的




调试经验分享


其实这道题目如果只做倒库或者侧方的话,基本的调试可能更多的在摄像头那边,因为要保证停车标志的准确性


剩下的就都是小车这边的逻辑书写了,还有调试最多的估计就是各种状态的切换,比如打角打多少角度,后退前进多少距离,巡线的调试


再就没啥了


邻库有车还是有概率识别不到倒库停止标志,待改进





还有一点,就是要注意仔细阅读题目,使用笔来画出题目的各种要求,仔细审题,不然正式比赛的话,可能因为一时的疏忽,造成颗粒无收




总结


这是关于自己刷真题时,做题的记录和经验分享,都是自己经过实际测试和调试后得出的方案,将这些给大家分享,希望能够帮助到大家


在做这道题目后
我总结出了,适合自己的一套程序流程代码,非常好用,如各种状态切换等


同样,我也开源出了这道题目的代码,大家可以参考学习




开源链接


大家可以参考学习


大家可以自行访问,进行下载


下方为gitee开源链接,请大家点一个star,谢谢


oufen / 2022年电赛B题-自动泊车系统