Giter VIP home page Giter VIP logo

edmp's Introduction

EDMP: Ensemble-of-Costs Guided Diffusion For Motion Planning

Kallol Saha *1, Vishal Mandadi *1, Jayaram Reddy *1, Ajit Srikanth 1, Aditya Agarwal 2, Bipasha Sen 2, Arun Kumar Singh 3, Madhava Krishna 1,

1International Institute of Information Technology, Hyderabad, 2MIT, 3University of Tartu

*denotes equal contribution

This is the official implementation of the paper "EDMP: Ensemble-of-Costs Guided Diffusion For Motion Planning", which is currently under review

teaser_compressed (1)

For more details and results, visit our project page and read our paper.

Code Release plan

  1. Serial Version
    1. All the classifiers are run in serial
    2. Release Status: Beta version out
  2. Parallel version
    1. Classifiers will be run in parallel
    2. Release status: Will be out by 25th December, 2023

Setting up

  1. Clone this repository with all the submodules
    git clone --recurse-submodules https://github.com/vishal-2000/EDMP.git
  2. Install robofin
    cd robofin
    pip install geometrout==0.0.3.4
    echo -e "from setuptools import setup\nsetup()\n" > setup.py
    pip install -e .
  3. Install other necessary packages
    pip install torch torchvision h5py einops autolab_core wandb scipy
  4. Download the datasets from link to './datasets' folder. This would look like:
    ./datasets/*_solvable_problems.pkl
    Where * is a placeholder for all the three datasets - global, hybrid, and both
  5. Download the models folder from link and unzip it in the main folder.
  6. Final directory structure must look like:
.
├── benchmark
│   └── cfgs
├── datasets
│   └── __pycache__
├── diffusion
│   ├── models
│   │   └── __pycache__
│   └── __pycache__
├── guides
│   └── cfgs
├── lib
│   └── __pycache__
├── models
│   └── TemporalUNetModel255_N50
├── mpinets
│   ├── __pycache__
│   └── third_party
│       └── __pycache__
├── robofin
│   └── robofin
│       ├── kinematics
│       ├── pointcloud
│       │   └── cache
│       │       └── franka
│       ├── standalone_meshes
│       └── urdf
│           ├── franka_panda
│           │   ├── hd_meshes
│           │   │   ├── collision
│           │   │   └── visual
│           │   └── meshes
│           │       ├── collision
│           │       └── visual
│           └── panda_hand
│               └── meshes
│                   ├── collision
│                   └── visual
└── urdfs

Running Inference

Inference configurations can be set using the config files placed in the benchmark folder (./benchmark/cfgs/cfg1.yaml). A custom config file can be created following syntax similar to the files in the benchmark/cfgs directory

To run inference:

python infer_serial.py -c <config_folder_location>

For example:

python infer_serial.py -c ./benchmark/cfgs/cfg1.yaml

Adding custom guides

New custom guides can be added into the ./guides/cfgs/ folder, following syntax similar to the other files in that folder. In order to include this guide during inference, please add the guide number (where the number must match the number on the file name, i.e., ./guides/cfgs/guide10.yaml has guide number == 10 (also change the index number in the file according to the guide number)).

You can control the number of guides you want to run in parallel, and what guides you want to run in parallel using the config file in benchmark folder. For example, in ./benchmark/cfgs/cfg1.yaml, setting the guides parameter to the following will run the inference script with the guides 1, 2, and 3.

guides: [1, 2, 3]

Results

  • For replicating the results shown in the paper, please use cfg ./benchmark/cfgs/cfg1.yaml

Citation

If you find our work useful in your research, please cite:

@misc{saha2023edmp,
      title={EDMP: Ensemble-of-costs-guided Diffusion for Motion Planning}, 
      author={Kallol Saha and Vishal Mandadi and Jayaram Reddy and Ajit Srikanth and Aditya Agarwal and Bipasha Sen and Arun Singh and Madhava Krishna},
      year={2023},
      eprint={2309.11414},
      archivePrefix={arXiv},
      primaryClass={cs.RO}
}

Contact

Kallol Saha: [email protected]
Vishal Mandadi: [email protected]
Jayaram Reddy: [email protected]

edmp's People

Contributors

failedmesh avatar pawanw17 avatar vishal-2000 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.