Uma implementação oficial do Vision-Language Interpreter (ViLaIn). Veja nosso artigo para mais detalhes.
Esta implementação requer Python>=3.10
e torch>=2.0.0
. Para instalar o PyTorch, siga as instruções em https://pytorch.org/.
Instale fast-downward e VAL seguindo as instruções de construção. Após a instalação, copie o binário validate
no diretório downward
.
Instale o Aterramento DINO seguindo as instruções.
data
contém arquivos PDDL, observações e instruções para três domínios, que denotamos como conjunto de dados ProDG no artigo. Este diretório também contém caixas delimitadoras anotadas em annotated_bboxes
. A estrutura do diretório é a seguinte:
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
contém os problemas PDDL gerados e os planos encontrados relatados no artigo. No diretório, também existem três subdiretórios para cada domínio:
plain
: os resultados sem nova solicitação corretivarefine_once
: os resultados aplicando nova solicitação corretiva para os problemas plain
refine_twice
: os resultados aplicando nova solicitação corretiva para os problemas em refine_once
Para detectar objetos com caixas delimitadoras e gerar legendas, execute:
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
Esta etapa deve ser realizada antes da geração do problema PDDL.
Para gerar problemas PDDL com base nas caixas delimitadoras e legendas previstas e encontrar planos, execute:
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
Para avaliar os problemas PDDL gerados e validar os planos encontrados, execute:
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"
Para refinar os problemas de PDDL gerados por meio de nova solicitação corretiva, execute:
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}
}