Skip to content

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.