Benchmarks¶
benchmarks/ contains two independent sets of
benchmarks, covering two different questions:
-
Solver: how does SSQP compare against other established OCP solvers (Fatrop, Ipopt, Aligator, mim_solvers/CSQP) on the same robotics problems, each one solved through a shared problem definition so every solver attempts the same costs and constraints?
-
Solver Modes: within SSQP itself, how does the choice of dynamics formulation (
ForwardDynamics,InverseDynamics,ReducedInverseDynamics, see Model) affect convergence on a given problem?
Why we run these¶
Neither set of benchmarks exists to produce a single headline number. The Solver benchmarks exist to give a rough, honest sense of where SSQP sits relative to the state of the art on realistic robotics OCPs, rather than only ever being evaluated in isolation. The Solver Mode benchmarks exist for a more practical reason: SSQP supports several ways to formulate the same underlying problem, and picking well between them matters for how fast and how reliably a given problem actually solves, so we wanted data to back that choice rather than intuition alone.
General conclusions¶
Across the Solver benchmarks, SSQP is competitive with the other solvers on this shared problem set; see the "On fairness" note on the Solver Benchmarks page for why that's phrased carefully rather than as a claim of being faster or higher-quality than any specific one of them.
Across the Solver Mode benchmarks, the clearest pattern is with floating-base, legged problems:
ReducedInverseDynamics tends to converge in fewer iterations and less time than ForwardDynamics or
InverseDynamics there (see the Go2 Multi Jump and G1
Jump tables). It also tends to produce solutions of higher quality.
Both sets of plots go into the actual per-problem numbers; this page is only meant as a starting point before reading
either in full.
- Solver Benchmarks: SSQP vs. other OCP solvers, problem by problem
- Solver Mode Benchmarks: SSQP's own dynamics modes, compared against each other