This repository accompanies the paper "Learning Control-Oriented Dynamical Structure from Data" [1].
Ensure you are using Python 3. Clone this repository and install the packages listed in requirements.txt
. In particular, this code uses JAX, Equinox, and CasADi.
Trajectory and data generation via MPC for both training and testing can be done with the command ./auto_datagen.sh
. This may take a few minutes.
Model training and testing (for various training set sizes and random seeds) can be done with the command ./auto_traintest.sh
. This will take a long time, so feel free to edit ./auto_traintest.sh
if you just want to try, e.g., a single training set size and seed.
Testing for the planar quadrotor on the double loop-the-loop trajectory can be done with the command ./auto_test_double_loop.sh
.
Finally, the figures in [1] can be reproduced and customized with the Jupyter notebook plots.ipynb
.
Please use the following BibTex entry to cite this work.
@INPROCEEDINGS{RichardsSlotineEtAl2023,
author = {Richards, S. M. and Slotine, J.-J. and Azizan, N. and Pavone, M.},
title = {Learning control-oriented dynamical structure from data},
year = {2023},
booktitle = {International Conference on Machine Learning (ICML)},
url = {https://arxiv.org/abs/2302.02529},
doi = {10.48550/arXiv.2302.02529},
}
[1] S. M. Richards, J.-J. Slotine, N. Azizan, and M. Pavone. "Learning control-oriented dynamical structure from data". In International Conference on Machine Learning (ICML), 2023.