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

3.7 KiB
Raw Blame History

Isaac Sim Agent

Isaac Sim Agent 是一个基于 NVIDIA Isaac Sim 的机器人任务生成和数据采集系统。该系统支持任务模板划分、任务实例生成、数据采集和回放功能。

系统架构

系统包含以下主要组件:

  • 任务模板划分器 (TaskTemplatesDivider): 将大型任务模板划分为多个子任务
  • 任务生成器 (TaskGenerator): 从任务模板生成具体的任务实例
  • 数据生成器 (DataGenerator): 在 Isaac Sim 中执行任务并采集数据
  • 数据回放器 (DataReplayer)(暂未接入): 回放已采集的数据
  • 回放初始化器 (ReplayInitializer)(暂未接入): 为数据回放准备环境

1 安装依赖

安装以下依赖:

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)

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)

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)

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

pb run divide_task

3.2 生成任务实例

从指定任务模版生成任务实例:

pb run generate_task

3.3 生成数据

从指定任务实例表里依次运行任务实例(目前只支持运行同一个任务模板下的多个任务实例):

pb run generate_data

3.4 数据回放(暂未接入)

回放已生成的数据:

pb run replay

4 工作空间结构

workspace/
├── divide_task/          # 任务模板划分输出
│   ├── task_templates/   # 整理后的任务模板
│   └── template_targets/ # 划分后的任务模板目标
├── generate_task/        # 任务生成输出
│   ├── task_root_dir/    # 生成的任务实例
│   └── generate_result_path.json  # 生成结果路径
└── generate_data/        # 数据生成输出
    └── [生成的数据文件]