Guardian FailCoT — Out-of-Distribution Real-Robot Benchmarks
1
1 commits
1 linked in READMEs
updated May 5, 2026
This repository bundles the three real-world failure-detection benchmarks used to evaluate the Guardian vision-language model in the paper Scaling Cross-Environment Failure Reasoning Data for Vision-Language Robotic Manipulation (Pacaud et al., 2026):
All three are held out of training and used to measure cross-environment generalization of failure detectors. They are released here under a unified schema (metadata + InternVL-format conversations + raw multi-view images) so they can be evaluated with a single pipeline.
The training data (FailCoT: RLBench-Fail + BridgeDataV2-Fail) and the Guardian model are released separately on the Guardian collection.
| Project page | Paper | Code | Model |
|---|---|---|---|
| di.ens.fr/willow/research/guardian | arXiv:2512.01946 | GitHub | paulpacaud/guardian-thinking |
| Split | Source | Embodiment | Views | Execution samples | Planning samples |
|---|---|---|---|---|---|
ur5fail_test | Ours (this work) | UR5 + parallel gripper | 3 (front / left / right) | 140 | 140 |
robofail | RoboFail (Liu et al., 2023) | Mobile manipulator (single-view teleop) | 1 | 153 | 30 |
robovqa | RoboVQA (Sermanet et al., 2024) | 3 embodiments (Everyday Robots / human / human-with-grasping-tool) | 1 | 357 | — |
robovqa contains only execution-verification questions (the original dataset's "planning" questions concern next-action prediction rather than full-plan verification, so they are not included here). The provided metadata_execution.jsonl for RoboVQA is restricted to the success/failure verification subset described in the paper.
Guardian-FailCoT-OOD-datasets/
├── README.md
├── ur5fail_test/
│ ├── metadata_execution.jsonl
│ ├── metadata_planning.jsonl
│ ├── internVL_dataset_execution_vanilla.jsonl
│ ├── internVL_dataset_execution_thinking.jsonl
│ ├── internVL_dataset_planning_vanilla.jsonl
│ ├── internVL_dataset_planning_thinking.jsonl
│ └── records.tar.gz # extract -> records/<taskvar>/<failure_mode>/ep_<id>/<subtask_id>/*.png
├── robofail/
│ ├── metadata_execution.jsonl
│ ├── metadata_planning.jsonl
│ ├── internVL_dataset_execution_vanilla.jsonl
│ ├── internVL_dataset_execution_thinking.jsonl
│ ├── internVL_dataset_planning_vanilla.jsonl
│ ├── internVL_dataset_planning_thinking.jsonl
│ └── records.tar.gz
└── robovqa/
├── metadata_execution.jsonl
├── internVL_dataset_execution_vanilla.jsonl
├── internVL_dataset_execution_thinking.jsonl
└── records.tar.gz
After downloading a split, extract its images with:
tar -xzf <split>/records.tar.gz -C <split>/
This creates <split>/records/..., the path prefix that all image fields in the JSONL files resolve against.
metadata_execution.jsonl / metadata_planning.jsonlOne JSON object per line. Each sample carries the full task context, the multi-view images, and a binary success/failure label, plus (for planning) the original instruction/plan and the perturbation that produced the failure.
Common fields:
taskvar, episode_id, task_instruction, plan, imagesreward — overall sample label (1 = success, 0 = failure)planning_reward, execution_reward — which stage failedfailure_mode — fine-grained categoryfailure_reason — natural-language explanation (when available)Planning-specific fields:
old_task_instruction, old_plan, old_visible_objects — pre-perturbation referencecorrect_plan — ground-truth planinternVL_dataset_*.jsonlInternVL fine-tuning / evaluation format. One conversation per line:
{
"id": 0,
"image": ["records/.../start_img_viewpoint_0.png", "..."],
"height_list": [256, 256],
"width_list": [256, 256],
"conversations": [
{"from": "human", "value": "..."},
{"from": "gpt", "value": "<answer> True </answer> <category> success </category>"}
]
}
vanilla variants emit a direct answer: <answer> bool </answer> <category> ... </category>.thinking variants emit chain-of-thought first: <think> reasoning </think> <answer> bool </answer> <category> ... </category>.See Section V (Experiments) and Table II of the paper for the full evaluation protocol.
from datasets import load_dataset
# Execution-verification metadata across all three benchmarks
ds = load_dataset("paulpacaud/Guardian-FailCoT-OOD-datasets", "metadata_execution")
print(ds) # DatasetDict with splits: ur5fail_test, robofail, robovqa
# Or a single benchmark
ur5 = load_dataset("paulpacaud/Guardian-FailCoT-OOD-datasets", "metadata_execution", split="ur5fail_test")
Image paths in the records files are relative to the split directory, so make sure records.tar.gz has been extracted alongside the JSONL files before opening any sample.
@misc{pacaud2026guardian_failcot,
title = {Scaling Cross-Environment Failure Reasoning Data for Vision-Language Robotic Manipulation},
author = {Paul Pacaud and Ricardo Garcia and Shizhe Chen and Cordelia Schmid},
year = {2026},
eprint = {2512.01946},
archivePrefix = {arXiv},
primaryClass = {cs.RO}
}
If you specifically use the RoboFail or RoboVQA splits, please also cite the original benchmarks:
@inproceedings{liu2023reflect,
title = {REFLECT: Summarizing Robot Experiences for Failure Explanation and Correction},
author = {Liu, Zeyi and Bahety, Arpit and Song, Shuran},
booktitle = {CoRL},
year = {2023}
}
@inproceedings{sermanet2024robovqa,
title = {RoboVQA: Multimodal Long-Horizon Reasoning for Robotics},
author = {Sermanet, Pierre and others},
booktitle = {ICRA},
year = {2024}
}
Released under the Apache 2.0 license. The RoboFail and RoboVQA splits are redistributed in this repository for benchmark convenience; please refer to the original projects for their respective terms of use.
1 commits
Guardian FailCoT — Out-of-Distribution Real-Robot Benchmarks
1
1 commits
1 linked in READMEs
updated May 5, 2026
This repository bundles the three real-world failure-detection benchmarks used to evaluate the Guardian vision-language model in the paper Scaling Cross-Environment Failure Reasoning Data for Vision-Language Robotic Manipulation (Pacaud et al., 2026):
All three are held out of training and used to measure cross-environment generalization of failure detectors. They are released here under a unified schema (metadata + InternVL-format conversations + raw multi-view images) so they can be evaluated with a single pipeline.
The training data (FailCoT: RLBench-Fail + BridgeDataV2-Fail) and the Guardian model are released separately on the Guardian collection.
| Project page | Paper | Code | Model |
|---|---|---|---|
| di.ens.fr/willow/research/guardian | arXiv:2512.01946 | GitHub | paulpacaud/guardian-thinking |
| Split | Source | Embodiment | Views | Execution samples | Planning samples |
|---|---|---|---|---|---|
ur5fail_test | Ours (this work) | UR5 + parallel gripper | 3 (front / left / right) | 140 | 140 |
robofail | RoboFail (Liu et al., 2023) | Mobile manipulator (single-view teleop) | 1 | 153 | 30 |
robovqa | RoboVQA (Sermanet et al., 2024) | 3 embodiments (Everyday Robots / human / human-with-grasping-tool) | 1 | 357 | — |
robovqa contains only execution-verification questions (the original dataset's "planning" questions concern next-action prediction rather than full-plan verification, so they are not included here). The provided metadata_execution.jsonl for RoboVQA is restricted to the success/failure verification subset described in the paper.
Guardian-FailCoT-OOD-datasets/
├── README.md
├── ur5fail_test/
│ ├── metadata_execution.jsonl
│ ├── metadata_planning.jsonl
│ ├── internVL_dataset_execution_vanilla.jsonl
│ ├── internVL_dataset_execution_thinking.jsonl
│ ├── internVL_dataset_planning_vanilla.jsonl
│ ├── internVL_dataset_planning_thinking.jsonl
│ └── records.tar.gz # extract -> records/<taskvar>/<failure_mode>/ep_<id>/<subtask_id>/*.png
├── robofail/
│ ├── metadata_execution.jsonl
│ ├── metadata_planning.jsonl
│ ├── internVL_dataset_execution_vanilla.jsonl
│ ├── internVL_dataset_execution_thinking.jsonl
│ ├── internVL_dataset_planning_vanilla.jsonl
│ ├── internVL_dataset_planning_thinking.jsonl
│ └── records.tar.gz
└── robovqa/
├── metadata_execution.jsonl
├── internVL_dataset_execution_vanilla.jsonl
├── internVL_dataset_execution_thinking.jsonl
└── records.tar.gz
After downloading a split, extract its images with:
tar -xzf <split>/records.tar.gz -C <split>/
This creates <split>/records/..., the path prefix that all image fields in the JSONL files resolve against.
metadata_execution.jsonl / metadata_planning.jsonlOne JSON object per line. Each sample carries the full task context, the multi-view images, and a binary success/failure label, plus (for planning) the original instruction/plan and the perturbation that produced the failure.
Common fields:
taskvar, episode_id, task_instruction, plan, imagesreward — overall sample label (1 = success, 0 = failure)planning_reward, execution_reward — which stage failedfailure_mode — fine-grained categoryfailure_reason — natural-language explanation (when available)Planning-specific fields:
old_task_instruction, old_plan, old_visible_objects — pre-perturbation referencecorrect_plan — ground-truth planinternVL_dataset_*.jsonlInternVL fine-tuning / evaluation format. One conversation per line:
{
"id": 0,
"image": ["records/.../start_img_viewpoint_0.png", "..."],
"height_list": [256, 256],
"width_list": [256, 256],
"conversations": [
{"from": "human", "value": "..."},
{"from": "gpt", "value": "<answer> True </answer> <category> success </category>"}
]
}
vanilla variants emit a direct answer: <answer> bool </answer> <category> ... </category>.thinking variants emit chain-of-thought first: <think> reasoning </think> <answer> bool </answer> <category> ... </category>.See Section V (Experiments) and Table II of the paper for the full evaluation protocol.
from datasets import load_dataset
# Execution-verification metadata across all three benchmarks
ds = load_dataset("paulpacaud/Guardian-FailCoT-OOD-datasets", "metadata_execution")
print(ds) # DatasetDict with splits: ur5fail_test, robofail, robovqa
# Or a single benchmark
ur5 = load_dataset("paulpacaud/Guardian-FailCoT-OOD-datasets", "metadata_execution", split="ur5fail_test")
Image paths in the records files are relative to the split directory, so make sure records.tar.gz has been extracted alongside the JSONL files before opening any sample.
@misc{pacaud2026guardian_failcot,
title = {Scaling Cross-Environment Failure Reasoning Data for Vision-Language Robotic Manipulation},
author = {Paul Pacaud and Ricardo Garcia and Shizhe Chen and Cordelia Schmid},
year = {2026},
eprint = {2512.01946},
archivePrefix = {arXiv},
primaryClass = {cs.RO}
}
If you specifically use the RoboFail or RoboVQA splits, please also cite the original benchmarks:
@inproceedings{liu2023reflect,
title = {REFLECT: Summarizing Robot Experiences for Failure Explanation and Correction},
author = {Liu, Zeyi and Bahety, Arpit and Song, Shuran},
booktitle = {CoRL},
year = {2023}
}
@inproceedings{sermanet2024robovqa,
title = {RoboVQA: Multimodal Long-Horizon Reasoning for Robotics},
author = {Sermanet, Pierre and others},
booktitle = {ICRA},
year = {2024}
}
Released under the Apache 2.0 license. The RoboFail and RoboVQA splits are redistributed in this repository for benchmark convenience; please refer to the original projects for their respective terms of use.
1 commits