Implementasi resmi dari Vision-Language Interpreter (ViLaIn). Lihat makalah kami untuk lebih jelasnya.
Implementasi ini memerlukan Python>=3.10
dan torch>=2.0.0
. Untuk menginstal PyTorch, ikuti petunjuk di https://pytorch.org/.
Instal fast-downward dan VAL dengan mengikuti instruksi build. Setelah instalasi, salin biner validate
di bawah direktori downward
.
Pasang Grounding DINO dengan mengikuti petunjuknya.
data
berisi file PDDL, observasi, dan instruksi untuk tiga domain, yang kami tandai sebagai kumpulan data ProDG di makalah. Direktori ini juga berisi kotak pembatas beranotasi di annotated_bboxes
. Struktur direktorinya adalah sebagai berikut:
data
└─domains
└─domain.pddl (A PDDL domain file)
└─problems (PDDL problem files)
└─problem*.pddl
└─observations (Observations for the initial state)
└─problem*.jpg
└─instructions (Linguistic instructions)
└─problem*.txt
└─annotated_bboxes (Annotated bounding boxes)
└─problem*.json
results/reported_results
berisi masalah PDDL yang dihasilkan dan rencana yang ditemukan dilaporkan di koran. Di direktori tersebut juga terdapat tiga subdirektori untuk setiap domain:
plain
: hasil tanpa peringatan korektifrefine_once
: hasil dengan menerapkan perbaikan ulang untuk masalah yang plain
refine_twice
: hasil dengan menerapkan perbaikan ulang untuk masalah di refine_once
Untuk mendeteksi objek dengan kotak pembatas dan menghasilkan keterangan, jalankan:
export domain=cooking
export grounding_dino_dir=./GroundingDINO
export result_dir=./results/temp/${domain}
python scripts/main.py
--data_dir "./data/${domain}"
--result_dir ${result_dir}
--grounding_dino_dir ${grounding_dino_dir}
--predict_bboxes
Langkah ini harus dilakukan sebelum timbulnya masalah PDDL.
Untuk menghasilkan masalah PDDL berdasarkan prediksi kotak pembatas dan keterangan serta menemukan rencana, jalankan:
export domain=cooking
export downward_dir=./downward
export result_dir=./results/temp/${domain}
export num_repeat=2
export num_examples=3
python scripts/main.py
--downward_dir ${downward_dir}
--data_dir "./data/${domain}"
--result_dir "${result_dir}"
--num_repeat ${num_repeat}
--num_examples ${num_examples}
--gen_step "plain"
--generate_problem
--find_plan
Untuk mengevaluasi masalah PDDL yang dihasilkan dan memvalidasi rencana yang ditemukan, jalankan:
export domain=cooking
export downward_dir=./downward
export result_dir=./results/temp/${domain}
export num_repeat=2
python scripts/evaluate.py
--downward_dir ${downward_dir}
--data_dir "./data/${domain}"
--result_dir "${result_dir}"
--num_repeat ${num_repeat}
--gen_step "plain"
Untuk memperbaiki masalah PDDL yang dihasilkan dengan koreksi ulang, jalankan:
export domain=cooking
export downward_dir=./downward
export result_dir=./results/temp/${domain}
export num_repeat=2
python scripts/main.py
--downward_dir ${downward_dir}
--data_dir "./data/${domain}"
--result_dir "${result_dir}"
--num_repeat ${num_repeat}
--gen_step "refine_once"
--prev_gen_step "plain"
--refine_problem
--use_cot
--find_plan
@misc{shirai2023visionlanguage,
title={Vision-Language Interpreter for Robot Task Planning},
author={Keisuke Shirai and Cristian C. Beltran-Hernandez and Masashi Hamaya and Atsushi Hashimoto and Shohei Tanaka and Kento Kawaharazuka and Kazutoshi Tanaka and Yoshitaka Ushiku and Shinsuke Mori},
year={2023},
eprint={2311.00967},
archivePrefix={arXiv},
primaryClass={cs.RO}
}