MPC test set for QP solvers
July 23, 2026 ยท View on GitHub
This repository contains quadratic programs (QPs) arising from model predictive control in robotics, in a format suitable for qpbenchmark. Here is the report produced by this benchmarking tool:
- ๐ MPC test set results
- ๐ Dense subtest results
- ๐ Sparse subtest results
The methodology and limitations of the benchmark are described in the qpbenchmark readme. This test set, in particular, does not reflect the warm-starting that is frequently used on robots that do model predictive control.
Installation
The recommended process is to install the benchmark and all solvers using pixi:
pixi install
It is also possible to install the benchmark from PyPI.
Usage
Run the test set as follows:
pixi run mpc_qpbenchmark # full test set
pixi run mpc_qpbenchmark_dense # dense subset
pixi run mpc_qpbenchmark_sparse # sparse subset
The outcome, written to the results/ directory, is a standardized report comparing all available solvers against the different benchmark metrics. You can check out and post your own results in the Results forum.
Adding HPIPM to the pixi environment
The HPIPM solver is not packaged, but instructions to install from source are given in hpipm:
- Clone BLASFEO:
git clone https://github.com/giaf/blasfeo.git - From the BLASFEO directory, run:
make shared_library -j 4 - Check that you are in your pixi environment (
pixi shell), then run:
cp -f ./lib/libblasfeo.so ${CONDA_PREFIX}/lib/
cp -f ./include/*.h ${CONDA_PREFIX}/include/
- Clone HPIPM:
git clone https://github.com/giaf/hpipm.git - From the HPIPM directory, run:
make shared_library -j4 BLASFEO_PATH=${CONDA_PREFIX} - Check that you are in your pixi environment, then run:
cp -f libhpipm.so ${CONDA_PREFIX}/lib/
cp -f ./include/*.h ${CONDA_PREFIX}/include/
- Go to
hpipm/interfaces/python/hpipm_pythonand runpip install . - Try to import the package in Python:
import hpipm_python.common as hpipm
Contributions
The problems in this test set have been contributed by:
| Problems | Contributor | Details |
|---|---|---|
QUADCMPC* | @paLeziart | Proposed in #1, details in this thesis |
LIPMWALK* | @stephane-caron | Proposed in #3, details in this paper |
WHLIPBAL* | @stephane-caron | Proposed in #4, details in this paper |
Citation
This test set is run using qpbenchmark. If you use it in your work, you can refer to it using this citation.
See also
Related test sets that may be relevant to your use cases:
- Free-for-all: community-built test set, new problems welcome!
- Maros-Meszaros test set: a standard test set with problems designed to be difficult.