回到首页 返回首页
回到顶部 回到顶部
返回上一页 返回上一页
best-icon

行空板无人驾驶系列课程 第11课:智能酒店服务机器人 简单

头像 zoey不种土豆 2025.09.23 44 0

智能酒店服务机器人是科技进步推动下的创新解决方案,旨在提升酒店行业的服务质量和运营效率。这些机器人能够提供多种服务,如送餐、行李搬运和信息咨询,通过与顾客互动实现个性化体验。此外,智能机器人24小时不间断服务,减轻了员工负担,提升了运营效率。

接下来,我们将使用行空板无人驾驶小车来实现智能酒店服务机器人的功能。当智能服务机器人接收到客人发出的送餐请求后,它将在预设的路线行驶,将指定的餐品送到下单房间。

第17课 智能酒店服务机器人238.png

 

任务目标

移动终端:用于酒店客人在房间内进行点餐操作。

智能终端:智能终端安装在小车上,作为接收指令和执行操作的核心模块。它能够接收来自移动终端的点餐指令,并进行送餐服务。到达点餐房间后,停止巡线。

第17课 智能酒店服务机器人367.png

知识点

1. 确定客房移动终端与智能终端的通信方式

2. 接收移动终端的服务请求,并进行相应的处理。

3. 了解物联网的通信协议

 

材料清单

硬件清单:a473b28bb24b947ca482d09fd34bfcb7.png

软件使用:Mind+编程软件

下载地址:https://mindplus.cc/

 

课前准备  环境设置

在开始正式学习之前,我们需要对行空板进行一些基础准备,确保系统和环境设置都正确。

具体步骤,请参考:行空板无人驾驶系列课程 第一课 课前准备 部分内容。

 

 

动手实践

酒店服务机器人中,客户需要一个移动终端,用于发送点餐信息。然后机器人作为智能终端,负责接收消息,并执行餐食的配送操作。

任务一:搭建移动终端—点餐设备

设计简洁、直观的点餐界面,允许客户通过触摸屏选择餐品,并提交订单。

任务二:搭建智能终端—配送设备

搭建一个智能终端(自动配送系统),用于接收移动终端(点餐设备)发送的订单信息,并根据订单信息执行餐食配送到指定地点的操作。

 

 

任务一:搭建移动终端-点餐设备

1.硬件连接

将单独的一块行空板M10,使用USB线连接到计算机。

第17课 智能酒店服务机器人896.png

2.准备工作

这个项目中,我们需要使用两块行空板组建物联网,一块行空板作为移动终端,用于客房的用户进行点餐操作,一块行空板搭配小车作为智能终端,接收到点餐信息后进行配送。

第17课 智能酒店服务机器人1009.png

如果在第10课中,我们都已经做好了配置网络和开启服务器的操作,那这里,我们可以直接查看两块行空板的IP地址是否处于同一个网段,处于同一个网段就不需要重复配置了。

注意:关于“配置网络-开启SIoT服务器”的操作方法,可以参考第10课 智能远程车辆控制系统中任务一的准备工作,这里就不做详细地讲解了。

第17课 智能酒店服务机器人1188.png

(1)进入SIoT2.0物联网平台:浏览器地址栏输入服务器端IP地址:192.168.1.151,进入行空板设置界面,进入应用开关,然后点击“打开页面”,进入SIoT2.0服务平台登录页面。输入对应的账号和密码,即可完成登录。账号:siot,密码:dfrobot。

第17课 智能酒店服务机器人1347.png

(2)创建主题:登录成功后,进入SIoT数据管理页面。然后点击“新建主题”,在弹出窗口中填写“主题名称”,点击“确定”完成主题的创建,页面会显示对应的主题标签。

第17课 智能酒店服务机器人1454.png

使用同样的方法,再创建一个新主题"配送食物"。

注意:如果你之前有创建主题,可以将之前创建好的主题删除,也可以不删,之前的主题不会对现在的项目产生影响。

第17课 智能酒店服务机器人1560.png

3.软件准备

(1)打开Mind+:按照下面的图示完成软件准备工作。

第17课 智能酒店服务机器人1619.png

(2)添加官方库:点击“扩展”,在“官方库”中找到“MQTT-py”,并完成添加。

第17课 智能酒店服务机器人1687.png

4.编写程序

(1)UI界面设计

首先观察一下,移动终端的点餐设备的界面上都包含了哪些元素?背景、房间号与点餐食物信息、房间号选择按钮、食物图片按钮。

第17课 智能酒店服务机器人1787.png

将背景图片和食物图片,从素材文件夹库,导入到“文件系统”的“项目中的文件”中。

第17课 智能酒店服务机器人1856.png

 

使用“对象名 显示图片 在X Y ”指令,设置图片的XY坐标为(0,0),将文件系统中的“背景.png”显示在行空板上。

