Benchmarks#
Throughput and accuracy scripts live in benchmarks/.
Run locally#
uv sync --extra dev
uv run python benchmarks/bench_ik.py
uv run python benchmarks/bench_parity.py
uv run python benchmarks/bench_solvers.py
uv run python benchmarks/bench_constrained.py
uv run --with osqp python benchmarks/bench_osqp.py
What they measure#
Script |
Metric |
|---|---|
|
Solves/sec vs batch size (Panda, G1); |
|
Agreement with CPU Mink (unconstrained DLS oracle) |
|
DLS / LM / L-BFGS relative cost and tracking error |
|
Constrained solver throughput, joint-limit violation vs DLS; box vs
|
|
Inner box / general ADMM vs reference OSQP on standard QP examples |
Recorded numbers are in benchmarks/RESULTS.md.
Constrained solver notes#
Box path (default for
ConfigurationLimit+VelocityLimit): exact feasibility each ADMM step; tuneadmm_itersfor optimality, not safety.General inequality path (
LinearInequalityLimit, oruse_inequalities=True): needs enoughadmm_itersfor tight feasibility.Parity vs Mink uses
limits=None/ConfigurationLimiton Panda (hinge/slide only).