智能车快速入门

智能车快速入门

刚参加17届多车组智能车,荣获省一,国赛暂市还没比,有一些经验结论想趁着闲时记录下来,望帮助新接触的同学快速入门智能车。

下面是我的智能车故事,如果你有兴趣可以听听,如果想赶紧学知识请跳转这一部分


闲篇故事

我所在的赛区是华东赛区,2022疫情特别严重,导致北京很多学校到比赛结束整个学期都没有开学,可能因为这个原因我们才侥幸拿奖。我们河南省也是在六月初就全部让离校,如果要继续参赛就必须自己租房租场地,我们实验室经过协商选择和河南另一所学校到信阳的一家幼儿园租房组成赛点,自己买赛道、铺场地、住大通铺,这绝对是一件很酷的事,这段经历我会终身难忘。
但是自从我们离校,学校就不再支持我们继续参赛,甚至还对我们参赛进行劝退。最后连学校公章都没能给我们盖,我们只能以自己的名义参赛,应该也不会有任何获奖后的经济奖励,这点如果你要参赛倒是需要考虑一下因为如果不是特别热爱还是请慎重考虑,因为我们租房子、买赛道、解决吃饭问题和硬件消费都是我们自己均摊,为了这场比赛花销确实非常的大。

正片

1.要不要参赛

​ 智能车大赛在我看来是一个非常极端的比赛,因为从我的视角来看今年除了我们队以外,实验室其他的队参赛都是非常亏的,一是花销巨大,智能车就是一个无底坑,是真的花不完的钱,光是购买硬件就人均800+还是在学校报销了一部分的基础,这还没算我们这届比较特殊的租房费和路费,如果你最后只是省奖,可能真的不值得你画上一个学期和这么多钱去堵,具体要不要参赛在乎你个人选择,看完这篇你也许就有了答案。

2.选组别

​ 这一步非常关键,可能能直接决定你最后的奖项,别选过于传统的组别:基础电磁四轮组、摄像头四轮组,因为这两个组别非常的内卷,参赛队伍非常之多不说,很多学校都是有祖传代码的,因为每年的规则都十分类似,在有非常好传承的基础上他们的成绩会比你想象好的多,我几乎可以堵断,你很难拿到好奖在这两个组别,我的建议是别搞这俩。

​ 比较好的选择是多车组(双车接力组),和比较新颖的组别,多车组是我们至少有一点学长的底子,你们有学长代码的参考下上手会快很多,我们上届学长多车是国二,我们还不知道但也至少是我们实验室这届最好的一组了,所以多车会传下来比较多东西。

​ 至于新的组别,我只能说既是挑战也是机遇,有一些组别真的是完赛就能进国赛,竞争压力会比较小,而且参加的队伍比较少,强校传承也还没形成,这种情况下很容易出黑马,但同时也会出现完赛率比较低的情况,可能努力了很久最终获得了一个不太好的名次,如果对自己有信心可以考虑。

3.时间安排

​ 这个比赛看似有一个学期准备,但千万不要放松。因为有很多问题需要完赛后才能暴露。最好的状态是在五月份前完赛(多车组),其他组别因情况而定。我们就是吃了完赛晚的亏,因为我们有两个物联网的学长大二下课程非常繁忙,而且因为疫情又提前考试,加之摄像头和四轮传承不到位,导致我们的完赛进度十分缓慢,以至于到后期协同时暴露出很多问题但没时间改。

​ 完赛后提速时是最能暴露问题的,而且三轮车和两轮车机械结构上面大有文章(特别是我们这次是自制车模,后期机械结构严重影响了上限速度),但因为我们时间剩余不多,不敢大改结构,没办法只能接受上限,调到最后过弯甚至有一边轮子都要侧边离地了,现在想想如果早点完赛了,或许最后比赛车的结构会和现在大相径庭。多车组一定要快完赛!(可以先舍弃一部分东西比如先开速度环跑、元素减速跑等等)

机械结构

​ 我对这方面可以说是深有研究,我先说结论:对两轮平衡车和自制车模的三轮非常关键,对带舵机的四轮不太关键。开始我是先用的两轮平衡车跑的多车,调了真的很久很久,机械结构大改过不下四次(那种很大的改动),对于电磁车,电磁杆一定要轻且伸长距离要长,就用我们这种碳素杆上粘冠军电感的方式(电感要买冠军电感,不懂问学长),这种结构能极大减轻车辆惯性,这些东西前期其实不太明显,但对后期提速影响会非常大,前期工作一定要做好!

​ 如果你调的够久你会发现你的车上限会取决于机械结构而不是算法的,信我。然后就是平衡车要把重量集中到两个轮子轴附近,特别是那个电池,一定要近近的靠在马达附近,别想着车前后重量一样就行,要把重量集中在中间,这样过弯才不会甩尾。电池别买那种特别轻的,就别在逐飞店里买,直接买航模电池,也不贵,但是性能特别好,买个两三千毫安就够了,电池重了对电磁出环有点影响,容易出不去环。轻了过弯容易一个轮子离地,需要取舍。

