Skip to main content

竞赛经验分享

· 23 min read
Cui quan

实验室冬令营讲座--主题:竞赛经验分享

来自一名20级老学长(智能车复役选手)的一些竞赛经验分享

自我介绍

先来个''简短''的自我介绍:

崔全

中国自动化学会会员、湘潭大学电工电子实验室负责人、湘潭大学百度飞桨领航团团长

参与国家级大学生创新训练项目,已结题;参与上海交通大学交换实习课题。

所获竞赛奖项:

· 2022年12月 十七届全国大学生智能汽车竞赛室外专项赛全国一等奖

· 2022年08月 十七届全国大学生智能汽车竞赛百度完全模型组全国二等奖

· 2023年07月 十八届全国大学生智能汽车竞赛大疆天途创意组全国二等奖

· 2023年08月 十八届全国大学生智能汽车竞赛百度完全模型组全国二等奖

· 2024年07月 十九届全国大学生智能汽车竞赛地平线智慧医疗组全国一等奖

· 2022年08月 2022全球智能自主机器人比赛优秀奖

· 挑战杯,人工智能大赛,研电赛等省级,校级奖项近20项

荣誉证书:

湖南省优秀志愿者、湘潭大学甲等奖学金,三好学生、优秀竞赛团队,优秀毕业生等10余项

擅长方向

Linux / Python / ROS / Git / Deep Learning

竞赛历程

主要竞赛介绍

智能车竞赛

全称全国大学生智能汽车竞赛。要求在规定的模型汽车平台上,基于赛题要求的微控制器作为核心控制模块,通过增加NXP摄像头模块、北斗-GPS 模块、RTK模块、超声波模块、UWB模块等模块以及编写相应软件程序,制作一个能够自主识别道路的模型汽车,按照规定路线行进,以完成时间最短者为优胜。

竞速比赛共分为八(十)个组别,每个组别在比赛环境、比赛任务、单片机平台、车模等方面有不同的要求。

核心任务:自制硬件,基于设计好的车模开发相应的程序完成赛题任务(以竞速为主)。因此常常分工为软件和硬件。

特点:备赛时间通常较长,约周期3-7个月;含金量高;难度较大;竞赛场地通常不定;赛题各式各样

OEfMPU.md.jpg

电子设计大赛

全称全国大学生电子设计大赛。

试题类型基本以电源类,信号源类,高频类,放大类,仪器仪表类,控制类为主,题目将会在比赛开始当天公布,每个队伍只能选其中一道题目,然后开始为期四天三夜的作品制作,首次比赛地点在自己学校实验室内,比赛期间学生可以查阅有关纸质或网络技术资料,队内学生可以集体商讨设计思想,确定设计方案,分工负责、团结协作,以队为基本单位独立完成竞赛任务;

特点:四天三夜;难度大;含金量高

OEfOlY.md.jpg

挑战杯

挑战杯是“挑战杯”全国大学生系列科技学术竞赛的简称,是由共青团中央、中国科协、教育部和全国学联、举办地人民政府共同主办的全国性的大学生课外学术实践竞赛。“挑战杯”竞赛在中国共有两个并列项目,一个是“挑战杯”中国大学生创业计划竞赛;另一个则是“挑战杯”全国大学生课外学术科技作品竞赛。也称“大挑”“小挑”。是国内大学生最关注最热门的全国性竞赛。

  • 比赛时间:校内竞赛3-5月,省级复赛5-6月,全国大赛7-11月
  • 参赛形式:自然科学类学术论文;哲学社会科学类社会调查报告和学术论文;科技发明制作(A类和B类)
  • 评审侧重:侧重技术创新、科技成果转化情况、形成专利技术或产品等。

特点:覆盖专业广;难度极大;含金量“很高”;PPT+(实物)+报告;团队人员较多

互联网+

  • 参赛报名6月,高校初赛6月-9月中旬,省市复赛6月-9月中旬,全国总决赛11月上旬
  • 评审侧重:技术创新性、可落地、商业化强的项目

特点:覆盖专业广;难度极大;含金量“很高”;PPT+(实物)+报告团队人员较多

其他竞赛介绍

  1. 大学生赛事榜单上的比赛84项

  2. 湘潭大学校内认可的ABC类竞赛(保研综测)

OEYwzp.md.png

  1. 企业竞赛,社会竞赛

例如Kaggle平台,阿里天池,百度飞桨,腾讯云等。偏向计算机,部分有实物

  1. 研究生竞赛

共18项赛题,限保研或导师推荐的优秀本科生参与,但每组最多一名

我的竞赛经历

很多人问过我,或者觉得我一开始就什么都会,所以才能到处拿奖————实则不然

起源

我是大二才开始参赛,大一主要在实验室学习(打杂)。打杂期间也只参加过一个小小的比赛————心形灯设计,但是却成为我一切的起点:

