APP下载

基于ARM的智能餐厅服务机器人

2019-12-07李柏言

科技与创新 2019年22期
关键词:餐车餐盘餐桌

李柏言

基于ARM的智能餐厅服务机器人

李柏言

(西安北大科技园创新基地,陕西 西安 710061)

设计了一种基于ARM的智能餐厅服务机器人,它集点餐系统、送餐系统、放餐系统于一体,有效降低了餐厅人力运营成本,缓解了餐饮行业企业结构性用工荒的问题。三个系统通过蓝牙通信等方式相互联系,实现了点餐、送餐、放餐自动化运行,在内部成本控制上,以相对低廉的价格优势达到规模化生产与应用,在餐厅服务领域有很好的应用前景。

软件开发;红外循迹;图像识别;机械臂抓取

1 主流送餐机器人存在的不足和缺陷

在人口红利减退带来的适龄劳动力资源绝对短缺和餐饮服务行业结构性“用工荒”大背景下,“机器替代人类”日趋流行。

目前,国内学者对于智能移动机器人在大众餐饮服务业的应用也进行了多方面研究。在哈尔滨、广州、济南、合肥等城市都陆续出现过机器人主题餐厅,当前的餐厅机器人“自动化程度较高,但是机器人种类过多,智能化水平不高”。此类机器人在购买和运行维护成本上都相对较高,在实际运用中,高档餐厅更注重人性化服务,因顾忌怠慢客人,不会大规模使用;普通餐厅考虑成本问题,不会使用价位过高的机器人。一些普通餐厅曾尝试引入廉价送餐机器人,想通过这种途径有效地减少餐厅成本,更为消费者在享用菜肴的同时增添了一份惬意的享受和消遣娱乐的方式,但经过观察,发现大部分餐厅应用的送餐机器人存在一些局限性,自动化程度较低,往往只能完成循迹送餐,仍然需要手动完成摆盘等动作,这样无法真正提高服务效率和降低人工成本,也影响了用户体验。

因此,设计使餐厅服务机器人技术与成本实现最优配置,满足了大众餐厅节约人力成本、提升服务品质的基本需求,对于机器人在餐饮服务业的普及具有十分重要的意义。

针对这种背景,本文大胆尝试设计了集点餐、送餐、放餐于一体的餐厅智能服务机器人系统,它有望在不远的将来广泛应用于中国餐厅等服务场所。

2 具体设计和技术要点

2.1 点餐系统

2.1.1 自动系统的工作流程

基于传统餐饮企业手工操作所带来的种种弊端,一种新的利用计算机来管理信息的系统——餐饮点餐管理系统也就应运而生,该系统的工作流程如图1所示。

图1 自动点餐模式业务流程

自动化的餐饮点餐系统快捷而便利,一名服务员只需将智能终端交给客人,客人可在智能终端上自行选择所需菜品。服务软件系统中拥有丰富的菜品介绍,包括形象的文字和图片,还可以附有很多客人的评论,这种推销模式要比单一的服务员介绍更加有效,更为重要的是采用这种模式可以使一名服务员同时服务多个餐桌,大大减少了餐厅的人力需求。客人选好菜品点击下单,则订单自动通过网络传输到厨师准备区和前台收银处,不再需要服务员在多个地方奔走。这种模式可以大大降低服务的出错率,而且通过对服务软件的优化可以获得比原有模式更好的用户体验,有利于餐饮企业盈利的提升。

2.1.2 自动化点餐系统的实现

通过上面的分析可以看出自动化的点餐系统有很大优点,因此做出这种系统的模型来验证它的便捷性。笔者自学了Windows平台的C#语言,这是一种面向对象的图形化编程语言,对于开发一些需要美观界面的程序具有快捷方便的优点,也适合中学生学习。最终软件界面如图2所示。

图2 C#语言编程的点餐客户端界面

