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].
This is a work in progress and does not work/converge as is yet.
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'
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.
Contributions are welcome. Simply open an issue or pull request on the matter.
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
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
See LICENSE.