机器人制作开源方案 | 自主型收集餐盘机器人

作者:蔡佳怡、朱启会、郭晨杰、杨昊天、焦家辉

单位:西安外事学院

指导老师:杜喜昭、张燕

1. 产品说明

1.1 设计目的

      对于如学校、工厂这种大型食堂,一般的收餐盘模式为用餐人用餐完毕后,把餐盘拿到最近的收餐盘点,把残渣倒到收渣桶,把餐具分类放置,然后离开,当收餐点的餐具堆满到一定程度以后,食堂工作人员用推车把餐具推到洗碗间。这个过程通常存在以下几个问题:

      ① 由于用户需要进行倒渣,并将餐具分类。这个操作时间比较长,导致用餐高峰时人员堆积,等待时间较长,同时有可能将污渍弄到衣服上或者手上,带来用户的不适体验。

      ② 由于收餐点不可能设置较多,因此从就餐点走到餐盘点平均时间较长。

      ③ 由于收餐盘点看起来脏乱,影响了用餐人的就餐环境。

      ④ 要安排专门人员去拉餐具,过程噪声大,影响了就餐环境。

      本项目主要是设计一款机器人,由多个此机器人相互协调工作,在各类食堂进行收集餐具,运送到洗碗间。此机器人的应用可以减少食堂的人工成本,同时提高食堂员工的工作效率,降低他们的工作强度。对于食堂的用餐人员来说,他们也可以更快捷、方便的完成用餐过程。

1.2 设计背景

      长期以来,餐饮行业作为第三产业中的主要板块之一,给人们带来基本生活所需的同时,对刺激消费需求,推动经济发展发挥了重要作用。但是最近几年,餐饮行业面临原材料成本提升、本钱节制难等多方面的问题,导致了全国各地的餐饮企业增幅缓慢、利润降低等负面影响,乃至出现了较高的倒闭潮。原材料消耗高、劳动力成本高、租赁价格高、而收入的净利润低--“三高一低”是限制餐饮行业发展速度的主要因素。所以发展餐饮行业,最主要的方法就是降低三高和增加一低。降低三高中,最容易实现的就是降低劳动力成本。随着人工智能技术的发展,餐饮与智能机器人技术相结合,从而诞生的餐饮机器人,是解决餐饮行业人工成本的一条新的重要途径。使用餐饮机器人,能够代替部分餐饮服务员提供更优质的服务,减少人工成本,吸引客源,提升服务质量,增强品牌形象,有较高的经济价值和发展前景。

      本项目所设计的自主型收集餐盘机器人是一款智能回收餐盘的餐饮机器人,能够高效合理又智能的实现餐盘的回收工作。

1.3 需求分析

      一个完整的收集餐盘机器人需求可分为四个模块:功能需求、易用性需求、可靠性需求、性能需求。

      功能需求是一个项目需求最核心的需求,满足基本功能需求才能完成一个项目的基本工作。该机器人的功能需求如表1所示:

表1  功能需求

易用性需求:功能需求只能满足项目的最基本需求,但如果要想把一个项目做好,其产品的使用应该方便、快捷。

收集餐盘机器人易用性需求如表2所示:

表2  易用性需求

可靠性需求:元件、产品、系统在一定时间内、在一定条件下无故障地执行指定功能的能力或可能性,就是可靠性。

收集餐盘机器人可靠性需求如表3所示:

表3  可靠性需求

性能需求:产品性能是指产品具有适合用户需求的物理、化学或技术特性,如强度、化学成份、纯度、功率、转速等。

收集餐盘机器人性能需求如表4所示:

表4  性能需求

1.4主要解决的关键技术问题

      根据自主型收集餐盘机器人的研究和需求分析,该机器人应解决的关键技术问题如下图所示:

主要解决的关键技术问题

1.5机械结构及模块组成

      根据要解决的关键技术问题,经过深思熟虑,得出本款机器人的机械结构及模块组成如下图所示:

机械结构

模块组成

      盘子收拢模块:由主体框架、动力推进和自动收拢滑道组成(4个平板、丝杠、直线导轨)。

      转运模块:由转运栏、回转舵机、倾倒舵机(一个6-42A舵机、一个M07 270°舵机)组成。

      餐盘自动存放模块:采用等间距隔条主体框架结构,存放于移动小车内。

      移动小车由带斜面移动框架与直线往复传动机构组成。