左端为导航栏,右端为菜品显示栏,下端为已点菜品显示栏。导航栏前六项为六类菜品,点击按钮后菜品显示栏中会显示对应种类菜品的具体菜品及其详细信息。勾选“请先选中然后输入订餐份数”前方框即选中该菜品,通过下部控件可增减份数。选择好菜品后点击导航栏中“我要点餐”按钮,出现如图2所示的“确认点餐”方框,点击后系统自动将信息发往厨师后台。

对于厨师后台程序的开发,同样使用C#语言的图像形编程方法,客户端与厨师端的通信采用无线网络的方式,只需智能终端与厨师端均连接同一个Wi-Fi就可以进行顺畅可靠的通信,这在餐厅环境下很容易实现。顾客发送的点餐信息自动在界面上显示,厨师烹饪完菜品后,点击对应菜品然后点击“出菜按钮”,菜品将有送餐机器人送往餐桌。具体的厨师端程序界面如图3所示。

图3 C#语言编程的厨师后台界面

2.2 送餐系统

2.2.1 车体的设计

作为送餐机器人,它必须具备在餐厅中自主移动送餐的功能。在餐厅送餐的场景并不要求餐车的速度很快,而强调的是必须平稳可靠。面对时刻可能出现行人的复杂环境,餐车在遇到行人时必须停车避障。因为餐厅的空间有限且送餐的位置为固定的几个餐桌,选择循迹餐车是一个很好的方案,该方案安全可靠不易发生事故且成本低廉。

为了验证该方案,制作了循迹小车模型。餐车为了平稳安全无需有较快速度,因此模型采用减速直流电机驱动,通过给电机正负电压来控制电机正转和反转。电机驱动器采用常用的L298N,它是一款双H桥直流电机驱动模块,一个模块可以驱动两个直流电机,而且支持输出不同占空比的PWM波用来调速,非常适合该项目。

2.2.2 循迹传感器的设计

为了使餐车能够顺利循迹行走,并将这套设备顺利推广,选择一款可行而廉价的传感器必不可少。本设计中选用了红外光电传感器,红外传感器利用不同颜色反射和吸收光的强度不同而可以出黑色和白色,特别适合黑白线的识别,它为数字输出(高低电平),当测到黑线时输出低电平,当探测到白线时输出高电平。通过这个原理可以方便地实现餐车的循迹行走,即在餐厅铺设一条黑色的迹线与周围环境颜色区别开,在餐车前方位置设置多个红外传感器。将循迹线紧紧卡在红外传感器中间,若右边红外传感器检测到了低电平说明餐车已向左侧偏斜,则控制餐车右侧轮子加速,反之若左边红外传感器检测到了低电平说明餐车已向右侧偏斜,则控制餐车左侧轮子加速。这样在持续控制下可以实现餐车的循迹行走。

2.2.3 蓝牙无线通信

为了实现点餐、送餐、放餐的结合,不同系统间的通信必不可少,在模型中采用了HC-05蓝牙模块来实现信息通信。蓝牙HC-05是主从一体的蓝牙串口模块,简单地说,当蓝牙设备与蓝牙设备配对连接成功后,可以忽视蓝牙内部的通信协议,直接将蓝牙当成串口使用。这样对于运维人员就无需学习蓝牙协议,仅学习微控制器的串口操作即可实现系统间无线通信的效果。

将该模块接在控制器的串口上,设置HC-05为从模式,波特率9600等参数,当餐车上电以后可以在其他设备中搜索到该蓝牙名称,因此通过另外任意一台有蓝牙功能的设备如电脑或手机都可以与餐车通信,之后通过自己定义一些简单的通信协议就可以实现其他设备对餐车的控制。

由上面介绍可以看出,在送餐系统中餐车的控制并不复杂,它需要数路数字I/O的控制及串口的操作,Arduino可以加快设计工作的进行,有利于迅速实现自己的想法,比较适合中学生使用。

2.3 放餐系统

