2022年 大学生工程训练比赛[物料搬运]

news2025/1/17 18:06:20

本人和团结参加了2022年大学生工程训练(简称工训赛)校赛选拔,准备了几个月的时间和花费了较多的资金,由于疫情等多种情况,很遗憾未能参加湖南省省赛,过了这么久还是写个博客记录参赛准备和调试过程。

目录

 一、比赛要求

二、整体思路

 三、硬件模块

 四、视觉部分

五、机械臂部分

五、软件定位部分


 一、比赛要求

比赛流程:水平铺设的赛场尺寸为2400>2400 (mm)正方形平面区域(如图1所示,两条红色的中心线,实际上没有),赛场周围安装80 mm高的亚光白色挡板,仅作为场地边界标识,不宜作为寻边、定位等其它任何用途。赛道地面为浅黄色,地面图案中央设有4块340>340 (mm)黑色方框,为机器人不能进入区域,线宽(方框内侧)为20mm。在比赛场地内,设置出发区、返回区、中转区、物料投放区(前线)、挂件区(后方)。其中机器人初赛自主规划路径,完成战争物资的搬运过程,取货(中转区),运送前线(物料投放区),胜利后挂奖章(挂件区) ;机器人决赛,两台机器人传递情报(出发区),飞车夺物 (中转区),敌后安装炸弹爆破(物料投放区),胜利会师(挂件区)。出发区和返回区的尺寸均为300x300 (mm),颜色分别为青色和紫色。 

 


二、整体思路

       智能物流搬运小车采用树莓派做为小车的大脑,通过和stm32Arduino、激光雷达等通讯达到比赛要求定位,机械臂,移动等操作, 通过树莓派接收IMU、激光雷达进行里程计的算法确定当前位置、通过ros给与目标点,计算出最信任路径,并且通过对物料颜色、边沿识别调整智能车位置,调整完毕,机械臂进行抓取和精准放置。

系统方案难点:

1、定位:定位采用激光雷达、IMU等较精密模块,对底盘驱动要求极为苛刻

2、物料识别:对于物料的识别过程中需要精准的传输物料的位置信息给树莓派,光源、杂波会识别造成影响

3、机械臂:通过设想需要自行设计并调试其是否精准抓取并放置物料


 三、硬件模块

讲个小故事:在调试的时候,当时我们使用的铝板会导电,发生了俩次意外,短路导致实验室电闸都跳了,实验室一半的电脑黑屏,所以大家一定要注意,不然芯片易烧坏也不安全!

        硬件本次使用了较多,包括整个小车的框架,在轮趣科技购买较贵,包括使用树莓派、为了配合电机驱动画了一个stm32来使用减少杜邦线,大家可以比较一下,可以看出本来和电机和霍尔传感器连接的线都减去了,看起来更整洁了也更加稳定。

      本次的核心板是自行设计的,所以大家使用的时候要根据自己的io口去设计,由于为了稳定MPU6050,也将其设计进去,经过测试还是很稳定的!

      由于使用了很多模块,于是电量使用很多,那么电接口也是很多的,也是为了美化其接线,设计电源管理模块,使用boost和buck'电路,但是该模块在实际使用中不够好,电流输出还是弱了,最终还是买了俩个升压和降压模块,将其设计成一个电源管理模块。

 

 

 本次最为主要的模块列如下,还包括很多测试但是未使用的器材,所以整体花销还是较大的。

序号所需器件7摄像头模块
1树莓派8电池
2stm32核心板9电源管理模块
3电机驱动板10IMU惯导
4舵机11地图搭建
5机械臂组件12Arduino加驱动板
6小车结构铝板13激光测距模块

 四、视觉部分

       利用摄像头和通过python编写相关算法对物料的颜色和边缘进行提取和识别,发送正确信息至树莓派,树莓派发送信息给arduino驱动机械臂和发送给32调整智能车的位置。

       识别二维码和条形码获取二维码和条形码中包含的信息从而了解比赛的相关信息。

本人负责硬件、材料购买和文章方面,视觉和定位方面不能详细为大家介绍,只能稍提一嘴

        其中光线会影响到其识别到的位置,所以需要高精度的滤波,使用膨化,腐蚀等方法尽量的消除外界的影响,从而传递一个精确的位置给树莓派主控。 


