Files
gen_data_agent/README.md
2025-10-21 20:24:18 +08:00

113 lines
3.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Isaac Sim Agent
Isaac Sim Agent 是一个基于 NVIDIA Isaac Sim 的机器人任务生成和数据采集系统。该系统支持任务模板划分、任务实例生成、数据采集和回放功能。
## 系统架构
系统包含以下主要组件:
- **任务模板划分器** (TaskTemplatesDivider): 将大型任务模板划分为多个子任务
- **任务生成器** (TaskGenerator): 从任务模板生成具体的任务实例
- **数据生成器** (DataGenerator): 在 Isaac Sim 中执行任务并采集数据
- **数据回放器** (DataReplayer)(暂未接入): 回放已采集的数据
- **回放初始化器** (ReplayInitializer)(暂未接入): 为数据回放准备环境
## 1 安装依赖
安装以下依赖:
```bash
pip install pin -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install numpy==1.26 -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install scikit-learn -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install grasp_nms -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install open3d -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install git+https://git.hofee.cn/hofee/pyboot.git
```
执行 `pb scan` 检查依赖是否完整,若缺少某一依赖,安装对应依赖。
## 2 配置说明
### 2.1 任务模板划分配置 (divide_task_config.yaml)
```yaml
runner:
workspace:
name: "divide_task"
root_dir: "workspace"
divide:
input_task_templates_root_dir: "/path/to/input/task/templates"
output_task_templates_dir: "" # 为空则默认在workspace/divide_task/task_templates
output_template_targets_dir: "" # 为空则默认在workspace/divide_task/template_targets
divide_num: 100 # 每个进程划分任务数量
total_nums: 10000 # 总任务模板数量
```
### 2.2 任务生成配置 (generate_task_config.yaml)
```yaml
runner:
workspace:
name: "generate_task"
root_dir: "workspace"
generate:
input_data_root: "/path/to/input/data"
input_target_task_templates_path: "workspace/divide_task/template_targets/task_template_target_0.json"
output_task_root_dir: "" # 为空则默认在workspace/generate_task/task_root_dir
output_generate_result_path: "" # 为空则默认在workspace/generate_task/generate_result_path.json
```
### 2.3 数据生成配置 (generate_data_config.yaml)
```yaml
runner:
workspace:
name: "generate_data"
root_dir: "workspace"
generate:
input_data_root: "/path/to/input/data"
input_target_task_path: "workspace/generate_task/generate_result_path.json"
server_url: "localhost:50051" # Isaac Sim 服务器地址
```
## 3 使用流程
### 3.1 划分任务模板
`configs/divide_task_config.yaml` 里配置任务模板输入目录、整理好的任务模板输出目录为空则默认在workspace/divide_task/task_templates、用于多机生产的划分后的Task Template列表为空则默认在workspace/divide_task/template_targets
```bash
pb run divide_task
```
### 3.2 生成任务实例
从指定任务模版生成任务实例:
```bash
pb run generate_task
```
### 3.3 生成数据
从指定任务实例表里依次运行任务实例(目前只支持运行同一个任务模板下的多个任务实例):
```bash
pb run generate_data
```
### 3.4 数据回放(暂未接入)
回放已生成的数据:
```bash
pb run replay
```
## 4 工作空间结构
```
workspace/
├── divide_task/ # 任务模板划分输出
│ ├── task_templates/ # 整理后的任务模板
│ └── template_targets/ # 划分后的任务模板目标
├── generate_task/ # 任务生成输出
│ ├── task_root_dir/ # 生成的任务实例
│ └── generate_result_path.json # 生成结果路径
└── generate_data/ # 数据生成输出
└── [生成的数据文件]
```