1.6 难题和解决办法

      ① 初步采用的是机械爪抓取方案,但是效率偏低。

      解决办法:改成了主体框架,动力推进来收集餐盘。

      ② 餐盘收集后如何放进存放框是一个难点。

      解决办法:使用转运方式,加入转运舵机和倾倒舵机,解决了餐盘放置到存放框的问题。

      ③ 当存放框收集满餐盘后,如何实现存放框的自动更换也是一大难点。

      解决办法:利用滑槽代替直线导轨,配合丝杆,实现存放模块的往复运动,进而实现存放的自动更换。  

1.7 创新点

      ① 盘子收拢模块把盘子依次推至转运模块比传统爪子效率高(如下图所示)。

盘子收拢模块

② 转运模块倾斜一定角度,使得盘子不易滑落(如下图所示)。

转运模块

③ 单电机实现两个功能,可以让存放框与转运栏对齐,也可以将存放框推出(如下图所示)。

餐盘自动存放模块

④ 利用平台配件开槽与滑片的间隙配合代替直线导轨,配合丝杆,实现存放模块的往复运动(如下图所示)。

直线往复传动机构

2. 硬件说明

2.1主控板设计

      本项目采用了一个STM32扩展板,STM32有完善的库,不用配置寄存器,缩短了我们的开发周期,其外接口丰富,支持多种扩展,具有灵活的网络应用环境。STM32还可以和其他软件配合,可以大大缩短调试的工作量(如下图所示)。

STM32扩展板(正反面)

2.2 超声波传感器

      在本项目中,收集餐盘机器人在收集餐盘过程中,需要时时刻刻进行障碍物检测。当且仅当没有人或者障碍物时,该机器人才能进行巡查工作,所以对障碍物的检测要求是高精度的。超声传感器、红外传感器、激光雷达等,都是避障比较常见的传感器。红外传感器更多偏向点对点的检测,在本项目中实施性不高。激光雷达精度高,准确性好,但其抗干扰本领弱,本钱高,也不适合本项目。最终本项目选择了超声波传感器。超声波传感器是范围检测,并且精度较高、成本较低,是本项目做避障方面的传感器中综合性价比最高的(如下图所示)。

超声波传感器(正反面)

2.3摄像头

      摄像头的安装是为了确定桌上是否有人,便于餐盘收集,而且摄像头的安装还可以确定桌上餐盘的数量,这样可以确定转运模块转运栏转动的次数,从而实现监测的效果(如下图所示)。

摄像头

3. 软件设计

      本设计自主型餐盘收集机器人,代码运行环境是基于win11Arduino1.5.2,直流电机直连5V电源,舵机步进电机接口采用的是A4988 。下图为本次作品的系统软件设计总体流程图。

系统设计软件框图

4. 制作过程

      根据初步想法确定方向,然后收集资料、画草图、建模型(如下图所示)。

草图及建模

      根据草图确定作品的构建和装配,在整个过程中也遇到了很多问题,小组成员一起讨论,进行不断的计算、调试、实践,最终都得以解决。以下是制作过程:

制作过程

      经过不断的努力实验、计算,最终确定产品的设计图,再组装成最后的成品图,接着进行程序调试,完成作品功能的实现。下面是凝聚小组全部心血的成果图:

实物图

5. 心得体会

      通过这次人工智能大赛,团队成员对产品设计从资料收集、方案讨论、方案优化、实物模型装配、三维建模、控制调试到最终的实物展示有了更全面的认识与提高。例如利用滑槽代替直线导轨方案,它使我们更深入的了解了丝杠与直线导轨的配合使用。

      这个作品凝聚了小组成员的心血,从最初的一个小点子,到初步雏形,再到后来的作品呈现,大家都全力以赴,认真做好每一个部分,对每一个细节都精益求精。小组分工明确,精诚合作,不管是程序的编写还是三维模型,亦或是作品的制作,每个人都积极参与,加上老师的细心指导,最终才会有作品的诞生。我们也从中学到了坚持不懈的精神,虽然不知道其中有多少在未来会得以实现,但也算是我们通过对人工智能的学习所收获的成果。人工智能的繁荣景象和光明前景已展示出其诱惑人的魅力,让我们一起期待未来的世界吧,一个全新的人工智能的世界。

6. 示例程序

