Giter VIP home page Giter VIP logo

llm-tamp's Introduction

LLM-TAMP

This is the official repository of the paper:

LLM3: Large Language Model-based Task and Motion Planning with Motion Failure Reasoning.

$\text{LLM}^3$ is an LLM-powered Task and Motion Planning (TAMP) framework that leverages a pre-trained LLM (GPT-4) as the task planner, parameter sampler, and motion failure reasoner. We evaluate the framework in a series of tabletop box-packing tasks in Pybullet.

Demo

LLM3.mp4

Prerequisite

Install dependencies

git clone [email protected]:AssassinWS/LLM-TAMP.git
cd LLM-TAMP
pip install -r requirements.txt

Project structure

  • assets: robots configurations and environment assets
  • configs: config parameters for the environment and planners
  • envs: the developed environment based on Pybullet
  • task_instances: randomly generated task instances
  • planners: TAMP planners
  • prompts: prompt templates
  • utils: utility functions

We use hydra-core to configure the project.

Usage

Before Running

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" : ""
}

Run TAMP planning

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, see configs/env
  • planner: the planner, see configs/planner
  • max_llm_calls: max number of LLM calls
  • overwrite_instances: we create & load task instances (with different init states) saved in envs/task_instances. set overwrite_instances to true to recreate & save task instances
  • play_traj: whether to play motion trajectory in Pybullet
  • use_gui: whether enable gui in Pybullet

Run parameter sampling

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

llm-tamp's People

Contributors

assassinws avatar hmz-15 avatar

Stargazers

kuko avatar Ramon Fraga Pereira avatar  avatar Zongbao Feng avatar Zachary Kingston avatar Wil Thomason avatar Caelan Garrett avatar Masoud Jafaripour avatar banshan avatar  avatar Kai avatar Ryosuke Takanami avatar Senias avatar 摇曳的快乐 avatar Fangyuan avatar Hejia Zhang avatar Zhang Xinming avatar jongho-lee avatar Sejong Yang avatar Zipeng Dai avatar 爱可可-爱生活 avatar Ermano Arruda avatar Xiangzhen Shen avatar 高正杰 avatar Yusuke avatar  avatar Pengxiang ding avatar  avatar  avatar  avatar Jiangyong Huang avatar  avatar WeidongHuang avatar  avatar Jeremy_cui avatar Pu Xu avatar Haokun Liu avatar Xiaojian Ma avatar  avatar YanSixu avatar  avatar  avatar

Watchers

Kostas Georgiou avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.