Eine offizielle Implementierung von Vision-Language Interpreter (ViLaIn). Weitere Einzelheiten finden Sie in unserem Papier.
Diese Implementierung erfordert Python>=3.10
und torch>=2.0.0
. Um PyTorch zu installieren, befolgen Sie bitte die Anweisungen unter https://pytorch.org/.
Installieren Sie Fast-Downward und VAL gemäß den Build-Anweisungen. Kopieren Sie nach der Installation die validate
in das downward
Verzeichnis.
Installieren Sie den Erdungs-DINO gemäß den Anweisungen.
data
enthalten PDDL-Dateien, Beobachtungen und Anweisungen für drei Domänen, die wir im Artikel als ProDG-Datensatz bezeichnet haben. Dieses Verzeichnis enthält auch annotierte Begrenzungsrahmen in annotated_bboxes
. Die Verzeichnisstruktur ist wie folgt:
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
enthält die generierten PDDL-Probleme und gefundenen Pläne, die im Papier gemeldet wurden. Im Verzeichnis gibt es außerdem drei Unterverzeichnisse für jede Domain:
plain
: die Ergebnisse ohne korrigierende erneute Eingabeaufforderungrefine_once
: Die Ergebnisse durch Anwenden einer korrigierenden erneuten Eingabeaufforderung für die Probleme im plain
refine_twice
: Die Ergebnisse durch Anwendung einer korrigierenden erneuten Eingabeaufforderung für die Probleme in refine_once
Führen Sie Folgendes aus, um Objekte mit Begrenzungsrahmen zu erkennen und Beschriftungen zu generieren:
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
Dieser Schritt sollte vor der Generierung des PDDL-Problems durchgeführt werden.
Führen Sie Folgendes aus, um PDDL-Probleme basierend auf den vorhergesagten Begrenzungsrahmen und Beschriftungen zu generieren und Pläne zu finden:
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
Führen Sie Folgendes aus, um die generierten PDDL-Probleme auszuwerten und die gefundenen Pläne zu validieren:
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"
Führen Sie Folgendes aus, um die generierten PDDL-Probleme durch korrigierende erneute Eingabeaufforderungen zu verfeinern:
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}
}