​ 电感的排布方式不太建议参考学长的,学长这种用到后期其实是比较大弊端的,其中三个横向的可以用,两个垂直地面的效果不好,具体怎么搞你们多参考参考别人的方法,学长这方面也没什么经验。三轮车的结构:我们的三轮是一个直立车模加万向轮改的,其实这种结构是很不错的,实用性很高因为灵活,而且避开了舵机这个大坑(舵机是个很坑爹的东西,容易出毛病得很,而且不好和差速拟合,拟合不好容易打滑,能不用尽量别用),我们这个结构也是几乎就是两轮平衡车加个轮子就行了,重心啥的要求和平衡车一样,最好在没有轮子的时候放在重心和加上轮子时是一个角度,那是最完美的应该(猜想没验证)。
在这里插入图片描述

这是我认为这届自制车模最好的结构,也是用两轮的车模加上两个轮子,舍弃了舵机结构,这样车模比较短,比传统的舵机结构多很多的灵活性电磁杆非常细且前瞻长,采用大摩擦硅胶轮胎防止过弯打滑,侧翼增加重量防止过弯轮子离地。在我看来几乎可以称得上完美,不过这是一辆基础电磁四轮组的自制车模,如果不要求有四个轮子我认为把后面两个硅胶轮子换成我们这种万向轮即可。

机械结构是值得深思的一个地方,而且对于两轮、三轮结构,特别容易影响上限速度,两米多的时候就能体现的很明显(电磁更加重要),我的建议是在B站多看看别人快车的结构,偷学偷学,然后模仿他们的搭,因为后期改结构成本太大,前期直接一步到位能给后期留很大的进步空间

两轮车

这是我最喜欢的车型,也是我认为上线最高的车型,结构好的两轮跑起来真的非常快,当其他车型因为速度太快导致转弯困难时,两轮因为前后重量几乎相差不多,所以转向起来十分灵活,非常适合竞速
两轮的机械结构真的非常重要,我在调试两轮的过程中不断改变前后配重,有如下理解:
1.好的直立角度,虽然听说有的直立车找不到机械零度(就是能不能手扶着让他站起来的角度,就像一颗鸡蛋你总能找到一个角度把他立起来),一样能跑的很好。因为重心可能太过偏移,我认为这种直立车在转向上将失去优势,所以我还是推荐将机械结构前后重量基本保持一致。还有一点是重心一定要低,将重量尽量靠近两个电机轮子,这对后期提速非常关键。
2.串级PID,串级PID我认为是非常有效且好用的,速度环、角度环、角速度环三环层层嵌套能让你的车车又硬又稳,不过串级PID的调试十分困难,建议调到一个比较好的程度的时候就不要乱动了,这部分会浪费你非常多的时间。
3.电池的选择,有很多人买那种智能车配套的镍铬电池,那种电池是非常不适合直立车的,当初我用学长的老镍铬电池下坡怎么都刹不住车,花了很久找问题,最后买了一块航模锂电池直接就解决了,航模锂电池的性能真的比镍镉电池好的多。在这里插入图片描述

三轮车

比赛我一共调了两辆三轮车,都是用的直立车模后面加上一个万向轮(其中一辆是赛前十天临时搭的,用的还和这辆不是同一个芯片类型,也算速成通关了)
在这里插入图片描述
这种结构其实是比较不好用的,因为屁股太沉很难上速度,最后在快要比赛的时候也验证了这一点,只要再快在转向时就会明显听到车轮打滑的声音,轮胎处理过后也没办法有效解决,所以慎重选择这种结构。
比较优秀的三轮结构还是传统的将万向轮或者全向轮放在前面,两个电机控制的轮子放在后面比较好。

四轮车

这种结构我没调试过,但看队友调试,赛点其他队伍采用四轮的也比较多,所以通过观察还是能给一些提议的。
四轮车的舵机真的非常拉跨,一定要多买几个,至少多买一个千万别嫌心疼钱,如果车模前有防撞杆一定要加上保护舵机。
四轮对结构的要求是最宽松的,很难出现两轮三轮那种横向打滑,但是由于车长和舵机受限就很难原地转向,所以我认为配合摄像头是比较优质的搭配,电磁还是和三轮两轮比较配。四轮的结构只要遵循寻重心尽量低这个原则就行了。
如果四轮选择了摄像头,一定要在调试的中后期直接把摄像头用胶枪和固定支架粘死,不然意外将摄像头撞歪的话会让你非常难受。


5.大致流程

​ 先买学习板和核心板,用逐飞的东西把车搭起来,然后试试各个传感器,让车简单寻迹走走。硬件快速仿照逐飞和学长的资料抄板子。

电池的选择,有很多人买那种智能车配套的镍铬电池,那种电池是非常不适合直立车的,当初我用学长的老镍铬电池下坡怎么都刹不住车,想了很多软件上的办法但效果都不是很好,因为我之前一直坚信好的代码是和车辆机械的上限分开的,所以花了很久找软件上的问题,但最后买了一块航模锂电池的当天晚上就直接就解决了这个问题,所以软件很重要但合适的硬件也非常重要。

