Metric Catalog¶
Use this page to choose metric families and confirm the direction of each
metric before wiring thresholds into an evaluator or CI gate. Built-in metrics
are registered through robometrics.registry; common displacement metrics use
short canonical names such as ade and fde, while aliases remain available.
Path quality
Trajectory, Prediction, and Temporal metrics measure tracking error, forecast modes, and rollout drift.
Safety and feasibility
Safety, Driving, and Physics metrics inspect collisions, road containment, speed, acceleration, jerk, and feasibility constraints.
Task and dataset signals
Task, Manipulation, Coverage, Diversity, and Calibration cover completion, contact, exploration, sample spread, and confidence quality.
Aliases¶
| Alias | Canonical metric |
|---|---|
average_displacement_error |
ade |
final_displacement_error |
fde |
minade |
min_ade |
minfde |
min_fde |
Family Summary¶
| Family | Typical inputs | Common units | Direction |
|---|---|---|---|
| Trajectory | Nx2 or Nx3 paths |
meters, 1/m |
Mostly lower is better |
| Prediction | KxTx2 or KxTx3 modes |
meters, ratio, nats | Mostly lower is better |
| Driving | Ranked predictions, drivable polygons, actors | meters, ratio, seconds | Mixed |
| Safety | Ego path, actors, lane/drivable geometry | ratio, meters, seconds | Mixed |
| Comfort | Sampled trajectories and dt |
m/s^2, m/s^3, score |
Lower magnitude or higher score |
| Physics | Trajectories, timestamps, constraints, forces | speed, acceleration, score | Mixed |
| Task | Outcomes, positions, goals | ratio | Higher is better |
| Manipulation | Grasps, contact forces, joints, end-effector paths | ratio, force, meters | Mixed |
| Calibration | Confidence and correctness arrays | ratio | Lower is better |
| Coverage | Finite sample matrices | ratio, cells | Higher is better |
| Diversity | Embeddings, trajectories, modes | behavior units, meters | Higher is better |
| Temporal | TxD or BxTxD rollouts/actions |
error/timestep, score | Mixed |
Registered Metrics¶
Trajectory¶
| Metric | What it reports | Direction |
|---|---|---|
ade / average_displacement_error |
Mean pointwise Euclidean distance | Lower is better |
fde / final_displacement_error |
Final-point Euclidean distance | Lower is better |
hausdorff_distance |
Worst-case geometric mismatch between point sets | Lower is better |
path_length |
Total traveled distance | Context dependent |
curvature / curvature_profile |
Planar XY curvature profile | Lower is smoother |
mean_curvature |
Mean planar XY curvature | Lower is smoother |
lateral_error |
Perpendicular deviation from a reference path | Lower is better |
longitudinal_error |
Along-track lead or lag from a reference path | Lower is better |
ADE, FDE, Hausdorff distance, prediction distance metrics, and path length use all provided coordinate dimensions. Curvature, lateral/longitudinal error, safety geometry, and TTC are planar XY metrics.
Prediction¶
| Metric | What it reports | Direction |
|---|---|---|
min_ade |
Best ADE across prediction modes | Lower is better |
min_fde |
Best FDE across prediction modes | Lower is better |
miss_rate |
Whether all modes miss the final-point threshold | Lower is better |
topk_trajectory_error |
Best ADE among the first k ranked modes |
Lower is better |
prediction_nll |
Confidence-weighted negative log likelihood | Lower is better |
displacement_at_k |
Best displacement error among the first k ranked modes |
Lower is better |
Temporal And Robustness¶
| Metric | What it reports | Direction |
|---|---|---|
temporal_drift |
Slope of per-timestep L2 error | Lower is better |
action_jerk |
Mean squared second finite difference of actions | Lower is smoother |
control_smoothness |
Bounded smoothness score from action jerk | Higher is smoother |
long_horizon_drift |
Later-weighted rollout error | Lower is better |
compounding_error_index |
Normalized non-negative error growth | Lower is better |
Comfort And Control¶
| Metric | What it reports | Direction |
|---|---|---|
acceleration |
Per-step acceleration vectors | Lower magnitude is smoother |
jerk |
Per-step jerk vectors | Lower magnitude is smoother |
acceleration_magnitude |
Per-step acceleration magnitudes | Lower is smoother |
jerk_magnitude |
Per-step jerk magnitudes | Lower is smoother |
jerk_cost |
Mean squared jerk magnitude | Lower is smoother |
max_acceleration |
Maximum acceleration magnitude | Lower is smoother |
mean_acceleration |
Mean acceleration magnitude | Lower is smoother |
rms_acceleration |
Root-mean-square acceleration magnitude | Lower is smoother |
max_deceleration |
Maximum longitudinal deceleration magnitude | Lower is smoother |
smoothness_score |
Unitless shape score from normalized third finite difference | Higher is smoother |
smoothness_score is spatial-scale-invariant for geometrically similar paths
and separate from physical jerk_cost(traj, dt). Trajectories shorter than four
points return 1.0 with a RuntimeWarning because third finite differences
are not measurable.
Safety And Driving¶
| Metric | What it reports | Direction |
|---|---|---|
collision_rate |
Disc collision fraction across actor-covered timesteps | Lower is better |
collision_rate_obb |
Oriented-box collision fraction | Lower is better |
time_to_collision |
Constant-velocity disc-agent TTC | Higher is safer |
min_distance_to_actors |
Closest time-aligned XY actor distance | Higher is safer |
lane_departure_rate |
Fraction of ego points outside a lane polygon | Lower is better |
offroad_rate |
Fraction of ego positions outside drivable areas | Lower is better |
soft_ttc |
Minimum rollout TTC under local velocity estimates | Higher is safer |
recovery_success_rate |
Successful recoveries divided by opportunities | Higher is better |
failure_severity |
Mean or max incident severity | Lower is better |
near_miss_rate |
Fraction of clearances below threshold, excluding collisions | Lower is better |
intervention_free_time |
Longest or mean non-intervention segment duration | Higher is better |
Coverage, Calibration, Diversity, Task, And Manipulation¶
| Metric | What it reports | Direction |
|---|---|---|
coverage_score |
Occupied finite grid bins divided by total bins | Higher is better |
workspace_coverage |
Unique discretized workspace cells visited | Higher is better |
calibration_error |
Expected calibration error | Lower is better |
behavioral_diversity |
Mean pairwise distance between behavior embeddings | Higher is better |
trajectory_diversity |
Mean pairwise ADE between prediction modes | Higher is better |
task_success_rate |
Mean binary task success | Higher is better |
goal_reaching_accuracy |
Fraction of positions within goal tolerance | Higher is better |
grasp_success_rate |
Successful grasps divided by attempts | Higher is better |
contact_richness |
Fraction of meaningful contact-force timesteps | Higher is better |
force_limit_compliance |
Fraction of force samples inside the limit | Higher is better |
joint_limit_violation_rate |
Fraction of configurations outside joint limits | Lower is better |
end_effector_tracking_error |
Mean end-effector tracking error | Lower is better |
Physical Consistency¶
| Metric | What it reports | Direction |
|---|---|---|
speed_profile |
Speed estimate at each trajectory point | Context dependent |
acceleration_limits_violated |
Whether acceleration exceeds a limit | Lower is better |
jerk_limits_violated |
Whether jerk exceeds a limit | Lower is better |
curvature_limits_violated |
Whether curvature exceeds a limit | Lower is better |
dynamic_feasibility_score |
Worst-relative-violation feasibility score | Higher is more feasible |
kinematic_feasibility |
Velocity, acceleration, and curvature feasibility score | Higher is more feasible |
dynamic_feasibility |
Force, acceleration, torque, and friction feasibility score | Higher is more feasible |
physics_violation_rate |
Fraction of timesteps or events with any violation | Lower is better |
dynamic_feasibility_score supports max_speed, max_accel, max_jerk, and
max_curvature. Unknown constraint keys raise ValueError.
Category Taxonomy¶
The registry categories are intentionally pragmatic. comfort contains
kinematic profiles and smoothness values used for ride/control quality,
temporal contains rollout drift and compounding-error metrics, and physics
contains dynamic limit checks such as acceleration_limits_violated() and
dynamic_feasibility_score(). Running all kinematic quantities may require
selecting multiple categories or explicit metric names.
Edge-Case Behavior¶
| Case | Behavior |
|---|---|
Empty arrays, one-dimensional arrays, invalid shapes, NaN, or infinite values |
Raise ValueError |
| Single-point trajectories | Accepted by metrics with defined degenerate outputs |
Nx3 trajectories |
Supported wherever trajectory inputs accept Nx2; planar metrics use XY |
| Thresholded physics metrics | Return MetricResult with value, unit, passed, threshold, and metadata |
min_distance_to_actors(ego_traj, []) |
Returns math.inf |
recovery_success_rate() with no opportunities |
Returns nan |
failure_severity([]) |
Returns 0.0 |
coverage_score() with out-of-bounds samples |
Ignores out-of-bounds samples instead of clipping |
physics_violation_rate() with multiple violation types |
Uses logical OR by default |