第18届全国大学生智能汽车竞赛四轮车开源讲解

2023-11-07 10:20

本文主要是介绍第18届全国大学生智能汽车竞赛四轮车开源讲解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本人曾参加第16届全国大学生智能车竞赛(华南)全向行进组,17届(华南)四轮摄像头组,18届(华南)电能接力组,这三届智能车比赛。但说来惭愧,参加了三年,最后也没拿得出手的成绩。

 16和18届的参赛牌,17届线上赛,没有牌

16届比赛情况

16届,参加的全向行进组。当时是大一暑假,什么都不懂,准备完全不充分。我们使用的是CH32V103,单块核心板,纯电磁方案(到了现场才知道,几乎所有的队伍都是用的双核或者摄像头)。我们在比赛前一星期才知道PID是什么,比赛前三天才让车子跑起来,跑起来了直接就去参加比赛,结果被杀的连渣都不剩,现在想想当时也是太天真了。

 16届参加比赛的全向麦轮

17届比赛情况

在16届比赛后,休息了一个暑假,又开始调车。在10月份时候我调出一辆纯电磁C车,能够沿着实验室的赛道无元素的跑1.8m/s,跑了几个星期,感觉只会纯电磁方案还是不行,得试试摄像头。于是开始从0调起摄像头,后卓大发布规则,我便选择加入四轮摄像头组。

我们在前往比赛学校调试时候发现他们的场地和我们的场地完全不一样(这里提醒大家赛道铺设一定要符合规范),所有参数,图像,判断都要重新调整,就这样也是遗憾省三收场。

  17届的车,其实还是很丑,我们自己的赛道皮都没有固定,都是翘起来的

18届比赛情况

17届比赛省三收场,我也是满心不爽,立刻查看代码,反思问题,并立志18届比赛一定要冲向国赛!

在等待规则的过程中,我也一直寻找更高端的算法,查看其他高校的方案,也找到了17届比赛时的问题,并立刻改进。不久规则出来,我选择了电能接力组,和我16届全向的队友组队,他也是第三年参加比赛了,心里都憋着一口气,不冲国赛,誓不罢休。

然而我们在平日的训练中,过多的注重单车的调整。我们两辆车,都是各跑各的,组合编队的时间其实很少,这也直接导致了在18届华南线下赛我们翻车的结果。

最后在华南线下赛,我们辆车配合不佳(前车无法提速,后车无法降速),发车后总会追尾,相互影响,导致没能完赛。在后面的简单赛道补赛,队友的后车(mini车模)跑了补赛全场第二名(第一名是c车作为后车,mini车拉爆了也追不上),只比第一名慢了0.3秒,可以说队友把mini车做到了极限,这里真的感叹我的队友,太强了。

在斑马线处发车的就是我的队友

目的

也是本着开放的精神,让后人少走一些弯路,本人在这里完全开源,分享,解析我的代码。分享我的图像,控制思路,其中还有我三年做车的心得体会。希望我这三年来的经历能让后面想参加比赛的同学更轻松入门智能车。同时,这也是我大学三年的一个小小成果,在此留个纪念吧。

亮点

1.在CH32V307的144MHz下能够10ms进行一次while(1)的循环,图像处理复杂度不高。

2.完善的角点,单调转折点,连续点,撕裂点的元素判断。

3.基于特征点的斑马线,环岛,十字,坡道,断路,路障,三叉(18届未出现)的互斥元素判别。

4.摄像头电磁无缝衔接,在常规赛道出界后自行保护刹车,不乱撞。

5.内有常规模糊PID控制,基于视野行的模糊PID控制,常规速度增量式PI闭环控制。

6.简易UI系统,常用控制变量存在内置Flash区中,掉电不丢数据。

最后

后续的比赛应该都是线下赛了,不存在线上赛这样的比赛形式了。

线下赛的主要特点就是稳,你不一定要跑的多快,但一定要稳,稳定度高于一切。而且现场的情况完全无法预计,有可能出现上帝之光,有可能现场暗无天日,有可能赛道非常新,非常滑,有可能赛道摩擦力很大,有可能赛道铺设不规范,太多太多的不确定因素了,希望大家在准备比赛的时候多去其他的学校交流,不要闭门造车,感受一下其他场地的情况,看看你的车子的鲁棒性。还是那句话,车子可以不快,但一定要稳。

在比赛时候,建议先把环岛之类只加时,不影响完赛的元素屏蔽掉,先保底有个成绩,有了成绩后续再稳步提升。同时也注意像断路,横断,入库,这样不完成,就无法完赛的元素,一定要花大量时间处理,因为环岛不跑大不了加时30秒,断路、横断,入库不跑,是无法完赛,没有成绩的,今年好多队伍就在横断,断路,入库出现了问题,希望后面的同学注意吧。

 根据我两年线下赛经验,群里说的没错

开源链接(不断整理中)

https://gitee.com/joshua_xu/the-18th-smartcaricon-default.png?t=N7T8https://gitee.com/joshua_xu/the-18th-smartcar

目录

第18届全国大学生智能汽车竞赛四轮车开源讲解【1】--摄像头

