1 Star 12 Fork 0

oufen / 2022年电赛C题-小车跟随系统

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
MulanPSL-2.0

文章链接

2022年电赛C题——小车跟随行驶系统——做题记录以及经验分享

前言

自己打算将做过的电赛真题,主要包含控制组的,近几年出现的小车控制题目,自己做过的真题以及在准备电赛期间刷真题出现的问题以及经验分享给大家

这次带来的是22年电赛C题——小车跟随行驶系统,这道题目指定使用的是TI的单片机,完成一下功能

采⽤ TI 的 MCU设计⼀套⼩⻋跟随⾏驶系统,由⼀辆领头⼩⻋和⼀辆跟随⼩⻋组成,要求⼩⻋具有循 迹功能,且速度在0.3 ~ 1m/s 可调,能在指定路径上完成⾏驶操作。

好了,废话不多说,开始


赛题分析

以下是赛题的任务部分,要求采用TI的MCU,双车跟随,且具有循迹功能,速度在0.3 ~ 1m/s内可调,能在指定路径上完成行驶操作

在这里插入图片描述

好,根据题目我们来分析,几个重要的点

1. 采用TI的MCU 2. 领头小车和跟随小车 3. 具有循迹功能 4. 速度在0.3m/s-1m/s内可调 5. 到达终点时要发出声光提示 6. 可沿内外圈行驶,且内外圈可控 7. 当专家在E端放下等停标志时,小车停车,等待5s后停止 8. 双车之间的通信 9. 具有跟随功能


1、领头小车和跟随小车车型选择

这道题目要求的是双车,要搭建两个小车

这道题目建议使用

三轮小车,前轮为万向轮或牛眼轮,后两轮为驱动轮

当然,四轮小车也是可以的,我在做这道题目的时候,采用过前轮为舵机转向,后两轮为驱动轮的方案,效果也相当不错

在B站中观摩到的很多UP,还采用的是四轮小车,这种效果看起来也还不错

但是三轮小车的控制程度比后两种的车型难度较低,很适合入门级别摸索

对三轮小车的控制差不多了,就可以往后进阶了,四轮小车也是一样的原理,只不过多加了一些些东西


2、TI的MCU

做这道题目的时候,没有采用TI的MCU,使用的是Stm32F103RCT6

TI单片机是后面才学的,后面学会了TI的MCU后,使用起来和32是一样的

这道题目在练习时不必纠结是何种MCU,我们要理解的是这道题目需要我们的什么知识点,使用不同的MCU只是换了一个方式去调用外设,其内部核心原理都是一样的

一般来说,定时器,串口,中断都是要频繁使用的资源


3、具有循迹功能

这道题目的一个基础功能就是循迹,一切都是在循迹的基础上进行的,根据题目可以看到是黑线,黑线循迹和之前21年送药小车循红线的思路其实是一样的

黑线还比红线多了几种选择

黑线可以采用红外对管来循迹,可以采用几路红外对管并排排列,分别放在小车的前部,小车在运动行驶的过程中,根据红外对管传回来的状态来实时修正小车的位置

放五个红外对管,根据不同的状态给不同的偏差值,然后根据偏差使用PID算法,始终使小车保持在正中位置,即可达到循迹功能

类似的还有OpenMv巡线,灰度巡线

相关可以参考这个链接,我的21年送药小车教程里讲过的,都是一个思路,大家熟悉后,循迹基本就搞定了

分享21年电赛F题-智能送药小车-做题记录以及经验分享


还有哦,调节转向PID提一个醒

转向PID只需要调节P和D就行了

因为这道题目的要求是,速度在0.3m/s-1m/s内可调,你初始调节的PID参数,当速度快起来之后,后面速度的转向,可能就转不过来,可能会偏离赛道,这个时候,建议将速度拉到最大,然后调节PID参数,将这个PID参数作为最终加载值,这样PID参数适用于最大速度以下的转向

多调试,一般先给个P,放车进赛道,走一段,到达最大弯道,即那四个最大拐角的时候,看现象,转不过去,就加P,加到能够快速转过最大拐角时,即是合理P

可以适当给D,增加快速响应


4、速度在0.3m/s-1m/s内可调

这个简单,只需要设置几个按键,按键1速度为0.3m/s,按键2速度为0.5m/s.......依次类推

不同的速度如何设置呢?

我们使用的是速度环,PID调节的期望速度,我们只需要给期望速度,这就是我们的小车行驶的速度

按下按键,速度在0.3m/s,期望速度为0.3m/s


5、到达终点发出声光提示

这个如何实现呢,摄像头识别到停止线后,小车停止

蜂鸣器响,灯光亮


6、可沿内外圈行驶,且内外圈可控

