Benchmarking framework for OCP QP solvers using acados.
pip install -e .ocp-benchmarkadd-problems /path/to/json/folder --name my_datasetfrom acados_template import AcadosOcpQpOptions
from ocp_qp_benchmark.core import TestSet, SolverSet, Results, run, create_solver_options
from ocp_qp_benchmark.visualization import plot_metric, generate_labels
# Create solver configurations
solvers = [
create_solver_options("FULL_CONDENSING_HPIPM"),
create_solver_options("FULL_CONDENSING_HPIPM", tol_stat=1e-10), # Custom tolerance
create_solver_options("FULL_CONDENSING_DAQP"),
]
# Create test set from problem folders
test_set = TestSet(qp_folder_paths=["ocp_qp_dataset_collection/random_qp/prob_0"])
# Run benchmark
solver_set = SolverSet(solvers)
results = Results(file_path="results/results.csv", test_set=test_set)
run(test_set, solver_set, results)
# Generate labels (auto-detects differing options)
labels = generate_labels(solvers)
# Plot results
plot_metric(metric="runtime_fair", df=results.df, test_set=test_set, labels=labels)PARTIAL_CONDENSING_HPIPMFULL_CONDENSING_HPIPMFULL_CONDENSING_QPOASESFULL_CONDENSING_DAQPPARTIAL_CONDENSING_OSQPPARTIAL_CONDENSING_CLARABEL