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

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

单位:西安外事学院

指导老师:杜喜昭、张燕

1. 产品说明

1.1 设计目的

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

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

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

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

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

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

1.2 设计背景

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

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

1.3 需求分析

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

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

表1  功能需求

机器人制作开源方案 | 自主型收集餐盘机器人_第1张图片

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

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

表2  易用性需求

机器人制作开源方案 | 自主型收集餐盘机器人_第2张图片

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

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

表3  可靠性需求

机器人制作开源方案 | 自主型收集餐盘机器人_第3张图片

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

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

表4  性能需求

机器人制作开源方案 | 自主型收集餐盘机器人_第4张图片

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

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

机器人制作开源方案 | 自主型收集餐盘机器人_第5张图片 主要解决的关键技术问题

1.5机械结构及模块组成

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

机器人制作开源方案 | 自主型收集餐盘机器人_第6张图片 机械结构

机器人制作开源方案 | 自主型收集餐盘机器人_第7张图片 模块组成

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

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

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

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

1.6 难题和解决办法

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

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

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

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

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

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

1.7 创新点

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

机器人制作开源方案 | 自主型收集餐盘机器人_第8张图片 盘子收拢模块

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

机器人制作开源方案 | 自主型收集餐盘机器人_第9张图片 转运模块

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

机器人制作开源方案 | 自主型收集餐盘机器人_第10张图片 餐盘自动存放模块

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

机器人制作开源方案 | 自主型收集餐盘机器人_第11张图片 直线往复传动机构

2. 硬件说明

2.1主控板设计

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

机器人制作开源方案 | 自主型收集餐盘机器人_第12张图片 STM32扩展板(正反面)

2.2 超声波传感器

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

机器人制作开源方案 | 自主型收集餐盘机器人_第13张图片 超声波传感器(正反面)

2.3摄像头

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

机器人制作开源方案 | 自主型收集餐盘机器人_第14张图片 摄像头

3. 软件设计

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

机器人制作开源方案 | 自主型收集餐盘机器人_第15张图片 系统设计软件框图

4. 制作过程

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

机器人制作开源方案 | 自主型收集餐盘机器人_第16张图片 草图及建模

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

机器人制作开源方案 | 自主型收集餐盘机器人_第17张图片 制作过程

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

机器人制作开源方案 | 自主型收集餐盘机器人_第18张图片 实物图

5. 心得体会

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

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

6. 示例程序

#define V_MAX 12800   //步进电机速度

#include 

#include 

#include 

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

你可能感兴趣的:(机器人,开源)