/pddp

WIP implementation of Probabilistic Differential Dynamic Programming in PyTorch

Primary LanguageJupyter NotebookGNU General Public License v3.0GPL-3.0

Probabilistic Differential Dynamic Programming

https://travis-ci.org/anassinator/pddp.svg?branch=master

Probabilistic Differential Dynamic Programming (PDDP) is a data-driven, probabilistic trajectory optimization framework for systems with unknown dynamics. This is an implementation of Yunpeng Pan and Evangelos A. Theodorou's paper in PyTorch, [1].

Warning

This is a work in progress and does not work/converge as is yet.

Install

To install simply clone and run:

pip install .

You may also install the dependencies with pipenv as follows:

pipenv install

Finally, you may add this to your own application with either:

pip install 'git+https://github.com/anassinator/pddp.git#egg=pddp'
pipenv install 'git+https://github.com/anassinator/pddp.git#egg=pddp'

Usage

After installing, import as follows:

import pddp

You can see the notebooks directory for Jupyter notebooks to see how common control problems can be solved through PDDP.

Contributing

Contributions are welcome. Simply open an issue or pull request on the matter.

Testing and Benchmarking

You can run all unit tests and benchmarks through pytest as follows:

pytest

To speed things up, you may also run tests in parallel and disable benchmarks with:

pytest -n auto --benchmark-disable

You can install pytest with:

pipenv install --dev

Linting

We use YAPF for all Python formatting needs. You can auto-format your changes with the following command:

yapf --recursive --in-place --parallel .

You can install the formatter with:

pipenv install --dev

License

See LICENSE.