OEf1db.md.png

**甚至当时循环都不会写,点灯都是手动一个个IO口设置的。**用的51,硬件上也是是否简陋。

小白参赛

21年12月出规则:没认真看规则的我连硬件设备是什么都不知道,拿着单片机熟悉例程就花了将近半个月,剩下做的基本都是无用功

22年4月拿到车模:这时候硬件设备(类似于树莓派的边缘计算设备)到了两个月,却常常报错,要么开机没反应,要么卡死。

22年5-6月下地,开环跑基本完赛。 初次下地并没有很久,也是因为前期工作做的比较足的原因。

中途因为不清楚规则,没看清楚电压需求,多焊接了一块板,有次正负接反,导致炸了一手。

OEYu7t.th.png

22年7月省赛:通宵2天,赛前1小时烧了全部硬件,临时换了全套硬件(未测试过),侥幸的是,全部换了后都能正常运行,且跑的更快了。但是成绩依旧很一般,在华南赛区只有三等奖。

后面侥幸进了国赛,但是由于前期工作不足,许多附加的任务没能完成,因此只拿到了国二。

OEfeNg.th.jpg

甚至车模接线都接的乱七八糟 对比一下上一届的车模

OEfvRa.th.jpg

比赛中途顺便接了个机器人的比赛,两个的时间安排上我没能很好的权衡,导致最后只能拿到优秀奖

二次参赛

三次参赛

智能车备赛经验

入门

过程大体上是,学C语言,安软件,买零件,跟着视频尝试调用模块,然后搭车写代码,让车动起来,接着让车跑起来。具体要了解的大概有 : C语言、AD画板、单片机、 使用电机舵机等器件 、PWM、ADC、中断、UART......上面会了就能勉强做出个能动的车。诸如此类的任务在冬令营中能得到很好的实践。

然后就是 丰富功能来提高车模能力或者提高调车效率,比如增加显示模块、按键调参、匿名上位机传参、数据存储”记忆大法“、使用其他软件分析数据、优化算法。

