Attempt to port mpc.pytorch to Chainer.
Disclaimer: PFN provides no warranty or support for this software. Use it at your own risk.
This software is developed as part of PFN summer internship 2019 and the main developer is Shun Arahata.
$ pipenv install
This code has been tested using libraries below:
- numpy = "1.17.2"
- chainer = "6.3.0"
- jupyter = "1.0.0"
- matplotlib = "3.1.1"
- jupytext = "1.2.4"
- scipy = "1.3.1"
- pathlib = "1.0.1"
- torch = "1.2.0"
See also Pipfile
.
$ pipenv run python env_dx/make_dataset.py
$ pipenv run python env_dx/il_exp.py
-
[1] B. Amos, I. Jimenez, J. Sacks, B. Boots, and Z. Kolter. “Differentiable MPC for End-to-end Planning and Control” In NIPS'18 Proceedings of Advances in Neural Information Processing Systems. Available: https://arxiv.org/abs/1810.13400 . Experiment code: https://github.com/locuslab/differentiable-mpc
-
[2] Yuval Tassa, Nicolas Mansard and Emo Todorov. “Control-Limited Differential Dynamic Programming” ICRA'14 IEEE International Conference on Robotics and Automation. Available: https://homes.cs.washington.edu/~todorov/papers/TassaICRA14.pdf . Code: https://jp.mathworks.com/matlabcentral/fileexchange/52069-ilqg-ddp-trajectory-optimization
-
[3] Brandon Amos, and J. Zico Kolter, “OptNet: Differentiable Optimization as a Layer in Neural Networks” In ICML'17 Proceedings of the 34th International Conference on Machine Learning. Available: https://arxiv.org/abs/1703.00443 . Code: https://github.com/locuslab/qpth/ . Chainer-port: https://github.com/msakai/chainer-optnet
-
[4] Yuval Tassa, Tom Erez and Emanuel Todorov. “Synthesis and Stabilization of Complex Behaviors through Online Trajectory Optimization” IROS'12 IEEE/RSJ International Conference on Intelligent Robots and Systems. Available: https://homes.cs.washington.edu/~todorov/papers/TassaIROS12.pdf .
-
Optimal Control and Planning, CS 294-112: Deep Reinforcement Learning Sergey Levine
-
Synthesis and Stabilization of Complex Behaviors through Online Trajectory Optimization [in Japanese]
-
Differential Dynamic Programming(DDP)/iterative LQR(iLQR)/Sequential LQR(SLQ) [in Japanese]
MIT License (see the LICENSE file for details).
Note: Part of the code is derived from mpc.pytorch and differentiable-mpc which are also licensed under MIT License (see the LICENSE_THIRD_PARTY file for details).
Also this package still uses PyTorch for fast batch LU factorization (torch.lu
) and solving (torch.lu_solve
).