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

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

单位:西安外事学院

指导老师:杜喜昭、张燕

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   1

int 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】自主型收集餐盘机器人

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

社交泛娱乐出海,市场 赛道、投放 变现的最新干货分享

&#xff08;全网都在找的《社交泛娱乐出海作战地图》&#xff0c;点击获取&#x1f446;&#xff09; 11 月 29 日&#xff0c;融云、Flat Ads、Alibaba Cloud、TopOn 联合主办的“泛娱乐社交 App 出海新风口”主题沙龙在浙江杭州圆满收官。关注【融云全球互联网通信云】了解…

deepflow本地部署过程

本地服务器配置&#xff0c;32C&#xff0c;48G内存 整个过程需要配置k8s&#xff0c;安装helm, 安装grafana, 安装deepflow以及deepflow-ctl&#xff0c;以及部署demo 在采用sealos进行ALL-IN-ONE部署之前&#xff0c; grafana 先安装它 wget -q -O /usr/share/keyrings/gr…

自动化定时发送天气提醒邮件

&#x1f388; 博主&#xff1a;一只程序猿子 &#x1f388; 博客主页&#xff1a;一只程序猿子 博客主页 &#x1f388; 个人介绍&#xff1a;爱好(bushi)编程&#xff01; &#x1f388; 创作不易&#xff1a;如喜欢麻烦您点个&#x1f44d;或者点个⭐&#xff01; &#x1f…

智能安全芯片ACH512芯片描述及功能

ACH512 芯片是一款基于安全算法的高性能 SOC 芯片&#xff0c; 主要应用于 eMMC/SD/Nandflash 大容量存储设备、加密 U 盘、指纹识别等市场。 芯片采用 32 位内核&#xff0c;片内集成多种安全密码模块&#xff0c;包括SM1、 SM2、 SM3、 SM4、 SSF33 算法以及RSA/ECC、 ECDSA、…

4WRPH6C3B24L-2X/G24Z4/M伺服比例方向阀控制板

4WRPH6C3B12L-2X/G24Z4/M、4WRPH6C3B40P-2X/G24Z4/M、4WRPH6C3B40L-2X/G24Z4/M、4WRPH6C4B24L-2X/G24Z4/M、4WRPH6C4B40L-2X/G24Z4/M、4WRPH6C3B24L-2X/G24Z4/M、4WRPH10C4B100L-2X/G24Z4/M、4WRPH10C3B100L-2X/G24K0/M-750适合控制4WRPH系列比例伺服阀&#xff0c;用于安装在架…

rt-thread主线程启动流程

rt-thread主线程启动流程 1.启动分析2.源码分析 1.启动分析 基于&#xff1a;rt-thread-v5.0.1 先执行&#xff1a;汇编代码startup_stm32f429xx.s开始运行&#xff0c;主要调用SystemInit和 __main ; Reset handler Reset_Handler PROCEXPORT Reset_Handler …

功率信号源工作原理是什么

功率信号源是一种专门产生大功率信号的设备&#xff0c;主要用于驱动高功率负载&#xff0c;如电机、变频器等。其工作原理涉及信号生成、放大和输出三个关键步骤。 首先&#xff0c;信号生成。功率信号源通常会采用各种信号发生器来产生不同类型的信号波形。这些信号可以是正弦…

DenseNet分类网络改进(添加SPP)--亲测有效

最近&#xff0c;我在做多分类问题。在针对基模型的选择中&#xff0c;我使用了DenseNet作为基本模型。我在阅读论文时&#xff0c;遇到了一种改进方式&#xff1a; 如上图所示&#xff0c;在全连接层之前引入SPP模块&#xff1a; 代码如下&#xff1a; SPP模块代码&#x…

6 大 Android 照片恢复软件深度评测

当您发现令人难忘的照片在 Android 上被错误删除或丢失时&#xff0c;您可能会感到非常沮丧。然而&#xff0c;当您尝试安装一些恢复应用程序并希望将它们重新恢复时&#xff0c;其中许多应用程序无法再次检测到丢失的照片。 为了节省您逐一尝试此类应用程序的时间&#xff0c…

yum命令详解和使用

