第七届工程训练大赛智能搬运赛项心得(已更新到国赛)

目录

  • 前言
  • 1.总结
  • 2.车
    • 选材
    • 视觉——二维码,条形码
    • 视觉——颜色识别、靶环对准、码垛对准
    • 车体、底盘
    • 机械臂
  • 2.决赛
  • 3.初赛
  • 4.国赛

前言

第七届工程训练大赛省赛落下帷幕已过半月,侥幸取得第二,等待九月份的国赛。对于物流小车智能搬运赛项忙前忙后已有半年,机械工程专业的我来说,完全是零基础从零开始的软硬件开发,一个人完成几乎所有的工作,没有买任何套件和例程。于此有一些心得体会与大家分享。以下可能文不对小标题,不用在意,我只是想到什么说什么。

1.总结

从校赛到省赛,可谓是起起落落起起,深刻体会到实力并不占据比赛的全部,运气拿大头。校赛在寒假过后就开始比了,三分钟跑了一圈完成所有任务后回库,拿了个校一。根据查阅到的第六届的比赛现场,得知大部分小车都只能完成基础的动作,三分钟完成一圈已是大部分人的极限。于是校赛完成后就没有再更新程序了。直到临近比赛的前半个月,陆陆续续有各此赛项的比赛视频上传,我发现这个赛项开始卷起来了。
单说机械臂结构,悬臂梁已经被淘汰,各结构如线传动式机械臂,并联机械臂,三自由度悬臂梁等等,发挥的都要比传统的六自由度悬臂梁机械臂要更精准与稳定。各个小车的底盘结构也非常精致与顺滑,看得我是越来越自闭、越来越羡慕。也很羡慕人家的四人小队,各司其职,而我只能单打独斗,这也是为什么我在对自己车体的机械结构不满后没有重做的原因,没钱没人手更没时间。
迫于那么多优秀队伍的压力,在省赛前几天内完成了三分钟两圈+码垛。
在这其中深刻体会到的是:机械结构比电控更重要
因为机械结构层出不穷的问题,不得不用电控方面来补偿,浪费了大量的时间与精力。在大部分的时间里我都在用程序与机械打架。

2.车

选材

stm32f1作为核心主控,arduino328用来控制机械臂,
机械臂采用悬臂梁式机械臂,算上爪部为六自由度,没有做动作闭环。
视觉方面采用openmv3(后换成openmv4)
无悬挂麦轮底盘,JY61陀螺仪,直流减速电机,tb6612驱动

视觉——二维码,条形码

在省赛初赛,很不幸,我倒在了视觉上。
由于主办方的失误,导致场地内二维码反光,且印刷模糊,几乎所有以openmv系列开发视觉的队伍无法识别二维码。
更由于我的决策失误,花费了所有测试时间来修复二维码识别。
我更推荐我的学弟们用opencv来开发视觉,虽然扫码枪更好用,但我不喜欢。
对于以上出现的问题,如二维码前有亚克力覆盖导致的反光,二维码模糊无法识别,及其他我遇到的与二维码有关的一些问题,我会单独写一篇博客详细指导如何用openmv识别二维码。

视觉——颜色识别、靶环对准、码垛对准

为了追求极致的速度,所有颜色识别皆为一次识别所有(上下层共六个),这样从比赛开始到物料识别完成只需要不到7秒的时间。
但这对环境和定位的要求很高。
虽然靶环对准非常的好用(并不),然而受到时间的约束,被迫删掉这一功能,可想而知,我浪费在这些不必要东西上的时间有多多。
同样我也会在之后的博客内开源上述有关视觉方面的全部代码。

车体、底盘

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

机械臂

