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/ # 数据生成输出
└── [生成的数据文件]
Description
Languages
Python
99.6%
omnetpp-msg
0.3%
CMake
0.1%