Robot control improved with faster always-feasible quadratic programming solver
ElastiQP: An Always-Feasible QP Solver for Constrained Robot Control
Robotics
Summary
Robots need to solve math problems called quadratic programs (QPs) to decide their movements safely. When too many rules or constraints conflict, usual solvers say they can't find a solution, leaving robots stuck without an action. The authors created ElastiQP, a solver that relaxes conflicting rules slightly rather than failing, always producing a usable solution quickly. This approach keeps essential rules strict while allowing minor, controlled violations where conflicts happen, enabling faster and more reliable robot control.
What this means in practice
- •For robotic control engineers: Use ElastiQP to ensure robot controllers always run by delivering feasible motion commands even when some constraints conflict.
- •For autonomous vehicle developers: Implement ElastiQP to improve real-time decision-making by managing conflicting safety and operational constraints gracefully in driving systems.
Authors
Daniel Morton, Jon Arrizabalaga, Zachary Manchester, Marco Pavone
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.