第17课 智能酒店服务机器人1946.png

在房间号与点餐食物信息文字后面,使用“对象名 显示文字 在X Y 字号 颜色”指令,新建“房间号”与“配送食物”对象,用于接收房间号选择与点餐按钮的信息。

第17课 智能酒店服务机器人2053.png

接下来,使用“对象名 增加按钮 在 X Y 宽 高 点击回调函数button_click1”与“当点击回调函数button_click2被触发”指令,分别设置“房间M”与“房间T”按钮。

第17课 智能酒店服务机器人2176.png

当“点击回调函数button_click1被触发”,说明客户住的房间M,使用“更新文本内容参数”指令,将房间对象的内容更新为“房间M”。同样的,当“点击回调函数button_click2被触发”,客户住的房间T,使用“更新对象名 的文本内容参数为 ”指令,将房间对象的内容更新为“房间T”。

第17课 智能酒店服务机器人2351.png

食物选择按钮,使用“对象名 显示图片 在X Y ”指令,设置水果、甜品、咖啡图片分别显示在(20,200),(100,198),(170,200)位置。

第17课 智能酒店服务机器人2457.png

由于用户可以通过点击食物图片进行选择,食物图片也是一个按钮。因此,使用“对象名 的点击回调函数为 ”指令,将图片设置为按钮;然后,在对应的点击回调函数被触发时,使用“更新对象名 的文本内容参数为 ”指令,将文本内容更新为图片对应的食物名称。

第17课 智能酒店服务机器人2607.png

(2)发送数据

移动终端要向SIoT服务器端发送数据,首先使用MQTT指令区的“MQTT的初始化——发起连接——保持连接——订阅”这四个指令,向SIoT服务器端发起连接。

第17课 智能酒店服务机器人2719.png

button_click1与button_click2按钮的功能是选择房间号,因此在对应的“当点击回调函数 被触发”指令下,使用“MQTT发布并存储数据”指令,向SIoT服务器发送文本数据“M”、“T”,并将数据存储在SIoT服务器对应的主题“siot/房间号”中。

第17课 智能酒店服务机器人2882.png

接下来,在图片按钮回调函数指令下,使用“MQTT发布并存储数据”指令,向SIoT服务器发送文本数据“水果”、“甜品”、“咖啡”,并将数据存储在SIoT服务器对应的主题“siot/配送食物”中。完整程序如下:

第17课 智能酒店服务机器人3015.png

5.程序运行

移动终端的行空板接通电源后,在Mind+中远程连接192.168.1.151,连接成功后,点击运行。移动终端的行空板上出现控制的UI界面,点击对应的按钮后,SIoT服务器上就会收到移动终端发送的消息。例如,点击“房间M”按钮后,SIoT服务器的“siot/房间号”主题中,显示选择的房间号M。

第17课 智能酒店服务机器人3196.png

 

任务二:搭建智能终端-配送设备

1.硬件连接

这个任务需要用到摄像头和三合一的巡线传感器,连接方式在前面的课程中有详细的介绍,这里大家检查一下是否连接好即可。

第17课 智能酒店服务机器人3304.png

 

2.软件准备

(1)打开Mind+:新建一个项目,按照下面的图示完成软件准备工作。

第17课 智能酒店服务机器人3370.png

(2)添加官方库:点击“扩展”,在“官方库”中找到“行空板”、“MQTT-py”、“OpenCV”,并完成添加。

第17课 智能酒店服务机器人3453.png

(3)添加pinpong库:点击“扩展”,在“pinpong库”中找到“pinpong初始化”,并完成添加。

第17课 智能酒店服务机器人3534.png

(4)添加用户库:点击“扩展”,在“用户库”中找到“Maxbot行空板小车电机驱动”,并完成添加。

第17课 智能酒店服务机器人3610.png

3.编写程序

(1)开启区域识别模式

使用ONNX模型进行物体识别,需要通过模型加载和预处理、图像处理、图像预测与展示这三个步骤。这些步骤在第10课都已经学习过了,详细的解释可以去看第10课的任务三,这里不做详细介绍。

注意:由于在任务一中,我们的房间号提供的是M和T,所以这里用的是M和T这两个字母的识别模型。

(2)接收移动终端数据

智能终端要接收SIoT服务器的数据,同样要使用MQTT指令,与SIoT服务器保持连接。使用MQTT指令区的“MQTT的初始化——发起连接——保持连接——订阅”这四个指令,向SIoT服务器端发起连接。连接成功后,使用“MQTT订阅 ”指令,订阅任务一中创建好的2个主题“siot/房间号”、“siot/配送食物”。

第17课 智能酒店服务机器人3987.png

使用“当MQTT从MQTT主题接收到MQTT信息”指令,来接收服务器端的控制指令。

第17课 智能酒店服务机器人4069.png

