CLI Commands

RoboMetrics CLI commands are local-first wrappers around the Python API. They read small CSV/JSON files, emit strict JSON, and avoid heavyweight services. Examples use python -m robometrics so they work even when a user-level pip install places console scripts outside PATH; the robometrics executable is equivalent when it is on PATH.

Evaluate

cat > predictions.csv <<'CSV'
t,x,y
0,0.0,0.0
1,1.0,0.0
2,2.0,0.0
CSV

cat > ground_truth.csv <<'CSV'
t,x,y
0,0.0,0.0
1,1.1,0.0
2,2.1,0.0
CSV

python -m robometrics evaluate \
  --pred predictions.csv \
  --gt ground_truth.csv \
  --metrics ade fde \
  --threshold ade=0.5 \
  --threshold fde=1.0 \
  --output result.json

evaluate validates that both files exist, loads CSV or JSON trajectory data through the existing IO helpers, runs the requested metrics using each metric's registry compatibility rules, and writes an EvaluationResult JSON file. The file includes top-level "schema_version": "1" as the stable contract for CI parsers and downstream tools. Aligned-sample metrics such as ade and fde require matching prediction and ground-truth shapes. Set-based metrics such as hausdorff_distance can compare different numbers of points when coordinate dimensionality matches. Thresholds use the same direction-aware contract as Evaluator: lower-is-better metrics pass with value <= threshold, and higher-is-better metrics pass with value >= threshold.

Validate

python -m robometrics validate predictions.csv
python -m robometrics validate predictions.csv --output validation.json

validate inspects trajectory-style CSV/JSON files for missing required fields, invalid numeric values, NaN/inf, inconsistent 2D/3D dimensions, non-monotonic timestamps when timestamp columns exist, empty trajectories, and unsupported formats. It prints a human-readable summary and can also write a JSON validation report.

Report

python -m robometrics report result.json --output report.html

report creates a standalone static HTML file with a summary table, metric values, pass/fail indicators, metadata, and a baseline comparison section when the result payload contains comparison metadata.

Benchmark Profiles

python -m robometrics benchmark list
python -m robometrics benchmark run policy_regression_ci \
  --pred predictions.csv \
  --gt ground_truth.csv \
  --output result.json

Profiles are small smoke/regression definitions, not leaderboard definitions. They package metric lists, default thresholds, expected input schemas, descriptions, and limitations.