2.3.1 机械臂设计

机械臂采用三维空间柱坐标设计,共有高度坐标、角度坐标、半径坐标三种。它可以前后、上下伸缩,还可以在平面内绕轴旋转,因此理论上可以实现整个空间全方位移动,在机械臂端部设有一个水平机械夹,可以控制机械夹的开合大小以方便抓取不同的物体。三个方向的移动及机械夹的抓取都是靠直流减速电机实现的,而电机的驱动同样使用上面讲过的L298N驱动芯片。

在高度、角度、半径的三个坐标方向上,分别设有限位开关,当机械臂移动到该坐标的零坐标处则会按压下限位开关,这样会使开关电平反转,当控制器采样到电平信号的变换后就可以及时地对机械臂控制,使该方向的移动停止,可以有效防止机械臂移动过界。

另外一个需要解决的问题是如何控制机械臂移动到设定的位置停下来,为三个方向的电机轴分别设置机械开关,当电机旋转一周则使机械开关闭合断开一次,这样就会输出一个高低电平的脉冲,可以通过计数这些脉冲的个数来获取当前电机旋转的圈数,也就获得了机械臂在当前维度坐标下已经移动的距离,将这个距离与设定距离时刻比较,当两者相等时让此维度的电机停止,这样就可以使机械臂停止在空间中任意位置。

2.3.2 控制器的选择

在机械臂的控制方面是比较复杂,它共需要8路的PWM波(三个方向的正负移动及机械夹的闭合打开供8路),它还需要4路的脉冲检测(三个方向和机械夹的坐标获取),需要4路电平捕获(三个方向和机械夹的限位控制),4路IO输出(三个方向和机械夹的动作起停),最后需要一个串口进行蓝牙通信,因此在众多的功能需求下功能简易的控制器已不适用,必须选择性能更加强大的控制器。

ARM架构的单片机使用精简指令集,大大加快CPU的运行效率,具有强大运算和控制能力的同时也保持较低功耗和较为低廉的价格,因此越来越多的控制器采用ARM作为自己的内核,STM32F103系列便是其中一款以ARM作为内核的单片微机系统,它的市场占有率很高,因此应用广泛,所以它的开发有很多指导教程和范例,这对模型制作有很大帮助。采用以ARM为内核的STM32作为控制器,不仅可以满足需求,还可以在此基础上进行今后的改进和拓展,价格低的优势也有利于推广餐厅服务机器人。

尽管VCR具有强大的矫形能力,能切除整个椎体及其附件,但是不能治疗脊髓内的病变;传统VCR需要前后路联合进行,而在胸椎、胸腰段及腰椎行前路手术时,因解剖入路不同,术者需要具备丰富的解剖知识及精湛的手术技术。

2.3.3 图像处理

为了能使机械臂顺利抓起餐桌上的餐盘,必须使控制器获得菜品所在的位置。对于如何获取菜品位置,计划用图像处理的方法来解决。

为了尝试这种技术,需要寻找简单易用、方便中学生开放的方式。首先将摄像头拍摄的图片导入到C++开发环境中,因为本次任务不需要用到图片的色彩元素,因此将原图转换成灰度图(利用OpenCV中cvtColor函数),转换之后的图片就相当于一个元素为0或1的二位矩阵,这样更加方便进行图像的处理。为了识别送餐桌并获得桌子上餐盘的位置,首先必须检测出餐桌在图片中的范围,也就是检测餐桌的边缘;然后运行canny算子进行边缘检测,再将这些边缘像素组装成轮廓。这样就获得了餐桌的边缘和餐盘的边缘位置的图片,图像处理前后图片对比如图4所示。

图4 图像处理前后图片对比

