印 松,
(上海電機學院 機械學院, 上海 201306)
?
基于LabVIEW的機器人餐廳服務器設計
(上海電機學院 機械學院, 上海 201306)
為實現機器人餐廳多模塊間正確的數據交互,設計了一套餐廳管理服務器。利用網絡通信技術,構建了以服務器為中心的控制系統結構。基于LabVIEW編程語言設計了網絡通信協議,實現了服務器與點餐機器人、配餐機器人和送餐機器人之間的通信。從分析訂單數據出發,將訂單數據解析為以餐盤為單位的數據,從而得到菜品在餐盤中的布局形式、位置坐標,為配餐機器人和送餐機器人的動作控制提供依據。實際應用表明,該服務器程序能夠有效地對訂餐信息進行管理,實現機器人餐廳的正確運作。
機器人; 服務器; LabVIEW; 通信協議
服務機器人可以定義為一種半自主或全自主工作的機器人,它能完成除工業領域外有益于人類的服務性工作[1]。由于機器人自身技術附加值較高,產品應用范圍廣,而且已經成為重要的技術輻射平臺,世界各國紛紛將突破機器人技術、發展機器人產業擺在本國科技發展的重要戰略地位[2]。我國也在《國家中長期科學和技術發展規劃綱要(2006—2020年)》[3]中,提出將服務機器人作為未來優先發展的戰略高技術。
傳統餐飲行業存在餐廳服務人員勞動強度大、長時間服務容易出現錯誤、訂餐信息化程度不高等不足。隨著科學技術的發展,機器人在餐飲領域逐漸得到應用,可以代替人類服務員提供迎賓、點餐、配餐、送餐等服務,并大大提高了信息化程度[4-9]。目前,關于餐廳機器人的研究主要集中于機器人本體結構設計或機器人運動、定位或避障控制等方面,缺少對訂餐、配餐和送餐整個流程的自動化考慮,以及貫穿其中的信息管理和解析問題[5-10]。本文圍繞訂餐信息傳輸和解析問題,基于LabVIEW設計了一套信息管理服務器,用以對訂餐信息進行管理和解析,控制各機器人模塊,完成訂餐、配餐和送餐的整個流程控制。
機器人餐廳系統結構如圖1所示,其中,4臺送餐機器人通過WIFI模塊及無線路由器與服務器、點餐機器人、配餐機器人以及液晶顯示器(Liquid Crystal Display, LCD)觸摸屏共同組成一個信息交互的局域網。

圖1 機器人餐廳系統結構
機器人餐廳系統工作過程如下:顧客購買消費卡,在點餐機器人上刷卡,選擇可以獲取的用餐位置并點餐后,點餐機器人將訂單號、座位號、訂餐內容等訂單信息通過以太網發送給服務器。服務器將訂餐內容顯示于配餐LCD上,并將該訂餐內容分解為烹飪及無需烹飪兩部分,需烹飪的部分發送至廚房LCD,以通知廚師進行烹飪;而無需烹飪的部分解析為配餐機器人動作參數,以控制配餐機器人將對應的菜品放置于餐盤指定位置。當配餐動作結束后,服務員根據配餐LCD顯示內容進行確認,將正確配置的飯菜放置于送餐機器人上,并告知服務器完成配餐。服務器對送餐機器人狀態進行查詢,并將當前送餐座位號發送給處于待送餐狀態的送餐機器人。送餐機器人接收到服務器送餐指令后將飯菜送到指定位置,由顧客確認并接收飯菜后返回取餐位,等待下一次送餐指令。
由此可見,服務器是機器人餐廳的重要組成部分,它需與點餐機器人、配餐機器人、廚房和配菜LCD以及送餐機器人進行信息交互,接收訂餐信息并解析,生成控制指令,控制配餐機器人和送餐機器人完成配餐和送餐任務,其工作流程如圖2所示。

圖2 機器人餐廳服務器工作流程
根據機器人餐廳的結構特點,餐廳各模塊與服務器之間通過以太網基于TCP/IP協議進行通信,以實現服務器與運動中機器人的連接,提高信息傳輸的效率[11]。點餐機器人、配餐機器人和送餐機器人作為客戶端主動連接服務器,服務器采用如圖3所示的程序模塊負責偵聽客戶端連接情況,并保存連接信息。

圖3 網絡連接偵聽模塊
為便于服務器同各機器人間進行正確的信息表達,定義如表1所示的用戶協議。

表1 網絡通信用戶層協議
由于接收和發送數據具有非同步性,各組數據很容易混淆在一起,造成數據的錯誤解析,因此,為了分割每一幀數據,在該協議中設置了幀起始字符和結束字符[12]。協議中的數據段與特定的通信對象以及所需交互的信息有關,而循環冗余校驗(Cyclic Redundancy Check, CRC)為2 B的數據檢錯碼,它通過對數據內容計算生成[13-14]。接收端接收到數據后重新計算檢錯碼,若與接收到的檢錯碼不一致,則表示數據錯誤,要求數據發送端重新發送。
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 送餐信息交互
送餐信息交互是整個訂餐過程的最后一個環節。當配餐機器人完成一個餐盤的配餐后,服務器通知當前處于空閑狀態的送餐機器人負責送至指定座位。送餐機器人需要知道的信息包括送餐位置及菜品數據。送餐位置是用以控制送餐機器人運動的目標位置;菜品數據則顯示給用戶,以確認送餐正確與否。一個餐盤對應一個送餐機器人,故服務器與送餐機器人之間圍繞餐盤組織交互數據,具體包括座位號、菜品等信息。
在機器人餐廳控制系統中,服務器需與點餐機器人、配餐機器人以及送餐機器人等多個客戶端進行數據交互,彼此間是并列運行的關系;而LabVIEW是一種自動多線程語言,較易實現這種并行通信軟件結構。總結以上內容,圖8給出了服務器程序模塊,每個模塊用一個while循環結構來實現,采用生產—顧客模式[14-15]。該模式可以很好地解決數據采集與處理速率不一致的問題,大大提高了多個模塊之間數據共享的能力[16]。在服務器程序中,由點餐機器人“生產”訂單數據,配餐機器人和送餐機器人作為“顧客”,對訂單數據進行處理。

圖8 服務器程序模塊
機器人餐廳服務器程序界面如圖9。該界面中,可以查看訂單信息,各機器人連接、運行狀態,烹飪、配餐及送餐狀態等。
2015年,機器人餐廳在江蘇鹽城某地開張營業,經歷了半年的試運營和完善,該餐廳最高可完成每小時20個訂單,各機器人單元運行有效,服務器功能得到很好發揮。餐廳運營情況如圖10所示。

圖9 服務器程序主界面

圖10 機器人餐廳運營
本文借助于自動多線程編程語言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
