QP Backends
The native SQP implementation can be instantiated with one of several QP interfaces.
| Backend | laOPT type | Interface header |
|---|---|---|
| PIQP | laopt::PIQPSolver<Scalar> | laopt/solvers/piqp_interface.hpp |
| OSQP | laopt::OSQPSolver<Scalar> | laopt/solvers/osqp_interface.hpp |
| ProxQP | laopt::ProxQPSolver<Scalar> | laopt/solvers/proxqp_interface.hpp |
| QPALM | laopt::QPALMSolver<Scalar> | laopt/solvers/qpalm_interface.hpp |
| qpSWIFT | laopt::QPSwiftSolver<Scalar> | laopt/solvers/qpswift_interface.hpp |
| HPIPM | laopt::HPIPMSolver | laopt/solvers/hpipm_interface.hpp |
Each interface translates laOPT’s two-sided general constraints and box bounds into the format expected by the external solver.
Including an interface header is not sufficient by itself. The consuming target must also find and link the corresponding external package. Backend versions and exported CMake target names are controlled by those projects.
HPIPM uses the block structure of multiple-shooting optimal control problems and has a specialized SQP integration.