得到灰度处理及边缘检测后的图片后就可以方便地开展之后的工作。如上所述,处理过后相当于一个元素为0或1的二位矩阵,而检测出边缘后就可以获取餐桌上四个角的坐标,也可以获取餐盘中心点的坐标,这样就可以获得餐盘到餐桌边缘的距离占餐桌长和宽的比例。在现实中测量出餐桌实际的长和宽,将上述两个比例与实际长和宽相乘,则可以获得盘到餐桌长和宽边缘的距离。

2.3.4 平面坐标变换

如上所述,可以获得餐桌上的餐盘在现实中的平面坐标,并不能完全控制机械臂抓住餐桌上的餐盘。控制器控制机械臂移动依靠的是柱坐标系的高度坐标、角度坐标、半径坐标三种坐标,而现在获取的是平面直角坐标系的坐标。因为餐盘下落高度基本固定,所以对于高度坐标可以存为定值,而另外两个坐标必须经过换算得到。经过对系统空间位置的仔细分析得到几何关系图。由机械臂的机械关系知,柱坐标的原点到机械臂长度方向距离固定,而且在机械臂旋转和长度伸缩过程中,这个固定距离(和)一直保持不变。因此以机械臂柱坐标系原点作为直角坐标系的原点,即点,以点作为原点,固定距离为半径作一个圆。机械臂的初始位置和目标位置长度方向都与这个圆相切,而从几何关系容易知道控制器应控制机械臂长度方向移动距离为(-),应控制机械臂角度方向转动角度为∠。根据上面分析可以获得点在直角坐标系的坐标,圆的方程也是已知的,所以通过高中平面解析几何可以求出切点,这样的长度可以求出,长度移动距离(-)和角度方向转动角度∠便可以求出,有了这两个坐标和测量出的应下降的高度坐标便可以控制机械臂移动到餐盘所在位置进行抓取。

坐标变换原理如图5所示。

3 创新性与实用性

针对以上研究背景提出了解决方案,该解决方案具有以下创新性与实用性:①集点餐、送餐、放餐于一体。囊括了除烹饪以外的所有餐厅人力工作,自动化程度很高,可以大大降低人工成本。②设计以ARM内核的单片机STM32为主控板,其具有强大的运算能力和控制能力,并且相比DSP等控制器价格更加低廉,因此可以使系统的成本大大降低。另外,对于该系统的一些较简单控制需要使用Arduino作为主控器,其使用简单方便易于开放,非常适合中学生或基础编程人员开发使用,并且价格更加低廉,适合大规模生产。③系统具有“物联网”思维,软件系统与硬件系统相互联系,并且实现了人与机器的良好交互。④使用红外光电传感器使送餐车循迹行走可靠而简单,在此基础上可以进行优化路径算法的设计,高效率地将餐饮送到多个餐桌。⑤创新性使用图像处理来进行自动化放餐,不再需要人力干预摆盘等工作,使系统更加智能,提升了用户体验,有利于送餐服务机器人在中国的广泛推广和应用。

图5 坐标变换原理图

4 技术改进方向

以上是餐厅服务机器人模型,但是该系统仍有以下几点改进建议,需要今后掌握更多的科技知识去完成。

4.1 送餐车的避障功能

餐厅的环境嘈杂,常会有行人干扰送餐,除了减缓送餐车运行速度以外,开发出可靠的避障功能必不可少。查阅资料后认为有2种简单易行的方案:①使用HC-SR04超声波测距模块,通过检测距前方物体的距离来判断是否有障碍物阻挡道路;②可以采用触碰开关,当触碰到障碍物后输出高低电平,控制器迅速控制餐车停止行进。具体哪一种方案比较可行需要进一步实验确定。

4.2 送餐车的多路径分析

送餐车多路径如图6所示。

图6 送餐车多路径示意图

如图6所示,在实际的餐厅中要送餐的餐桌有多个,道路也更加复杂,这就涉及到路径规划的问题。如果送餐车能够自动优化行驶路线,在众多路径中选择一条最优或较优路径对于节省送餐时间提高用户体验有重要意义。这是一个很复杂的问题,不仅在硬件上要采用多路红外光电传感器检测出道路中的T形路口、十字路口、直行或弯曲道路,针对不同路口采取不同的方式行进。

