Una implementación oficial de Vision-Language Interpreter (ViLaIn). Consulte nuestro documento para obtener más detalles.
Esta implementación requiere Python>=3.10
y torch>=2.0.0
. Para instalar PyTorch, siga las instrucciones en https://pytorch.org/.
Instale fast-downward y VAL siguiendo las instrucciones de compilación. Después de la instalación, copie el binario validate
en el directorio downward
.
Instale Grounding DINO siguiendo las instrucciones.
data
contienen archivos PDDL, observaciones e instrucciones para tres dominios, que denominamos conjunto de datos ProDG en el artículo. Este directorio también contiene cuadros delimitadores anotados en annotated_bboxes
. La estructura del directorio es la siguiente:
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
contiene los problemas de PDDL generados y los planes encontrados informados en el documento. En el directorio también hay tres subdirectorios para cada dominio:
plain
: los resultados sin reproches correctivosrefine_once
: los resultados aplicando reprocesamiento correctivo para los problemas en plain
refine_twice
: los resultados al aplicar una nueva solicitud correctiva para los problemas en refine_once
Para detectar objetos con cuadros delimitadores y generar títulos, ejecute:
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
Este paso debe realizarse antes de la generación del problema PDDL.
Para generar problemas PDDL basados en los cuadros delimitadores y leyendas previstos y buscar planes, ejecute:
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 evaluar los problemas PDDL generados y validar los planes encontrados, ejecute:
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 los problemas de PDDL generados mediante una nueva solicitud correctiva, ejecute:
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}
}