Skip to content

Latest commit

 

History

History
141 lines (112 loc) · 4.25 KB

File metadata and controls

141 lines (112 loc) · 4.25 KB

数据生成

我们准备了若干个单臂、双臂的操作任务,分别位于examples/tasks_airbot_playexamples/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

安装依赖:

pip install git+https://github.com/DISCOVER-Robotics/Data-Collection.git

将仿真采集的原始数据格式转换为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目录中寻找相同名称的数据集文件夹

dp

安装依赖:

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文件夹中。

diffusion policy

将仿真采集的原始数据格式转换为DP算法中用到的zarr格式,命令如下:

python3 policies/dp/raw2zarr.py -dir data -tn <task_name> 
  • -dir: 数据存放的根目录,默认为data
  • -tn: 任务名,程序将根据任务名从data目录中寻找相同名称的数据集文件夹

转换后的数据存放于discoverse/data/zarr文件夹中。

RDT

将仿真采集的原始数据格式转换为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
│   ├── ...
├── ...

openpi

将仿真采集的原始数据格式转换为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  
|   ├── ...  
├──...