机器人制作开源方案 | 乒乓球自动拾取机器人

作者:刘众森、王森、王绘东、崔岳震、宋维鑫

单位:山东农业工程学院

指导老师:潘莹月、廖希杰

1. 场景调研

      我们小组选择项目的任务方向乒乓球的捡取与存放,针对此问题我们研发了一款乒乓球自动拾取机器人。众所周知,乒乓球是一种世界流行的球类体育项目,而我国是乒乓球运动的大国和强国。但是捡球是一种让人非常头疼的事情,乒乓球爱好者在练习乒乓球时,往往练得满地都是(如下图所示),劳累的运动员弯腰捡球既费时又费力。现在的乒乓球直径40.00毫米,其重量为26~2.8克,比较轻,不太容易捡拾。每当要捡起一个乒乓球的时候,捡球的人就要弯一次腰,对于长期从事这项工作的人来说是一个很大的身体负担。

      因此,能够代替人捡拾乓球的机器人就有了它的重要性,这种机器人能够又好又快地将散落在地上的乒乓球捡起,以便于下一次使用。本自动拾取乒乓球机器人主要应用于乒乓球训练场或比赛场上,其主要功能是自动拾取乒乓球。尽管这个机器人所实现的功能相对来说十分简单,但是它也可以帮助人类工作,减少乒乓球爱好者的负担,这是服务机器人的重要使命,也是我们这个项目的目的。

2. 整体结构

      该机器人底盘部分主要由铝板制作,其下方为四个轮子连接四个电机作为动力元件。现有的应用在乒乓球场上的机器人,大多都是设计一个机械手直接抓取乒乓球,这不但会使设计过程更加繁琐,而且其控制系统的设计也较为复杂,制造成本也会相应地增加。我们的乒乓球捡取部分是由铝板和高弹绳组成,高弹绳的存在大大减少了捡取部分的重量,由一个舵机控制其上下运动。其主要特点是智能化、自动化。 机器人的控制电路简单,我们采用Basra主控板(采用 AVR ATMega328 芯片)为主控板,并在此之上加入了Bigfish 扩展板,在此之外,我们加入了颜色识别模块(TCS3200) 和超声波测距模块(HC-SR04),颜色识别模块下方是由一个小型舵机控制转动,从而可以三百六十度无死角的寻找乒乓球,超声波测距模块可以用来躲避障碍,和确定乒乓球的距离,从而确定乒乓球的位置。

颜色识别模块

超声波测距模块

3. 创新部分

3.1 结构上的创新

      我们的乒乓球拾取机器人,因为乒乓球表面光滑,直径只有40.00毫米,重量只有2.6~2.8克,比较轻,不太容易捡拾不易有受力点,所以我们没有采用传统机械臂来抓取乒乓球,而是用舵机控制一个底部和四周缠有高弹绳的框子上下运动,来捡取乒乓球。因为高弹绳质量轻便,因此机器人整体结构比较轻便小巧,不占地方,运动起来较为轻松。我们还在其后方用铝板拼接了一个屏风(如下图所示)以此来做负载,可以避免其前方太重,导致其重心不稳,优化了其头重脚轻的特点,并使其看着更加美观,使其结构看着没有这么单一。 

3.2 功能上的创新

      我们的机器人捡取机构的篮子的底部面积相较于机械手的作用面积更大,从而增强捡取的成功率,而且在散落乒乓球相距较近的情况下,可以实现一次捡取数个乒乓球。并且此机器人的捡取机构和乒乓球的存放机构为同一部分,相对简化了机器人的结构,也减轻了其重量,使其工作更加轻松,使其结构更简单。如下图所示,并且这个篮子可以同时存放数个乒乓球,适当改良后,增大其容积。可以同时存放更多的乒乓球。

3.3 取材上的创新

      此乒乓球自动拾取机器人采用探索者系列基础零件,零件的种类相对较少,费用较低,功能较为齐全,倘若批量生产并销售,可以极大地节约成本,其简易的结构也使得其后期维修简单且维修成本较低。

