ODYN: An All-Shifted Non-Interior-Point Method for Quadratic Programming in Robotics and AI
Organizations: Robot Motor Intelligence (RoMI) Lab, Heriot-Watt University, U.K. · Oxford Robotics Institute (ORI), University of Oxford, U.K. · Humanoids and Human Centered Mechatronics, Italian Institute of Technology, Italy.
Abstract
We introduce ODYN, a novel all-shifted primal-dual non-interior-point quadratic programming (QP) solver designed to efficiently handle challenging dense and sparse QPs. ODYN combines all-shifted nonlinear complementarity problem (NCP) functions with proximal method of multipliers to robustly address ill-conditioned and degenerate problems, without requiring linear independence of the constraints. It exhibits strong warm-start performance and is well suited to both general-purpose optimization, and robotics and AI applications, including model-based control, estimation, and kernel-based learning methods. We provide an open-source implementation and benchmark ODYN on the Maros-Mészáros test set, demonstrating state-of-the-art convergence performance in small-to-high-scale problems. The results highlight ODYN's superior warm-starting capabilities, which are critical in sequential and real-time settings common in robotics and AI. These advantages are further demonstrated by deploying ODYN as the backend of an SQP-based predictive control framework (OdynSQP), as the implicitly differentiable optimization layer for deep learning (ODYNLayer), and the optimizer of a contact-dynamics simulation (ODYNSim).
Figures & tables
| Method | Solver | Algorithm | Backend | Warm-start | Degeneracy | Accuracy | Differentiable |
|---|---|---|---|---|---|---|---|
| Non-interior Point | Odyn | All-shifted NIPM | Dense / Sparse | ✓ | ✓ | High | ✓ |
| Fbstab [ 32 ] | Semismooth NIPM | Sparse | ✓ | ✓ | High | ✗ | |
| Interior-Point | PiQP [ 9 ] | Proximal IPM | Sparse | ✗ | ✓ | High | ✗ |
| Mosek [ 8 ] | Homogeneous self-dual IPM | Dense / Sparse | ✗ | ✓ | High | ✗ | |
| Gurobi [ 7 ] | Primal–dual IPM | Dense / Sparse | ✗ | ✓ | High | ✗ | |
| qpSWIFT [ 22 ] | Primal–dual IPM | Sparse | ✗ | ✓ | High | ✗ |
| Parameter | Value | Description |
|---|---|---|
| , | neighborhood hyper-parameters | |
| , | minimum and maximum centering | |
| minimum barrier value | ||
| minimum interpolation value | ||
| , | min. and max. improvement thresholds | |
| , | decrease and increase constants |
| Accuracy | Odyn | ProxQP | PiQP | OsQP | Mosek | Gurobi |
|---|---|---|---|---|---|---|
| Medium | 9.7% | 33.0% | 10.7% | 44.7% | 14.6% | 9.7% |
| High | 15.5% | 35.9% | 10.7% | 49.5% | 14.6% | 12.6% |
| Solver | Redundant Ineq. | LICQ Failure | Multi. Solutions |
|---|---|---|---|
| Odyn | 5 | 10 | 6 |
| ProxQP | 12 | 30 | 10 |
| PiQP | 5 | 8 | 6 |
| OsQP | 75 | 200 | |
| Mosek | 4 | 14 | 5 |
| Gurobi | 11 | 8 | 9 |
| Double ( float64 ) | Float ( float32 ) | ||||
|---|---|---|---|---|---|
| #errors | iters ( ) | #errors | iters ( ) | ||
| Full | Dense | 0 | 0 | ||
| Sparse | 0 | 0 | |||
| Cond. | Dense | 0 | - (max iters) | - (max iters) | |
| Sparse | 0 | - (max iters) | - (max iters) | ||
Quadratic Programming
Quadratic programming optimizes quadratic objectives under constraints, supporting applications from robotics and control to finance and machine learning.
See all 19 papers