Shuyang-Yu-808
Add Robometer code + Robometer-4B weights
319eb16
|
Raw
History Blame Contribute Delete
2.79 kB
# FailSafe Dataset Guide
This guide explains how to integrate and use the FailSafe dataset (correctdata_v2) with the Robometer pipeline.
Source: `https://huggingface.co/datasets/onepiece1999/correctdata_v2/tree/main`
## Overview
- The dataset contains three tasks with failures and successes:
- `FailPickCube-v1`: "Pick up the red cube"
- `FailPushCube-v1`: "push and move a cube to a goal region in front of it"
- `FailStackCube-v1`: "Pick up a red cube and stack it on top of a green cube and let go of the cube without it falling."
- Each task has ~100 seed folders. Each seed contains a `Ground_Truth/` (success) and multiple failure attempt folders.
- Each attempt has camera views `front/`, `side/`, `wrist/` with ordered `.png` frames.
- Additionally, JSON files (e.g., `vla_data_FailPickCube-v1.json`, `vla_data_GT_PickCube-v1.json`) provide sub-task annotated mini-trajectories with success/failure labels.
## Directory Structure
```
<dataset_path>/
FailPickCube-v1/
0/
Ground_Truth/
front/0.png ...
side/*.png
wrist/*.png
1_trans_x_2/
front/*.png
side/*.png
wrist/*.png
1/
...
FailPushCube-v1/
...
FailStackCube-v1/
...
json_files/
vla_data_FailPickCube-v1.json
vla_data_GT_PickCube-v1.json
...
```
## Configuration (configs/data_gen_configs/failsafe.yaml)
```yaml
# configs/data_gen_configs/failsafe.yaml
dataset:
dataset_path: ./datasets/failsafe
dataset_name: failsafe
output:
output_dir: ./robometer_dataset/failsafe_rfm
max_trajectories: -1
max_frames: 64
use_video: true
fps: 10
shortest_edge_size: 240
center_crop: false
hub:
push_to_hub: true
hub_repo_id: failsafe_rfm
```
## Loader
- File: `dataset_upload/dataset_loaders/failsafe_loader.py`
- Function: `load_failsafe_dataset(dataset_path)`
- The loader:
- Builds full episodes from `Ground_Truth/` (success) and failure attempt folders for the chosen camera `view`.
- Parses `vla_data_*.json` entries to create sub-task mini-trajectories using the specified image paths and labels; includes the `sub_task` text in the trajectory `task` field.
- Uses the per-task instructions above when JSONs do not specify an instruction.
## Usage
```bash
uv run python -m dataset_upload.generate_hf_dataset --config_path=dataset_upload/configs/data_gen_configs/failsafe.yaml
```
This will:
- Load full episodes and sub-task mini-trajectories for the selected `view`
- Generate web-optimized videos
- Create a HuggingFace dataset ready to push or save
## Notes
- If JSON files are at the dataset root instead of `json_files/`, the loader will look there as a fallback.
- You can switch `view` in the YAML to `side` or `wrist` to regenerate the dataset for a different camera.