4. 制作难点及其解决方案

      ① 项目初期,我们的机器人捡取部分是完全由铝板搭建,只有底部采取高弹绳,这就导致了前半部分重量太大,给舵机的工作带来太大的负担,并且使其头重脚轻。然后我们经过了多次尝试,多次拆解,我们将捡取部分的四周完全换成了高弹绳。由于乒乓球的质量十分轻便,所以这么做对机器人的整体工作并没有产生任何影响,从而大大减小了捡取部分的质量,减轻了舵机的工作负担,增长了其使用寿命。

      ② 开始的时候,我们的机器人捡取部分的框子设计的并没有这么大,我们的初衷也是减轻其捡取部分的质量,但是这导致了捡取成功的几率并不高,而且在捡取的时候其效果并没有达到我们想要的效果,所以我们后期更换了捡取部分的框子,使其底面工作面积大大增加,并且可以达到同时最多捡四个球的效果,并且改良后的框子捡球的成功率非常高。

5. 作品的可改进部分

      ① 首先可以为机器人添加外壳,使其看起来更美观,也让其线路不外漏,增加其使用寿命,也变相减少其后期维修成本。

      ② 其次可以将其捡取部分的骨架结构换为塑料材质,使其质量相对更轻,也使其更美观,批量生产也可以相对降低成本。

      ③ 最后可是适量加大加深捡取机构的框子,使其容量增加,可是一次性容纳更多的乒乓球,避免频繁的去处理已经捡到的球,并为其增加一个盖子,可以确保其在接近饱和状态时,乒乓球不溢出。

更多详情请见:【S050】乒乓球自动拾取机器人

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

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

相关文章

【Unity】【VRTK】【Pico】如何快速在VRTK中引入带动画的PICO控制器

【背景】 之前的VRTK篇章中,我只介绍了Oculus,Open VR,SImulator这三种Rig的配置方法,那么Pico如何融合VRTK进行开发呢? 【需要的开发包】 先像一个正常PICO项目那样导入PICO的SDK到Unity。VRTK 4的Package导入器中搜Pico,可以导入一个Pico的Integration,导入后Projec…

SpringCloud.03.网关Gateway

目录 网关Gateway的概念: 准备 使用 方式一 因为配置了网关所以可以直接通过gateway发送请求 方式二 修改配置前:http://localhost:8082/provider/run 方式三(动态路由) 导入配置类 网关Gateway的概念: Spring Cloud Gateway 是 Spri…

【网络工程师】NAT与动态路由

一、NAT网络地址转换 1、NAT:Network Address Translations 网络地址转换 2、ip地址问题:ipv4地址严重不够用了(A、B、C类可以使用 D组播 E科研) 3、解决:把IP地址分为了公网IP和私网IP 公网IP只能在公网上使用 私网…

使用Docker容器部署LNMP服务

目录 实验前准备部署Nginx环境准备准备nginx.conf配置文件生成并启动镜像验证nginx 部署Mysql准备工作目录编写Dockerfile脚本准备my.cnf文件生成并启动镜像启动镜像容器验证mysql 部署php建立工作目录编写Dockerfile脚本准备配置文件生成并启动镜像验证php 启动wordpressmysql…

书生·浦语大模型实战营-学习笔记3

目录 (3)基于 InternLM 和 LangChain 搭建你的知识库1. 大模型开发范式(RAG、Fine-tune)RAG微调 (传统自然语言处理的方法) 2. LangChain简介(RAG开发框架)3. 构建向量数据库4. 搭建知识库助手5. Web Demo部…

非线性方程求根迭代法(C++)

文章目录 问题描述算法描述不动点迭代法一维情形多维情形 牛顿迭代法单根情形重根情形 割线法抛物线法逆二次插值法 算法实现准备工作一般迭代法割线法抛物线法逆二次插值法 实例分析例1例2 迭代法是一种求解非线性方程根的方法, 它通过构造一个迭代过程, 将一个非线性方程转化…

瑞_Java开发手册_(一)编程规约

文章目录 编程规约的意义(一)命名风格(二)常量定义(三)代码格式(四)OOP 规约(五)日期时间(六)集合处理(七)并发…

实现STM32烧写程序-(3) Hex文件结构

简介 要对STM32进行更新动作, 就需要对程序文件进行解析, 大部分编译的生成程序文件是Hex或者Bin, 先来看看Hex的结构吧。 资料 Hex文件 简介 Hex文件格式最早由Intel公司于1973年创建。它最初是为了在Intel 8080微处理器上存储和传输二进制数据而设计的。随后,Hex…

