Официальная реализация Vision-Language Interpreter (ViLaIn). Более подробную информацию смотрите в нашей статье.
Для этой реализации требуются Python>=3.10
и torch>=2.0.0
. Чтобы установить PyTorch, следуйте инструкциям на https://pytorch.org/.
Установите fast-downdown и VAL, следуя инструкциям по сборке. После установки скопируйте двоичный файл validate
в downward
каталог.
Установите заземление DINO, следуя инструкциям.
data
содержит файлы PDDL, наблюдения и инструкции для трех доменов, которые мы в статье обозначили как набор данных ProDG. Этот каталог также содержит аннотированные ограничивающие рамки в annotated_bboxes
. Структура каталогов следующая:
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
содержит сгенерированные проблемы PDDL и найденные планы, описанные в документе. В каталоге также есть три подкаталога для каждого домена:
plain
: результаты без корректирующих повторных подсказокrefine_once
: результаты применения корректирующего повторного запроса для проблем в plain
refine_twice
: результаты применения корректирующего повторного запроса для проблем в refine_once
Чтобы обнаружить объекты с ограничивающими рамками и создать подписи, запустите:
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
Этот шаг следует выполнить до создания задачи PDDL.
Чтобы сгенерировать задачи PDDL на основе прогнозируемых ограничивающих рамок и подписей и найти планы, запустите:
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
Чтобы оценить сгенерированные проблемы PDDL и проверить найденные планы, запустите:
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"
Чтобы уточнить сгенерированные проблемы PDDL путем корректирующего повторного запроса, запустите:
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}
}