航模锂电池的性能真的比镍镉电池好的多,而且搭配实验室B6充电器,可以平衡充,相较于用B3充电器傻充,能很好的延长电池的使用寿命,锂电池是比较娇贵的,一定要合适的保养,不然容易鼓泡(切记别用B3充电器充锂电池)

6.必备技能

​ 智能车想调好,GIT必须会!一共用的没几条指令,但真的用处极大,很方便你随时后悔,因为智能车很常见的情况是调着调着发现还是昨天的代码好用,这时候如果你在GIT的仓库里提交过昨天代码你就可以拥有后悔药。

学会GIT

这是我认为智能车最需要的一个技能之一,因为调车后期你会经常性的更改参数,然后跑着跑着你就会后悔,这参数还不如昨天调的,这时候如果你会用GIT回滚代码就会非常占优势,而且如果将你的代码上传云端(gitee或者github),即使你的电脑原地爆炸你也不用担心代码会丢失。
GIT的安装我就不赘述,这些请自行百度或者B站搜索,下面的内容你需要有点基础才能看懂,我介绍几个我经常用的指令:

git init   #本地仓库初始化

初始化后,以后提交代码只需要如下两个命令就可以了。

git add .   #将所有项放入缓存区
git commit -m  "在这里起个名字吧"   #提交缓存区内容并起个名字

如果你想上传代码到云端,请先注册gitee或者github(我推荐用gitee,因为你不开源的话没必要用github这种外网,翻墙啥的还是比较麻烦的)
按照gitee上面的提示新建好仓库后

git push  #上传云端

如果想查看历史提交

git log  #查看历史提交

如果想回滚某次历史,我一般是先将原来的文件夹进行性拷贝,因为我选择的回滚方式一般都是硬回滚,会将回滚节点后的本地文件夹仓库内容清除,先拷贝一下是防止新更改内容的丢失。

先用git log命令查看历史节点,然后复制想回滚节点的哈希值,接着输入如下命令(后面那串是你要回滚节点的哈希值)
在这里插入图片描述

git reset --hard 5b6ff663b17a9c4ef5593e40cf85fd666661fa1a

这时你的仓库全部变成了你当初的模样,我一般常用的指令就这么几个,应付智能车基本足够了。

上位机

上位机要好用,这里我推荐山外上位机,当然肯定还有别的,还有就是摄像头要用比如WIFI图传来看图像,这点咨询摄像头学长。上位机能极大的方便你的调试,像速度PID的整定,如果缺少上位机,你很难通过观察判断速度的收敛速度,用上位机的话你能一目了然变量变化趋势,PID是否收敛迅速,变量变化是否够快。

上位机的使用参考都在上位机文件夹中,里面的使用文档描述非常详细,可以搭配图传进行图像展示,或者根据帧格式发送要观测的变量波形。

代码风格

代码一定要工整!要有格局!要有注解!因为智能车是长跑,你不写注解几个月后你真的可能看不懂你的代码;你写的不够工整后期真的是堆屎山,真的会恶心到你自己;你写的没格局你到时候还得大刀阔斧改重新构筑。

上面三个必备技能你真的必备,真的必备,真的必备!

7.反省

如果回想智能车比赛我们有什么地方做得不够好导致最后国赛没办法冲击国一,我想有几个原因。第一个是开始时方向错误,因为对多车组今年规则(自制车模)这个东西不足够了解,不清楚两轮、三轮、四轮各个车型和电磁、摄像头传感器的选择,导致浪费了很多时间,做了很多无用功,就算打完了比赛,最终方案里没有直立车,我感觉我对智能车两轮的理解还是远超三轮,说明前期选择上出了很大问题。第二,完赛速度不够快,我们学长就告诉过我们要快速完赛,但我们因为有两名成员课程安排和疫情考试提前等原因,导致调车时间不够,完赛很晚,相较于上一级国二学长完赛晚了一个多月,这点我感觉是非常致命的,因为多车组的任务不只是完成元素的处理和速度的提升,还有协同也非常关键,有些东西是需要完赛后才能发现及时调整的,比如我们开始速度环就选择和学长一样100ms控制一次,但到后期发现今年比赛协同速度要求比较高,速度环可能20ms或者50ms一次控制会效果更好,但由于时间问题也没法修改。还有就是本来我们尾车采用摄像头四轮,但是发现多车协调时容易照到前方车辆导致误判,所以在省赛前10天左右改为电磁三轮,幸好我们有多余的传感器和车模主板等,导致硬件压力很小,最终更改方案成功。

最后一段

做智能车最重要的就是多多尝试,这个比赛就算你有祖传代码也未必就能获得很好的成绩,想取得好的成绩必须要不断的尝试创新,这篇内容很短,有很多细节我没提到也不想提,我想大多数老智能车选手都和我一样,知到最好的建议就是多多尝试。希望这篇内容能够帮助你入门智能车,这篇内容主要针对的是早期工作,因为不论是GIT还是机械结构,都需要趁早准备,这些东西一旦准备得当会让你很容易提高成绩,减少后期的返工率。希望能够帮助到你。

  • 15
    点赞
  • 91
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值