caelan/pddlstream


PDDLStream: Integrating Symbolic Planners and Blackbox Samplers

  • Users starred: 44
  • Users forked: 14
  • Users watching: 44
  • Updated at: 2020-05-14 09:08:39

pddlstream

An implementation of STRIPStream that uses PDDL for the specifiation of actions and streams.

This repository is the "third version" of the STRIPStream framework, intended to replace the previous versions:

  1. https://github.com/caelan/stripstream
  2. https://github.com/caelan/ss

Installation

$ git clone https://github.com/caelan/pddlstream.git
$ cd pddlstream
$ git submodule update --init --recursive
$ ./FastDownward/build.py

If ./FastDownward/build.py fails, install FastDownward's dependencies using your package manager:

  • APT (Linux): $ sudo apt-get install cmake g++ g++-multilib make python

If necessary, see FastDownward's documentation for more detailed installation instructions.

Resources

Examples

Pure Python

These are simple examples that can be run without additional depedencies:

  • Blocksworld: $ python -m examples.blocksworld.blocksworld
  • Blocksworld with Derived Predicates: $ python -m examples.blocksworld.blocksworld_derived
  • Discrete Belief Space: $ python -m examples.discrete_belief.run
  • Kitchen (debug streams): python -m examples.kitchen.run

Python TKinter

Install numpy and Python TKinter on Linux using:

$ pip install numpy
$ sudo apt-get install python-tk

Examples:

  • Discrete TAMP: $ python -m examples.discrete_tamp.run
  • Discrete TAMP with pushing: $ python -m examples.discrete_tamp.run
  • 1D Continuous TAMP: $ python -m examples.continuous_tamp.run
  • 2D Motion Planning: $ python -m examples.motion.run

Advanced Functionality

  • Action Description Language (ADL): $ python -m examples.adl.run
  • Exogenous streams (observations): $ python -m examples.exogenous.run
  • Fluent stream inputs: $ python -m examples.fluent.run

International Planning Competition (IPC)

  • Rovers: $ python -m examples.ipc.rovers.run
  • Satellites: $ python -m examples.ipc.satellites.run

PyBullet

Install PyBullet on OS X or Linux using:

$ pip install numpy pybullet

Examples:

  • Kuka IIWA task and motion planning - python -m examples.pybullet.kuka.run
  • PR2 task and motion planning - python -m examples.pybullet.pr2.run
  • PR2 planning and execution - python -m examples.pybullet.pr2_belief.run

See https://github.com/caelan/ss-pybullet for more information.

Drake

Install Drake on OS X or Ubuntu by following the following instructions: http://drake.mit.edu/installation.html.

Alternatively, install Drake through docker by following the following instructions: http://manipulation.csail.mit.edu/install_drake_docker.html. Use the appropriate docker_run_bash script with docker tag drake-20181128.

Examples:

  • Kuka IIWA task and motion planning - python -m examples.drake.run

Additional PDDLStream + Drake examples can be found at: https://github.com/RobotLocomotion/6-881-examples.

Publications

Citation

Caelan R. Garrett, Tomás Lozano-Pérez, Leslie P. Kaelbling. PDDLStream: Integrating Symbolic Planners and Blackbox Samplers via Optimistic Adaptive Planning, International Conference on Automated Planning and Scheduling (ICAPS), 2020.