五、机械臂部分

        机械臂使用的为分开购买舵机和组件,大家要注意的是:舵机一个一个调零后再进行组装,不然组装好了还得拆,很麻烦的,当时我和学弟俩个花了好久才最终搞好这个机械臂,因为不是一套的,所以部分卡住,需要暴力组装,当时设想的是从上往下抓物料,通过在网上寻找找到了一个类似这样的,但是通过打印出来实际效果不够好。

        机械臂调试过程,可以通过ros建模,在ros操作机械臂,现实中机械臂便会复现,机械臂部分最主要的要前面识别的位置精确才能更好的进行调试,下面是调试的视频。

机械臂


五、软件定位部分

      本次比赛定位为难点,采用的方案为激光雷达+IMU(惯导)+里程计(代码部分)进行处理

      通过激光雷达和IMU进行收集场地数据和滤波处理后,并且通过里程计的计算将数据传给树莓派、树莓派运行ros软件确定现在小车所在位置

      驱动:通过ros了解智能车所在位置后、通过ros给与智能车目标点,并且通过计算给出最信任的路径、发送速度信息给stm32、32驱动电机行驶,在运行过程中通过霍尔编码器和定位设备不断进行调整达到路径规划的效果


      下面为智能车整体部分,还缺少一部分未安装,当时是在前期调试过程中拍的,视频也是在参加校赛选拔时,为了答辩准备的,但是最终还是遗憾的未能参加省赛,但是还是学了很多。

工训赛智能车


 参考资料:

 2021-工程实践与创新大赛-智能物流搬运 - 知乎

 http://t.csdn.cn/wxZlS

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/155733.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

第十章面向对象编程(高级部分)