目录 一、yum介绍 常见的软件封包类型 RPM的含义 二、 yum命令格式 三、常用命令 3.1 yum清空缓存列表 3.2 yum显示信息 3.2 yum安装 3.3 yum删除 3.4 yum包的更新和升级 四、常用的国内 yum 源 一、yum介绍 Yum(全称为 Yellow dog Updater, Modified)&#xff0c;是…

西工大计算机学院计算机系统基础实验一(环境配置)

首先&#xff0c;不要焦虑&#xff0c;稳住心态慢慢来&#xff0c;一点一点做&#xff0c;跟着作者把基础打好&#xff0c;比什么都重要。作者曾经经历过这份痛苦&#xff0c;知道它有多么不好受。当初的作者高中之前甚至都没有自己的一台笔记本&#xff0c;上了大学以后学C语言…

unity旋转选中效果

代码和预制体 函数PlayAnim&#xff08;&#xff09;中的角度要根据按钮数量手动填好 using System; using DG.Tweening; using DG.Tweening.Core; using DG.Tweening.Plugins.Options; using UnityEngine;// Token: 0x0200001B RID: 27 public class BtnParentScript : Base…

数字化智慧工地管理云平台源码(人工智能、物联网)

​智慧工地优势&#xff1a;"智慧工地”将施工企业现场视频管理、建筑起重机械安全监控、现场从业人员管理、物料管理、进度管理、扬尘噪声监测等现场设备有机、高效、科学、规范的结合起来真正实现工程项目业务流与现场各类监控源数据流的有效结合与深度配合&#xff0c;…

html通过CDN引入使用Vue和ElementUI

html通过CDN引入使用Vue和ElementUI 近期遇到个需求&#xff0c;就是需要在.net MVC的项目中&#xff0c;对已有的项目的首页进行优化&#xff0c;也就是写原生html和js。但是咱是一个写前端的&#xff0c;写html还可以&#xff0c;.net的话&#xff0c;开发也不方便&#xff0…

MybatisPlus中的使用Wrapper自定义SQL

一、条件构造器 条件构造器提供了一种更加简洁和直观的方式来构建复杂的查询条件。它提供了一组静态方法&#xff0c;用于构建各种类型的查询条件&#xff0c;包括等于、不等于、大于、小于、包含等。使用条件构造器可以避免手动拼接SQL语句的麻烦&#xff0c;提高代码的可读性…

Pandas使用过程中的神器加持 你不用不要怪我

Pandas是我们日常处理表格数据最常用的包&#xff0c;但是对于数据分析来说&#xff0c;Pandas的DataFrame还不够直观&#xff0c;所以今天我们将介绍4个和Pandas相关的Python包&#xff0c;可以将Pandas的DataFrame转换交互式表格&#xff0c;让我们可以直接在上面进行数据分析…

mybatis-plus的用法。如果条件不为空则查询。返回结果类型转换

1.如果条件不为空则查询 偶尔看到这个代码。感觉大可不必 点击进入源码就会发现。 内部已经封装好了条件判断&#xff0c;可以说非常的人性化 而且改条件走的非常深 2.返回结果类型转换 page查询的时候&#xff0c;返回的结果只能是表对应的实体类。如果自定义扩展vo,dto需…

“城中村上建高楼”,开启一场数智化时代新修炼

“数字化也好&#xff0c;数智化也罢&#xff0c;你明明白白地告诉我&#xff0c;他们与信息化到底有什么区别&#xff1f;” “我在信息化方面已投入那么多&#xff0c;为什么又要投那么多钱搞数智化&#xff1f;” 中国软件网、海比研究院在《2024中国企业数智服务趋势洞察研…

Kubernetes(K8s)安全认证-10

安全认证 访问控制概述 Kubernetes作为一个分布式集群的管理工具&#xff0c;保证集群的安全性是其一个重要的任务。所谓的安全性其实就是保证对Kubernetes的各种客户端进行认证和鉴权操作。 客户端 在Kubernetes集群中&#xff0c;客户端通常有两类&#xff1a; User Acco…

【AI-Fix】解决地图展示包leafmap在Jupyter NoteBook中地图不显示的问题

1. 问题描述 新创建的环境想使用leafmap在Jupyter中进行地图展示&#xff0c;结果发现运行完成之后不显示&#xff0c;不论怎么重启都没有办法显示出来&#xff0c;以经验来看&#xff0c;多半是缺了包了。 于是去leafmap的官方文档查找原因&#xff0c;一开始并没有发现什么问…