智能咖啡厅助手:人形机器人 + 融合大模型,行为驱动的智能咖啡厅机器人
1. 大赛简介
本项目是'机器人大模型与具身智能挑战赛'的参赛作品。目标是结合前沿的大模型技术和具身智能技术,开发能在模拟的咖啡厅场景中承担服务员角色并自主完成各种具身任务的智能机器人。
1.1 赛题设计
大赛包含规定任务和开放任务两个赛道。总体目标任务是在仿真环境中,参赛者通过大模型训练机器人在咖啡厅场景成为合格的咖啡厅服务员。这项比赛的考核要点是将大语言模型(LLMs)整合到机器人系统中,开发能够理解自然语言并以友好和有效的方式与人类互动,并能在咖啡店仿真场景中自主完成各种服务任务的智能机器人。
选手可以按照一般常识性理解,进行机器人任务设定和训练。在仿真场景中,机器人可以与可交互的物品和 NPC 进行互动操作的训练,比如:咖啡店服务员与顾客(NPC)互动、接受和执行订单以及回答有关菜单的问题、导航、操作咖啡机、清理桌子/地面、开空调/开灯、递送咖啡/饮料/食物等。
考核要点
- 主动探索和记忆(Active Exploration and Memorization):机器人在环境中通过主动探索获得各种环境信息,实现对位置环境的感知,形成以环境感知信息以及运动轨迹等历史信息维护一个机器人自身的记忆库。
- 场景多轮对话(Grounded Question Answering):多轮对话要求机器人智能体具有与人进行流畅的交流能力,具身对话是机器人利用视觉等传感器获得的场景信息基础上,完成于场景相关的对话。
- 视觉语言导航(Vision Language Navigation):导航是构建智能机器人的一个基本要素。在现实场景中,一个机器人要在不同的场景下承担多种复杂的导航任务。模拟器支持多任务的现实世界导航和物体互动。对于这个任务中的导航,尽管有传统的 ObjectNav 和 PointNav,你可以利用的环境完成简单到复杂的视觉语言导航,并有不同难度的指示,以及交流导航,机器人智能体可以在导航中寻求帮助。
- 视觉语言操作(Vision Language Manipulation):抓取是指机器人使用机械臂抓取物体并将其从一个原始位置移动到目标位置的动作。尽管机器人学习算法在现有的挑战上取得了很大的突破和改进,但仍有许多问题亟待解决。这项任务要求机器人按照视觉和语言的场景描述来抓取一个物体。虽然 Saycan 和 RT-1 在以前的研究中被用来实现使用 Deep-RL 算法的抓取,但这项任务更侧重于在现实环境中抓取薄、大、平、软的物体,避免碰撞,以及多任务抓取。参赛者需要根据大语言模型提供的指令,解决在不同场景下抓取不同物体的问题。具体抓取物品的技能需要参赛者基于提供的环境和工具接口,通过强化学习等方式进行训练。
1.2 评估标准
参赛队必须将 LLMs 纳入其机器人系统,以促进自然语言的理解和互动。比赛将根据以下标准来评估机器人系统的性能:
- 任务完成的准确性和效率:参赛者将被评估任务完成的准确性和效率,包括物体操作、导航到准确位置的精度,执行推理速度,订单执行和人机互动。机器人必须准确、高效地完成任务,才能获得分数。
- 人与机器人的互动:参赛者将被评估其机器人与顾客和工作人员互动的自然度和友好度。机器人必须以自然和友好的方式进行交流,以获得积分。
- 时间限制:参赛者将有规定的时间来完成任务,在规定时间内得分最高的团队将被宣布为获胜者。
1.3 技术融合与挑战
在该研究中,非常有意思的是达闼机器人还设计了两个具有挑战性的赛题,在对话人员中加入了'店长'这一角色。机器人除了需要作为服务员响应相关顾客的消费需求,还需要与店长'对接'工作,实现人机协同。
在店长与机器人的交互中,又衍生出了更加复杂的任务,机器人需要完成'领导交办的其他任务'。例如店长说好像地面不干净了,机器人就要理解这话什么意思,判断意思是我可能还要去再清洁一下卫生。类似的机器人触发式任务,非常考验机器人环境职责定义和自主动作选择,需要最终机器人能够像是真正的咖啡厅服务人员,具备各种各样的附加能力,做到类似'阴天开灯'、'水洒擦桌子'等随机性事件的自主化观察和处理,为真正落地应用部署打下基础。
大模型对于实际场景的价值仍然处于发掘期,本次大赛中,大模型对于机器人技术的实际提升无疑是一个很大的亮点。本次比赛着重体现了大模型技术应用思维链(CoT)能力的价值。该能力主要体现在机器人接到任务后,对于任务的分解,从而基于思维推理形成思路链,该方式相较原先的固定化编程和深度学习,机器人可以借助大语言模型,实现自然语言到机器语言的理解、转化,最终完成两者的对齐,从而自主化执行任务。
这也意味着,机器人和大模型深度结合后,在未来如果进一步实现了零样本学习(zero-shot),依托这两项技术,机器人也可以借助大模型实现关节运动控制,从而无需对机器人身体部位、动作的轨迹进行编程,真正做到零代码编程。
在这个比赛流程中,就看到了智能服务机器人在语音、视觉、导航、操作等方面的落地可能性。机器人进入陌生场景,首先会进行环境的主动探索与记忆,感知、判断不同物体和属性,实现记忆数据记录和调取。在此基础上,随后机器人开始在咖啡厅场景里与人进行交流对话,拆解任务信息。在执行层面,机器人需要借助视觉语言模型,拆分指令并实现具体动作,例如人说想喝水,机器人就需要拿取水杯、用水壶去倒水,并把水送给客人。
2. 项目安装(必看)
2.1 技术架构简介
本项目提出基于大模型和行为树的生成式具身智能体系统框架。
- 行为树:是系统的中枢,作为大模型和具身智能之间的桥梁,解决两者结合的挑战。
- 大语言模型:是系统的大脑。一方面,设计了向量数据库和工具调用,另一方面,在实现智能体规划上,不再需要大语言模型输出完整的动作序列,而仅仅给出一个任务目标,这大大缓解了大模型的具身幻觉现象。
- 具身机器人:是系统的躯体,在条件节点感知和动作节点控制的函数中,优化了接口调用和算法设计,提高感知高效性和控制准确性。
2.2 环境要求
2.3 安装步骤
git clone https://github.com/HPCL-EI/RoboWaiter.git
cd RoboWaiter
pip install -e .
以上步骤将完成 robowaiter 项目以及相关依赖库的安装。
2.4 UI 安装与配置
将软件安装目录的 bin 文件添加到系统环境中。如电脑是 Windows 系统,Graphviz 安装在 D:\Program Files (x86)\Graphviz2.38,该目录下有 bin 文件,将该路径添加到电脑系统环境变量 path 中,即 D:\Program Files (x86)\Graphviz2.38\bin。如果不行,则需要重启。
安装向量数据库:
conda install -c conda-forge faiss
安装自然语言处理和翻译工具,用于计算相似性:
pip install translate
pip install spacy
python -m spacy download zh_core_web_lg
zh_core_web_lg 如果下载较慢,建议寻找官方镜像源或本地预置包进行安装。
2.5 快速入门
安装 UE 及 Harix 插件,打开默认项目并运行。
- 不使用 UI 界面:运行
tasks_no_ui 文件夹下的任意场景即可实现机器人控制端与仿真器的交互。
- 使用 UI 界面:运行
run_ui.py,显示对应的界面。点击左侧的按钮,机器人就会执行相应的任务。也可以在右上方直接输出目标状态或者对话和机器人直接交互。
3. 代码框架介绍
代码库被组织成几个模块,每个模块负责系统功能的一部分:
- behavior_lib:
behavior_lib 是行为树节点库类,包括行为树的动作节点和条件节点。它们分别存放在 act 和 cond 文件夹下。
- behavior_tree:
behavior_tree 是行为树算法类,包括 ptml 编译器、最优行为树逆向扩展算法等。
- robot:
robot 是机器人类,包括从 ptml 加载行为树的方法,以及执行行为树的方法等。
- llm_client:
llm_client 是大模型类,主要实现了大模型的数据集构建、数据处理工具、大模型调用接口、大模型评测、工具调用、工具注册、向量数据库、单论对话、对轮对话等方法或接口。
调用大模型接口。运行 llm_client.py 文件调用大模型进行多轮对话。输入字符即可等待回答:
cd robowaiter/llm_client
python multi_rounds.py
- scene:
scene 是场景基类,该类实现了一些通用的场景操作接口,实现了与 UE 和咖啡厅仿真场景的通信。其中,包括了官方已经封装好的各种接口,如场景初始化、行人控制、操作动画设置、物品设置、机器人 IK 接口等。task_map 返回的任务场景都继承于 Scene。此外,在 scene/ui 中,实现了 UI 的界面设计和接口封装。
- utils:
utils 为其它工具类,比如绘制行为树并输出为图片文件。
- algos:
algos 是其它算法类,包括 MemGPT、导航算法 (navigator)、边界探索 (explore)、视觉算法 (vision)、向量数据库 (retrieval) 等。
- tasks:
tasks 文件夹中存放的场景定义及运行代码。
| 缩写 | 任务 |
|---|
| AEM | 主动探索和记忆 |
| GQA | 具身多轮对话 |
| VLN | 视觉语言导航 |
| VLM | 视觉语言操作 |
| OT | 复杂开放任务 |
| AT | 自主任务 |
| CafeDailyOperations | 整体展示:咖啡厅的一天 |
| Interact | 命令行自由交互 |
4. 效果展示
4.1 订单处理
机器人根据顾客的点单,完成订单并送餐。系统展示了从接收语音指令到解析意图,再到规划路径和操作咖啡机的完整闭环。
4.2 交互问答
顾客询问物品位置,并要求机器人送回。机器人利用视觉定位系统确认物品坐标,并通过导航模块规划避障路径,最终完成交付。
5. 技术难点与解决方案
5.1 大模型幻觉问题
在具身智能任务中,大模型容易产生幻觉,即生成看似合理但无法执行的指令。本系统通过引入行为树作为中间层来解决这一问题。大模型仅负责高层任务规划(Task Planning),输出抽象的目标状态,具体的原子动作由行为树中的节点库保证可执行性。这种分层架构显著降低了底层控制错误率。
5.2 多模态感知延迟
在实时交互中,视觉和听觉数据的处理存在延迟。系统采用了异步处理机制,将感知数据缓存至向量数据库中,供对话模块检索。同时,行为树的条件节点会定期刷新环境状态,确保决策基于最新的信息。
5.3 长程任务规划
面对复杂的开放任务(OT),单一的大模型调用难以维持长上下文的一致性。系统引入了记忆模块(Memory Module),记录历史交互和环境变化。在规划新任务时,检索相关历史经验,辅助大模型做出更符合逻辑的决策。
6. 未来展望
随着具身智能技术的发展,此类系统将在更多商业场景中落地。未来的改进方向包括:
- 端到端训练:尝试将感知、规划、控制部分打通,利用强化学习进一步优化策略网络。
- 泛化能力提升:通过域随机化技术,增强模型在不同光照、布局环境下的适应能力。
- 多机器人协作:扩展系统支持多个机器人协同工作,例如一个负责点单,另一个负责制作,提升服务效率。
本项目展示了大模型与具身智能结合的潜力,为未来服务机器人的智能化发展提供了可行的技术路径。