# 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/ # 数据生成输出 └── [生成的数据文件] ```