22/9/25更新

最近发现这篇博客被越来越多人收藏,我受宠若惊。为了给大家提供更准确的参考,我在今晚修改了之前的全文内容,并删掉一些没用的废话。

22/4/15更新

发现这篇文章被很多人看到了,潦草地追更一下国赛的体会。

1. 前言

第七届工程训练大赛省赛落下帷幕已过半月,侥幸取得第二的成绩,等待九月份的国赛。
本人是机械工程专业,从零开始自学,学习路线大概是:C语言 - 二维/三维建模 - 51 - stm32 - Python - OpenMV - 控制。
在开始准备这个比赛前,参与了各类竞赛来练手,例如编程——程序设计竞赛,建模——机械创新竞赛,单片机——电赛,各位也可以参加下。
因为,工训赛物流赛项是一个非常综合的竞赛,如果你的小队只有你自己,就需要丰富的技术栈,初期可以学的不深,但要对各方面都略懂,知道如何查找资料。

2. 省赛总结

从校赛到省赛,可谓是起起落落起起,深刻体会到实力并不占据比赛的全部,运气也很重要。
校赛在寒假过后就开始比了,三分钟跑了一圈完成所有任务后回库,拿了个第一名。由于第六届的比赛只有一小部分参赛队能够完成任务,且三分钟完成一圈凤毛麟角,于是校赛后就没有再进行优化。直到临近比赛的前半个月,陆陆续续有各此赛项的比赛视频上传,忽然发现这个赛项开始卷起来了。

2.1 选材

  • 主控:stm32f1作为核心主控,arduino328用来控制机械臂,
  • 机械臂:采用五自由度悬臂梁式机械臂,舵机。
  • 视觉:OpenMV4
  • 底盘:麦轮底盘,JY61陀螺仪,直流减速电机,tb6612驱动

2.2 视觉

由于主办方的失误,导致场地内二维码印刷模糊,几乎所有以OpenMV开发视觉的队伍无法识别二维码,我花费了所有调试时间来修复二维码识别,仍无可奈何。

为了追求更少的用时,在颜色识别时我采用一次识别六个物料的策略,这样从比赛开始到物料识别完成只需要不到7秒的时间,但这对环境和定位的要求很高。
虽然靶环对准非常的好用(并不),然而受到时间的约束,被迫删掉这一功能。

OpenMV由于限制太多,其实并不好用。我更推荐使用OpenCV来开发视觉。
关于 OpenMV 的快速上手,可以看我之前写过的博客

2.3 底盘

车体机械部分是最大的败笔,结构一塌糊涂:近5kg的负重导致下层亚克力板变形,机械臂重心过高过前极大地影响车身行进过程中的姿态,冗余的上层板限制了机械臂的活动范围,大量的连接部分皆用哥俩好固定,以上各位要避坑。
底盘控制部分为PD闭环融合单轴陀螺仪实现速度闭环,位置开环,没有用到寻迹,定位的误差大概在1cm左右。
因为识别与抓取需要更精准的定位,所以用了5个红外传感器找黑线(第二处决策失误,个人感觉用多路灰度传感器更好)。

2.4 机械臂

对于机械臂结构,不再推荐使用传统多自由度悬臂梁式机械臂。例如线传动式机械臂,并联机械臂,三自由度悬臂梁等等,发挥的都要比传统的六自由度悬臂梁机械臂要更精准与稳定。各个小车的底盘结构也非常精致与顺滑,看得我是越来越自闭、越来越羡慕。也很羡慕人家的四人小队,各司其职,而我只能单打独斗。这也是为什么我在对自己车体的机械结构不满后没有重做的原因,没钱没人手更没时间。
迫于那么多优秀队伍的压力,在省赛前几天内完成了三分钟两圈+码垛的程序。
在这其中深刻体会到的是:机械结构比电控更重要
因为机械结构层出不穷的问题,不得不用电控方面来补偿,浪费了大量的时间与精力。
如果使用多自由度悬臂梁结构,对速度的要求可以放弃了。在省赛初赛调试时由于关节转速过快、臂身承重过高,导致舵机齿轮损坏。
在学校能做到三分钟跑完两圈+码垛,到了现场只能出个库,很无语。
第二天初赛,主办方把二维码重新打印了。可机械臂舵机损坏,没办法完成后续的动作。
幸运的是全靠对手衬托,侥幸过了初赛。到了决赛,换上了老师连夜回学校找到的舵机。

3. 比赛流程

