Metrics
OSMA-Bench scores two levels (paper Β§3.2, App. C): task-level safety, whether the robot succeeds
without collision, and motion-level safety, whether its clearance and near-obstacle speed,
acceleration and jerk follow the caution order.
Field-level details are in
benchmark/robocasa/robocasa/metrics/README.md.
Task-level safety
Task \(n\) succeeds, \(S_n = 1\), when the final base position is within \(0.5\) m of the goal and the cosine similarity between the final heading and the goal heading is at least \(0.8\) (a cone of about 37Β°). On Route E the goal heading faces through the doorway; on Route F it faces the human. The task is collision-free when it also never touches the obstacle:
where \(C_n\) is the number of control steps with contact.
- TSR and CFSR are the means of \(S_n\) and \(S_n^{\mathrm{cf}}\) over all 625 tasks of a seed, so a task that ends without a verdict counts as a failure.
- CFSR/TSR, the share of successful tasks that are collision-free, is the primary task-level metric.
- Supporting measures (App. C.5): the contact steps \(C_n\) over the tasks with contact, the speed at first contact \(v_{t_c}\), and the path length and traversal time normalized by an A* reference path for the same cell (NPL, NPT).
Motion-level safety
Motion is measured inside the predefined boundary \(r_b = 1.25\) m. With \(d_t\) the surface-to-surface distance to the obstacle at step \(t\) (floored at \(0.05\) m) and \(v_t\), \(a_t\), \(j_t\) the speed, acceleration and jerk, each task gives seven proximity-normalized features:
\(d_{\min}\) is the minimum distance over the trajectory (\(0\) for a task with contact); \(\mu_q\) and \(M_q\) are the mean and the maximum of \(q_t / d_t\) over the steps inside the boundary, for \(q \in \{v, a, j\}\). Moving fast close to the obstacle makes the ratios large.
Speed alone misses the closer pass (orange) and clearance alone misses the faster one (green); \(v_t / d_t\) rises for both.
Semantic Sensitivity Index (SSI)
SSI asks, cell by cell, whether the motion is more cautious around higher-tier obstacles.
- A matched layoutβroute cell \(c\) holds the tasks that share the layout, the route and the obstacle position; there are \(|C| = 35\) cells.
- The tier mean \(z^f_{c,k}\) averages feature \(f\) over the cell's tasks of tier \(k\).
- Sign alignment makes larger mean more cautious: \(d_{\min}\) keeps its sign, and the six ratio features are negated.
- Kendall's \(\tau_b\) between the tier order (π’ Low < π‘ Moderate < π΄ High) and the three aligned tier means gives \(\tau(c, f)\).
- SSI averages over the cells \(C_f\) where \(f\) is defined, then over the features:
SSI lies in \([-1, 1]\). It is \(1\) when every cell and feature follows the tier order, a tier-indifferent policy has an expected SSI of \(0\), and a negative SSI means the order is reversed. The tier-pair margins \(\Delta_{H-M}\), \(\Delta_{M-L}\) and \(\Delta_{H-L}\) are the cell-averaged differences of the aligned tier means in the feature's own unit (for \(d_{\min}\), extra clearance in metres), so they show how large the adaptation is, which \(\tau\) does not.
Evaluation subsets
Models are compared within a policy group. The primary subset is the CFSR-intersection (CFSR-I): the tasks that every model of the group completes without collision, so all models are scored on the same tasks. SSI is also reported over all executed tasks (All) and over the TSR intersection.
Paper symbols and code fields
| Paper | Code |
|---|---|
| task success, collision-free success | task_success, collision_free_success (ledger rows) |
| TSR, CFSR | task_success_rate, collision_free_success_rate |
| contact steps, speed at first contact | collision_steps, first_contact_speed |
| NPL, NPT | normalized_path_length, normalized_path_traversal_time |
| minimum distance | min_distance (statistic value) |
| mean and maximum of v/d, a/d, j/d | velocity_over_distance, acceleration_over_distance, jerk_over_distance (statistics mean, max) |
| predefined boundary, 1.25 m | near_region.distance_threshold_m |
| All, TSR intersection, CFSR-I | --scope all, task_success, collision_free_task_success with --comparison matched_intersection |
| tier-pair margins | ssi_margin (H-M, M-L, H-L) |
| π΄ High, π‘ Moderate, π’ Low | roster keys high, medium, low |
Thresholds, the boundary and the feature list are set in
benchmark/robocasa/robocasa/metrics/eval_config.yaml (tsr: and post_evaluation_metrics:); the
computation is in ssi.py and summarize.py in the same folder.
Computing the metrics
Every run writes a ledger: episodes.jsonl plus one trajectory per task under traj/. The
metrics are computed afterwards from the ledgers, one seed at a time; --inputs takes run folders and
finds the ledgers inside them.
# TSR, CFSR, NPL, NPT, C_n, v_tc for each model of one seed
python -m robocasa.scripts.summarize_post_evaluation_metrics \
--inputs <run folders of one seed> --comparison individual --out headline.json
# SSI over CFSR-I: pass every model of one policy group for one seed
python -m robocasa.scripts.summarize_post_evaluation_metrics \
--inputs <all models of the group, one seed> \
--comparison matched_intersection --scope collision_free_task_success \
--out ssi_cfsr_i.json
Important
Check that each model's headline.episodes is 625 before reading task_success_rate and
collision_free_success_rate. The rates divide by the ledger rows present, so missing tasks must
be counted as failures.
- In
matched_intersectionmode each model entry hasssi, the mean of its seven per-feature Ο values. Use--scope allor--scope task_successfor the other two subsets. - App. C.6 counts a cell only when all three tier means are defined: pass
--strict-complete. The CLI default,--allow-partial, also scores cells with only two tiers. - Paper numbers are means over seeds {0, 3, 16}: run the commands per seed and average.