MIMPC++
A fast typesafe Mixed Integer MPC C++ library
|
A fast typesafe Mixed Integer Model Predictive Control C++ library
The library was originally developed as a fast implementation of an MPC for European Space Agency's free-floating platform REACSA which is controlled by a continuous actuated Reaction Wheel and eight binary actuated thrusters under dwell time constraints.
This project contains:
Full documentation under: Documentation & Code-API
Please refer to the installation instructions. For simple use a [Dockerfile](Dockerfile) is available. To build and run the container simply run:
To directly run the example run:
Or simply launch the container and play around:
(Note that when trying to stop the controller in docker CTRL+C
might get cought, making it nececarry to press it 5 times to enforce termination.)
When the simulation and examples have been built, run ./build/reacsamimpc
within the repos root folder. It starts a few tests with the simulated free-floating platform REACSA and safes the results. The simulation creates a visualization that can be rendered by opening (http://localhost:7000) in any browser.
(Full documentation under: Documentation & Code-API)
To get a fully working MIMPC for your own system the system dynamics have to be specified by deriving from mimpc::System. The library provides next to mimpc::System two main interfaces:
Feel free to contact us if you have questions about the library or examples. Enjoy!
The authors would like to thank the support of the projects M-RoCk (Grant No.: FKZ 01IW21002), AAPLE (Grant Number: 50WK2275) and COOPERANTS (Grant No.: 68GX21003H). Further many thanks to the University of Lübeck and especially the Institute for Electrical Engineering in Medicine, the Underactuated Robotics Lab and European Space Agencies Orbital Robotics Lab for the collaboration.
This work has been released under the BSD 3-Clause License. Details and terms of use are specified in the LICENSE file within this repository. Note that we do not publish third-party software, hence software packages from other developers are released under their very own terms and conditions, e.g. Stable baselines (MIT License) and Tensorflow (Apache License v2.0). If you install third-party software packages along with this repo ensure that you follow each individual license agreement.
Please cite one of the following works:
[1] F. Stark, S. Vyas, G. Schildbach, and F. Kirchner, “Mixed Integer Model Predictive Control for a free-floating platform with binary and continuous actuation,” in Proceeding of CEAS Conference on Guidance, Navigation and Control 2024 (EuroGNC 2024), Bristol, 2024. url: CEAS-GNC-2024-013
[2] F. Stark, S. Vyas, G. Schildbach, and F. Kirchner, “Linear Model Predictive Control for a planar free-floating platform: A comparison of binary input constraint formulations,” in Proccedings of 17th Symposium on Advanced Space Technologies in Robotics and Automation, Oct. 2023. doi: 10.48550/arXiv.2312.10788.
[3] F. Stark, “Model Predictive Control for 3-dof free floating platform with binary actuated thrusters and reaction wheel,” Master Thesis, Univerität zu Lübeck, Lübeck, Germany, 2023.