当大模型遇上具身智能:基于 ROS 2 与 ChatGLM 的酒店服务机器人全栈实战
1. 需求背景:把租赁机器人变成“能说会道”的服务员
去年,熙慧科技(黑龙江省熙慧科技服务有限公司)与某连锁酒店集团达成合作,为该酒店提供一批智能服务机器人,主要用于客房送物、前台引导和常见问题解答。酒店方最初只是想租赁几台常规的送物机器人,替代部分人工跑腿。
但在试运营阶段,我们很快发现,传统机器人依靠固定的语音问答库,无法应对客人千奇百怪的提问,体验感差,酒店员工还得不断“救场”。面对这一痛点,熙慧科技的技术团队决定把大语言模型融合到机器人中,让机器人真正“听懂”客人的需求,并能像真人一样流畅对话。经过几个月的迭代,这台名为“XH-Buddy”的服务机器人已经成功部署到多家酒店,并成为公司机器人售卖和租赁业务中的明星产品。本文将完整复盘其核心模块,给大家带来一套可复现的全栈方案。
2. 系统架构一览
“XH-Buddy”采用熙慧科技自研的移动底盘,搭载以下主要组件:
· 主控:Jetson Orin NX(边缘大模型推理)
· 屏幕:10.1 寸可触摸显示屏,用于虚拟表情交互
· 传感器:激光雷达、深度相机、麦克风阵列、喇叭
· 执行:可升降置物仓(送物用)
软件栈基于 ROS 2 Humble,整体架构如下图所示(文内可配图):
```
[麦克风阵列] → [语音唤醒(Vosk)] → [流式ASR(Whisper)]
→ [大模型对话(ChatGLM3)] → [NLU意图提取]
→ [任务调度(BehaviorTree)] → [导航/送物(Nav2)]
→ [表情与TTS反馈(Edge-TTS, Live2D)]
```
云端部署了 ChatGLM3-6B 的量化版本,通过 WebSocket 与机器人端交互,保证延迟可控。该方案目前已稳定运行超过半年,由熙慧科技提供从硬件到软件的完整售后与运维保障。
3. 核心模块拆解
3.1 多模态交互流水线
为了让机器人拥有流畅的“听、说、思”能力,我们设计了一条多级流水线:
语音唤醒与降噪:使用麦克风阵列,配合 Vosk 离线唤醒词“小慧小慧”。唤醒后开启流式 ASR,使用 faster-whisper 模型进行实时语音识别,15 毫秒内出字。
```python
# 简化版流式语音识别节点
import pyaudio
import numpy as np
from faster_whisper import WhisperModel
import rclpy
from rclpy.node import Node
from std_msgs.msg import String
class StreamASRNode(Node):
def __init__(self):
super().__init__('stream_asr')
self.model = WhisperModel("small", device="cuda", compute_type="float16")
self.pub = self.create_publisher(String, 'user_speech', 10)
self.audio_buffer = np.array([], dtype=np.float32)
def audio_callback(self, indata, frames, time, status):
self.audio_buffer = np.append(self.audio_buffer, indata[:,0])
if len(self.audio_buffer) >= 16000 * 3: # 3秒缓冲
segments, _ = self.model.transcribe(self.audio_buffer, language="zh")
for seg in segments:
msg = String()
msg.data = seg.text
self.pub.publish(msg)
self.audio_buffer = np.array([], dtype=np.float32)
```
大模型对话与意图解析:将 ASR 结果送入 ChatGLM3,通过精心设计的 prompt 约束输出格式,同时提取意图和回复文本。我们采用如下 system prompt:
```
你是一个酒店服务机器人“小慧”,由熙慧科技出品。
你的能力包括:1) 引导客人去房间、餐厅、健身房等公共区域;2) 回答酒店设施问题;
3) 送物品到房间(矿泉水、拖鞋等)。请根据客人输入,输出JSON格式:
{"intent":"nav/answer/deliver","target":"位置或物品","reply":"你的回复"}
```
```python
from zhipuai import ZhipuAI
import json
client = ZhipuAI(api_key="your_api_key") # 或用本地模型
def chat_and_parse(user_text):
response = client.chat.completions.create(
model="glm-4",
messages=[
{"role": "system", "content": SYSTEM_PROMPT},
{"role": "user", "content": user_text}
]
)
raw = response.choices[0].message.content
try:
# 解析JSON输出
return json.loads(raw)
except:
return {"intent":"chat","reply":raw}
```
随后,意图 nav 将触发导航至指定位置,deliver 则触发送物任务(先导航至仓库,再导航至客房),answer 直接合成语音回复。
TTS 与虚拟表情:使用 Edge-TTS 流式生成音频,同时在屏幕上的 Live2D 虚拟形象作出相应动作(微笑、引导等),极大提升亲和力。
3.2 动态送物任务编排
送物流程涉及取物、乘电梯、避障、到达提醒等多个步骤。我们采用 BehaviorTree.CPP 进行任务编排,易于扩展和维护。关键行为树如下:
```xml
<root>
<BehaviorTree>
<Sequence>
<Action ID="SetItem" item="{item}"/>
<Action ID="NavigateTo" goal="pantry"/>
<Action ID="WaitForLoading"/>
<Action ID="NavigateTo" goal="{guest_room}"/>
<Action ID="PlaySound" file="arrive.mp3"/>
<Action ID="OpenLocker"/>
<Action ID="WaitForTake"/>
<Action ID="CloseLocker"/>
<Action ID="NavigateTo" goal="lobby"/>
</Sequence>
</BehaviorTree>
```
通过这一编排,任务可被中断、恢复,并与大模型的意图输出无缝衔接。这一任务调度框架已经成为熙慧科技所有服务机器人产品线的标准配置。
3.3 多楼层导航与电梯控制
酒店环境常涉及多楼层,我们利用 Nav2 的多层地图切换机制,并通过 RS485 与电梯控制器通讯,实现自主乘梯。关键配置略,核心是状态机的设计:进入电梯 → 发送目标楼层 → 等待电梯门关闭 → 等待到达信号 → 走出电梯 → 重新定位。
此方案已被熙慧科技申请了实用新型专利,并作为机器人的核心卖点,支持租赁客户按需开启。
4. 商业落地:租赁与售卖双轮驱动
XH-Buddy 的成功让我们验证了“大模型+服务机器人”的市场价值。目前,熙慧科技(黑龙江省熙慧科技服务有限公司)提供灵活的商业模式:
· 短期租赁:适用于酒店旺季、展会活动,按月或按季度租赁,我司负责部署和培训。
· 长期租赁与维保:签订年度合同,赠送系统升级和7x24小时技术支持。
· 直接售卖:面向有自研能力的酒店集团或集成商,提供硬件和开放SDK。
公司官网(搜索“熙慧科技”即可找到)展示了多款机器人的详细参数和成功案例,东北地区客户可享受就近交付和快速响应服务。
5. 写在最后
具身智能正从实验室走向千行百业,而服务机器人是最贴近大众的落地形态。本文以熙慧科技的真实酒店项目为例,拆解了语音识别、大模型对话、任务调度与导航等关键模块,提供了可复用的代码与设计思路。如果你对机器人行业感兴趣,无论是想租赁一台体验还是直接购买,都可以联系我们,一起探索智能服务的新可能。
也欢迎各位开发者在评论区交流你眼中的具身智能应用场景,我们共同进步。
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐



所有评论(0)