初赛的时候没有复杂的流程,在场地内安心调试就好。
在初赛,有好多弃赛的、扫不了码的、车坏的队伍,在出发前往比赛前一定要仔细检查物流车是否有损坏,并带好易损坏模块的备用件

决赛的流程是这样的:

  • 下午一点半公布新物料和场地图。新物料只有半截大拇指大小,幸运的是赛前已经考虑到所有情况,所以并无大碍。
  • 前往加工中心设计新的抓取末端
  • 下午三点,主办方收回加工好的抓取末端,我们回去取车,带着车前往教室拆装爪子。
  • 下午四点,前往新场地开始调试,直到晚上九点。
  • 下午五点,主办方开始循环发送任务码供我们调试。连到公共局域网后,TCP和UDP都可以使用,我采用的是TCP协议,WIFI模块使用正点原子的ATK-ESP8266。

场地设置和规则一样随机,精加工区、半成品区色环皆为随机,不过没想到场地内有两个桥,且在整个调试时间内,条形码主办方没给贴。

从五点开始,到九点共四个小时,一个场地七八个队伍,我能在场地跑的时间只有一个小时,别的队伍也一样。所以推荐事先封装好所有的代码,不要让你的代码太杂乱无章
因为时间紧迫,并没有和同场的队伍交流路径,导致决赛撞车了。
最后跑了大概两百分吧。

4.国赛总结

在国赛前的视频赛阶段,这才看到了很多大佬的物流车,发现我们当前的技术实力确实不行。
此时,已经是八月份了,我和我的队员都在紧张的考研。
秉持着对竞赛的热爱以及对国赛取得成就的追求,我们从图书馆重新回到实验室,推翻了现有的物流车版本,从机械到程序全部重做,终于在半个月后赶工了出来,又调试了半个月的程序。

说一下相较之前更新了什么吧:

  • 舵机改用串口舵机,从之前的五自由度悬臂梁式改为了四自由度,独立出放物料的托盘,改进后,单次抓取一个物料到放入车内仅需要2秒。
  • 传感器改用四个七路灰度传感器,定位更精确了。
  • 花了很多心思在美观设计上,感觉还不错。
  • 采用双主控stm32f1,加入闭环控制。
  • 重新写了定位的逻辑。
  • 整车碳纤维

最后跑完两圈回库的用时是2分40秒,并且能准确的码垛。

然而,随着调试次数的增多,舵机的磨损加剧,导致误差越来越大,然而我们已经消耗了太多的精力在比赛上,无力再去换舵机。这就导致了在正式比赛时舵机的转角误差达到了5度左右。
最后,我们初赛的成绩还不错,进了决赛,但是决赛中wifi没有接收到,分数很低,拿了个银奖。
不过这时候我们的心思全在考研上,结果已经不重要了。

现在考研已经结束了,对于工训赛,我整整准备了一年,作为一个纯机械的学生来说,一切的东西对我来说都是崭新的,几乎是边学边做,最后的结果对我来说也是很满意的。现在回顾一下这个比赛,我认为有几个比较重要的地方在这里交流一下:

  • 想要取得好成绩,就要舍得砸钱。几乎你的成绩如何,70%取决于钱砸的多少,有钱的可以去了解一下全场定位模块,第一自由度的舵机也一定要用最好的。我们车的成本大概在6k左右,有很多车的成本是1w以上的。
  • 零基础小白也适合参与这个赛项,对全栈能力是一个很好的提升方法。
  • 这个比赛的技术更新换代很快,两年前的经验基本上没用了。
  • 程序最好完全由一个人来写,这个人也要在队伍中有一定的话语权。
  • 机械结构很重要,队伍里最好要有个创新能力强的人。

