Haga / Lab / P2-E1 real-footage calibrated gate (SAP v2), three ALOHA-family datasets
Real-footage calibrated gate
The three-state gate (FLAG / CLEAN / ABSTAIN) applied to real tracked robot footage from the three ALOHA-family datasets SAP v2 names, with a disjoint calibration and test split per dataset. The support plane is measured per clip and the detectors are gated on the gripper-derived free-frame mask.
Does the checker catch what it is meant to catch, and what does it cost when it is wrong?
Proposition
What the run claims
A gate is only useful if it refuses the right things. This run applies a three-state gate — FLAG, CLEAN, ABSTAIN — to real bimanual robot footage and measures how often clean footage is refused.
Apparatus
What was measured
LeRobot's ALOHA static towel, candy and ziploc tasks: real robot footage, tracked trajectories, and a split between calibration episodes and test episodes that does not overlap. The three datasets are scored separately, each on its own footage, and the gate's verdict is reported per dataset as well as for the set.
Method
How it was measured
Thresholds are fitted on the calibration episodes and frozen before the test episodes are scored. The clean cohort is presumed violation-free and is not independently labelled, so a flag on one of its clips is not established as wrong; synthetic injected violations measure detection. The two are reported separately, because a gate that confuses them is not a gate.
Observations
What was observed
The headline figures below are the run's own. The video shows the same run as the pipeline produced it.
Open question
Is the flag rate a labelling problem?
The overlay's post-hoc audit carries a finding called SUPPORT-PLANE-GAP. On this run it appears on 15 of the 15 flagged tracks (1.000) and on 192 of the 192 (1.000) unflagged ones. It is on every track, so it does not distinguish a flagged track from an unflagged one and it says nothing about why the gate refused what it refused.
That is a property of the rule rather than of the run: the support plane is measured per clip, so the audit re-derives the same quantity the checker used and the two agree by construction. A finding that cannot come out the other way cannot carry a signal.
So the question stays open, and it is not answered here. The clean cohort is presumed violation-free and is not independently labelled, so a flag on one of its clips is not established as wrong. The planned check is an independent review of the flagged tracks by a human, and the result of that review is not yet in.
The table and the videos can disagree, and where they do the page says so rather than picking one. The table carries the verdict the RUN RECORDED; each video carries the verdict RE-DERIVED from that clip's own stored frames, because a video is a rendering of the evidence and not of the record. For 5 of the 209 rows the two differ, and the run's own record is what the table shows.
One more thing the table and the videos do not say on their own: the table has one row per TRACK, not one per clip, and a clip that was tracked more than once has more than one row. For 58 of the 209 rows the per-frame evidence of that specific track is not stored separately -- the artifact kept one track's trajectory for the clip -- so the first flagged frame is shown as a clip-level flag rather than as a frame index that would belong to the other track.
One bar per tracked clip, counted from the run's own view.
The same tracks, split by the dataset they came from.
A check is counted once per track it fired on. The same clips, read a second way.
The frame the first check fired on, bucketed. The same clips, read a third way.
- Verdict
- FAIL
- across towel, candy, ziploc
- Datasets scored
- 3
- towel, candy, ziploc
- Flag rate on presumed-clean tracks (towel)
- 0.045
- 67 scored tracks, 3 flagged - target <= 0.020 - status FAIL
- Flag rate on presumed-clean tracks (candy)
- 0.012
- 83 scored tracks, 1 flagged - target <= 0.020 - status PASS
- Flag rate on presumed-clean tracks (ziploc)
- 0.193
- 57 scored tracks, 11 flagged - target <= 0.020 - status FAIL
| Observation | Value | 95% interval | Note |
|---|---|---|---|
| Flag rate on presumed-clean tracks (towel) | 0.045 | [0.0153, 0.1236] | 67 scored tracks from 67 source clips, presumed violation-free and not independently labelled; a flag on one is not established as wrong |
| Detection rate (towel) | 1.000 | [0.9721, 1] | 134 injected violations, synthetic |
| Flag rate on presumed-clean tracks (candy) | 0.012 | [0.0021, 0.0651] | 83 scored tracks from 83 source clips, presumed violation-free and not independently labelled; a flag on one is not established as wrong |
| Detection rate (candy) | 1.000 | [0.9774, 1] | 166 injected violations, synthetic |
| Flag rate on presumed-clean tracks (ziploc) | 0.193 | [0.1113, 0.3134] | 57 scored tracks from 59 source clips, presumed violation-free and not independently labelled; a flag on one is not established as wrong |
| Detection rate (ziploc) | 0.992 | [0.9539, 0.9985] | 119 injected violations, synthetic |
| Datasets scored | 3 | — | one artifact per dataset: p2e1-v2-AlohaTowel.json, p2e1-v2-AlohaCandy.json, p2e1-v2-AlohaZiploc.json |
| Datasets meeting SAP v2's 30 clean-clip minimum | 3 | — | towel: 67 clean clips (met); candy: 83 clean clips (met); ziploc: 57 clean clips (met) |
| Total scored tracks (all datasets) | 207 | — | 209 total tracks minus 2 abstained on Ziploc clips |
| Support plane floor (ziploc) | 28 | — | The floor Y coordinate used for the support plane calculation on Ziploc clips |
On the actual footage
These are the real clips: the footage with the tracked path, the measured value, the threshold and the flag drawn on the pixels that were judged. Every label in each video is generated by the harness from its own output.
Demonstration of how Haga detects, flags and reports. Not accuracy evidence: accuracy claims come only from the experiment statistics.
Every failure case (13)
Every video the run published for a case the checker got wrong, and none of them is left out. Each says what the checker found and how it reached that conclusion.
candy / frame00562— FAILURE
support plane 200.9 px, 138 frames scored
VIDEO: FRAME00562
CASE TYPE: FAILURE
WHAT WAS TRACKED: The clip was tracked frame by frame, and the tracked path and the measured value are drawn on the pixels.
WHAT WAS IDENTIFIED: The object was identified in each frame, and the frames the gripper held are the ones the checks run on.
WHAT WAS DETERMINED: Each check was evaluated against its threshold (e.g., contact threshold 0.008, permanence threshold 12 frames), and the frame the first of them fired on is the frame marked on the video. Haga flagged this clip, and the footage is presumed violation-free, so the flag is a FALSE POSITIVE on contact penetration
WHY FAILURE: The post-hoc audit could not account for it either: STATIONARY-ON-SURFACE — report inconsistent with measured evidence. That is the point of publishing it: the case is unresolved, and the page says so.
DATASET: nominal teleoperation (presumed violation-free)
Haga reported: contact
FLAG ON PRESUMED-CLEAN CLIP
Post-hoc audit: SUPPORT-PLANE-GAP consistent with; GRASPED-OBJECT-HOVER consistent with; STATIONARY-ON-SURFACE report inconsistent with measured evidence; TRACKER-HEALTH consistent with; EXPLAINED consistent with
towel / frame00112_teleport— FAILURE
support plane 70.2 px, 76 frames scored
VIDEO: FRAME00112_TELEPORT
CASE TYPE: FAILURE
WHAT WAS TRACKED: The clip was tracked frame by frame, and the tracked path and the measured value are drawn on the pixels.
WHAT WAS IDENTIFIED: The object was identified in each frame, and the frames the gripper held are the ones the checks run on.
WHAT WAS DETERMINED: Each check was evaluated against its threshold (e.g., contact threshold 0.008, permanence threshold 12 frames), and the frame the first of them fired on is the frame marked on the video. Haga put a known violation into this clip and did not find it: the violation was there and the checker missed it
WHY FAILURE: The post-hoc audit checked the finding against the stored per-frame evidence and found nothing that contradicts it.
INJECTED (re-derived, not recovered): teleport at frame 132 (RE-DERIVED: the published record does not carry the injected frame; 509/1000 seeds match it)
Haga reported: teleport
SYNTHETIC
Post-hoc audit: SUPPORT-PLANE-GAP consistent with
towel / frame00391— FAILURE
support plane 136.1 px, 100 frames scored
VIDEO: FRAME00391
CASE TYPE: FAILURE
WHAT WAS TRACKED: The clip was tracked frame by frame, and the tracked path and the measured value are drawn on the pixels.
WHAT WAS IDENTIFIED: The object was identified in each frame, and the frames the gripper held are the ones the checks run on.
WHAT WAS DETERMINED: Each check was evaluated against its threshold (e.g., contact threshold 0.008, permanence threshold 12 frames), and the frame the first of them fired on is the frame marked on the video. Haga flagged this clip, and the footage is presumed violation-free, so the flag is a FALSE POSITIVE on contact penetration
WHY FAILURE: The post-hoc audit could not account for it either: UNEXPLAINED — report inconsistent with measured evidence. That is the point of publishing it: the case is unresolved, and the page says so.
DATASET: nominal teleoperation (presumed violation-free)
Haga reported: contact
FLAG ON PRESUMED-CLEAN CLIP
Post-hoc audit: SUPPORT-PLANE-GAP consistent with; GRASPED-OBJECT-HOVER consistent with; STATIONARY-ON-SURFACE consistent with; TRACKER-HEALTH consistent with; UNEXPLAINED report inconsistent with measured evidence
towel / frame00445— FAILURE
support plane 201.8 px, 55 frames scored
VIDEO: FRAME00445
CASE TYPE: FAILURE
WHAT WAS TRACKED: The clip was tracked frame by frame, and the tracked path and the measured value are drawn on the pixels.
WHAT WAS IDENTIFIED: The object was identified in each frame, and the frames the gripper held are the ones the checks run on.
WHAT WAS DETERMINED: Each check was evaluated against its threshold (e.g., contact threshold 0.008, permanence threshold 12 frames), and the frame the first of them fired on is the frame marked on the video. Haga flagged this clip, and the footage is presumed violation-free, so the flag is a FALSE POSITIVE on contact penetration
WHY FAILURE: The post-hoc audit could not account for it either: STATIONARY-ON-SURFACE — report inconsistent with measured evidence. That is the point of publishing it: the case is unresolved, and the page says so.
DATASET: nominal teleoperation (presumed violation-free)
Haga reported: contact
FLAG ON PRESUMED-CLEAN CLIP
Post-hoc audit: SUPPORT-PLANE-GAP consistent with; GRASPED-OBJECT-HOVER consistent with; STATIONARY-ON-SURFACE report inconsistent with measured evidence; TRACKER-HEALTH consistent with; EXPLAINED consistent with
ziploc / frame00065— FAILURE
support plane 198.3 px, 84 frames scored
VIDEO: FRAME00065
CASE TYPE: FAILURE
WHAT WAS TRACKED: The clip was tracked frame by frame, and the tracked path and the measured value are drawn on the pixels.
WHAT WAS IDENTIFIED: The object was identified in each frame, and the frames the gripper held are the ones the checks run on.
WHAT WAS DETERMINED: Each check was evaluated against its threshold (e.g., contact threshold 0.008, permanence threshold 12 frames), and the frame the first of them fired on is the frame marked on the video. Haga flagged this clip, and the footage is presumed violation-free, so the flag is a FALSE POSITIVE on contact penetration
WHY FAILURE: The post-hoc audit could not account for it either: UNEXPLAINED — report inconsistent with measured evidence. That is the point of publishing it: the case is unresolved, and the page says so.
DATASET: nominal teleoperation (presumed violation-free)
Haga reported: contact
FLAG ON PRESUMED-CLEAN CLIP
Post-hoc audit: SUPPORT-PLANE-GAP consistent with; GRASPED-OBJECT-HOVER consistent with; STATIONARY-ON-SURFACE consistent with; TRACKER-HEALTH consistent with; UNEXPLAINED report inconsistent with measured evidence
ziploc / frame00066— FAILURE
support plane 200.1 px, 84 frames scored
VIDEO: FRAME00066
CASE TYPE: FAILURE
WHAT WAS TRACKED: The clip was tracked frame by frame, and the tracked path and the measured value are drawn on the pixels.
WHAT WAS IDENTIFIED: The object was identified in each frame, and the frames the gripper held are the ones the checks run on.
WHAT WAS DETERMINED: Each check was evaluated against its threshold (e.g., contact threshold 0.008, permanence threshold 12 frames), and the frame the first of them fired on is the frame marked on the video. Haga flagged this clip, and the footage is presumed violation-free, so the flag is a FALSE POSITIVE on contact penetration
WHY FAILURE: The post-hoc audit could not account for it either: STATIONARY-ON-SURFACE — report inconsistent with measured evidence. That is the point of publishing it: the case is unresolved, and the page says so.
DATASET: nominal teleoperation (presumed violation-free)
Haga reported: contact
FLAG ON PRESUMED-CLEAN CLIP
Post-hoc audit: SUPPORT-PLANE-GAP consistent with; GRASPED-OBJECT-HOVER consistent with; STATIONARY-ON-SURFACE report inconsistent with measured evidence; TRACKER-HEALTH consistent with; EXPLAINED consistent with
ziploc / frame00069— FAILURE
support plane 196.1 px, 84 frames scored
VIDEO: FRAME00069
CASE TYPE: FAILURE
WHAT WAS TRACKED: The clip was tracked frame by frame, and the tracked path and the measured value are drawn on the pixels.
WHAT WAS IDENTIFIED: The object was identified in each frame, and the frames the gripper held are the ones the checks run on.
WHAT WAS DETERMINED: Each check was evaluated against its threshold (e.g., contact threshold 0.008, permanence threshold 12 frames), and the frame the first of them fired on is the frame marked on the video. Haga flagged this clip, and the footage is presumed violation-free, so the flag is a FALSE POSITIVE on contact penetration
WHY FAILURE: The post-hoc audit could not account for it either: UNEXPLAINED — report inconsistent with measured evidence. That is the point of publishing it: the case is unresolved, and the page says so.
DATASET: nominal teleoperation (presumed violation-free)
Haga reported: contact
FLAG ON PRESUMED-CLEAN CLIP
Post-hoc audit: SUPPORT-PLANE-GAP consistent with; GRASPED-OBJECT-HOVER consistent with; STATIONARY-ON-SURFACE consistent with; TRACKER-HEALTH consistent with; UNEXPLAINED report inconsistent with measured evidence
ziploc / frame00070— FAILURE
support plane 210.7 px, 84 frames scored
VIDEO: FRAME00070
CASE TYPE: FAILURE
WHAT WAS TRACKED: The clip was tracked frame by frame, and the tracked path and the measured value are drawn on the pixels.
WHAT WAS IDENTIFIED: The object was identified in each frame, and the frames the gripper held are the ones the checks run on.
WHAT WAS DETERMINED: Each check was evaluated against its threshold (e.g., contact threshold 0.008, permanence threshold 12 frames), and the frame the first of them fired on is the frame marked on the video. Haga flagged this clip, and the footage is presumed violation-free, so the flag is a FALSE POSITIVE on contact penetration
WHY FAILURE: The post-hoc audit could not account for it either: UNEXPLAINED — report inconsistent with measured evidence. That is the point of publishing it: the case is unresolved, and the page says so.
DATASET: nominal teleoperation (presumed violation-free)
Haga reported: contact
FLAG ON PRESUMED-CLEAN CLIP
Post-hoc audit: SUPPORT-PLANE-GAP consistent with; GRASPED-OBJECT-HOVER consistent with; STATIONARY-ON-SURFACE consistent with; TRACKER-HEALTH consistent with; UNEXPLAINED report inconsistent with measured evidence
ziploc / frame00276— FAILURE
support plane 200.2 px, 24 frames scored
VIDEO: FRAME00276
CASE TYPE: FAILURE
WHAT WAS TRACKED: The clip was tracked frame by frame, and the tracked path and the measured value are drawn on the pixels.
WHAT WAS IDENTIFIED: The object was identified in each frame, and the frames the gripper held are the ones the checks run on.
WHAT WAS DETERMINED: Each check was evaluated against its threshold (e.g., contact threshold 0.008, permanence threshold 12 frames), and the frame the first of them fired on is the frame marked on the video. Haga flagged this clip, and the footage is presumed violation-free, so the flag is a FALSE POSITIVE on contact penetration
WHY FAILURE: The post-hoc audit could not account for it either: UNEXPLAINED — report inconsistent with measured evidence. That is the point of publishing it: the case is unresolved, and the page says so.
DATASET: nominal teleoperation (presumed violation-free)
Haga reported: contact
FLAG ON PRESUMED-CLEAN CLIP
Post-hoc audit: SUPPORT-PLANE-GAP consistent with; GRASPED-OBJECT-HOVER consistent with; STATIONARY-ON-SURFACE consistent with; TRACKER-HEALTH consistent with; UNEXPLAINED report inconsistent with measured evidence
ziploc / frame00277— FAILURE
support plane 199.6 px, 23 frames scored
VIDEO: FRAME00277
CASE TYPE: FAILURE
WHAT WAS TRACKED: The clip was tracked frame by frame, and the tracked path and the measured value are drawn on the pixels.
WHAT WAS IDENTIFIED: The object was identified in each frame, and the frames the gripper held are the ones the checks run on.
WHAT WAS DETERMINED: Each check was evaluated against its threshold (e.g., contact threshold 0.008, permanence threshold 12 frames), and the frame the first of them fired on is the frame marked on the video. Haga flagged this clip, and the footage is presumed violation-free, so the flag is a FALSE POSITIVE on contact penetration
WHY FAILURE: The post-hoc audit could not account for it either: UNEXPLAINED — report inconsistent with measured evidence. That is the point of publishing it: the case is unresolved, and the page says so.
DATASET: nominal teleoperation (presumed violation-free)
Haga reported: contact
FLAG ON PRESUMED-CLEAN CLIP
Post-hoc audit: SUPPORT-PLANE-GAP consistent with; GRASPED-OBJECT-HOVER consistent with; STATIONARY-ON-SURFACE consistent with; TRACKER-HEALTH consistent with; UNEXPLAINED report inconsistent with measured evidence
ziploc / frame00277_teleport— FAILURE
support plane 199.6 px, 23 frames scored
VIDEO: FRAME00277_TELEPORT
CASE TYPE: FAILURE
WHAT WAS TRACKED: The clip was tracked frame by frame, and the tracked path and the measured value are drawn on the pixels.
WHAT WAS IDENTIFIED: The object was identified in each frame, and the frames the gripper held are the ones the checks run on.
WHAT WAS DETERMINED: Each check was evaluated against its threshold (e.g., contact threshold 0.008, permanence threshold 12 frames), and the frame the first of them fired on is the frame marked on the video. Haga put a known violation into this clip and did not find it: the violation was there and the checker missed it
WHY FAILURE: The post-hoc audit checked the finding against the stored per-frame evidence and found nothing that contradicts it.
INJECTED (re-derived, not recovered): teleport at frame 11 (RE-DERIVED: the published record does not carry the injected frame; 500/1000 seeds match it)
Haga reported: teleport
SYNTHETIC
Post-hoc audit: SUPPORT-PLANE-GAP consistent with
ziploc / frame00282— FAILURE
support plane 199.2 px, 18 frames scored
VIDEO: FRAME00282
CASE TYPE: FAILURE
WHAT WAS TRACKED: The clip was tracked frame by frame, and the tracked path and the measured value are drawn on the pixels.
WHAT WAS IDENTIFIED: The object was identified in each frame, and the frames the gripper held are the ones the checks run on.
WHAT WAS DETERMINED: Each check was evaluated against its threshold (e.g., contact threshold 0.008, permanence threshold 12 frames), and the frame the first of them fired on is the frame marked on the video. Haga flagged this clip, and the footage is presumed violation-free, so the flag is a FALSE POSITIVE on contact penetration
WHY FAILURE: The post-hoc audit could not account for it either: UNEXPLAINED — report inconsistent with measured evidence. That is the point of publishing it: the case is unresolved, and the page says so.
DATASET: nominal teleoperation (presumed violation-free)
Haga reported: contact
FLAG ON PRESUMED-CLEAN CLIP
Post-hoc audit: SUPPORT-PLANE-GAP consistent with; GRASPED-OBJECT-HOVER consistent with; STATIONARY-ON-SURFACE consistent with; TRACKER-HEALTH consistent with; UNEXPLAINED report inconsistent with measured evidence
ziploc / frame00282_teleport— FAILURE
support plane 199.2 px, 18 frames scored
VIDEO: FRAME00282_TELEPORT
CASE TYPE: FAILURE
WHAT WAS TRACKED: The clip was tracked frame by frame, and the tracked path and the measured value are drawn on the pixels.
WHAT WAS IDENTIFIED: The object was identified in each frame, and the frames the gripper held are the ones the checks run on.
WHAT WAS DETERMINED: Each check was evaluated against its threshold (e.g., contact threshold 0.008, permanence threshold 12 frames), and the frame the first of them fired on is the frame marked on the video. Haga put a known violation into this clip and did not find it: the violation was there and the checker missed it
WHY FAILURE: The post-hoc audit checked the finding against the stored per-frame evidence and found nothing that contradicts it.
INJECTED (re-derived, not recovered): teleport at frame 26 (RE-DERIVED: the published record does not carry the injected frame; 509/1000 seeds match it)
Haga reported: teleport
SYNTHETIC
Post-hoc audit: SUPPORT-PLANE-GAP consistent with
A success case
candy / frame00562_penetration— SUCCESS
support plane 200.9 px, 138 frames scored
VIDEO: FRAME00562_PENETRATION
CASE TYPE: SUCCESS
WHAT WAS TRACKED: The injected violation was tracked frame by frame through the clip, with the injected track overlaid on the pixels that were judged.
WHAT WAS IDENTIFIED: The injected object was identified in each frame by its injected trajectory, and the frames where the gripper held the injected violation are the ones the checks run on.
WHAT WAS DETERMINED: Each check was evaluated against its threshold (e.g., contact threshold 0.008, permanence threshold 12 frames), and the frame the first of them fired on is the frame marked on the video. The checker detected the violation Haga introduced.
WHY SUCCESS: Haga put a known violation into this clip, and Haga found it: the flag on the video is the detector firing on the violation the run introduced. It is the only success case in this run.
INJECTED (re-derived, not recovered): penetration at frame 139 (RE-DERIVED: the published record does not carry the injected frame; 121/1000 seeds match it)
Haga reported: contact
SYNTHETIC
Post-hoc audit: SUPPORT-PLANE-GAP consistent with; GRASPED-OBJECT-HOVER consistent with; STATIONARY-ON-SURFACE consistent with; TRACKER-HEALTH consistent with
VIDEO: FRAME00562_PENETRATION
CASE TYPE: SUCCESS
WHAT WAS TRACKED: The injected violation was tracked frame by frame through the clip, with the injected track overlaid on the pixels that were judged.
WHAT WAS IDENTIFIED: The injected object was identified in each frame by its injected trajectory, and the frames where the gripper held the injected violation are the ones the checks run on.
WHAT WAS DETERMINED: Each check was evaluated against its threshold (e.g., contact threshold 0.008, permanence threshold 12 frames), and the frame the first of them fired on is the frame marked on the video. The checker detected the violation Haga introduced.
WHY SUCCESS: Haga put a known violation into this clip, and Haga found it: the flag on the video is the detector firing on the violation the run introduced. This run has 29 success cases; this is one of them, and the other 28 are not shown because they show the same thing. Every failure case is published in full, above.
Every bar is one row of the run table below.
Both measures are read from the run table below.
Counted from the run table below.
Limitations
What this run does not show
Does the checker catch what it is meant to catch, and what does it cost when it is wrong?
- The object diameter is ASSUMED per dataset and metres-per-pixel is a declared camera calibration, not a measurement. No reference dimension exists in any of the three datasets.
- The track-picker's span band is ONE geometric prior shared by all three datasets. It is not fitted to any dataset's result, and it is not varied per dataset.
- Injected violations are SYNTHETIC and prove only that the detectors can fire on a known violation.
- The clean cohort is PRESUMED violation-free, not independently labelled, so a flag on one of its clips is not established as wrong. The post-hoc audit is where a flag is checked against measured evidence.
- Detector coverage is incomplete: a detector that never became applicable has no measurable rate.
- The three datasets are shorter than SAP v2 assumed: the preregistration assumed 80 episodes each and the released datasets have towel 50, candy 50, ziploc 56. The effective test windows are the preregistered 15-79 intersected with the episodes that exist, and each artifact records the shortfall.
- The towel false-positive rate is 0.045 against a 0.020 target.
- The ziploc false-positive rate is 0.193 against a 0.020 target.
- The gate ABSTAINED on some clips: ziploc abstained on 2 clips. Those clips were not scored, and they are counted as neither flagged nor clean -- an abstention is a refusal to certify, not a pass (reason: too_short_for_detector_window).