内外圈可控,是这道题的难点之一,题目要求小车要实现内圈超车的功能 ,这就要求小车能准确拐到内圈中,并实施超车

如何实现内外圈切换呢?

在做题时,起初是MV端实现,当小车在跑第二圈的时候,识别到停止线两次后,对外圈的线进行屏蔽,摄像头上就只对左边内圈线感兴趣,此时,巡线偏差修改,小车根据PID算法,拐到内圈轨道行驶

后面,发现这种方法不太稳定,可能会出现,识别停止线错误,从而造成拐入内圈时机不正确,于是舍弃了这种方案

于是在32端实现,当摄像头识别到停止线两次后,左右轮给一个差速,左轮速度比右轮速度小,小车进而有一个向左偏移,然后根据传回来的巡线偏差,迅速调节小车姿态,从而拐入内圈行驶

这种方案经测试,效果较好,成功率也挺高的,从而实现内外圈可控


7、当专家在E端放下等停标志时,小车停车,等待5s后停止

这个就是MV端的任务嘞,当识别到等停标志后,根据MV传回来的标志位进行判断,等待5s后再继续进行行驶

这一小问要求的是速度为1m/s,1m/s在这个小赛道上速度是超快的了,我们在调试的时候,发现,速度一快之后,摄像头识别准确性大大降低,当时好像采取的是模板匹配还是神经网络,效果还是不理想

后面就没咋调了,主要是摄像头方面,需要多调节一下


8、双车之间的通信

根据说明,全程所有的操作,只有在领头小车上完成,有启动按键和设置按键,跟随小车只有一个上电开关 在这里插入图片描述

这也就是说,领头小车是通信主机,跟随小车是通信从机,主机始终发数据,从机始终接收主机发过来的数据

这里我们采用的是蓝牙模块HC-05,蓝牙还是很好用的,配置好后,每次用的时候直接用就行嘞,区分好主机和从机就行

说一下具体思路,主车设置按键,按下按键设置速度和题目模式,此时按下按键后,通过蓝牙主机发送数据给从机,告诉从机此时的行驶速度和题目模式,按下确认键后,两小车开始行进


9、具有跟随功能

这也是一个小难点,跟随小车要和领头小车保持20cm的间距,全程都不能发生小车碰撞 在这里插入图片描述

这里呢,我们采用HC-SR04超声波模块,根据超声波探测前方小车的距离,实时改变小车的速度,从而达到控制间距的目的

这里呢,我们一开始使用的是,当小于某个距离阈值时,小车速度--,大于某个阈值时,小车速度++,始终保持20cm

这样嘞,经过调试,发现效果不咋好,勉勉强强可以跟随哈哈哈,也能加速和减速,总的来说就是程序的鲁棒性不行

理想情况是,离前方小车比较远,加速,离得非常近,减速,然后保持一段距离,离得非常近,马上往后

后面经过改进,知道了,其实可以根据超声波模块的距离变化,使用PID算法,输入为期望的跟随距离/小车当前得跟随距离,输出的是小车的速度

这种,跟随效果就非常好嘞,但是在源代码中并未添加,大家可以尝试一下,我所了解到得一种跟随得较好方案


调试经验分享

这道题目看起来,不就是寻黑线吗,简简单单

但是在做得时候还是发现了很多问题的

下面分享一下调试经验

1、速度的计算

我所计算的速度,都是以RPM为单位的,根据小车转一圈的脉冲数和小车当前读取的脉冲数进行计算,大家可以参考我之前写过的这篇文章的评论区查找如何将小车的脉冲数转换为RPM

Stm32-使用TB6612驱动电机及编码器测速

这里推荐轮趣的MG310电机,这个电机,最高转速为500转,小小一个电机,经过测试还是可以勉强跑到1m/s的

至少前几问绝对够用了,大家还可以选择其他电机


2、主要程序逻辑

这道题目的主要程序逻辑还是挺简单的,按下按键设置速度和模式,按下确认键下小车开始行驶

后面就是一些模式的函数的书写,根据按键按下的模式选择,选择响应的模式函数,遇到停止线停止


3、内外圈的切换

这个估计一下子调不好,内外圈当时卡了我们好久

你们看,当识别到停止线两次后,还要往前走一段,才是内外圈交点,这个时候才开始内外圈交换,所以这个距离可以采取记脉冲的方式,也可以采用延时的方式来进行解决,当脉冲数达到后,或者是延时时间到后,立马给个差速,小车就拐到内圈去了

这个距离或者是延时时间需要好好把握一下


4、通信

这个也不多说了,建议首先使用串口,连接两个蓝牙,分别插到电脑,打开上位机,互相发送数据,成功后,就说明蓝牙配置完成

在这里插入图片描述

如果后面出问题的话,就是程序的问题,从程序内部寻找原因,硬件原因排除