#define V_MAX 12800   //步进电机速度#include <Arduino.h>#include <Wire.h>#include <Servo.h>Servo myservo1;Servo myservo2;#define STOP      0#define FORWARD   1int chaoshengbo_left = A0;///int chaoshengbo_right = A2;void setup() {Serial.begin(9600);myservo1.attach(2);myservo2.attach(3);// initMotor();//test//moveTest();}void loop(){myservo1.write(30);delay(1000);myservo2.write(90);}//============================================================void moveTest(){move( 80,   80,   80,   80); //前进move(-80, -80, -80, -80); //后退move(-80,   80,   80, -80); //左平移move( 80, -80, -80,   80); //右平移move(-80,   80, -80,   80); //左转move( 80,   80, -80, -80); //右转}void forward(){move(80,80,80,80);move(80,80,80,80);delayMicroseconds(2);}

*更多详情请见:【S032】自主型收集餐盘机器人

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

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

相关文章

【算法】对二分搜索的理解

二分搜索大家都很熟悉&#xff0c;首先我们先来看看基本框架 func binarySearch(nums []int, target int) int {left, right : 0, ...for ... {mid : left (right-left)/2if nums[mid] target {...} else if nums[mid] < target {left ...} else if nums[mid] > targ…

圈子社交系统:打破时间与空间的限制。APP小程序H5三端源码交付,支持二开!

在现代社会&#xff0c;社交已成为人们生活中不可或缺的一部分。然而&#xff0c;传统的社交方式往往受制于时间和空间的限制&#xff0c;使得人们难以充分发挥社交的潜力。为了解决这一问题&#xff0c;圈子社交系统应运而生。 圈子社交系统通过技术手段打破时间与空间的限制&…

Linux环境搭建SVN服务器并结合内网穿透实现远程访问

&#x1f308;个人主页&#xff1a;聆风吟 &#x1f525;系列专栏&#xff1a;网络奇遇记、Cpolar杂谈 &#x1f516;少年有梦不应止于心动&#xff0c;更要付诸行动。 文章目录 &#x1f4cb;前言一. Ubuntu安装SVN服务二. 修改配置文件2.1 修改svnserve.conf文件2.2 修改pass…

【Linux】cp 命令使用

cp 命令 cp&#xff08;英文全拼&#xff1a;copy file&#xff09;命令主要用于复制文件或目录。 著者 由Torbjorn Granlund、David MacKenzie和Jim Meyering撰写。 语法 cp [选项]... [-T] 源文件 目标文件或&#xff1a;cp [选项]... 源文件... 目录或&#xff1a;cp [选…

synchronized关键字-监视器锁(monitor lock)

