This is the official repository of the paper:
LLM3: Large Language Model-based Task and Motion Planning with Motion Failure Reasoning.
LLM3.mp4
git clone git@github.com:AssassinWS/LLM-TAMP.git
cd LLM-TAMP
pip install -r requirements.txt
assets
: robots configurations and environment assetsconfigs
: config parameters for the environment and plannersenvs
: the developed environment based on Pybullettask_instances
: randomly generated task instancesplanners
: TAMP plannersprompts
: prompt templatesutils
: utility functions
We use hydra-core
to configure the project.
First, create a folder openai_keys
under the project directory; Second, create a file openai_key.json
under the folder openai_keys
; Third, fill in this json file with your openAI API key:
{
"key": "",
"org": "",
"proxy" : ""
}
The ablation study in the LLM^3 paper.
Full example with various options:
python main.py --config-name=llm_tamp env=easy_box_small_basket planner=llm_backtrack max_llm_calls=10 overwrite_instances=true play_traj=true use_gui=true
env
: the environment setting, seeconfigs/env
planner
: the planner, seeconfigs/planner
max_llm_calls
: max number of LLM callsoverwrite_instances
: we create & load task instances (with different init states) saved inenvs/task_instances
. setoverwrite_instances
to true to recreate & save task instancesplay_traj
: whether to play motion trajectory in Pybulletuse_gui
: whether enable gui in Pybullet
The action parameter selection experiment in the LLM^3 paper.
Run with the LLM sampler:
python main.py --config-name=llm_tamp env=easy_box_small_basket planner=llm_sample_params max_llm_calls=10 play_traj=true use_gui=true
Run with the random sampler:
python main.py --config-name=random_sample env=easy_box_small_basket