ElastiQP: An Always-Feasible QP Solver for Constrained Robot Control
Abstract
As robot capabilities increase, quadratic programming (QP)-based controllers must account for a similarly increasing number of constraints to ensure safe, reliable operation. Yet, with each added constraint, this introduces more chances of momentary conflict: in which case, a QP solver that returns an "infeasible" status leaves the controller with nothing to execute. To address this, we introduce ElastiQP, a modified dual active-set QP solver that relaxes every inequality constraint with an exact, per-constraint l1 penalty while keeping equality constraints (dynamics) hard. Notably, ElastiQP does so by folding the slack variables into the solver analytically, maintaining a constant size of the condensed linear system. On a suite of robot control benchmarks, ElastiQP achieves microsecond-level performance, matching or outperforming leading modern solvers on feasible problems. On infeasible problems, ElastiQP handles these gracefully, confining violations to strictly the conflicting inequality terms, returning a usable solution up to 40x faster than the best alternative solvers. ElastiQP is available as an open-source C++ header-only library, with Python and JAX interfaces, at https://github.com/StanfordASL/elastiqp.
Related
- Anytime-Feasible Gradient Descent for Constrained Optimization Under Gradient Uncertainty
- Randomized and Oracle-Based Feasible Directions Methods for Nonsmooth Nonconvex Constrained Optimization
- Constrained Mean Variance Portfolio Selection under Reflected Factor Dynamics: Stochastic Riccati Equations, Neumann Problems,and a Deep Solver
- lapanda: A Matrix-Free Differentiable Solver for Nonconvex Constrained Optimization Layers
- KKT Residual Sliding Manifolds: A Projection-Free Structured Finite-Time Solver for Nonlinear Constrained Optimisation
BibTeX
@misc{morton2026elastiqp,
title = {{ElastiQP: An Always-Feasible QP Solver for Constrained Robot Control}},
author = {Daniel Morton and Jon Arrizabalaga and Zachary Manchester and Marco Pavone},
howpublished = {arXiv},
year = {2026},
month = sep,
doi = {10.48550/arxiv.2609.19080},
eprint = {2609.19080},
archivePrefix = {arXiv},
url = {https://arxiv.org/abs/2609.19080},
note = {CC BY 4.0},
}
RIS
TY - UNPB
TI - ElastiQP: An Always-Feasible QP Solver for Constrained Robot Control
AU - Daniel Morton
AU - Jon Arrizabalaga
AU - Zachary Manchester
AU - Marco Pavone
PY - 2026
DA - 2026/09/16
PB - arXiv
DO - 10.48550/arxiv.2609.19080
UR - https://arxiv.org/abs/2609.19080
AB - As robot capabilities increase, quadratic programming (QP)-based controllers must account for a similarly increasing number of constraints to ensure safe, reliable operation. Yet, with each added constraint, this introduces more chances of momentary conflict: in which case, a QP solver that returns an "infeasible" status leaves the controller with nothing to execute. To address this, we introduce ElastiQP, a modified dual active-set QP solver that relaxes every inequality constraint with an exact, per-constraint l1 penalty while keeping equality constraints (dynamics) hard. Notably, ElastiQP does so by folding the slack variables into the solver analytically, maintaining a constant size of the condensed linear system. On a suite of robot control benchmarks, ElastiQP achieves microsecond-level performance, matching or outperforming leading modern solvers on feasible problems. On infeasible problems, ElastiQP handles these gracefully, confining violations to strictly the conflicting inequality terms, returning a usable solution up to 40x faster than the best alternative solvers. ElastiQP is available as an open-source C++ header-only library, with Python and JAX interfaces, at https://github.com/StanfordASL/elastiqp.
ER -