我们准备了若干个单臂、双臂的操作任务,分别位于examples/tasks_airbot_play和examples/tasks_mmk2中,要自动收集数据,请运行
cd scripts
python tasks_data_gen.py --robot_name <ROBOT_NAME> --task_name <TASK_NAME> --track_num <NUM_TRACK> --nw <NUM_OF_WORKERS>
e.g. python tasks_data_gen.py --robot_name airbot_play --task_name kiwi_place --track_num 100 --nw 8
# 表示使用airbot_play机械臂,任务为放置猕猴桃,总共生成100条任务轨迹,使用8个进程来同时生成数据。将仿真采集的原始数据格式转换为ACT算法中用到的hdf5格式,命令如下:
python3 -m airbot_ie.scripts.data_convert.discoverse2mcap --root data --task-name airbot_play_force_peg_in_hole --output-dir policies/act/data/mcap--output-dir: 转换后数据存放的目录,默认为policies/act/data/mcap--root: 数据存放的根目录,默认为data--task-name: 任务名,程序将根据任务名从data目录中寻找相同名称的数据集文件夹
安装依赖:
pip install -r policies/dp/requirements.txt将仿真采集的原始数据格式转换为DP算法中用到的zarr格式,命令如下:
python3 policies/dp/raw2zarr.py -dir data -tn <task_name> -dir: 数据存放的根目录,默认为data-tn: 任务名,程序将根据任务名从data目录中寻找相同名称的数据集文件夹
转换后的数据存放于discoverse/data/zarr文件夹中。
将仿真采集的原始数据格式转换为DP算法中用到的zarr格式,命令如下:
python3 policies/dp/raw2zarr.py -dir data -tn <task_name> -dir: 数据存放的根目录,默认为data-tn: 任务名,程序将根据任务名从data目录中寻找相同名称的数据集文件夹
转换后的数据存放于discoverse/data/zarr文件夹中。
将仿真采集的原始数据格式转换为RDT算法中用到的hdf5格式,命令如下:
python3 policies/act/data_process/raw_to_hdf5.py -md mujoco -dir data -tn ${task_name} -vn ${video_names}
# for example:
python3 policies/act/data_process/raw_to_hdf5.py -md mujoco -dir data -tn block_place -vn cam_0 cam_1将hdf5文件移动到RDT需要的地址:
mv data/hdf5/${task_name} policies/RDT/training_data
# for example:
mv data/hdf5/block_place policies/RDT/training_data将多个任务的数据都放在training_data,RDT会在一个模型中训练多个任务,目录结构为:
training_data
├── instructions
│ ├── ${task_1}.json
│ ├── ${task_2}.json
│ ├── ...
├── ${task_1}
│ ├── instructions
│ │ ├── lang_embed_0.pt
│ │ ├── ...
│ ├── episode_0.hdf5
│ ├── episode_1.hdf5
│ ├── ...
├── ${task_2}
│ ├── instructions
│ │ ├── lang_embed_0.pt
│ │ ├── ...
│ ├── episode_0.hdf5
│ ├── episode_1.hdf5
│ ├── ...
├── ...将仿真采集的原始数据格式转换为pi0算法中用到的hdf5格式,命令如下:
cd DISCOVERSE
python3 policies/act/data_process/raw_to_hdf5.py -md mujoco -dir data -tn ${task_name} -vn ${video_names}
# for example:
python3 policies/act/data_process/raw_to_hdf5.py -md mujoco -dir data -tn block_place -vn cam_0 cam_1将hdf5文件移动到pi0需要的地址:
mv data/hdf5/${task_name} policies/openpi/training_data
cd policies/openpi/training_data/
scp instructions/${task_name}.json ${task_name}/instructions.json
cd ..将多个任务的数据都放在training_data,Pi0会在一个模型中训练多个任务,目录结构为:
training_data/
├── instructions
│ ├── ${task_1}.json
│ ├── ${task_2}.json
│ ├── ...
├── ${task_1}
| ├── instructions.json
| ├── episode_0.hdf5
| ├── episode_1.hdf5
| ├── ...
|
├── ${task_2}
| ├── instructions.json
| ├── episode_0.hdf5
| ├── episode_1.hdf5
| ├── ...
├──...