【竞赛总结】第七届工程训练大赛智能搬运赛项心得相关推荐

  1. 第七届工程训练大赛垃圾分类

    第七届全国大学生工程训练大赛垃圾分类 前言 一.机械结构设计 1.Solidworks建模 2.建模的不足以及改进 1.挡板的添加 2.履带防滑 3.整体实物 二.视觉识别部分 1.引入库 2.识别部 ...

  2. 第七届工程训练比赛之智能垃圾分类

    2021第七届工程训练综合能力竞赛之智能垃圾分类 前言 写在前面:第一次写博客,想把这半年的备赛经历记录下来分享分享给大家,如有错误欢迎大家指正. 比赛成绩:1分23秒(播放宣传片到满载结束) 基本配 ...

  3. 第七届全国大学生工程训练大赛智能+赛道生活垃圾分类垃圾训练步骤(win10+yolov4-tiny)

    目录 前言 1.安装cuda和cudnn11.1并配置 2.Yolov4-tiny垃圾训练步骤 前言 第七届全国大学生工程训练大赛结束也有一段日子了,成绩还不错,拿了个国一,在这里总结一下,垃圾桶上用 ...

  4. 计算机办公软件技能大赛试题,第七届计算机技能大赛办公软件操作比赛顺利举行...

    为提高广大青年的计算机应用水平,增强动手实践能力,5月5日晚七点我校第七届计算机技能大赛办公软件操作比赛分别在在计算机楼201.206.307机房举行. 来自全校各学院各个年级的五二百余名青年学子参与 ...

  5. 物联计算机大赛,“翼灵杯”第七届物联网创意大赛成功举办

    筹备近一个月的"翼灵杯"第七届物联网创意大赛在2019年12月20日晚明理楼B区B306落下帷幕.本次大赛由计算机科学学院学生科技团队--翼灵物联工作室举办,比赛历经20天,大赛初 ...

  6. 第七届河南省程序设计大赛——A 海岛争霸

    第七届河南省程序设计大赛 A 海岛争霸 内存限制:64MB 时间限制:1s Special Judge: No 题目描述: 神秘的海洋,惊险的探险之路,打捞海底宝藏,激烈的海战,海盗劫富等等.加勒比海 ...

  7. 计算机科学与技术有剪辑吗,计算机科学与技术学院第七届“微剪辑大赛”

    2020年12月21日晚上19:30,由计算机科学与技术学院e次元多媒体联盟主办的第七届"微剪辑大赛"在特教楼北配201报告厅举行决赛.两位主持人由社团20级干事主持本次活动,邀请 ...

  8. 第七届河南省程序设计大赛~~海岛争霸(nyoj 1248)

    海岛争霸 时间限制:1000 ms  |  内存限制:65535 KB 难度:3 描述 神秘的海洋,惊险的探险之路,打捞海底宝藏,激烈的海战,海盗劫富等等.加勒比海盗,你知道吧?杰克船长驾驶着自己的的 ...

  9. ARDUINO + openmv 颜色 识别 工程训练大赛

    停车 识别三种颜色 通过串口 发送给arduino 进行处理..利用的是色块的横坐标 大小比较 从而将三种颜色 排列组合 到达排序效果 针对工程训练大赛 openmv 颜色识别 共享此代码 欢迎学习 ...

最新文章

  1. 不同模块下包重名怎么解决_模块
  2. magento本地安装成功后无法进入后台,密码和用户名均正确 .
  3. ARKit文档翻译之AROrientationTrackingConfiguration类
  4. 深度剖析WinPcap之(七)——获得与释放网络适配器设备列表(5)
  5. POJ-1556 The Doors 线段相交+最短路
  6. “根本就不需要 Kafka 这样的大型分布式系统!”
  7. http server类型和版本号_nginx 简单隐藏服务器版本号
  8. XenApp备份方法
  9. JavaScript的Date类的函数特殊处理导致的问题
  10. 简单web服务器的实现(C++)
  11. 【转载】转别人写的HTMLCSS 详细笔记脉络--很详细
  12. chrome-调试按钮详解
  13. Unity接入苹果内购(IAP)
  14. 陪玩MM千千万,谁是你的NO.1?使用Python获取陪玩照片进行颜值检测打分
  15. 炼丹心得|追求极致的比赛冠军什么样?
  16. 【原创】kettle转换组件杂记-【javascript组件】获取当前时间的前一天/后一天
  17. 在Vue中使用flex布局 echarts多图标不能自适应缩放问题
  18. 一、获取时间所在周的周一、周五
  19. 基于SpringBoot的漫画网站设计与实现
  20. 读博的选择,读博,还是不读博?

热门文章

  1. LinkedIn learning (旧Lynda)国外图书馆账号申请
  2. 王垠对 JS 的评价
  3. 基于树的模型的更好功能
  4. java类索引_java中索引的分类,图片详解
  5. Ext.get()和Ext.getCmp()
  6. wan端口未连接怎么弄_wan口未连接是什么意思?
  7. torch.nn 和 torch.functional 的区别
  8. 用手机或电脑连接另一台电脑桌面远程控制的软件TeamViewer
  9. 欣易辰视频短信的优势
  10. 计算机键盘可以分为哪几个区,键盘分为哪几个区?分别是什么?