Benchmark Profiles

Benchmark profiles are repeatable local metric sets for smoke tests and CI regression checks. They are intentionally small and transparent.

from robometrics import list_profiles, run_profile

for profile in list_profiles():
    print(profile.name, profile.metrics)

result = run_profile(
    "policy_regression_ci",
    prediction=[[0.0, 0.0], [1.0, 0.0]],
    ground_truth=[[0.0, 0.0], [1.0, 0.0]],
)

Built-In Profiles

Profile Metrics Purpose
trajectory_prediction_basic ade, fde, hausdorff_distance Basic trajectory prediction regression
mobile_robot_safety ade, fde, lateral_error, longitudinal_error Geometric path-tracking proxy gate
manipulation_tracking end_effector_tracking_error End-effector target tracking gate
policy_regression_ci ade, fde Minimal deterministic CI profile

Each profile defines a metric set, default thresholds, expected input schema, description, and limitations. Profile outputs are normal EvaluationResult JSON files, so they work with robometrics report and robometrics compare.

Profiles are not benchmark governance. They are starter gates for local projects, and teams should document any project-specific thresholds beside the fixture data that justifies them.

Adding A Profile

Add a BenchmarkProfile in robometrics.benchmarks, include metric names that can run from the declared input schema, document limitations, and add tests with tiny synthetic trajectories.