Online Robot Manipulation Error Detection and Description

CoRL2026
1Elsa Lab, National Taiwan University2OMRON SINIC X3The University of Tokyo* work done as an intern at OMRON SINIC X.

TL;DR We formulate robot failure detection as online video temporal grounding, predicting the temporal boundaries and a cause-and-effect description of each manipulation failure as the video streams.

Overview

Prior robot failure detectors either reduce a failure to a per-frame anomaly score or summarize it only once the episode is over. We instead formulate failure detection as online video temporal grounding: as the video streams, STREAM-FAIL emits the temporal boundaries of each failure together with a natural-language cause-and-effect description.

Because general video-language models have little manipulation knowledge, we also build an automatic pipeline that turns unlabeled robot trajectories into temporally grounded annotations for pre-training — worth a 73% relative gain in localization. We release both the generated corpus and DETECT-DROID-FAILURE, a human-annotated benchmark of real-world failures.

Why online temporal grounding?

A misaligned grasp is not an instantaneous event: it begins with a subtle offset during approach, escalates when the gripper closes on the wrong surface, and ends with the object slipping from the hand. Capturing that span — and explaining it — is what a recovery policy or a human operator actually needs. Prior work gives only an anomaly score, a post-hoc episode summary, or a frame-level label; we answer when a failure occurs and why, in a single streaming pass.

Comparison with related work

Method Domain Video Online TG Free-form Cause-effect
TRACE General ✓ ✗ ✓ ✓ ✗
OnVTG General ✓ ✓ ✓ ✗ ✗
REFLECT Robot ▲ ✗ ▲ ✓ ✗
AHA Robot ▲ ✗ ✗ ✓ ✗
RACER Robot ✗ ✓ ✗ ✓ ✗
Ours (STREAM-FAIL) Robot ✓ ✓ ✓ ✓ ✓

TG = temporal grounding. ▲ = partial (e.g. only a few sampled frames rather than full video).

Generating temporally grounded supervision at scale

A general video-language model knows little about manipulation, and no public dataset pairs time intervals with robot-action descriptions. So we generate that supervision: a multi-stage VLM pipeline turns unlabeled DROID episodes into temporally grounded captions for pre-training.

Data generation pipeline Three sequential stages turn an unlabeled DROID episode into grounded robot-action descriptions.
  • Stage 1 — Summary. Enumerate the tasks in the episode as an ordered list, anchored by task recognition, an active-object trace, and a gripper state chain that together suppress hallucinated objects and actions.
  • Stage 2 — Task segmentation. Localize each task as a time interval and describe it.
  • Stage 3 — Phase segmentation. Split each task clip into manipulation phases from a fixed taxonomy — exploring, approaching, aligning, contacting, releasing, resetting — yielding tuples (s,e,l,p)(s, e, l, p).

Every stage is verified by a second VLM running on the opposite backbone from the generator (Qwen3.5-VL-122B and Cosmos-Reason2-8B), so the two models cross-check each other. Over the full DROID dataset this processes 95K videos into roughly 950K phase tuples — 1.8 tasks per video, 5.61 phases per task.

STREAM-FAIL: Streaming Failure Analysis and Localization

STREAM-FAIL architecture Video arrives in chunks and is encoded by the VL3 vision encoder into per-layer FIFO memory at fixed cost. A future-prediction branch raises an early alarm and the start s; the proposal heads commit the end e; the language head then decodes the description l from the window features over [s, e].

Given a stream, the model may condition only on frames up to the current step, and must output a tuple (s,e,l)(s, e, l) per failure. We build on OnVTG's streaming proposal framework but replace its visual backbone with that of Video-LLaMA3 (VL3) and reuse the paired language model, so the architecture inherits VL3's video understanding and language generation while keeping online grounding. Grounding runs on every incoming chunk for low latency; the language head runs only once an interval is committed, decoding from the localized visual features rather than from boundary tokens.

Benchmark: DETECT-DROID-FAILURE

No existing resource pairs failure boundaries with causal descriptions on real robots, so we annotate one by hand on top of DROID, which holds ~16,000 unsuccessful trajectories. For each event, the start is the earliest moment the cause becomes observable (the gripper making unstable contact with a spoon) and the end is the moment the outcome is apparent (the spoon hitting the floor); each description likewise separates outcome from cause, so the annotations support causal analysis and not just detection.

The held-out split used throughout the results carries 1,212 episodes with 1,466 failure events, plus 180 verified failure-free episodes on which any predicted interval counts as a false positive, and is disjoint by trajectory ID from all training data.

Results

Localization is scored by mean temporal IoU and F1 at IoU thresholds. Description quality is measured only on events localized correctly at IoU 0.7, so a fluent description of a mistimed detection cannot inflate the score.

Architecture comparison (online, 5 seeds)

Architecture mIoU ↑ F1@0.7 ↑ CIDEr@0.7 ↑ LLM ↑
OnVTG 0.201 ± 0.012 0.152 ± 0.010 - -
STREAM-FAIL 0.228 ± 0.008 0.149 ± 0.018 0.854 2.56

Both fine-tuned on identical data, so architecture is the only difference. Swapping in a video-language backbone and adding a language head gains the description OnVTG cannot produce, at no cost to localization: mIoU is higher, the F1@0.7 gap of 0.003 sits inside either model's seed spread, and on the failure-free episodes STREAM-FAIL fires slightly less often (1.44 vs 1.60 spurious detections per episode).

Effect of pre-training on the generated corpus (offline, before any fine-tuning)

Backbone Pre-trained mIoU F1@0.7 F1@0.3 CIDEr@0.7 LLM
VL3-2B 0.0464 0.0033 0.0845 0.000 1.71
VL3-2B ✓ 0.1140 0.0121 0.0551 0.1902 1.67
VL3-7B 0.0877 0.0106 0.2430 0.000 2.03
VL3-7B ✓ 0.1522 0.1113 0.1910 0.745 2.65
Cosmos 0.1265 0.0085 0.2134 0.004 1.65
Cosmos ✓ 0.1192 0.0091 0.2231 0.032 2.72

Pre-trained on the generated corpus alone, which contains no failure annotations. Without it, a general video-language model produces no usable descriptions (CIDEr ≤ 0.004). The gain is largest on VL3-7B, the backbone we deploy: mIoU improves by 73% and description quality rises from zero.

The corpus also helps once human labels are available: mixing it into the fine-tuning recipe improves every metric on the benchmark (mIoU 0.2365 → 0.2471, CIDEr@0.7 1.006 → 1.182, offline). Human annotation supplies precise boundaries and reference wording; the generated corpus supplies the same kind of supervision at a scale manual effort cannot reach.

Limitations

Absolute reliability is still modest — mIoU 0.228, 1.44 spurious detections per failure-free episode, a mean judge score of 2.56 out of 5 — so STREAM-FAIL should be treated as an aid that flags and explains candidate failures, not as a safety guarantee. The evaluation also covers only DROID manipulation trajectories, and the benchmark relies on costly human annotation. Closing the loop with a recovery or vision-language-action policy, and a larger real-robot evaluation, are the natural next steps.

Citation

@inproceedings{chan2026online,
  title={Online Robot Manipulation Error Detection and Description},
  author={Chan, Yung-Shun and Saito, Kuniaki and Beltran-Hernandez, Cristian Camilo and Siburian, Jeremy and Hamaya, Masashi and Lee, Chun-Yi},
  booktitle={Conference on Robot Learning (CoRL)},
  year={2026}
}