22年电赛B题——具有自动泊车功能的电动车——做题记录以及经验分享

前言

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

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

但是没有限制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题-自动泊车系统

相关推荐
电工小王(全国可飞)1 分钟前
STM32 RAM在Memory Map中被分为3个区域
stm32·单片机·嵌入式硬件
maxiumII3 分钟前
Diving into the STM32 HAL-----DAC笔记
笔记·stm32·嵌入式硬件
yigan_Eins3 小时前
【数论】莫比乌斯函数及其反演
c++·经验分享·算法
时光の尘4 小时前
C语言菜鸟入门·关键字·float以及double的用法
运维·服务器·c语言·开发语言·stm32·单片机·c
布说在见6 小时前
个人实施工作的一天 —— 繁琐的数据输入与未来的句里录数据
经验分享·实习实施
梅见十柒7 小时前
wsl2中kali linux下的docker使用教程(教程总结)
linux·经验分享·docker·云原生
日晨难再7 小时前
嵌入式:STM32的启动(Startup)文件解析
stm32·单片机·嵌入式硬件
管家婆客服中心8 小时前
提成制是什么?如何高效管理提成制?
经验分享·管家婆软件
zy张起灵14 小时前
48v72v-100v转12v 10A大功率转换电源方案CSM3100SK
经验分享·嵌入式硬件·硬件工程
PegasusYu17 小时前
STM32CUBEIDE FreeRTOS操作教程(九):eventgroup事件标志组
stm32·教程·rtos·stm32cubeide·free-rtos·eventgroup·时间标志组