Dataset · Robotics
so101-spinning-table-success-head-wrist
by Ethan Winchell ewinchell07/so101-spinning-table-success-head-wrist
This dataset was created using LeRobot. SO-101 turntable pick-and-place (robot lilguy), September 2026. A single SO-101 follower arm, teleoperated from an SO-101 leader arm, picks a cube off a slowly spinning turntable and places it in a basket.
Dataset Card
By Ethan Winchell, published under apache-2.0, revision ecaaf28ecb4a.
This dataset was created using LeRobot.
Dataset Description
SO-101 turntable pick-and-place (robot lil_guy), September 2026.
A single SO-101 follower arm, teleoperated from an SO-101 leader arm, picks a cube off a slowly spinning turntable and places it in a basket. Two cube colours (blue, green) and two operator speeds (slow, fast). Recorded with MakerMods Lab on 2026-09-27 and 2026-09-29.
Features (30 fps):
- observation.state: 6 follower joint positions
- action: 6 leader joint positions
- observation.images.head: Intel RealSense D435if RGB, 640×480, overhead view
- observation.images.head_depth: RealSense depth aligned to the head RGB, 12-bit lossless HEVC (decode with lerobot's depth support to get millimetres; values under 20 mm mean no reading)
- observation.images.wrist: USB wrist camera, 640×480
The four datasets. This description is shared by four datasets built from the same recordings:
| Dataset | Episodes | Contents |
|---|---|---|
ewinchell07/so101-spinning-table-all |
69 | every recorded episode, including the failed demos and camera defects |
ewinchell07/so101-spinning-table-success-head |
63 | successful demos with a clean head camera (RGB + depth) |
ewinchell07/so101-spinning-table-success-head-wrist |
25 | successful demos with clean head and wrist cameras |
ewinchell07/so101-spinning-table-failures |
3 | the three failed demos |
Source sessions:
| Session | Date | Cube | Speed | Episodes |
|---|---|---|---|---|
ewinchell07/so-101-poc-blue-slow_20260927_194226 |
2026-09-27 | blue | slow | 15 |
ewinchell07/blue_slow_20260929_145703 |
2026-09-29 | blue | slow | 10 |
ewinchell07/green_slow_20260929_150720 |
2026-09-29 | green | slow | 15 |
ewinchell07/green_fast_20260929_151319 |
2026-09-29 | green | fast | 15 |
ewinchell07/blue_fast_20260929_152142 |
2026-09-29 | blue | fast | 14 |
Selection criteria: - Success: the cube ends in the basket, checked visually on the final frame. There are 3 failures, all with the cube knocked off the turntable. - Clean head camera: - no frozen head frames (at most 2 identical frames in a row) - every depth frame decodes - the two 2026-09-27 episodes with large teleop jumps (over 100 joint units in one frame, from a control-loop stall) are excluded - Clean wrist camera: at most 15% repeated frames, no hold longer than about 0.5 s, and no torn frames. The wrist camera has a failing connector. When it dropped out, the recorder held the camera's last good frame, so wrist streams outside the clean set contain frozen stretches.
Known issues:
- 2026-09-27 session:
- The head camera sat slightly differently; it was repositioned before 2026-09-29.
- The wrist camera ran at about 16–20 fps, so 18–39% of its frames are repeats.
- Episodes 7 and 14 contain the teleop jumps.
- Episode 3's first depth frame fails random-access decoding. It is only in the all dataset.
- The first head RGB frame of each 2026-09-29 session is overexposed while the RealSense exposure settles.
- Task strings differ slightly between sessions, as typed at record time.
Episode provenance (new episode index ← source session episode indices):
- so101-spinning-table-all
- episodes 0–14 ←
so-101-poc-blue-slow_20260927_194226episodes [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14] - episodes 15–24 ←
blue_slow_20260929_145703episodes [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] - episodes 25–39 ←
green_slow_20260929_150720episodes [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14] - episodes 40–54 ←
green_fast_20260929_151319episodes [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14] - episodes 55–68 ←
blue_fast_20260929_152142episodes [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13] - so101-spinning-table-success-head
- episodes 0–11 ←
so-101-poc-blue-slow_20260927_194226episodes [0, 1, 2, 4, 5, 6, 8, 9, 10, 11, 12, 13] - episodes 12–20 ←
blue_slow_20260929_145703episodes [0, 1, 2, 4, 5, 6, 7, 8, 9] - episodes 21–35 ←
green_slow_20260929_150720episodes [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14] - episodes 36–48 ←
green_fast_20260929_151319episodes [1, 2, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14] - episodes 49–62 ←
blue_fast_20260929_152142episodes [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13] - so101-spinning-table-success-head-wrist
- episodes 0–2 ←
blue_slow_20260929_145703episodes [0, 2, 5] - episodes 3–13 ←
green_slow_20260929_150720episodes [0, 1, 3, 4, 5, 6, 9, 10, 11, 13, 14] - episodes 14–17 ←
green_fast_20260929_151319episodes [1, 4, 7, 8] - episodes 18–24 ←
blue_fast_20260929_152142episodes [0, 1, 2, 3, 6, 7, 10] - so101-spinning-table-failures
- episodes 0–0 ←
blue_slow_20260929_145703episodes [3] -
episodes 1–2 ←
green_fast_20260929_151319episodes [0, 3] -
Homepage: [More Information Needed]
- Paper: [More Information Needed]
- License: apache-2.0
Dataset Structure
meta/info.json:
{
"codebase_version": "v3.0",
"fps": 30,
"features": {
"action": {
"dtype": "float32",
"shape": [
6
],
"names": [
"shoulder_pan.pos",
"shoulder_lift.pos",
"elbow_flex.pos",
"wrist_flex.pos",
"wrist_roll.pos",
"gripper.pos"
]
},
"observation.state": {
"dtype": "float32",
"shape": [
6
],
"names": [
"shoulder_pan.pos",
"shoulder_lift.pos",
"elbow_flex.pos",
"wrist_flex.pos",
"wrist_roll.pos",
"gripper.pos"
]
},
"observation.images.wrist": {
"dtype": "video",
"shape": [
480,
640,
3
],
"names": [
"height",
"width",
"channels"
],
"info": {
"is_depth_map": false,
"video.height": 480,
"video.width": 640,
"video.codec": "h264",
"video.pix_fmt": "yuv420p",
"video.fps": 30,
"video.channels": 3,
"has_audio": false,
"video.g": 2,
"video.crf": 30,
"video.preset": "ultrafast",
"video.fast_decode": 0,
"video.video_backend": "pyav",
"video.extra_options": {}
}
},
"observation.images.head": {
"dtype": "video",
"shape": [
480,
640,
3
],
"names": [
"height",
"width",
"channels"
],
"info": {
"is_depth_map": false,
"video.height": 480,
"video.width": 640,
"video.codec": "h264",
"video.pix_fmt": "yuv420p",
"video.fps": 30,
"video.channels": 3,
"has_audio": false,
"video.g": 2,
"video.crf": 30,
"video.preset": "ultrafast",
"video.fast_decode": 0,
"video.video_backend": "pyav",
"video.extra_options": {}
}
},
"observation.images.head_depth": {
"dtype": "video",
"shape": [
480,
640,
1
],
"names": [
"height",
"width",
"channels"
],
"info": {
"is_depth_map": true,
"depth_unit": "mm",
"video.height": 480,
"video.width": 640,
"video.codec": "hevc",
"video.pix_fmt": "gray12le",
"video.fps": 30,
"video.channels": 1,
"has_audio": false,
"video.g": 2,
"video.crf": 30,
"video.preset": null,
"video.fast_decode": 0,
"video.video_backend": "pyav",
"video.extra_options": {
"x265-params": "lossless=1"
},
"video.depth_min": 0.01,
"video.depth_max": 10.0,
"video.shift": 3.5,
"video.use_log": true
}
},
"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
}
},
"total_episodes": 25,
"total_frames": 8830,
"total_tasks": 3,
"chunks_size": 1000,
"data_files_size_in_mb": 100,
"video_files_size_in_mb": 200,
"data_path": "data/chunk-{chunk_index:03d}/file-{file_index:03d}.parquet",
"video_path": "videos/{video_key}/chunk-{chunk_index:03d}/file-{file_index:03d}.mp4",
"robot_type": "so_follower",
"splits": {
"train": "0:25"
}
}
Citation
BibTeX:
[More Information Needed]
Structure
default 8,830 rows
| Split | Rows | Size |
|---|---|---|
| train | 8,830 | 529.1 KB |
Details
- Repository
- ewinchell07/so101-spinning-table-success-head-wrist
- Publisher
- Ethan Winchell
- Task category
- Robotics
- Tags
- LeRobot, makermods, so101
- Size category
- Not stated by the source
- Languages
- Not stated by the source
- Revision
- ecaaf28ecb4a3fab4fe6e83a1f488cbfa692663d
- Last updated
- 2026-09-30
Files
13 files, 665.6 MB in total.
Every file
| File | Type | Size | SHA-256 |
|---|---|---|---|
| data/chunk-000/file-000.parquet | Data | 462.6 KB | 28609c1675b0 |
| meta/episodes/chunk-000/file-000.parquet | Data | 145.3 KB | 05258bc57572 |
| meta/info.json | Data | 4.8 KB | — |
| meta/stats.json | Data | 14.3 KB | — |
| meta/tasks.parquet | Data | 2.4 KB | ae194ac7d8e2 |
| README.md | Documentation | 11.0 KB | — |
| videos/observation.images.head/chunk-000/file-000.mp4 | Other | 65.4 MB | dbc9d418634f |
| videos/observation.images.head_depth/chunk-000/file-000.mp4 | Other | 76.8 MB | 3c93e4df2fc9 |
| videos/observation.images.head_depth/chunk-000/file-001.mp4 | Other | 145.8 MB | 5a6e0bcf4880 |
| videos/observation.images.head_depth/chunk-000/file-002.mp4 | Other | 176.9 MB | 333c02ca6191 |
| videos/observation.images.head_depth/chunk-000/file-003.mp4 | Other | 145.8 MB | c6076f8b5367 |
| videos/observation.images.wrist/chunk-000/file-000.mp4 | Other | 54.3 MB | 11c513f0c4be |
| .gitattributes | Repository | 2.5 KB | — |
License and Download
- License
- apache-2.0
- Access
- No access gate
Released by Ethan Winchell through its official repository on Hugging Face. Read the license.