c++ 开发生态环境、工作流程、生命周期-拾遗

拾遗 1 生态环境初识 当您使用Visual Studio 2019进行C开发时,您将进入C生态环境。以下是一些重要的概念和步骤: C程序的结构: 一个典型的C程序包括源文件(.cpp)、头文件(.h)、编译后的目标文…

【算法实验】实验1

实验1-1 斐波那契数 【问题描述】斐波那契数 (通常用 F(n) 表示)形成的序列称为 斐波那契数列 。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。 定义:F(0) 0, F(1) 1, F(n) F(n-1) F(n-2) 其中n>1 要求计…

web前端算法简介之字典与哈希表

回顾 栈、队列 : 进、出 栈(Stack): 栈的操作主要包括: 队列(Queue): 队列的操作主要包括: 链表、数组 : 多个元素存储组成的 简述链表:数组&…

机器学习---xgboost算法

1. xgboost算法原理 XGBoost(Extreme Gradient Boosting)全名叫极端梯度提升树,XGBoost是集成学习方法的王 牌,在Kaggle数据挖掘比赛中,大部分获胜者用了XGBoost。 XGBoost在绝大多数的回归和分类 问题上表现的十分…

MYSQL的索引(一)

本章概览 索引的出现就是为了提高数据查询的效率,实际上可以提高读写效率的数据节后有很多 索引常见模型 哈希表是一种以键 - 值(key-value)存储数据的结构,用哈希函数把key计算成一个值,这个值代表一个位置&#xf…

使用docker搭建LNMP架构

目录 环境准备 下载安装包 服务器环境 任务分析 nginx部分 建立工作目录 编写 Dockerfile 脚本 准备 nginx.conf 配置文件 生成镜像 创建自定义网络 启动镜像容器 验证nginx MySQL部分 建立工作目录 编写 Dockerfile 准备 my.cnf 配置文件 生成镜像 启动镜像…

Puppeteer让你网页操作更简单(2)抓取数据

Puppeteer让你网页操作更简单(1)屏幕截图】 示例2 —— 让我们抓取一些数据 现在您已经了解了Headless Chrome和Puppeteer的工作原理基础知识,让我们看一个更复杂的示例,其中我们实际上可以抓取一些数据。 首先,请查看此处的Puppeteer API文档。如您所见,有大量不同的方法我…

Marin说PCB之传输线损耗---趋肤效应和导体损耗01

大家在做RF上的PCB走线或者是车载相机的上走线的时候经常会听那些硬件工程师们说你这个走线一定要保证50欧姆的阻抗匹配啊,还有就是记得加粗走做隔层参考。 有的公司的EE硬件同事会很贴心的把RF走线的注意事项给你备注在原理图上或者是layoutguide上,遇到…

php中常用的几个安全函数

1. mysql_real_escape_string() 这个函数对于在PHP中防止SQL注入攻击很有帮助,它对特殊的字符,像单引号和双引号,加上了“反斜杠”,确保用户的输入在用它去查询以前已经是安全的了。但你要注意你是在连接着数据库的情况下使用这个…

【Kafka-3.x-教程】-【二】Kafka-生产者-Producer

【Kafka-3.x-教程】专栏: 【Kafka-3.x-教程】-【一】Kafka 概述、Kafka 快速入门 【Kafka-3.x-教程】-【二】Kafka-生产者-Producer 【Kafka-3.x-教程】-【三】Kafka-Broker、Kafka-Kraft 【Kafka-3.x-教程】-【四】Kafka-消费者-Consumer 【Kafka-3.x-教程】-【五…

10.9.2 std::function 非OO的多态实现 Page185~187

源代码&#xff1a; #include <iostream> #include <functional> #include <list>using namespace std;//使用function模板类定义一个类型&#xff0c; //该类型要求作为T的 //函数类型是参数是string,返回值是void typedef std::function <void (std::s…

关于浏览器下载的时候出现失败,网络错误

我试过所有浏览器&#xff0c;谷歌&#xff0c;firefox,qq浏览器&#xff0c;还是edge都不好使&#xff0c; 1.看网上说是http debugger的问题&#xff0c;但是我没有找到这个服务项 2.也有说可以通过修改或设置下载路径解决 -------- 我通过下载一个叫xdm的软件&#xff…