下方是蓝牙的配对步骤 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述

在这里插入图片描述


5、跟随功能

这个呢,上述说过的超声波PID跟随,是后面了解到的,还未调试,但是我觉得是一个非常好的方案,跟随效果应该会非常好

具体大家还可以参考其他大佬的教程,讲的挺好的


总结

这道题目看起来简单,但是有好几个难点,不只是简简单单循个迹,有很多小细节

大家可以根据我上方的经验分享以及赛题分析进行参考,做出自己的第一辆小车

经过这道题目后,多磨磨,将会对以下几种知识点熟练运用并掌握嘞

  • 常见循迹方案
  • 超声波的基本使用
  • 无线通信模块的使用
  • 电赛经验get, 经验值+1

希望我的分享对你有帮助,同样,我也开源了之前练习的代码,大家可以参考学习


开源链接

大家可以参考学习

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

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

oufen / 2022年电赛C题-小车跟随系统

木兰宽松许可证, 第2版 木兰宽松许可证, 第2版 2020年1月 http://license.coscl.org.cn/MulanPSL2 您对“软件”的复制、使用、修改及分发受木兰宽松许可证,第2版(“本许可证”)的如下条款的约束: 0. 定义 “软件”是指由“贡献”构成的许可在“本许可证”下的程序和相关文档的集合。 “贡献”是指由任一“贡献者”许可在“本许可证”下的受版权法保护的作品。 “贡献者”是指将受版权法保护的作品许可在“本许可证”下的自然人或“法人实体”。 “法人实体”是指提交贡献的机构及其“关联实体”。 “关联实体”是指,对“本许可证”下的行为方而言,控制、受控制或与其共同受控制的机构,此处的控制是指有受控方或共同受控方至少50%直接或间接的投票权、资金或其他有价证券。 1. 授予版权许可 每个“贡献者”根据“本许可证”授予您永久性的、全球性的、免费的、非独占的、不可撤销的版权许可,您可以复制、使用、修改、分发其“贡献”,不论修改与否。 2. 授予专利许可 每个“贡献者”根据“本许可证”授予您永久性的、全球性的、免费的、非独占的、不可撤销的(根据本条规定撤销除外)专利许可,供您制造、委托制造、使用、许诺销售、销售、进口其“贡献”或以其他方式转移其“贡献”。前述专利许可仅限于“贡献者”现在或将来拥有或控制的其“贡献”本身或其“贡献”与许可“贡献”时的“软件”结合而将必然会侵犯的专利权利要求,不包括对“贡献”的修改或包含“贡献”的其他结合。如果您或您的“关联实体”直接或间接地,就“软件”或其中的“贡献”对任何人发起专利侵权诉讼(包括反诉或交叉诉讼)或其他专利维权行动,指控其侵犯专利权,则“本许可证”授予您对“软件”的专利许可自您提起诉讼或发起维权行动之日终止。 3. 无商标许可 “本许可证”不提供对“贡献者”的商品名称、商标、服务标志或产品名称的商标许可,但您为满足第4条规定的声明义务而必须使用除外。 4. 分发限制 您可以在任何媒介中将“软件”以源程序形式或可执行形式重新分发,不论修改与否,但您必须向接收者提供“本许可证”的副本,并保留“软件”中的版权、商标、专利及免责声明。 5. 免责声明与责任限制 “软件”及其中的“贡献”在提供时不带任何明示或默示的担保。在任何情况下,“贡献者”或版权所有者不对任何人因使用“软件”或其中的“贡献”而引发的任何直接或间接损失承担责任,不论因何种原因导致或者基于何种法律理论,即使其曾被建议有此种损失的可能性。 6. 语言 “本许可证”以中英文双语表述,中英文版本具有同等法律效力。如果中英文版本存在任何冲突不一致,以中文版为准。 条款结束 如何将木兰宽松许可证,第2版,应用到您的软件 如果您希望将木兰宽松许可证,第2版,应用到您的新软件,为了方便接收者查阅,建议您完成如下三步: 1, 请您补充如下声明中的空白,包括软件名、软件的首次发表年份以及您作为版权人的名字; 2, 请您在软件包的一级目录下创建以“LICENSE”为名的文件,将整个许可证文本放入该文件中; 3, 请将如下声明文本放入每个源文件的头部注释中。 Copyright (c) [Year] [name of copyright holder] [Software Name] is licensed under Mulan PSL v2. You can use this software according to the terms and conditions of the Mulan PSL v2. You may obtain a copy of Mulan PSL v2 at: http://license.coscl.org.cn/MulanPSL2 THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE. See the Mulan PSL v2 for more details. Mulan Permissive Software License,Version 2 Mulan Permissive Software License,Version 2 (Mulan PSL v2) January 2020 http://license.coscl.org.cn/MulanPSL2 Your reproduction, use, modification and distribution of the Software shall be subject to Mulan PSL v2 (this License) with the following terms and conditions: 0. Definition Software means the program and related documents which are licensed under this License and comprise all Contribution(s). Contribution means the copyrightable work licensed by a particular Contributor under this License. Contributor means the Individual or Legal Entity who licenses its copyrightable work under this License. Legal Entity means the entity making a Contribution and all its Affiliates. Affiliates means entities that control, are controlled by, or are under common control with the acting entity under this License, ‘control’ means direct or indirect ownership of at least fifty percent (50%) of the voting power, capital or other securities of controlled or commonly controlled entity. 1. Grant of Copyright License Subject to the terms and conditions of this License, each Contributor hereby grants to you a perpetual, worldwide, royalty-free, non-exclusive, irrevocable copyright license to reproduce, use, modify, or distribute its Contribution, with modification or not. 2. Grant of Patent License Subject to the terms and conditions of this License, each Contributor hereby grants to you a perpetual, worldwide, royalty-free, non-exclusive, irrevocable (except for revocation under this Section) patent license to make, have made, use, offer for sale, sell, import or otherwise transfer its Contribution, where such patent license is only limited to the patent claims owned or controlled by such Contributor now or in future which will be necessarily infringed by its Contribution alone, or by combination of the Contribution with the Software to which the Contribution was contributed. The patent license shall not apply to any modification of the Contribution, and any other combination which includes the Contribution. If you or your Affiliates directly or indirectly institute patent litigation (including a cross claim or counterclaim in a litigation) or other patent enforcement activities against any individual or entity by alleging that the Software or any Contribution in it infringes patents, then any patent license granted to you under this License for the Software shall terminate as of the date such litigation or activity is filed or taken. 3. No Trademark License No trademark license is granted to use the trade names, trademarks, service marks, or product names of Contributor, except as required to fulfill notice requirements in Section 4. 4. Distribution Restriction You may distribute the Software in any medium with or without modification, whether in source or executable forms, provided that you provide recipients with a copy of this License and retain copyright, patent, trademark and disclaimer statements in the Software. 5. Disclaimer of Warranty and Limitation of Liability THE SOFTWARE AND CONTRIBUTION IN IT ARE PROVIDED WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR IMPLIED. IN NO EVENT SHALL ANY CONTRIBUTOR OR COPYRIGHT HOLDER BE LIABLE TO YOU FOR ANY DAMAGES, INCLUDING, BUT NOT LIMITED TO ANY DIRECT, OR INDIRECT, SPECIAL OR CONSEQUENTIAL DAMAGES ARISING FROM YOUR USE OR INABILITY TO USE THE SOFTWARE OR THE CONTRIBUTION IN IT, NO MATTER HOW IT’S CAUSED OR BASED ON WHICH LEGAL THEORY, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. 6. Language THIS LICENSE IS WRITTEN IN BOTH CHINESE AND ENGLISH, AND THE CHINESE VERSION AND ENGLISH VERSION SHALL HAVE THE SAME LEGAL EFFECT. IN THE CASE OF DIVERGENCE BETWEEN THE CHINESE AND ENGLISH VERSIONS, THE CHINESE VERSION SHALL PREVAIL. END OF THE TERMS AND CONDITIONS How to Apply the Mulan Permissive Software License,Version 2 (Mulan PSL v2) to Your Software To apply the Mulan PSL v2 to your work, for easy identification by recipients, you are suggested to complete following three steps: i Fill in the blanks in following statement, including insert your software name, the year of the first publication of your software, and your name identified as the copyright owner; ii Create a file named “LICENSE” which contains the whole context of this License in the first directory of your software package; iii Attach the statement to the appropriate annotated syntax at the beginning of each source file. Copyright (c) [Year] [name of copyright holder] [Software Name] is licensed under Mulan PSL v2. You can use this software according to the terms and conditions of the Mulan PSL v2. You may obtain a copy of Mulan PSL v2 at: http://license.coscl.org.cn/MulanPSL2 THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE. See the Mulan PSL v2 for more details.

简介

22年电赛C题小车跟随行驶系统,并未完成所有要求任务,有小瑕疵 但是基础循迹,停止线识别均可实现,完成要求1、2、4部分 双车通信采用蓝牙HC-05 也尝试过多种方案,灰度循迹,OpenMV循迹等 展开 收起
C 等 3 种语言
MulanPSL-2.0
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
C
1
https://gitee.com/cyaya6/car-following-system.git
git@gitee.com:cyaya6/car-following-system.git
cyaya6
car-following-system
2022年电赛C题-小车跟随系统
master

搜索帮助

53164aa7 5694891 3bd8fe86 5694891