Une implémentation officielle de Vision-Language Interpreter (ViLaIn). Consultez notre article pour plus de détails.
Cette implémentation nécessite Python>=3.10
et torch>=2.0.0
. Pour installer PyTorch, veuillez suivre les instructions sur https://pytorch.org/.
Installez rapidement et VAL en suivant les instructions de construction. Après l'installation, copiez le binaire validate
dans le répertoire downward
.
Installez Grounding DINO en suivant les instructions.
data
contiennent des fichiers PDDL, des observations et des instructions pour trois domaines, que nous avons appelés l'ensemble de données ProDG dans l'article. Ce répertoire contient également des cadres de délimitation annotés dans annotated_bboxes
. La structure des répertoires est la suivante :
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
contient les problèmes PDDL générés et les plans trouvés rapportés dans le document. Dans l'annuaire, il y a également trois sous-répertoires pour chaque domaine :
plain
: les résultats sans réinvite correctiverefine_once
: les résultats en appliquant une nouvelle invite corrective pour les problèmes en plain
refine_twice
: les résultats en appliquant une nouvelle invite corrective pour les problèmes dans refine_once
Pour détecter les objets avec des cadres de délimitation et générer des légendes, exécutez :
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
Cette étape doit être effectuée avant la génération du problème PDDL.
Pour générer des problèmes PDDL en fonction des cadres de délimitation et des légendes prévus et rechercher des plans, exécutez :
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
Pour évaluer les problèmes PDDL générés et valider les plans trouvés, exécutez :
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"
Pour affiner les problèmes PDDL générés par une nouvelle invite corrective, exécutez :
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}
}