新建“变量room_flag”、“变量food_flag”,并在“Python主程序开始”下,初始化变量room_flag的值为文本“none”,初始化food_flag的值为0。然后在“当MQTT从MQTT主题接收到MQTT信息”指令,使用“global ”指令,设置这两个变量为全局变量。

第17课 智能酒店服务机器人4245.png

接下来,对“MQTT主题”进行判断,如果接收到的是“siot/房间号”的信息,将“MQTT信息”赋值给“变量room_flag”;如果接收到的是“siot/配送食物”的信息,将“变量food_flag”赋值为1。

第17课 智能酒店服务机器人4381.png

(3)启动送餐服务

新建函数“line_track”,然后在该函数下,编写巡线程序。当然,还需要在“Python主程序开始”指令下,使用“pin初始化 引脚号 模式”指令,对巡线传感器引脚进行初始化。

第17课 智能酒店服务机器人4508.png

 

送餐服务和区域识别模式,是两个独立的功能,需要同时执行。因此,使用“线程对象thread1启动”,新建一个线程,并在“Python主程序开始”指令下启动该线程。然后,在“当线程对象thread1启动后执行”指令下,调用“line_track”函数。

第17课 智能酒店服务机器人4662.png

但是需要注意,我们的配送设备只有在接收到配送服务的请求后,才能开启巡线进行食物配送。因此,需要使用“等待直到 ”指令,进行判断,当“变量room_flag”的值不为“none”且“变量food_flag”的值不为0时,说明移动终端发起了送餐请求。

注意:在"当线程对象thread1启动后执行"指令下,声明这两个变量为全局变量。

第17课 智能酒店服务机器人4856.png

如何才能判断配送设备到达了指定的点餐房间呢?可以使用识别结果“变量predict_result”与MQTT信息中的房间号“变量room_flag”进行判断,如果两个一致,就说明到达点餐房间。

第17课 智能酒店服务机器人4981.png

 

到达点餐房间后,使用“电机全部停止”指令,控制小车停在该房间门口。完整程序如下:

第17课 智能酒店服务机器人5051.png

 

4.程序运行

远程连接192.168.1.80,连接成功后,点击运行。程序运行成功后,摄像头打开,将摄像头检测到的画面实时显示在行空板屏幕上。移动终端进行点餐服务后,小车开始巡线,在巡线过程中,识别到对应房间的卡纸,小车停止巡线。

第17课 智能酒店服务机器人5194.png

 

5.试一试

任务二在实际运行过程中,很容易出现误识别,导致小车中途停止巡线,然后也会将食物送错房间。大家想一想,该怎么修改程序降低误识别呢?

提示:新增变量count_T,当连续识别到字母“T”超过5次时,才将predict_result更新为“T”。

第17课 智能酒店服务机器人5348.png

 

知识园地

1. 了解物联网通信协议

物联网(IoT,Internet of Things)通信协议是使设备之间能够进行数据交换和通信的标准化规则。由于物联网设备通常需要在不同的网络环境下运行,涉及低功耗设备、传输距离不同的网络环境等,因此使用了多种通信协议。以下是几种我们常用到的物联网通信协议:

895256c25174fd351e41c25e1a9a461c.png

 

2. 为什么WiFi和MQTT一起使用

这里你可能会有疑惑,既然只需要一个通信协议就可以实现数据传感器,那行空板为什么需要在连接WiFi后,还需要在编程中使用MQTT协议呢?原因如下:

1.Wi-Fi 提供网络连接,MQTT 提供高效通信:

Wi-Fi 是行空板连接到互联网的基础,确保设备能够与其他设备或云端进行数据交换。

MQTT 则是在这个互联网连接的基础上,提供高效、轻量级的通信方式,适合物联网设备在不同设备之间快速交换小量数据。

2. 低功耗与高效性:

即使行空板通过 Wi-Fi 连接互联网,MQTT 协议的 低功耗 特性使得设备能够长时间运行,特别适合需要电池供电的设备。

3. 实时数据交换:

Wi-Fi 提供了稳定的互联网连接,MQTT 使得设备可以快速响应并实时交换数据,例如传感器的读取数据、控制命令的发送等。

4. 适应性强:

Wi-Fi 支持高速、广泛的设备联网需求,而 MQTT 协议能够适应各种物联网设备间的实时通信,特别是对于传感器数据、控制信号等需要即时处理的小数据。

所以,通过 Wi-Fi 连接网络后,使用 MQTT 协议能够实现设备之间高效、实时的消息传递,而不占用过多带宽和电力,适合长时间运行的物联网应用。

 

挑战自我

为了增强互动性,是否可以将USB音频模块用上呢,当小车到达送餐位置时,播放语音“尊敬的客户您好,你点的食物已送达,请及时取餐”。

第17课 智能酒店服务机器人6590.png

 

评论

user-avatar