We are happy to announce the public release of SSQP, an open-source structure-exploiting Sequential Quadratic Programming (SQP) solver for nonlinear optimal control problems, developed at the Laboratory of Automation and Robotics (LAR) of the University of Patras.
SSQP targets the sparsity pattern that naturally arises in discrete-time optimal control. Instead of handing a generic nonlinear program to an off-the-shelf solver, it exploits the banded, stage-wise structure of the problem to solve the quadratic subproblems efficiently. This makes it suitable both for offline trajectory optimization and for real-time Model Predictive Control (MPC) on robotic hardware.
Beyond the solver itself, the release includes documentation, examples, benchmarks, and real-world validation.
Documentation
The documentation covers installation and a quickstart, detailed explanations of the underlying concepts and of the solver architecture, and complete C++ and Python API references.
Examples and tutorials
Step-by-step walkthroughs and working examples cover both trajectory optimization and MPC, including applications with robotic manipulators, underactuated systems, and legged robots.
Benchmarks
We provide comparisons against established optimal control solvers, namely Fatrop, Ipopt, Aligator, and mim_solvers/CSQP, across a range of robotics problems. Every solver is given the same problem definition, so all of them attempt the same costs and constraints.
Across this shared problem set SSQP is competitive with the other solvers. We deliberately phrase that carefully rather than as a claim of being faster or better than any specific one of them: the benchmarks overview explains the reasoning, and the per-problem numbers are all published so that users can judge for themselves. A second set of benchmarks compares SSQP’s own dynamics formulations against each other.
Real-world examples and validation
SSQP has been validated beyond simulation. We demonstrate SSQP-based MPC on the Unitree Go2 quadruped, including locomotion over uneven terrain, jumping, and push recovery, all running in real time on the robot.
The solver was also at the core of our winning entries in the 4th AI Olympics with RealAIGym, where our real-time nonlinear MPC approach took first place in both the Pendubot and Acrobot tracks.
Links and credits
- Documentation, examples and benchmarks: https://lar.upatras.gr/ssqp/
- Source code: https://github.com/upatras-lar/ssqp
Development was led by Nick Karydakis, who implemented most of the library.
SSQP is open source and we welcome feedback, discussions, and contributions, either through GitHub issues and pull requests or by getting in touch.