对于多自由度悬臂梁结构,对速度的要求可以放弃了,在省赛初赛交车前因为把速度调快了,舵机承重过高,导致齿轮损坏,这是我万万没想到的。交车时,二维码无法扫描,机械臂舵机报废,这无异于直接宣告着你比赛的结束。
在学校能做到三分钟跑完两圈+码垛,到了现场只能出个库,半夜在酒店内我几近崩溃。
第二天初赛,主办方把二维码重新打印了,能被扫到。可机械臂舵机损坏,没办法完成后续的动作。
幸运的是全靠对手衬托,侥幸过了初赛。
到了决赛,换上了老师连夜回学校找到的舵机,一切似乎好起来了。

2.决赛

决赛的流程是这样的:
下午一点半公布了新形状的物料和场地图,紧接着去加工中心设计新的机械爪。新物料只有半截大拇指大小,幸运的是赛前已经考虑到所有情况,所以并无大碍。三点,主办方收回加工好的机械爪,我们回去取车,带着车前往教室拆装爪子。四点,前往新场地开始调车,直到晚上九点。
场地设置和规则一样随机,精加工区、半成品区色环皆为随机,不过没想到场地内有两个桥,且在整个调试时间内,条形码主办方没给贴。
关于wifi:在五点开始,主办方开始循环发送任务码供我们调试。连到公共局域网后,TCP和UDP都可以使用,我采用的是TPC协议。使用正点原子的atk-esp8266,可以正常接收。
从五点开始,到九点共四个小时,一个场地七八个队伍,我能在场地跑的时间只有一个小时,别的队伍也一样。我事先封装好了所有的代码,到了决赛只需调整参数,紧赶慢赶才能完整的跑完一圈。
因为时间紧迫,并没有和同场的队伍交流路径,导致决赛撞车了。。。
最后跑了大概两百分吧。

3.初赛

初赛看到了一些有意思的,例如大疆的步兵,淘宝同款视觉机械臂,真的没必要。
好多弃赛的、扫不了码的、车坏的,实属正常,我发现这个比赛比电赛还要水一点,判断标准就是运气成分的占比。
这个运气包括很多东西,比如单纯的个人运气,主办方考虑的周到与否,其它队伍的素质问题等等。

4.国赛

2022.4.15更新
发现这篇文章被很多人看到了,有些受宠若惊,潦草地追更一下国赛的体会。
在国赛前的视频赛阶段,这才看到了很多大佬的物流车,发现我们当前的技术实力确实不行。
此时,已经是八月份了,我和我的队员都在紧张的考研。
秉持着对竞赛的热爱以及对国赛取得成就的追求,我们从图书馆重新回到实验室,推翻了现有的物流车版本,
从机械到程序全部重做,终于在半个月后赶工了出来,又调试了半个月的程序。
说一下相较之前更新了什么吧:
1.舵机改用串口舵机,从之前的五自由度悬臂梁式改为了四自由度,独立出放物料的托盘,改进后,单次抓取一个物料到放入车内仅需要2秒。
2.传感器改用四个七路灰度传感器,定位更精确了。
3.花了很多心思在美观设计上,感觉还不错。
4.采用双主控stm32f1,加入闭环控制。
5.重新写了定位的逻辑。
最后跑完两圈回库的用时是2分40秒,并且能准确的码垛。

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

现在考研已经结束了,对于工训赛,我整整准备了一年,作为一个纯机械的学生来说,一切的东西对我来说都是崭新的,几乎是边学边做,最后的结果对我来说也是很满意的。现在回顾一下这个比赛,我认为有几个比较重要的地方在这里交流一下:
1.想要取得好成绩,就要舍得砸钱。几乎你的成绩如何,70%取决于钱砸的多少,有钱的可以去了解一下全场定位模块,第一自由度的舵机也一定要用最好的。我们车的成本大概在6k左右,有很多车的成本是1w以上的。
2.零基础小白也适合参与这个赛项,对全栈能力是一个很好的提升方法。
3.这个比赛的技术更新换代很快,两年前的经验基本上没用了。
4.程序最好完全由一个人来写,这个人也要在队伍中有一定的话语权。
5.机械结构很重要,队伍里最好要有个创新能力强的人。
(完结)

你可能感兴趣的:(stm32)