个人经验

  1. 多交流,竞争关系不妨碍合作,合作有时候反而是一种双赢。不管是队友还是学长老师,抑或是同校的竞争对手,都应该积极交流。

  2. 比赛规则很重要,要经常去官网看看比赛规则有没有变化,规则出来后反复地,仔细地看,想好各种可能情况和意外,甚至找到官方都不确定的一些规则,擅以利用。

  3. 硬件打板焊接以及实际电路的检查,需要的更多是经验和运气,所以,一定要和实验室的学长打好关系,问问题时想好再问,这个阶段真的很靠学长的。

  4. 调试的过程中,太过于底层的东西可以不用过多了解,最近两年一般都会有赞助厂商写好封装库。参赛的选手只要学会其中的函数用法,直接调用即可,主要是在控制和参数的整定,以及控制的流程,信息处理的方法方式。(拼积木

  5. PID算法通常是使用最多的算法,其变体也有非常多。具体的话就需要看各种资料,多去请教学长相关的理解。

  6. 一个好的传感器布局(例如摄像头选择,高度角度固定)和好的信号处理方式(视频流处理算法)真其重要性有时甚至不亚于好的PID,有时真就和网上说的那样“只要信号处理好,就算开环也能跑。”当然,具体的信号处理方式这一块还是要找学长,拿到往年的码源自己去琢磨其中的逻辑,然后不断尝试,最终不断优化从而得到一个比较好的效果。

  7. 先做,再做好。优先保证最基本的完赛——先及格,再想着提高。

  8. 勇敢的人先享受世界(先拿国奖)。不要觉得自己低人一等,不要畏难,积极发现问题,解决问题。在压力下冷静思考,在失败中总结经验。大胆去想,大胆去选,大胆去做,大胆去卷

电赛备赛经验

  1. 具备良好的基础

良好的基础必不可少,在参加校内电赛前,你就应该要具备基本电路知识,c语言以及51,stm32,arduino单片机的使用,最好能自己独自用单片机做过一些小设计,比如循迹小车,电子锁,定时器等,也许会有同学说老师还没教怎么办,对于这个问题,我只能说等老师教是完全没用的,大学排的专业课都比较靠后,而且老师教的也基本是理论,甚至理论都只是皮毛,真正在比赛时老师教的内容完全不够用,所以必须主动去学习,加入实验室就是一个不错的选择,拥有好的学习环境与资源,去网上买块开发板看视频就能开始自我学习了。

  1. 选好队友

电赛必须是3-5人组队,好的队友必不可少,找到技能互补、合作良好的队友,这直接影响了队伍在参赛时的方向、进度和成绩。

  1. 赛前做好充分准备

赛前有一段比较长的时间备赛,在这段时间里,最好能跟队友与指导老师商议自己队伍的做题方向,然后寻找往年的题目进行练习,在开赛前一周公布器件清单时,就要做好器件购买,不然比赛四天三夜紧迫的时间,根本来不及再购买新的比赛器件,而且那段时间比赛专用芯片可能会涨价,缺货等。

我当年做过控制题,在赛前做了平衡小车,倒立摆,风力摆,板球控制系统等往年控制类赛题,那段时间了对单片机编程,机械结构搭建,PID算法都有了很大程度的熟悉,为了减少开发时配置中遇到的坑,在电赛中使用了arduino单片机,arduino的性能也很强,具有大量的库,相比于C51,STM32等,arduino硬件平台更加亲民,完全脱离了寄存器的配置,几乎所有功能都已经有了上层库调用,透明掉了大部分与硬件相关的操作,对于不熟悉程序底层配置的的人来说,简直是电赛利器,所以使用arduino单片机在电赛中也是有一定优势的,另外,目前的电赛是德州仪器(TI)买断了赞助,所以在所有题目中会有一道题目必须限定TI的处理器,很大概率会是控制类型题中的一道,所以学有余力的同学也可以学习一下TI的板子,比如MSP430等,而且在比赛中使用TI处理器,测评同等分数下会更有优势,还有,目前的赛题是不能使用树莓派等高端处理器来做题,不然会当做违规处理。

关于问问题

在不确定对方是否有空的时候建议大家问问题时尽量按照下列格式来(参考How-To-Ask-Questions-The-Smart-Way):

  1. 仔細、清楚地描述你的問題
  2. 描述問題發生的环境(背景)(硬件配置、语言、软件版本、以及相關的信息)
  3. 描述在提問前你是怎樣去研究和理解這個問題的
  4. 描述在提問前為確定問題而已经采取的診斷步驟
  5. 描述最近做過什麼可能相關的硬件改动或软件改动
  6. 尽可能的提供一個可以重现這個問題的既定環境的方法。

话不在多而在精

你需要提供精确有内容的信息。 这并不是要求你简单的把成堆的出错代码或者数据完全转录到你的提问中。 如果你有庞大而复杂的测试样例能重现程序当时的情境,尽量将它剪裁得越小越好。

这样做的用处至少有三点。 第一,表现出你为简化问题付出了努力,这可以使你得到回答的机会增加; 第二,简化问题使你更有可能得到有用的答案; 第三,在精炼你的bug报告的过程中,你很可能就自己找到了解决方法或权宜之计。

別用低聲下氣取代你真正該做的事

有些人明白他们不该粗鲁或傲慢的提问并要求得到答复,但他们选择另一个极端 -- 低声下气:“我是个新手小白,xxx废物,碰到xx问题,有大佬解答、帮我看看吗“...。 这既使人困扰,也没有用,尤其是伴随着与实际问题含糊不清的描述时更令人反感。

别用原始灵长类动物的把戏来浪费你我的时间。 取而代之的是,尽可能清楚地描述背景条件和你的问题情况。 这比低声下气更好地定位了你的位置。

描述問題症狀而非猜測

蠢問題

我在运行以前能运行的代码时,我的小车无法正常运行跑不起来,我怀疑是昨天有β射线、γ射线射到车上了,怎么办?

聪明問題

我采用的是ubuntu18.04,C++,运行的代码内容如下:,运行后的输出有:(),有没有报错其中摄像头采集(正常打开/),串口(正常打开/),下位机接受的数据(正常/丢失?),车模的电机/舵机是否正常。车在跑(某个路段)的的时候出现···状况,尝试过调pid参数,更改代码的哪些地方,但是都没有效果。在基础路段(直道,弯道)正常。

礼多人不怪

彬彬有礼,多用谢谢您的关注,或谢谢你的关照。让大家都知道你对他们花时间免费提供帮助心存感激。

坦白说,这一点其实并没有比使用清晰、正确、精准且合乎语法和避免使用专用格式重要(也不能取而代之)。帮助者们一般宁可读有点唐突但技术上鲜明的 Bug 报告,而不是那种有礼但含糊的报告。

然而,如果你有一串的问题待解决,客气一点肯定会增加你得到有用回应的机会。

当然,在完事以后,发个小红包,或请他人喝杯咖啡或奶茶,关系更好的话请客吃饭也是能极大提高以后继续帮忙的可能性。一定不要太过吝啬,要知道大多数情况下,他人是没有直接帮助你的义务的,而你一点小小的回报,却能让你们之间的关系拉近许多,以后无论是哪方面的问题都可以更好交流,或者有继续合作的机会就大很多。

更多内容请参考原文 How-To-Ask-Questions-The-Smart-Way

总结

希望学弟学妹们保持好奇心,勇于挑战自己,持之以恒地努力。在大学生活中不断成长,不怕失败,勇于尝试,不断积累经验,迎接未来的每一个挑战!

OEfNOl.png

QQ:(seekyou) 1625629469

OEfrEB.th.png