10.1 类变量和类方法(关键字static) 10.1.31类变量快速入门 思考: 如果,设计一个 int count 表示总人数,我们在创建一个小孩时,就把 count 加 1,并且 count 是所有对象共享的就 ok 了! package com.hspedu.static_;public class ChildGame {…

MS【1】:Metric

文章目录前言1. Dice Loss1.1. Dice coefficient1.2. F1 score - Dice1.3. Dice Loss2. Sensitivity & Specificity2.1. Sensitivity2.2. Specificity3. Hausdorff distance3.1. 概念3.2. 单向 Hausdorff distance3.3. 双向 Hausdorff distance3.4. 部分 Hausdorff distanc…

使用ResNet18实现CIFAR100数据集的训练

如果对你有用的话,希望能够点赞支持一下,这样我就能有更多的动力更新更多的学习笔记了。😄😄 使用ResNet进行CIFAR-10数据集进行测试,这里使用的是将CIFAR-10数据集的分辨率扩大到32X32,因为算力相关的…

二、数据仓库模型设计

数据仓库模型设计一、数据模型二、关系模型三、维度模型1、事实表(1)事务事实表(2)周期快照事实表(3)累计快照事实表(4)无事实的事实表2、维度表3、维度模型类型(1&#…

LVGL学习笔记16 - 进度条Bar

目录 1. Parts 2. 模式 2.1 LV_BAR_MODE_SYMMETRICAL:对称模式 2.2 LV_BAR_MODE_RANGE:范围模式 3. 动画 4. 样式 4.1 方向 4.2 渐变色 4.3 增加边框 4.4 滚动条方向 进度条有一个背景和一个指示器组成,通过lv_bar_create创建对象。…

mysql多表查询

一、关联查询(联合查询) 1.1 什么是关联查询 关联查询:两个或者多个表,一起查询。 前提条件: 这些一起查询的表之间是有关系的(一对一、一对多),它们之间一定是有关联字段&#x…

初识IL2CPP

在Unity中进行打包时,有两种打包方式选择:Mono和IL2CPP Mono和IL2Cpp是Unity的脚本后处理方式,通过脚本后处理实现Unity的跨平台 1.Mono (1). Mono组成组件: C#编辑器,CLI虚拟机,以及核心类别程序库 (2).跨平台过程 Mo…

【Linux】多线程概念

目录🌈前言🌸1、Linux线程概念🍡1.1、概念🍢1.2、线程的优点🍧1.3、线程的缺点🍨1.4、线程的异常和用途🌺2、Linux下进程 vs 线程🌈前言 这篇文章给大家带来线程的学习!…

PID算法入门(一)

1.简介 PID是Proportional(比例), Integral(积分), Differential(微分)的首字母缩写,他是一种结合比例,积分,微分三个环节于一体的闭环控制算法. 2.PID各环节 2.1比例环节 成比例地反应控制系统的偏差信号,即输出&a…

Codeforces Round #843 (Div. 2) A1 —— D

题目地址:Dashboard - Codeforces Round #843 (Div. 2) - Codeforces一个不知名大学生,江湖人称菜狗 original author: jacky Li Email : 3435673055qq.com Time of completion:2023.1.11 Last edited: 2023.1.11 目录 ​编辑 A1. Gardener…

读论文——day61 目标检测模型的决策依据与可信度分析

目标检测模型的决策依据与可信度分析本文贡献及原文1 相关工作(略看)1.3 目标检测模型2 背景知识(LIME)2.2 LIME3 目标检测决策依据及可信度分析3.1 决策依据3.2 对目标检测模型的预测进行可信度评价4 基于 LIME 的目标检测模型解…

(第四章)OpenGL超级宝典学习:必要的数学知识

必要的数学知识 前言 在本章当中,作者着重介绍了几个和3D图形学重要的数学知识,线性代数基础好的同学可以直接绕过本章,说实话这篇博客写到这里,我是非常犹豫的,本章节的内容可以说是很基础,但是相当…

SSM框架01_Spring

有一个效应叫知识诅咒:自己一旦知道了某事,就无法想象这件事在未知者眼中的样子。00-Spring课程介绍01-初识Spring今天所学的Spring其实是Spring家族中的Spring Framework;Spring Fra是Spring家族中其他框架的底层基础,学好Spring可以为其他S…

Morse1题解

原理摩尔斯电码和电报简单说一下电报和摩尔斯电码的原理最简单的电报模型就是一个电源,一个开关和一个电磁铁当需要长距离使用时候,需要用到继电器按下开关,电磁铁会吸引磁铁长按开关,电磁铁就会闭合一段时间,留下一划…

Jenkins集成GitLab Webhooks自动化构建

JenkinsGitLab Webhooks自动构建项目1 构建步骤1.1 Jenkins中设置构建触发器1.2 Build Authorization Token Root插件安装1.3 GitLab配置Webhooks2 测试webhooks2.1 测试推送事件2.2 测试合并请求事件2.3 代码修改提交测试1 构建步骤 1.1 Jenkins中设置构建触发器 这里先随便写…

Markdown与DITA比较

Markdown是一种轻量级标记语言,创始人为John Gruber。它允许人们使用易读易写的纯文本格式编写文档,然后转换成有效的HTML文档。这种语言吸收了很多在电子邮件中已有的纯文本标记的特性。由于Markdown的轻量化、易读易写特性,并且对于图片&am…

第一章Mybatis基础操作学习

文章目录MyBatis简介MyBatis历史MyBatis特性和其它持久化层技术对比搭建MyBatis开发环境创建maven工程创建MyBatis的核心配置文件创建mapper接口创建MyBatis的映射文件通过junit测试功能加入log4j日志功能不带参数的增删改查Mapper接口的编写对应Mapper接口的xml文件编写核心配…

【Python基础】如何使用pycharm

1、设置Python 解释器 在任何项目,第一步就是设置Python 解释器,就是那个Python.exe 在File->Setting->Projec: xxx 下找到 Project Interpreter。然后修改为你需要的 Python 解释器。注意这个地方一定要注意的是:在选择 Python 解释…

Dubbo 学习笔记

Dubbo 学习笔记 1.基础知识 1.1 分布式基础理论 1.1.1 什么是分布式系统? 《分布式系统原理与范型》定义: 分布式系统是若干独立计算机的集合,这些计算机对于用户来说就像单个相关系统分布式系统(distributed system&#xf…

java基于ssm蛋糕店蛋糕商城蛋糕系统网站源码

简介 java使用ssm开发的蛋糕商城系统,用户可以注册浏览商品,加入购物车或者直接下单购买,在个人中心管理收货地址和订单,管理员也就是商家登录后台可以发布商品,上下架商品,处理待发货订单等。 演示视频 …