基于LabVIEW的机器人餐厅服务器设计
2017-08-08印松,
印 松,
(上海电机学院 机械学院, 上海 201306)
基于LabVIEW的机器人餐厅服务器设计
(上海电机学院 机械学院, 上海 201306)
为实现机器人餐厅多模块间正确的数据交互,设计了一套餐厅管理服务器。利用网络通信技术,构建了以服务器为中心的控制系统结构。基于LabVIEW编程语言设计了网络通信协议,实现了服务器与点餐机器人、配餐机器人和送餐机器人之间的通信。从分析订单数据出发,将订单数据解析为以餐盘为单位的数据,从而得到菜品在餐盘中的布局形式、位置坐标,为配餐机器人和送餐机器人的动作控制提供依据。实际应用表明,该服务器程序能够有效地对订餐信息进行管理,实现机器人餐厅的正确运作。
机器人; 服务器; LabVIEW; 通信协议
服务机器人可以定义为一种半自主或全自主工作的机器人,它能完成除工业领域外有益于人类的服务性工作[1]。由于机器人自身技术附加值较高,产品应用范围广,而且已经成为重要的技术辐射平台,世界各国纷纷将突破机器人技术、发展机器人产业摆在本国科技发展的重要战略地位[2]。我国也在《国家中长期科学和技术发展规划纲要(2006—2020年)》[3]中,提出将服务机器人作为未来优先发展的战略高技术。
传统餐饮行业存在餐厅服务人员劳动强度大、长时间服务容易出现错误、订餐信息化程度不高等不足。随着科学技术的发展,机器人在餐饮领域逐渐得到应用,可以代替人类服务员提供迎宾、点餐、配餐、送餐等服务,并大大提高了信息化程度[4-9]。目前,关于餐厅机器人的研究主要集中于机器人本体结构设计或机器人运动、定位或避障控制等方面,缺少对订餐、配餐和送餐整个流程的自动化考虑,以及贯穿其中的信息管理和解析问题[5-10]。本文围绕订餐信息传输和解析问题,基于LabVIEW设计了一套信息管理服务器,用以对订餐信息进行管理和解析,控制各机器人模块,完成订餐、配餐和送餐的整个流程控制。
1 机器人餐厅系统结构
机器人餐厅系统结构如图1所示,其中,4台送餐机器人通过WIFI模块及无线路由器与服务器、点餐机器人、配餐机器人以及液晶显示器(Liquid Crystal Display, LCD)触摸屏共同组成一个信息交互的局域网。
图1 机器人餐厅系统结构
机器人餐厅系统工作过程如下:顾客购买消费卡,在点餐机器人上刷卡,选择可以获取的用餐位置并点餐后,点餐机器人将订单号、座位号、订餐内容等订单信息通过以太网发送给服务器。服务器将订餐内容显示于配餐LCD上,并将该订餐内容分解为烹饪及无需烹饪两部分,需烹饪的部分发送至厨房LCD,以通知厨师进行烹饪;而无需烹饪的部分解析为配餐机器人动作参数,以控制配餐机器人将对应的菜品放置于餐盘指定位置。当配餐动作结束后,服务员根据配餐LCD显示内容进行确认,将正确配置的饭菜放置于送餐机器人上,并告知服务器完成配餐。服务器对送餐机器人状态进行查询,并将当前送餐座位号发送给处于待送餐状态的送餐机器人。送餐机器人接收到服务器送餐指令后将饭菜送到指定位置,由顾客确认并接收饭菜后返回取餐位,等待下一次送餐指令。
由此可见,服务器是机器人餐厅的重要组成部分,它需与点餐机器人、配餐机器人、厨房和配菜LCD以及送餐机器人进行信息交互,接收订餐信息并解析,生成控制指令,控制配餐机器人和送餐机器人完成配餐和送餐任务,其工作流程如图2所示。
图2 机器人餐厅服务器工作流程
2 网络通信
根据机器人餐厅的结构特点,餐厅各模块与服务器之间通过以太网基于TCP/IP协议进行通信,以实现服务器与运动中机器人的连接,提高信息传输的效率[11]。点餐机器人、配餐机器人和送餐机器人作为客户端主动连接服务器,服务器采用如图3所示的程序模块负责侦听客户端连接情况,并保存连接信息。
图3 网络连接侦听模块
为便于服务器同各机器人间进行正确的信息表达,定义如表1所示的用户协议。
表1 网络通信用户层协议
由于接收和发送数据具有非同步性,各组数据很容易混淆在一起,造成数据的错误解析,因此,为了分割每一帧数据,在该协议中设置了帧起始字符和结束字符[12]。协议中的数据段与特定的通信对象以及所需交互的信息有关,而循环冗余校验(Cyclic Redundancy Check, CRC)为2 B的数据检错码,它通过对数据内容计算生成[13-14]。接收端接收到数据后重新计算检错码,若与接收到的检错码不一致,则表示数据错误,要求数据发送端重新发送。
3 数据交互
3.1 订单信息交互及解析
顾客在点餐机器人上下单,点餐机器人通过网络将点餐信息传送给服务器,因此,点餐机器人与服务器之间围绕订单组织交互信息,主要包括订单号、座位号、菜品号以及对应数量等信息。其中,菜品号为套餐、零餐(包括小碗菜和大碗菜)的对应编号,服务器依据编号进行分类解析,并以餐盘为单位,生成一系列子订单。从实际顾客使用的角度出发,套餐应单独放置在一个餐盘进行配送,但为了便于配餐机器人配餐,可将套餐解析成小碗菜加大碗菜的形式,且小碗菜和大碗菜在餐盘中应有特定的坐标位置。而顾客所点的零餐通常需要多个餐盘来盛放,需要确定小碗菜和大碗菜在餐盘中的位置。为确定餐盘布局形式和菜碗在餐盘中的位置,预先给出餐盘中大、小碗放置的所有情形,根据顾客订单中的菜品信息进行解析和查询所需餐盘布局形式。图4给出了两种餐盘布局形式,分别为3份小碗菜+2份大碗菜和6份小碗菜。其中,W1为碗中心与餐盘中心的水平间距;L1为小碗与小碗之间的中心距;L2为大碗与大碗之间的中心距。服务器将订单信息解析的结果生成餐盘数据,每个餐盘数据包含其中放置的大、小碗的编号,以提供给配餐机器人生成动作序列。图5为订单信息解析流程。
图5 订单信息解析流程
3.2 配餐信息交互
经过上述订单信息解析后,以订单为单位的数据转化成以餐盘为单位的数据(包括餐盘布局和菜碗的位置信息),一个用户订单数据对应多个餐盘数据。配餐前,菜品在餐台上的布局如图6所示。
图6 菜品及餐盘在餐台上的布局
配餐采用安装有大、小两种末端执行器的直角坐标机器人,用以夹持大、小两种菜碗。由于配餐机器人作为执行机构,它面向的对象是菜品,每次仅取、放一个菜碗,它只需知道采用何种末端执行器、夹取菜碗的位置以及放置菜碗的位置,因此,服务器与配餐机器人之间围绕菜碗来组织交互数据,具体格式如表2所示,其中,x、y方向分别用一个4 B的数来表示。配餐数据解析流程如图7所示。
表2 配餐数据格式
图7 配餐数据解析流程
3.3 送餐信息交互
送餐信息交互是整个订餐过程的最后一个环节。当配餐机器人完成一个餐盘的配餐后,服务器通知当前处于空闲状态的送餐机器人负责送至指定座位。送餐机器人需要知道的信息包括送餐位置及菜品数据。送餐位置是用以控制送餐机器人运动的目标位置;菜品数据则显示给用户,以确认送餐正确与否。一个餐盘对应一个送餐机器人,故服务器与送餐机器人之间围绕餐盘组织交互数据,具体包括座位号、菜品等信息。
4 服务器程序设计
在机器人餐厅控制系统中,服务器需与点餐机器人、配餐机器人以及送餐机器人等多个客户端进行数据交互,彼此间是并列运行的关系;而LabVIEW是一种自动多线程语言,较易实现这种并行通信软件结构。总结以上内容,图8给出了服务器程序模块,每个模块用一个while循环结构来实现,采用生产—顾客模式[14-15]。该模式可以很好地解决数据采集与处理速率不一致的问题,大大提高了多个模块之间数据共享的能力[16]。在服务器程序中,由点餐机器人“生产”订单数据,配餐机器人和送餐机器人作为“顾客”,对订单数据进行处理。
图8 服务器程序模块
机器人餐厅服务器程序界面如图9。该界面中,可以查看订单信息,各机器人连接、运行状态,烹饪、配餐及送餐状态等。
2015年,机器人餐厅在江苏盐城某地开张营业,经历了半年的试运营和完善,该餐厅最高可完成每小时20个订单,各机器人单元运行有效,服务器功能得到很好发挥。餐厅运营情况如图10所示。
图9 服务器程序主界面
图10 机器人餐厅运营
5 结 语
本文借助于自动多线程编程语言LabVIEW设计了机器人餐厅服务器,在对各功能模块功能分析的基础上,完成了订餐信息的正确解析,实现了服务器与点餐机器人、配餐机器人和送餐机器人的数据交互,达到了机器人餐厅正确有效运作的目的。
[1] INTERNATIONAL FEDERATION OF ROBOTICS. Definition of service robots [EB/OL]. http://www.ifr.org/service-robots/.
[2] 王田苗, 陶永, 陈阳. 服务机器人技术研究现状与发展趋势 [J]. 中国科学: 信息科学, 2012, 42(9): 1049-1066.
[3] 中华人民共和国国务院. 国家中长期科学和技术发展规划纲要(2006—2020年) [EB/OL].[2017-01-20]. http://www.most.gov.cn/mostinfo/xinxifenlei/gjkjgh/200811/t20081129_65774.htm.
[4] 朱亚荣, 姜树海. 基于PLC的收餐机器人控制系统设计 [J]. 计算机测量与控制, 2016, 24(5): 84-88.
[5] 蒲睿. 餐厅服务机器人设计 [J]. 软件导刊, 2015, 14(7): 85-87.
[6] 王雁平, 倪皓琦, 杨振宏. 餐厅服务机器人的引导探索 [J]. 传感器世界, 2011(12): 6-8,14.
[7] 于清晓, 吴珂科, 袁灿, 等. RFID技术在一种餐厅服务机器人定位中的应用 [J]. 东华大学学报(自然科学版), 2012, 38(4): 460-464.
[8] 顾菊芬, 李泓. 基于双核异构混合系统的智能餐厅助手服务机器人 [J]. 实验室研究与探索, 2015, 34(12): 57-60.
[9] 徐航宇, 范则远, 蔡俊杰. 基于MSP430单片机的餐厅服务机器人的多状态显示系统的研究 [J]. 计算机与数字工程, 2016, 44(10): 1957-1962.
[10] 谭等泰. 智能餐厅服务机器人系统的设计与实现 [J]. 甘肃科技, 2016, 32(8): 14-16.
[11] 陈树学, 刘萱. LabVIEW宝典 [M]. 北京: 电子工业出版社, 2012:438-439.
[12] 张杰, 张轶, 刘志辉. 基于LabVIEW的光伏发电监测系统通信差错控制 [J]. 自动化与仪表, 2011(6): 20-22.
[13] 陈金平, 吴文英. 基于LabVIEW的Modbus协议两种校验码的实现方法 [J]. 仪表技术, 2005(2): 42-43.
[14] 阮奇桢. 我和LabVIEW [M]. 2版. 北京: 北京航空航天大学出版社, 2012:237.
[15] 刘素贞, 吴延俊, 张闯, 等. 基于生产者/消费者设计模式的应力波信息采集系统的设计 [J]. 计算机测量与控制, 2016, 24(9): 198-202.
[16] 吴韧, 蔡伟义. 基于LabVIEW的零件尺寸公差检测仪 [J]. 制造业自动化, 2012, 34(3): 8-10.
Design of Administrative System for Robot-Based Canteen Based on LabVIEW
(School of Mechanical Engineering, Shanghai Dianji University, Shanghai 201306, China)
To realize correct communication between several modules in a robot-based canteen, an administrative server is designed. Using network communication techniques, the system architecture centered around the server is constructed for the robot-based canteen. The communication protocol was designed using LabVIEW to realize communications between the server and the robots for ordering, sorting and delivery. By analyzing the order, the ordering data are parsed into data of service plate to calculate the layout and coordinates of dishes in the service plate, providing information of motion control for the sorting and delivery robots. Practical application indicates that the server can manage ordering information effectively and make the canteen running perfectly.
robot; server; LabVIEW; communication protocol
2017 -03 -12
印松(1979-),男,讲师,博士,主要研究方向为机器人及其应用,E-mail: 1311697578@qq.com
2095 - 0020(2017)03 -0163 - 05
TP 242.3
A