Welcome to AutoMPC, a library for automating system identification and model predictive control. AutoMPC can
To see AutoMPC in action, check out this example .
System ID and Model Predictive Control are powerful tools for building robot controllers, but getting them up and running can take a lot of engineering work. Achieving good performance typically requires careful selection of a number of hyperparameters, including the MPC horizon, the terms of the objective function, and the parameters of the System ID algorithm. AutoMPC automates the selection of these hyperparameters and provides a toolbox of algorithms to choose from.
AutoMPC tunes hyperparameters for the System ID, Control Optimizer, and objective function using a dataset collected offline. In other words, AutoMPC does not need to interact with the robot during tuning. This is accomplished by initially training a surrogate dynamics model. During tuning, the surrogate dynamics are then used to simulate candidate controllers in order to evaluate closed-loop performance.
For more details, see our paper
Check out our main example to see an overview of the AutoMPC workflow.
If you are interested, check out our detailed examples for more information on how to use the different parts of AutoMPC.
For System ID, AutoMPC supports
For control optimization, AutoMPC supports
AutoMPC is also extensible, so you can use our tuning process with your own System ID and control methods. We'd also welcome contributions of new algorithms to the package.
pip install -r requirements.txt
pip install -e .
The documentation can also be built offline. This requires Sphinx to be installed, which can be done by running
pip install sphinx
To build or re-build the documentation, run the following command from the docs/
subdirectory.
make html
The documentation will be produced in docs/html
.