# RoboWaiter
本项目为参加达闼杯“机器人大模型与具身智能挑战赛”的参赛作品。我们的目标是结合前沿的大模型技术和具身智能技术,开发能在模拟的咖啡厅场景中承担服务员角色并自主完成各种具身任务的智能机器人。这里是我们的参赛作品《基于大模型和行为树和生成式具身智能体》的机器人控制端代码。
# 1. 技术简介
我们提出基于大模型和行为树的生成式具身智能体系统框架
1 行为树是系统的中枢,作为大模型和具身智能之间的桥梁,解决两者结合的挑战
2 大语言模型是系统的大脑。一方面,我们设计了向量数据库和工具调用,另一方面,在实现智能体规划上,我们不再需要大语言模型输出完整的动作序列,而仅仅给出一个任务目标,这大大缓解了大模型的具身幻觉现象。
3 而具身机器人是系统的躯体,在条件节点感知和动作节点控制的函数中,我们优化了接口调用和算法设计,提高感知高效性和控制准确性
![image](https://github.com/HPCL-EI/RoboWaiter/assets/39987654/9b807263-7458-4b5c-8d3a-101351a2fd41)
# 2. 项目安装(必看)
## 2.1 环境要求
Python=3.10
## 2.2 安装步骤
```shell
git clone https://github.com/HPCL-EI/RoboWaiter.git
cd RoboWaiter
pip install -e .
```
以上步骤将完成robowaiter项目以及相关依赖库的安装
## 2.3 安装UI
1. 安装 [graphviz-9.0.0](https://gitlab.com/api/v4/projects/4207231/packages/generic/graphviz-releases/9.0.0/windows_10_cmake_Release_graphviz-install-9.0.0-win64.exe) (详见[官网](https://www.graphviz.org/download/#windows))
2. 将软件安装目录的bin文件添加到系统环境中。如电脑是 Windows 系统,Graphviz 安装在 D:\Program Files (x86)\Graphviz2.38,该目录下有bin文件,将该路径添加到电脑系统环境变量 path 中,即 D:\Program Files (x86)\Graphviz2.38\bin。如果不行,则需要重启。
3. 安装向量数据库
conda install -c conda-forge faiss
4. 安装自然语言处理和翻译工具,用于计算相似性
```
pip install translate
pip install spacy
python -m spacy download zh_core_web_lg
```
`zh_core_web_lg` 如果下载较慢,可以直接通过分享的网盘链接下载
链接:https://pan.baidu.com/s/1vr7dqHsgnh6UChymQc26VA
提取码:1201
--来自百度网盘超级会员V7的分享
```
pip install zh_core_web_lg-3.7.0-py3-none-any.whl
```
## 2.4 快速入门
1. 安装 UE 及 Harix 插件,打开默认项目并运行
2. 不使用 UI 界面 :运行 tasks_no_ui 文件夹下的任意场景即可实现机器人控制端与仿真器的交互
3. 使用 UI 界面:运行 `run_ui.py` ,显示下面的界面。点击左侧的按钮,机器人就会执行相应的任务。也可以在右上方直接输出目标状态或者对话和机器人直接交互。
![1701353768755](https://github.com/HPCL-EI/RoboWaiter/assets/39987654/2e37f7ec-fc2a-420a-afda-9bf74593914f)
# 3. 代码框架介绍
代码库被组织成几个模块,每个模块负责系统功能的一部分:
- **behavior_lib:** `behavior_lib` 是行为树节点库类,包括行为树的动作节点和条件节点。它们分别存放在 `act` 和 `cond` 文件夹下。
- **behavior_tree:** `behavior_tree` 是行为树算法类,包括 `ptml` 编译器、最优行为树逆向扩展算法等。
- **robot:** `robot` 是机器人类,包括从 `ptml`加载行为树的方法,以及执行行为树的方法等。
- **llm_client:** `llm_client` 是大模型类,主要实现了大模型的数据集构建、数据处理工具、大模型调用接口、大模型评测、工具调用、工具注册、向量数据库、单论对话、对轮对话等方法或接口。
调用大模型接口。运行llm_client.py文件调用大模型进行多轮对话。输入字符即可等待回答/
```shell
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. 花絮
**机器人根据顾客的点单,完成订单并送餐**
![image](https://github.com/HPCL-EI/RoboWaiter/assets/39987654/79cff908-9ebd-4e54-9b10-08466cae337a)
**顾客询问物品位置,并要求机器人送回**
![image](https://github.com/HPCL-EI/RoboWaiter/assets/39987654/b8df6475-6889-4816-8e17-b0a1c57160b9)
版权所有 (c) [2023] [NUDT-HPCL-EI]
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
教育部认可的大学生竞赛备赛资料代码,源码,竞赛总结,所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通 全国电子设计大赛、全国大学生智能汽车竞赛、蓝桥杯、集成电路创新创业大赛、光电设计竞赛、挑战杯、大创项目、互联网+、三创赛、计算机设计竞赛、创新创业大赛、ACM-ICPC国际大学生程序设计竞赛、全国大学生数学建模竞赛、全国大学生电子商务“创新、创意及创业”挑战赛、全国大学生节能减排社会实践与科技竞赛、全国大学生工程训练综合能力竞赛、全国大学生机器人大赛-RoboMaster、RoboCon、“西门子杯”中国智能制造挑战赛、中国大学生计算机设计大赛、世界技能大赛、中国高校计算机大赛-大数据挑战赛、团体程序设计天梯赛、移动应用创新赛、网络技术挑战赛、全国大学生信息安全竞赛、“中国软件杯”大学生软件设计大赛、全国大学生光电设计竞赛、中国机器人及人工智能大赛、“大唐杯”全国大学生移动通信5G技术大赛、华为ICT大赛、全国大学生嵌入式芯片与系统设计竞赛、中国高校智能机器人创意大赛
资源推荐
资源详情
资源评论
收起资源包目录
竞赛资料源码-大模型具身智能比赛-机器人控制端.zip (513个子文件)
ui2py.bat 32B
create_embeding.bat 0B
stage3_no_offloading_accelerate.conf 701B
test_questions.csv 2KB
expanded_bt_xiaocai.dot 627KB
expanded_bt_xiaocai.dot 627KB
expanded_bt_obt.dot 394KB
expanded_bt_obt.dot 394KB
current_bt.dot 22KB
test.dot 6KB
expanded_bt.dot 6KB
test.dot 3KB
test.dot 3KB
test.dot 3KB
ptml.g4 687B
ptml.g4 680B
ptml.g4 680B
.gitignore 3KB
ptmlLexer.interp 5KB
ptmlLexer.interp 5KB
ptmlLexer.interp 5KB
ptml.interp 2KB
ptml.interp 2KB
ptml.interp 2KB
tokenizer.json 455KB
train_100_1109.json 53KB
objs.json 26KB
config.json 619B
tokenizer_config.json 321B
special_tokens_map.json 112B
train_robot.jsonl 495KB
test_robot.jsonl 88KB
train_100_1109.jsonl 37KB
train_100_1109.jsonl 37KB
fix_questions_test.jsonl 27KB
train_robot.jsonl 20KB
goal_states_with_description.jsonl 17KB
goal_states_with_description.jsonl 17KB
goal_states_with_description.jsonl 17KB
goal_states_with_description.jsonl 17KB
goal_states_with_description.jsonl 17KB
goal_states_with_description.jsonl 17KB
test_robot.jsonl 15KB
fix_questions.jsonl 8KB
fix_questions_test.jsonl 3KB
test_robot.jsonl 584B
data.jsonl 242B
test_robot.jsonl 58B
LICENSE 1KB
README.md 6KB
README.md 4KB
README.md 4KB
README.md 4KB
readme.md 2KB
README.md 2KB
README.md 122B
W2V_CI.model 14KB
W2V_CI.model 14KB
W2V_CI.model 14KB
passages_00 138KB
map_1.pkl 9.46MB
costMap_3.pkl 1.49MB
map_3.pkl 1.49MB
map_4.pkl 856KB
costMap_4.pkl 856KB
costMap_5.pkl 549KB
map_5.pkl 549KB
map_5.pkl 549KB
expanded_bt_obt.png 2.98MB
expanded_bt_obt.png 2.98MB
expanded_bt_xiaocai.png 343KB
expanded_bt_xiaocai.png 343KB
current_bt.png 213KB
test.png 127KB
vision.png 116KB
expanded_bt.png 109KB
image-20231103191141047.png 55KB
image-20231103191141047.png 55KB
image-20231103191141047.png 55KB
image-20231103191141047.png 55KB
test.png 52KB
test.png 52KB
test.png 52KB
mag_5.png 25KB
MakeCoffee.ptml 1KB
MakeCoffee.ptml 1KB
MakeCoffee.ptml 1KB
MakeCoffee.ptml 1KB
Default_bracket.ptml 940B
Default.ptml 930B
CoffeeDelivery.ptml 703B
CoffeeDelivery.ptml 703B
CoffeeDelivery.ptml 703B
Default_bracket.ptml 666B
SoftdrinkCost.ptml 621B
Default_bracket.ptml 584B
Default.ptml 517B
DefaultNLP.ptml 488B
bracket_ptml.ptml 267B
bracket_ptml.ptml 267B
共 513 条
- 1
- 2
- 3
- 4
- 5
- 6
资源评论
妄北y
- 粉丝: 1w+
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 水稻病害基于Yolov8算法优化目标检测识别与AI辅助决策python源码+模型+使用说明.zip
- 海尔618算价表_七海5.20_16.00xlsx(1)(2).xlsx
- WebCrawler.scr
- 【计算机专业毕业设计】大学生就业信息管理系统设计源码.zip
- YOLO 数据集:8种路面缺陷病害检测【包含划分好的数据集、类别class文件、数据可视化脚本】
- JAVA实现Modbus RTU或Modbus TCPIP案例.zip
- 基于YOLOv8的FPS TPS AI自动锁定源码+使用步骤说明.zip
- JAVA实现Modbus RTU或Modbus TCPIP案例.zip
- 基于yolov8+streamlit的火灾检测部署源码+模型.zip
- 测试aaaaaaabbbbb
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功