这就是我们上一篇中代码提到的加锁的主要方式,本质上是调用系统api进行加锁,系统api本质是靠cpu特定指令加锁. synchronize的特性 互斥性 synchronized会起到互斥效果,某个线程执行到某个对象的synchronized中时,,其它线程如果也执行到同一个对象synchronized就会阻塞等待(锁…

Python实现FA萤火虫优化算法优化卷积神经网络回归模型(CNN回归算法)项目实战

说明&#xff1a;这是一个机器学习实战项目&#xff08;附带数据代码文档视频讲解&#xff09;&#xff0c;如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 萤火虫算法&#xff08;Fire-fly algorithm&#xff0c;FA&#xff09;由剑桥大学Yang于2009年提出 , …

小航助学题库白名单竞赛考级蓝桥杯等考scratch(8级)(含题库教师学生账号)

需要在线模拟训练的题库账号请点击 小航助学编程在线模拟试卷系统&#xff08;含题库答题软件账号&#xff09; 需要在线模拟训练的题库账号请点击 小航助学编程在线模拟试卷系统&#xff08;含题库答题软件账号&#xff09;

Java核心知识点整理大全26-笔记

目录 27. Storm 7.1.1. 概念 27.1.1. 集群架构 27.1.1.1. Nimbus&#xff08;master-代码分发给 Supervisor&#xff09; 27.1.1.2. Supervisor&#xff08;slave-管理 Worker 进程的启动和终止&#xff09; 27.1.1.3. Worker&#xff08;具体处理组件逻辑的进程&#xff…

分包(微信小程序)

首先&#xff0c;微信小程序中使用分包是为了减少首屏的请求&#xff0c;因为微信小程序会默认下载主包内的内容并展示到页面上&#xff0c;但是随着业务量的增加&#xff0c;代码量也会越来越大。会导致我们启动小程序的时候首页加载速度过慢的这个问题。这时我们就可以采用分…

解决(error) ERR Errors trying to SHUTDOWN. Check logs.问题~

该问题出现在我在使用shutdown关闭redis服务器时&#xff0c;出现该问题的原因是由于配置文件的日志文件位置未配置或者缺少日志文件 我自己出现该问题是因为缺少日志文件&#xff0c;解决步骤如下所示&#xff1a; 第一步&#xff1a;在该目录下使用touch命令创建日志文件 第…

【工具与中间件】快速构建飞书群聊机器人

文章目录 0. 前言1. 无痛入门1.1 飞书创建群聊机器人1.2 Webhook 请求示例1.3 设置安全策略 2. 实战3. 总结3.1 使用体验3.2 深入使用建议 先进团队用飞书&#xff0c;先进飞书群聊有...... 0. 前言 科技蓬勃发展的今天&#xff0c;我们可以轻松拥有属于自己/团队的机器人。日…

Ubuntu18.04 本地安装CVAT标注工具

写在前面&#xff1a; 1、如果直接clone最新版本的cvat&#xff0c;python版本最好安装3.8的&#xff0c;因为其中部分代码的语法只有高版本的python才可以支持。 2、安装完成以后本地登陆可能出现"cannot connect to cvat server"的错误&#xff0c;可以从Cannot …

制作麒麟oem镜像之通过识别终端品牌与BIOS安装不同内容

原文链接&#xff1a;麒麟oem镜像之识别终端品牌与BIOS安装不同内容 **hello&#xff0c;大家好啊&#xff01;**在个性化和定制化日益成为趋势的今天&#xff0c;操作系统的定制化安装也变得越来越重要。特别是对于企业用户来说&#xff0c;能够根据不同的硬件配置和需求&…

项目实战之RabbitMQ重试机制进行消息补偿通知

&#x1f9d1;‍&#x1f4bb;作者名称&#xff1a;DaenCode &#x1f3a4;作者简介&#xff1a;啥技术都喜欢捣鼓捣鼓&#xff0c;喜欢分享技术、经验、生活。 &#x1f60e;人生感悟&#xff1a;尝尽人生百味&#xff0c;方知世间冷暖。 文章目录 &#x1f31f;架构图&#x…

Python Tkinter库入门与基础

更多资料获取 &#x1f4da; 个人网站&#xff1a;ipengtao.com Tkinter是Python标准库中内置的图形用户界面&#xff08;GUI&#xff09;工具包&#xff0c;提供了创建窗口、按钮、文本框等GUI元素的功能。本文将介绍Tkinter的基础知识&#xff0c;帮助大家快速入门。 安装与…

低成本物联网安全芯片ACL16_S 系列,可应用物联网认证、 SIM、防抄板和设备认证等产品上

ACL16_S 芯片是针对物联网认证、 SIM、防抄板和设备认证需求推出的高安全芯片。芯片采用 32 位 ARMCortex™-M0 系列内核&#xff0c;片内集成多种安全密码模块&#xff0c;包括 RSA/ECC DES/TDES、 SHA-1/-256、 AES-128/-192/-256 等国际安全算法&#xff0c;支持真随机数发…

岳阳楼3D模型纹理贴图

在线工具推荐&#xff1a; 3D数字孪生场景编辑器 - GLTF/GLB材质纹理编辑器 - 3D模型在线转换 - Three.js AI自动纹理开发包 - YOLO 虚幻合成数据生成器 - 三维模型预览图生成器 - 3D模型语义搜索引擎 岳阳楼&#xff0c;位于湖南省岳阳市岳阳楼区洞庭北路&#xff0c;地…

Vcenter 6.7 VCSA证书过期问题处理

1. 故障现象 2022年10月25日&#xff0c;登陆VC报错。 按照报错信息&#xff0c;结合官方文档&#xff0c;判断为STS证书过期导致。 vCenter Server Appliance (VCSA) 6.5.x, 6.7.x or vCenter Server 7.0.x 在/var/log/vmware/vpxd-svcs/vpxd-svcs.log看到类似报错: ERRO…

为什么程序员会讨厌PHP编程语言?

闲来无事&#xff0c;逛了某乎看见一篇关于PHP编程的学习指南&#xff0c;深受启发。我们都知道PHP是一种流行的爬虫语言&#xff0c;尤其在Web开发方面。太有很多有点&#xff0c;例如简单易学、支持的成许多等。但是PHP也会存在一些缺点&#xff0c;如代码可读性差&#xff0…

Windows下Linkis1.5DSS1.1.2本地调试

1 Linkis: 参考&#xff1a; 单机部署 | Apache Linkis技术分享 | 在本地开发调试Linkis的源码 (qq.com)DataSphere Studio1.0本地调试开发指南 - 掘金 (juejin.cn) 1.1 后端编译 参考【后端编译 | Apache Linkis】】 修改linkis模块下pom.xml,将mysql.connetor.scope修改…