differentiable-mpc
differentiable-mpc copied to clipboard
Differentiable MPC for End-to-end Planning and Control
This repository is by Brandon Amos, Ivan Dario Jimenez Rodriguez, Jacob Sacks, Byron Boots, and J. Zico Kolter and contains the PyTorch source code to reproduce the experiments in our NIPS 2018 paper Differentiable MPC for End-to-end Planning and Control.
The PyTorch implementation of the fast and differentiable MPC solver we developed for this work is available as a standalone library at locuslab/mpc.pytorch.
If you find this repository helpful in your publications, please consider citing our paper.
@article{amos2018differentiable,
title={{Differentiable MPC for End-to-end Planning and Control}},
author={Brandon Amos and Ivan Jimenez and Jacob Sacks and Byron Boots and J. Zico Kolter},
booktitle={{Advances in Neural Information Processing Systems}},
year={2018}
}
Setup and Dependencies
- Python/numpy/PyTorch
- locuslab/mpc.pytorch
LQR Imitation Learning Experiments
From within the imitation_lqr directory:
train.pyis the main training script for the experiment in Section 5.3.
Non-Convex Imitation Learning Experiments
From within the imitation_nonconvex directory:
make_dataset.pyshould be run to create a dataset of trajectories for each environment.il_exp.pyis the main training script for each experiment.run-pendulum-cartpole.shruns all of the experiments for the pendulum and cartpole environments in Section 5.3.run-complex-pendulum.shruns all of the experiments for the non-realizable pendulum environment in Section 5.4.