另外更为重要的是要用优化的算法来规划路径,这些算法涉及内容较多需要今后多研究。

4.3 基于图像识别技术的摆盘技术

目前所做的模型排放盘子时只能针对一些固定的位置,比如将一个餐桌划分成多个区域,依次在这些区域摆放餐盘,但当客人大范围移动餐盘,打乱餐桌上餐盘顺序后,送餐机器人可能将新的餐盘放置在已有的餐盘上,这样的错误是不能允许的,所以必须对技术进行改进。在上述图像识别技术基础上,在获得灰度图和边缘检测后进一步分析,由运算获得一个合理的放置位置。用OpenCV生成一个摆盘效果图,如图7所示。如何合理地摆放餐盘充分利用现有空间,使客人对送餐服务机器人的服务更加满意是一个较为复杂问题,这需要今后对空间搜索规划有更深的研究。

图7 摆盘规划示意图

5 总结性评论

针对目前人力资源紧缺、人力资源价格逐年上涨的社会背景,对服务人员需求量很大的餐饮行业研究和设计一套基于ARM的智能餐厅服务机器人,集点餐、送餐、放餐于一体,具有很强的推广意义。在点餐系统中利用C#编写了客户端和厨师端的软件来自动化的管理客人订单;在送餐系统中制作了餐车模型循迹行走;在放餐系统中制作了机械臂模型,利用图像识别和坐标变换的原理抓取餐桌上的餐盘。本设计最大的创新在于点、送、放餐一体,并利用了图像处理的最新科技。该餐厅服务机器人相对价格低廉,更有利于它的广泛推广。相信在不远的将来它将可以运用到普通餐厅和各大主题餐厅,这将大大减少餐饮服务业的人力资源需求,顺应人类历史发展的趋势——人从繁重的劳动中解放。

[1]胡昊,范源,李党娟,等.智能送餐机器人的研究与设计[J].内燃机与配件,2017(21):6-8.

[2]蔡沛.基于STM32智能餐厅服务系统机器人的设计[J].信息通信,2017(9):93-95.

[3]李泽琛,石付才.基于STC89C52单片机的智能送餐机器人设计与实现[J].电子技术与软件工程,2016(18):264.

[4]包恺俊.基于UWB定位的餐厅服务机器人研究[D].上海:上海师范大学,2016.

[5]周陆洲.餐厅服务机器人的应用分析[J].科技风,2015(15):122-123.

[6]蒲睿.餐厅服务机器人设计[J].软件导刊,2015,14(7):85-87.

[7]曹大卫,王仁波.基于ARM9的智能机器人控制系统的设计[J].电子质量,2013(6):28-30,36.

[8]尹俊超,刘直芳.基于OpenCV的运动目标检测与跟踪[J].计算机工程与设计,2011,32(8):2817-2820.

[9]王忠锋.基于ARM控制器的清洁机器人的研究[D].赣州:江西理工大学,2009.

[10]于清晓.轮式餐厅服务机器人移动定位技术研究[D].上海:上海交通大学,2013.

[11]孟珊,王金,田亦真.人口红利减退背景下服务业人力资源“双短缺”问题研究——以西安市餐饮业为例[J].企业改革与管理,2016(11):47-48,52.

TP242

A

10.15913/j.cnki.kjycx.2019.22.005

2095-6835(2019)22-0020-04

〔编辑:张思楠〕

猜你喜欢

餐车餐盘餐桌
忙碌的送餐车
色彩缤纷的腊月餐桌
餐盘上的卡通王国
动物世界
桌边餐车
大餐桌,小小船
小餐桌上来点“鲜”
当春日落入餐盘中
The Lesson of the Dining Room Table
自行车餐车风靡巴西