第18届全国大学生智能汽车竞赛四轮车开源讲解【2】--图像

第18届全国大学生智能汽车竞赛四轮车开源讲解【3】--边线提取

第18届全国大学生智能汽车竞赛四轮车开源讲解【4】--控制

第18届全国大学生智能汽车竞赛四轮车开源讲解【5】--直道、弯道、十字

第18届全国大学生智能汽车竞赛四轮车开源讲解【6】--环岛

第18届全国大学生智能汽车竞赛四轮车开源讲解【7】--坡道,横断,断路

第18届全国大学生智能汽车竞赛四轮车开源讲解【8】--电磁、模糊控制

第18届全国大学生智能汽车竞赛四轮车开源讲解【9】--出入库、三叉、T字

第18届全国大学生智能汽车竞赛四轮车开源讲解【10】--机械

第18届全国大学生智能汽车竞赛四轮车开源讲解【11】--零散的建议

第18届全国大学生智能汽车竞赛四轮车开源讲解【12】--写在最后

希望能够帮助到一些人。

本人菜鸡一只,各位大佬发现问题欢迎留言指出。

qq:2296449414

这篇关于第18届全国大学生智能汽车竞赛四轮车开源讲解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/362975

相关文章

基于Python打造一个智能单词管理神器

《基于Python打造一个智能单词管理神器》这篇文章主要为大家详细介绍了如何使用Python打造一个智能单词管理神器,从查询到导出的一站式解决,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 项目概述:为什么需要这个工具2. 环境搭建与快速入门2.1 环境要求2.2 首次运行配置3. 核心功能使用指

Python Transformers库(NLP处理库)案例代码讲解

《PythonTransformers库(NLP处理库)案例代码讲解》本文介绍transformers库的全面讲解,包含基础知识、高级用法、案例代码及学习路径,内容经过组织,适合不同阶段的学习者,对... 目录一、基础知识1. Transformers 库简介2. 安装与环境配置3. 快速上手示例二、核心模

Python实现word文档内容智能提取以及合成

《Python实现word文档内容智能提取以及合成》这篇文章主要为大家详细介绍了如何使用Python实现从10个左右的docx文档中抽取内容,再调整语言风格后生成新的文档,感兴趣的小伙伴可以了解一下... 目录核心思路技术路径实现步骤阶段一:准备工作阶段二:内容提取 (python 脚本)阶段三:语言风格调

C++ vector的常见用法超详细讲解

《C++vector的常见用法超详细讲解》:本文主要介绍C++vector的常见用法,包括C++中vector容器的定义、初始化方法、访问元素、常用函数及其时间复杂度,通过代码介绍的非常详细,... 目录1、vector的定义2、vector常用初始化方法1、使编程用花括号直接赋值2、使用圆括号赋值3、ve

Java调用C++动态库超详细步骤讲解(附源码)

《Java调用C++动态库超详细步骤讲解(附源码)》C语言因其高效和接近硬件的特性,时常会被用在性能要求较高或者需要直接操作硬件的场合,:本文主要介绍Java调用C++动态库的相关资料,文中通过代... 目录一、直接调用C++库第一步:动态库生成(vs2017+qt5.12.10)第二步:Java调用C++

Python基础文件操作方法超详细讲解(详解版)

《Python基础文件操作方法超详细讲解(详解版)》文件就是操作系统为用户或应用程序提供的一个读写硬盘的虚拟单位,文件的核心操作就是读和写,:本文主要介绍Python基础文件操作方法超详细讲解的相... 目录一、文件操作1. 文件打开与关闭1.1 打开文件1.2 关闭文件2. 访问模式及说明二、文件读写1.

C# WinForms存储过程操作数据库的实例讲解

《C#WinForms存储过程操作数据库的实例讲解》:本文主要介绍C#WinForms存储过程操作数据库的实例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、存储过程基础二、C# 调用流程1. 数据库连接配置2. 执行存储过程(增删改)3. 查询数据三、事务处

C++快速排序超详细讲解

《C++快速排序超详细讲解》快速排序是一种高效的排序算法,通过分治法将数组划分为两部分,递归排序,直到整个数组有序,通过代码解析和示例,详细解释了快速排序的工作原理和实现过程,需要的朋友可以参考下... 目录一、快速排序原理二、快速排序标准代码三、代码解析四、使用while循环的快速排序1.代码代码1.由快

无需邀请码!Manus复刻开源版OpenManus下载安装与体验

《无需邀请码!Manus复刻开源版OpenManus下载安装与体验》Manus的完美复刻开源版OpenManus安装与体验,无需邀请码,手把手教你如何在本地安装与配置Manus的开源版OpenManu... Manus是什么?Manus 是 Monica 团队推出的全球首款通用型 AI Agent。Man

使用Python实现表格字段智能去重

《使用Python实现表格字段智能去重》在数据分析和处理过程中,数据清洗是一个至关重要的步骤,其中字段去重是一个常见且关键的任务,下面我们看看如何使用Python进行表格字段智能去重吧... 目录一、引言二、数据重复问题的常见场景与影响三、python在数据清洗中的优势四、基于Python的表格字段智能去重