Skip to main content

Impact: A Toolchain for Optimal Control and Model Predictive Control Specification, Prototyping, and Deployment

pipeline status license: LGPL v3 pypi version arXiv html docs

Description

Impact is a flexible toolchain for the specification, prototyping, and deployment of optimal control problems (OCP) and model predictive control (MPC) strategies, with automatic generation of deployable artifacts.

The toolchain reduces the engineering complexity of MPC implementations by providing an intuitive application programming interface and flexible integration with state-of-the-art numerical optimization solvers for rapid prototyping.

Impact is written in Python, with bindings for MATLAB. The generated artifacts can be executed from C, Python, MATLAB, Simulink, and ROS 2 environments.

License: Impact is released under the GNU LGPLv3 license.

Installation

We recommend installing Impact in a Python virtual environment to avoid dependency conflicts and to keep the installation isolated from system-wide packages.

Option 1: Installing with pip

You can install Impact (ideally into a virtual environment) via pip using the following command:

pip install impact-meco

Option 2: Installing from cloned repository

Alternatively, you can clone this repository and install Impact from source:

git clone https://gitlab.kuleuven.be/meco-software/impact.git
cd impact
pip install .

For development, we recommend an editable installation:

pip install -e .

This installs Impact in editable mode, so changes to the source code take effect immediately without reinstalling.

Submitting an issue

Please submit an issue if you want to report a bug or propose new features of the toolchain.

Citing

When using this Impact toolchain in research or publications, please cite the following article: the following paper:

A. Florez, A. Astudillo, W. Decré, J. Swevers, and J. Gillis, "IMPACT: A Toolchain for Nonlinear Model Predictive Control Specification, Prototyping, and Deployment", IFAC-PapersOnLine, vol. 56, no. 2, pp. 3164–3169, 2023, doi: 10.1016/j.ifacol.2023.10.1451

@article{Florez2023,
  title = {IMPACT: A Toolchain for Nonlinear Model Predictive Control Specification, Prototyping, and Deployment},
  author = {Alvaro Florez and Alejandro Astudillo and Wilm Decré and Jan Swevers and Joris Gillis},
  journal = {IFAC-PapersOnLine},
  volume = {56},
  number = {2},
  pages = {3164-3169},
  year = {2023},
  note = {22nd {IFAC} World Congress},
  issn = {2405-8963},
  doi = {10.1016/j.ifacol.2023.10.1451},
  url = {https://www.sciencedirect.com/science/article/pii/S2405896323018591}
}


When using the ROS 2 package generator of Impact in research or publications, please cite the following article: the following paper:

A. Astudillo, A. Florez, W. Decré, and J. Swevers, "Rapid Deployment of Model Predictive Control for Robotic Systems: From IMPACT to ROS 2 Through Code Generation", in Proceedings of the 2024 IEEE 18th International Conference on Advanced Motion Control (AMC), 2024, doi: 10.1109/amc58169.2024.10505632

@inproceedings{AstudilloAMC2024,
  title = {Rapid Deployment of Model Predictive Control for Robotic Systems: From IMPACT to ROS 2 Through Code Generation},
  author = {Alejandro Astudillo and Alvaro Florez and Wilm Decré and Jan Swevers},
  url = {http://dx.doi.org/10.1109/AMC58169.2024.10505632},
  doi = {10.1109/amc58169.2024.10505632},
  booktitle = {2024 {IEEE} 18th International Conference on Advanced Motion Control (AMC)},
  publisher = {IEEE},
  year = {2024},
  month = feb 
}

Metadata

Release files for impact-meco 0.6.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for impact-meco 0.6.1
File Size Uploaded
impact_meco-0.6.1.tar.gz 73.7 kB Details

Release files / impact_meco-0.6.1.tar.gz

Download URL impact_meco-0.6.1.tar.gz
Size 73.7 kB
Tags Source
SHA-256 checksum
How to use checksums
8d07ccd1f08f3b543c1a10d45b3c3bdc0f7ee2e58e4faf91bbf1bc7087860038
BLAKE2b-256 checksum
How to use checksums
6b5d520d5746e7dca55c335a4e48fb3944f9ca7f39764f33bd58d27c64dd19b9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.12.3

Release history Release notifications | RSS feed

This release

0.6.1 This release

1 release file

0.6.0

1 release file

0.5.0

1 release file

0.4.10

1 release file

0.4.9

1 release file

0.4.8

1 release file

0.4.7

1 release file

0.4.6

1 release file

0.4.5

1 release file

0.4.2

1 release file

0.4.1

1 release file

0.4.0

1 release file

0.3.9

1 release file

0.3.8

1 release file

0.3.6

1 release file

0.3.5

1 release file

0.3.4

1 release file

0.3.3

1 release file

0.3.2

1 release file

0.3.1

1 release file

0.3.0

1 release file

0.2.1

1 release file

0.2.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page