Skip to content

Commit

Permalink
Checklist for LeRobot dataloader (#8949)
Browse files Browse the repository at this point in the history
It's a bit of an odd one because of the way the dataloader works, but I
would still feel much better with an odd test than no tests at all.

I've uploaded a heavily sampled down `apple_storage` dataset to LFS in
order to make this work.

* DNM: requires #8936
  • Loading branch information
teh-cmc authored Feb 10, 2025
1 parent a2bf3f7 commit 87564f7
Show file tree
Hide file tree
Showing 14 changed files with 655 additions and 0 deletions.
1 change: 1 addition & 0 deletions scripts/lint.py
Original file line number Diff line number Diff line change
Expand Up @@ -1251,6 +1251,7 @@ def main() -> None:
"./run_wasm/README.md", # Has a "2d" lowercase example in a code snippet
"./scripts/lint.py", # we contain all the patterns we are linting against
"./scripts/zombie_todos.py",
"./tests/assets/lerobot/apple_storage/README.md", # not ours
"./tests/python/gil_stress/main.py",
"./tests/python/release_checklist/main.py",
"./web_viewer/re_viewer.js", # auto-generated by wasm_bindgen
Expand Down
59 changes: 59 additions & 0 deletions tests/assets/lerobot/apple_storage/.gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
*.7z filter=lfs diff=lfs merge=lfs -text
*.arrow filter=lfs diff=lfs merge=lfs -text
*.bin filter=lfs diff=lfs merge=lfs -text
*.bz2 filter=lfs diff=lfs merge=lfs -text
*.ckpt filter=lfs diff=lfs merge=lfs -text
*.ftz filter=lfs diff=lfs merge=lfs -text
*.gz filter=lfs diff=lfs merge=lfs -text
*.h5 filter=lfs diff=lfs merge=lfs -text
*.joblib filter=lfs diff=lfs merge=lfs -text
*.lfs.* filter=lfs diff=lfs merge=lfs -text
*.lz4 filter=lfs diff=lfs merge=lfs -text
*.mds filter=lfs diff=lfs merge=lfs -text
*.mlmodel filter=lfs diff=lfs merge=lfs -text
*.model filter=lfs diff=lfs merge=lfs -text
*.msgpack filter=lfs diff=lfs merge=lfs -text
*.npy filter=lfs diff=lfs merge=lfs -text
*.npz filter=lfs diff=lfs merge=lfs -text
*.onnx filter=lfs diff=lfs merge=lfs -text
*.ot filter=lfs diff=lfs merge=lfs -text
*.parquet filter=lfs diff=lfs merge=lfs -text
*.pb filter=lfs diff=lfs merge=lfs -text
*.pickle filter=lfs diff=lfs merge=lfs -text
*.pkl filter=lfs diff=lfs merge=lfs -text
*.pt filter=lfs diff=lfs merge=lfs -text
*.pth filter=lfs diff=lfs merge=lfs -text
*.rar filter=lfs diff=lfs merge=lfs -text
*.safetensors filter=lfs diff=lfs merge=lfs -text
saved_model/**/* filter=lfs diff=lfs merge=lfs -text
*.tar.* filter=lfs diff=lfs merge=lfs -text
*.tar filter=lfs diff=lfs merge=lfs -text
*.tflite filter=lfs diff=lfs merge=lfs -text
*.tgz filter=lfs diff=lfs merge=lfs -text
*.wasm filter=lfs diff=lfs merge=lfs -text
*.xz filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text
*.zst filter=lfs diff=lfs merge=lfs -text
*tfevents* filter=lfs diff=lfs merge=lfs -text
# Audio files - uncompressed
*.pcm filter=lfs diff=lfs merge=lfs -text
*.sam filter=lfs diff=lfs merge=lfs -text
*.raw filter=lfs diff=lfs merge=lfs -text
# Audio files - compressed
*.aac filter=lfs diff=lfs merge=lfs -text
*.flac filter=lfs diff=lfs merge=lfs -text
*.mp3 filter=lfs diff=lfs merge=lfs -text
*.ogg filter=lfs diff=lfs merge=lfs -text
*.wav filter=lfs diff=lfs merge=lfs -text
# Image files - uncompressed
*.bmp filter=lfs diff=lfs merge=lfs -text
*.gif filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
*.tiff filter=lfs diff=lfs merge=lfs -text
# Image files - compressed
*.jpg filter=lfs diff=lfs merge=lfs -text
*.jpeg filter=lfs diff=lfs merge=lfs -text
*.webp filter=lfs diff=lfs merge=lfs -text
# Video files - compressed
*.mp4 filter=lfs diff=lfs merge=lfs -text
*.webm filter=lfs diff=lfs merge=lfs -text
125 changes: 125 additions & 0 deletions tests/assets/lerobot/apple_storage/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,125 @@
---
license: apache-2.0
task_categories:
- robotics
tags:
- LeRobot
configs:
- config_name: default
data_files: data/*/*.parquet
---

This dataset was created using [LeRobot](https://github.com/huggingface/lerobot).

## Dataset Description



- **Homepage:** [More Information Needed]
- **Paper:** [More Information Needed]
- **License:** apache-2.0

## Dataset Structure

[meta/info.json](meta/info.json):
```json
{
"codebase_version": "v2.0",
"robot_type": "reachy2",
"total_episodes": 50,
"total_frames": 14983,
"total_tasks": 1,
"total_videos": 50,
"total_chunks": 1,
"chunks_size": 1000,
"fps": 30,
"splits": {
"train": "0:50"
},
"data_path": "data/chunk-{episode_chunk:03d}/episode_{episode_index:06d}.parquet",
"video_path": "videos/chunk-{episode_chunk:03d}/{video_key}/episode_{episode_index:06d}.mp4",
"features": {
"observation.state": {
"dtype": "float32",
"shape": [
19
],
"names": null
},
"action": {
"dtype": "float32",
"shape": [
19
],
"names": null
},
"observation.image": {
"dtype": "video",
"shape": [
3,
720,
960
],
"names": [
"channel",
"height",
"width"
],
"info": {
"video.fps": 30.0,
"video.height": 720,
"video.width": 960,
"video.channels": 3,
"video.codec": "h264",
"video.pix_fmt": "yuv420p",
"video.is_depth_map": false,
"has_audio": false
}
},
"timestamp": {
"dtype": "float32",
"shape": [
1
],
"names": null
},
"frame_index": {
"dtype": "int64",
"shape": [
1
],
"names": null
},
"episode_index": {
"dtype": "int64",
"shape": [
1
],
"names": null
},
"index": {
"dtype": "int64",
"shape": [
1
],
"names": null
},
"task_index": {
"dtype": "int64",
"shape": [
1
],
"names": null
}
}
}
```


## Citation

**BibTeX:**

```bibtex
[More Information Needed]
```
Git LFS file not shown
Git LFS file not shown
Git LFS file not shown
3 changes: 3 additions & 0 deletions tests/assets/lerobot/apple_storage/meta/episodes.jsonl
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{"episode_index": 0, "tasks": ["place the apple in the plate"], "length": 299}
{"episode_index": 1, "tasks": ["place the apple in the plate"], "length": 300}
{"episode_index": 2, "tasks": ["place the apple in the plate"], "length": 300}
90 changes: 90 additions & 0 deletions tests/assets/lerobot/apple_storage/meta/info.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
{
"codebase_version": "v2.0",
"robot_type": "reachy2",
"total_episodes": 3,
"total_frames": 14983,
"total_tasks": 1,
"total_videos": 50,
"total_chunks": 1,
"chunks_size": 1000,
"fps": 30,
"splits": {
"train": "0:50"
},
"data_path": "data/chunk-{episode_chunk:03d}/episode_{episode_index:06d}.parquet",
"video_path": "videos/chunk-{episode_chunk:03d}/{video_key}/episode_{episode_index:06d}.mp4",
"features": {
"observation.state": {
"dtype": "float32",
"shape": [
19
],
"names": null
},
"action": {
"dtype": "float32",
"shape": [
19
],
"names": null
},
"observation.image": {
"dtype": "video",
"shape": [
3,
720,
960
],
"names": [
"channel",
"height",
"width"
],
"info": {
"video.fps": 30.0,
"video.height": 720,
"video.width": 960,
"video.channels": 3,
"video.codec": "h264",
"video.pix_fmt": "yuv420p",
"video.is_depth_map": false,
"has_audio": false
}
},
"timestamp": {
"dtype": "float32",
"shape": [
1
],
"names": null
},
"frame_index": {
"dtype": "int64",
"shape": [
1
],
"names": null
},
"episode_index": {
"dtype": "int64",
"shape": [
1
],
"names": null
},
"index": {
"dtype": "int64",
"shape": [
1
],
"names": null
},
"task_index": {
"dtype": "int64",
"shape": [
1
],
"names": null
}
}
}
Loading

0 comments on commit 87564f7

Please sign in to comment.