CoolFace
Datasetpublic

angkul07/yam7h-teleop

yam7h-teleop Real-robot teleoperation, YAM bimanual. Part of a 7.014 h co-fine-tuning mixture for pi0-FAST on the YAM bimanual arm: source episodes frames hours angkul07/yam7h-teleop 761 251,703 2.331 angkul07/yam7h-ego 4,174 505,837 4.684 total 4,935 757,540 7.014 This dataset Episodes 761 Frames 251,703 Duration 2.331 h FPS 30 Codebase version v2.1 Source angkul07/abc-teleop Views observation.images.top, .left_wrist… See the full description on the dataset page: https://huggingface.co/datasets/angkul07/yam7h-teleop.

sourceHugging Faceapache-2.0updated 2mo agoView on Hugging Face
0likes209downloads
Dataset Card

yam7h-teleop

Real-robot teleoperation, YAM bimanual.

Part of a 7.014 h co-fine-tuning mixture for pi0-FAST on the YAM bimanual arm:

sourceepisodesframeshours
`angkul07/yam7h-teleop`761251,7032.331
`angkul07/yam7h-ego`4,174505,8374.684
total4,935757,5407.014

This dataset

Episodes761
Frames251,703
Duration2.331 h
FPS30
Codebase versionv2.1
Source`angkul07/abc-teleop`
Viewsobservation.images.top, .left_wrist, .right_wrist (224x224)
State / action14-D (2x6 arm joints + 2 grippers)

Selection

761 episodes sampled by duration (not by count) from the 1,396-episode training pool to hit a 2.33 h target, seed 0.

The 249 episodes published as `angkul07/abc-teleop-holdout` were excluded from the pool first, so no frame here overlaps the eval split — verified as zero overlap.

Single task: put the screwdriver in the bin.

Because this is a renumbered subset that already physically omits the holdout, do not apply the original exclude_episodes list to it. Those are indices into the full abc-teleop: 143 of the 249 fall outside 0..760, and the other 106 are in range and would silently withhold unrelated episodes.

Episode renumbering

Episodes are renumbered 0..760; original source indices are in source_episodes.json (episodes list + index_map).

This is required, not cosmetic: lerobot's get_episodes_file_paths probes range(meta.total_episodes), so a folder holding sparse original indices is unopenable — it silently falls back to the Hub and 401s.

Verification

Built by vast_run/build_mixture.py and checked by vast_run/audit_mixture.py in angkul07/openpi:

  • 25 random episodes read back and compared column-by-column against the source parquet — observation.state, action, timestamp, frame_index, task_index all byte-identical. Renumbering touches only episode_index and the global index.
  • 8 episodes x 3 cameras decoded with ffprobe; every frame count matches its parquet row count.
  • Episode indices contiguous, global index contiguous across the dataset, all parquet and video files present.

Reproducing the selection

vast_run/yam7h_manifest.json records the exact episode lists (seed 0).

bash
python vast_run/select_mixture.py --dry-run     # plan, downloads only meta/
python vast_run/build_mixture.py                # fetch only selected episodes
python vast_run/audit_mixture.py                # independent verification