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

2023-12-06 09:28

本文主要是介绍机器人制作开源方案 | 自主型收集餐盘机器人,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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

单位:西安外事学院

指导老师:杜喜昭、张燕

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.chinasem.cn/article/461322

相关文章

Java图片压缩三种高效压缩方案详细解析

《Java图片压缩三种高效压缩方案详细解析》图片压缩通常涉及减少图片的尺寸缩放、调整图片的质量(针对JPEG、PNG等)、使用特定的算法来减少图片的数据量等,:本文主要介绍Java图片压缩三种高效... 目录一、基于OpenCV的智能尺寸压缩技术亮点:适用场景:二、JPEG质量参数压缩关键技术:压缩效果对比

SpringBoot首笔交易慢问题排查与优化方案

《SpringBoot首笔交易慢问题排查与优化方案》在我们的微服务项目中,遇到这样的问题:应用启动后,第一笔交易响应耗时高达4、5秒,而后续请求均能在毫秒级完成,这不仅触发监控告警,也极大影响了用户体... 目录问题背景排查步骤1. 日志分析2. 性能工具定位优化方案:提前预热各种资源1. Flowable

Java进行文件格式校验的方案详解

《Java进行文件格式校验的方案详解》这篇文章主要为大家详细介绍了Java中进行文件格式校验的相关方案,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、背景异常现象原因排查用户的无心之过二、解决方案Magandroidic Number判断主流检测库对比Tika的使用区分zip

IDEA中Git版本回退的两种实现方案

《IDEA中Git版本回退的两种实现方案》作为开发者,代码版本回退是日常高频操作,IntelliJIDEA集成了强大的Git工具链,但面对reset和revert两种核心回退方案,许多开发者仍存在选择... 目录一、版本回退前置知识二、Reset方案:整体改写历史1、IDEA图形化操作(推荐)1.1、查看提

Python实现html转png的完美方案介绍

《Python实现html转png的完美方案介绍》这篇文章主要为大家详细介绍了如何使用Python实现html转png功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 1.增强稳定性与错误处理建议使用三层异常捕获结构:try: with sync_playwright(

Java使用多线程处理未知任务数的方案介绍

《Java使用多线程处理未知任务数的方案介绍》这篇文章主要为大家详细介绍了Java如何使用多线程实现处理未知任务数,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 知道任务个数,你可以定义好线程数规则,生成线程数去跑代码说明:1.虚拟线程池:使用 Executors.newVir

MySQL中闪回功能的方案讨论及实现

《MySQL中闪回功能的方案讨论及实现》Oracle有一个闪回(flashback)功能,能够用户恢复误操作的数据,这篇文章主要来和大家讨论一下MySQL中支持闪回功能的方案,有需要的可以了解下... 目录1、 闪回的目标2、 无米无炊一3、 无米无炊二4、 演示5、小结oracle有一个闪回(flashb

Android App安装列表获取方法(实践方案)

《AndroidApp安装列表获取方法(实践方案)》文章介绍了Android11及以上版本获取应用列表的方案调整,包括权限配置、白名单配置和action配置三种方式,并提供了相应的Java和Kotl... 目录前言实现方案         方案概述一、 androidManifest 三种配置方式

无需邀请码!Manus复刻开源版OpenManus下载安装与体验

《无需邀请码!Manus复刻开源版OpenManus下载安装与体验》Manus的完美复刻开源版OpenManus安装与体验,无需邀请码,手把手教你如何在本地安装与配置Manus的开源版OpenManu... Manus是什么?Manus 是 Monica 团队推出的全球首款通用型 AI Agent。Man

Java嵌套for循环优化方案分享

《Java嵌套for循环优化方案分享》介绍了Java中嵌套for循环的优化方法,包括减少循环次数、合并循环、使用更高效的数据结构、并行处理、预处理和缓存、算法优化、尽量减少对象创建以及本地变量优化,通... 目录Java 嵌套 for 循环优化方案1. 减少循环次数2. 合并循环3. 使用更高效的数据结构4