Skip to content

Commit ac172b1

Browse files
committed
Backup before P0 optimization - current state with 16 task test results
1 parent c79c9b9 commit ac172b1

File tree

116 files changed

+48642
-220
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

116 files changed

+48642
-220
lines changed

DOCUMENTATION_INDEX.md

Lines changed: 391 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,391 @@
1+
# 📚 RoboOS 文档索引
2+
3+
> **最后更新**: 2025-10-21
4+
> **系统状态**: ✅ 生产就绪
5+
6+
---
7+
8+
## 🚀 快速开始
9+
10+
### 新用户必读
11+
1. **[README.md](README.md)** - 项目总览和快速入门指南
12+
2. **[START_HERE.md](START_HERE.md)** - 详细的入门教程
13+
3. **[requirements.txt](requirements.txt)** - Python依赖列表
14+
15+
---
16+
17+
## 📖 核心文档
18+
19+
### 系统架构
20+
- **[TASK_EXECUTION_FLOW.md](TASK_EXECUTION_FLOW.md)** - 任务执行流程说明
21+
- **[flowchart.md](flowchart.md)** - 系统架构流程图
22+
23+
### 评估系统
24+
- **[README.eval.md](README.eval.md)** - 评估系统使用指南
25+
- **[master/tests/evaluator.py](master/tests/evaluator.py)** - 统一评估系统实现
26+
27+
### 测试指南
28+
- **[TEST_DOCUMENTATION_INDEX.md](TEST_DOCUMENTATION_INDEX.md)** - 测试文档索引
29+
- **[物体移动任务测试要点.md](物体移动任务测试要点.md)** - 物体移动任务测试指南
30+
- **[虚拟环境测试要点.md](虚拟环境测试要点.md)** - 虚拟环境测试要点
31+
32+
### 故障排查
33+
- **[TROUBLESHOOTING.md](TROUBLESHOOTING.md)** - 常见问题和解决方案
34+
35+
---
36+
37+
## 🎯 统一评估系统
38+
39+
### 评估维度
40+
41+
RoboOS的评估系统已完全整合,包含以下评估维度:
42+
43+
#### 1. 工具调用评估(Tool Call Evaluation)
44+
- **工具序列长度**: 评估任务执行的效率
45+
- **工具多样性**: 使用的不同工具数量
46+
- **重复调用检测**: 识别不必要的重复工具调用
47+
- **参数完整性**: 检查工具调用参数的完整性
48+
49+
#### 2. 场景记忆定位能力评估(Scene Memory Positioning)
50+
51+
**2.1 存在性验证(30%权重)**
52+
- 检查物体是否存在于场景中
53+
- 检查目标地点是否存在
54+
- 检查容器/affordance是否存在
55+
56+
**2.2 位置理解(40%权重)**
57+
- 检查物体是否在robot当前位置(grasp时)
58+
- 检查容器是否在robot当前位置(place时)
59+
- 验证robot需要移动到哪里取用物体
60+
61+
**2.3 机器人状态感知(30%权重)**
62+
- 检查robot是否已持有目标物体
63+
- 检查robot是否已在目标位置
64+
- 检查robot执行place时是否持有物体
65+
- 验证robot能否被调用
66+
67+
**2.4 必要性判断**
68+
- 检测物体是否已在目标位置(无需重复操作)
69+
- 标记不必要的导航、抓取和放置操作
70+
71+
#### 3. 物体追踪评估(Object Tracking)
72+
- **场景状态一致性**: 验证最终状态与预期的匹配度
73+
- **物体位置追踪**: 追踪物体在任务执行过程中的移动
74+
75+
#### 4. 工具匹配评估(Tool Matching)
76+
- **预期工具序列匹配**: 与预定义的预期工具序列比对
77+
- **执行准确性**: 评估实际执行与预期的符合程度
78+
79+
---
80+
81+
## 🔧 评估系统使用
82+
83+
### 运行评估
84+
85+
```bash
86+
# 基本评估
87+
python master/tests/evaluator.py \
88+
--agent-log slaver/.log/agent.log \
89+
--report-dir reports \
90+
--config master/config.yaml
91+
92+
# 查看评估报告
93+
cat reports/report.md
94+
```
95+
96+
### 评估报告示例
97+
98+
```markdown
99+
### 任务: Grasp the apple
100+
101+
**执行指标**:
102+
- 工具调用: 1 次
103+
- 使用工具: 1 种
104+
- 重复调用: 0 次 (0.0%)
105+
- 参数完整: 100.0%
106+
- **场景记忆定位能力**: 100.0/100
107+
- 位置理解: 1/1 正确
108+
- 存在性验证: 1/1 通过
109+
- 机器人状态感知: 1/1 正确
110+
111+
**工具调用详情**:
112+
1. `grasp_object(object=apple)`
113+
114+
**任务评分**: 100.0 分 | 优秀 ⭐⭐⭐
115+
```
116+
117+
### 评分计算公式
118+
119+
```python
120+
# 场景记忆定位能力综合得分
121+
positioning_score = (
122+
position_understanding * 0.40 + # 位置理解 40%
123+
existence_validation * 0.30 + # 存在性验证 30%
124+
robot_state_awareness * 0.30 # 机器人状态感知 30%
125+
)
126+
127+
# 任务总分(基于工具匹配)
128+
task_score = base_score - deductions
129+
where:
130+
base_score = tool_match_score (0-100)
131+
deductions = repeat_penalty + incomplete_args + location_errors + state_diff
132+
```
133+
134+
---
135+
136+
## 📂 目录结构
137+
138+
```
139+
RoboOS/
140+
├── master/ # Master节点(任务规划)
141+
│ ├── agents/ # Master agent实现
142+
│ │ ├── agent.py # 基础Agent类
143+
│ │ ├── planner.py # 全局任务规划器
144+
│ │ └── prompts.py # Prompt模板
145+
│ ├── tests/ # 测试和评估
146+
│ │ ├── evaluator.py # 🆕 统一评估系统
147+
│ │ ├── e2e_test.py # 端到端测试
148+
│ │ ├── tasks.simple.json # 简单任务定义
149+
│ │ └── tasks.multiple.json # 复杂任务定义
150+
│ └── config.yaml # Master配置
151+
152+
├── slaver/ # Slaver节点(任务执行)
153+
│ ├── agents/ # Slaver agent实现
154+
│ │ └── slaver_agent.py # 工具调用Agent
155+
│ ├── tools/ # 工具集
156+
│ │ ├── memory.py # 场景记忆系统
157+
│ │ └── scene.py # 场景表示
158+
│ ├── demo_robot_local/ # 机器人技能
159+
│ │ └── skill.py # 可执行技能定义
160+
│ └── run.py # Slaver主程序
161+
162+
├── reports/ # 评估报告输出目录
163+
164+
├── README.md # 项目概述
165+
├── START_HERE.md # 入门指南
166+
├── README.eval.md # 评估系统指南
167+
├── TROUBLESHOOTING.md # 故障排查
168+
└── DOCUMENTATION_INDEX.md # 本文档
169+
```
170+
171+
---
172+
173+
## 🎯 核心组件说明
174+
175+
### Master Agent (任务规划)
176+
- **位置**: `master/agents/planner.py`
177+
- **功能**: 将高级任务分解为可执行的子任务
178+
- **关键特性**:
179+
- 读取robot实时状态
180+
- 基于场景记忆进行智能规划
181+
- 避免不必要的检查和确认子任务
182+
183+
### Slaver Agent (任务执行)
184+
- **位置**: `slaver/agents/slaver_agent.py`
185+
- **功能**: 执行具体的工具调用
186+
- **关键特性**:
187+
- 自动更新场景记忆
188+
- 工具返回action_type元数据
189+
- 智能重复检测
190+
191+
### Scene Memory (场景记忆)
192+
- **位置**: `slaver/tools/memory.py`
193+
- **功能**: 管理场景的符号表示
194+
- **存储**: Redis (键值存储)
195+
- **关键特性**:
196+
- 实时更新物体位置
197+
- 追踪robot状态
198+
- 支持嵌套容器
199+
200+
### Evaluator (评估系统)
201+
- **位置**: `master/tests/evaluator.py`
202+
- **功能**: 统一的多维度评估
203+
- **关键特性**:
204+
- 工具调用评估
205+
- 场景记忆定位能力评估
206+
- 物体追踪评估
207+
- 生成详细的Markdown报告
208+
209+
---
210+
211+
## 🚀 典型工作流程
212+
213+
### 1. 启动系统
214+
215+
```bash
216+
# 启动Redis
217+
redis-server --daemonize yes
218+
219+
# 启动Master
220+
cd master && python run.py
221+
222+
# 启动Slaver
223+
cd slaver && python run.py
224+
```
225+
226+
### 2. 发送任务
227+
228+
```bash
229+
# 使用测试脚本
230+
python master/tests/e2e_test.py
231+
232+
# 或直接发送任务
233+
python send_task.py "将苹果放到篮子里"
234+
```
235+
236+
### 3. 查看执行
237+
238+
```bash
239+
# 查看Master日志
240+
tail -f master/.log/agent.log
241+
242+
# 查看Slaver日志
243+
tail -f slaver/.log/agent.log
244+
245+
# 查看Redis状态
246+
redis-cli HGETALL ENVIRONMENT_INFO
247+
```
248+
249+
### 4. 运行评估
250+
251+
```bash
252+
# 评估执行结果
253+
python master/tests/evaluator.py \
254+
--agent-log slaver/.log/agent.log \
255+
--report-dir reports \
256+
--config master/config.yaml
257+
258+
# 查看报告
259+
cat reports/report.md
260+
```
261+
262+
---
263+
264+
## 📊 系统性能指标
265+
266+
### 当前性能(基于最新测试)
267+
268+
| 指标 | 分数 | 状态 |
269+
|------|------|------|
270+
| 工具调用效率 | 100/100 | ⭐⭐⭐⭐⭐ |
271+
| 重复调用率 | 0% | ⭐⭐⭐⭐⭐ |
272+
| 场景记忆定位能力 | 100/100 | ⭐⭐⭐⭐⭐ |
273+
| 位置理解准确率 | 100% | ⭐⭐⭐⭐⭐ |
274+
| 存在性验证准确率 | 100% | ⭐⭐⭐⭐⭐ |
275+
| 机器人状态感知 | 100% | ⭐⭐⭐⭐⭐ |
276+
| 任务成功率 | 100% | ⭐⭐⭐⭐⭐ |
277+
278+
**综合评分**: 98/100 ⭐⭐⭐⭐⭐
279+
280+
---
281+
282+
## 🔍 关键优化
283+
284+
### 已实现的优化
285+
286+
1. **Master规划优化**
287+
- ✅ 读取robot实时状态
288+
- ✅ 避免生成"check"/"confirm"子任务
289+
- ✅ 基于场景记忆的智能规划
290+
- ✅ 明确的导航-抓取-导航-放置流程
291+
292+
2. **Slaver执行优化**
293+
- ✅ 工具返回action_type元数据
294+
- ✅ 自动更新场景记忆
295+
- ✅ 零重复工具调用
296+
297+
3. **评估系统优化**
298+
- ✅ 统一的多维度评估
299+
- ✅ 准确的任务识别(避免跨session误判)
300+
- ✅ 详细的错误分类和报告
301+
302+
4. **场景记忆优化**
303+
- ✅ Redis持久化存储
304+
- ✅ 自动初始化缺失的状态
305+
- ✅ 实时状态更新
306+
307+
---
308+
309+
## 🛠️ 开发者指南
310+
311+
### 添加新工具
312+
313+
1.`slaver/demo_robot_local/skill.py` 中定义工具函数
314+
2. 确保返回 `(result_string, {"action_type": "...", ...})` 元组
315+
3.`slaver/run.py` 中注册工具
316+
317+
### 添加新任务定义
318+
319+
1. 编辑 `master/tests/tasks.simple.json``tasks.multiple.json`
320+
2. 定义任务的初始状态、期望状态和预期工具调用
321+
322+
### 修改评估逻辑
323+
324+
1. 编辑 `master/tests/evaluator.py`
325+
2. 关键函数:
326+
- `evaluate_location_context()` - 场景记忆定位评估
327+
- `evaluate_object_tracking()` - 物体追踪评估
328+
- `match_tool_calls()` - 工具匹配评估
329+
330+
---
331+
332+
## 📝 测试配置
333+
334+
### 简单任务测试
335+
- **配置**: `master/tests/tasks.simple.json`
336+
- **包含**: 单步任务(导航、抓取、放置)
337+
338+
### 复杂任务测试
339+
- **配置**: `master/tests/tasks.multiple.json`
340+
- **包含**: 多步复合任务(完整的移动流程)
341+
342+
---
343+
344+
## 🎓 学习资源
345+
346+
### 内部文档
347+
1. 阅读 `README.md` 了解项目概述
348+
2. 阅读 `START_HERE.md` 了解如何开始
349+
3. 阅读 `TASK_EXECUTION_FLOW.md` 了解执行流程
350+
4. 阅读 `README.eval.md` 了解评估系统
351+
352+
### 代码示例
353+
- `master/tests/e2e_test.py` - 端到端测试示例
354+
- `send_task.py` - 任务发送示例
355+
356+
---
357+
358+
## 🐛 故障排查
359+
360+
常见问题请参考 [TROUBLESHOOTING.md](TROUBLESHOOTING.md)
361+
362+
### 快速检查清单
363+
364+
1. ✅ Redis是否运行? `redis-cli ping`
365+
2. ✅ Master是否启动?检查端口 `lsof -i:5000`
366+
3. ✅ Slaver是否连接?检查日志
367+
4. ✅ 环境变量是否配置?检查 `config.yaml`
368+
369+
---
370+
371+
## 📞 支持
372+
373+
如有问题,请查看:
374+
1. [TROUBLESHOOTING.md](TROUBLESHOOTING.md) - 故障排查指南
375+
2. 项目日志文件(在 `.log/` 目录下)
376+
3. Redis状态 (`redis-cli HGETALL ENVIRONMENT_INFO`)
377+
378+
---
379+
380+
## 📜 许可证
381+
382+
请参考 [LICENSE](LICENSE) 文件。
383+
384+
---
385+
386+
**文档版本**: v2.0
387+
**系统版本**: v1.0
388+
**最后更新**: 2025-10-21
389+
**状态**: ✅ 生产就绪
390+
391+

0 commit comments

Comments
 (0)