File size: 6,060 Bytes
51f085d
c5b6ca8
 
 
 
51f085d
 
c5b6ca8
51f085d
 
c5b6ca8
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
---
title: Project-IRA
emoji: 🦾
colorFrom: indigo
colorTo: gray
sdk: static
pinned: false
short_description: Vision-Language-Action policies for LeRobot SO101
---

# Project-IRA — Interactive Robotic Arm

Vision-Language-Action policies and multi-task manipulation datasets for the
**SO-101** low-cost robot arm, built on [LeRobot](https://github.com/huggingface/lerobot).

**Code:** https://github.com/Project-IRA/interactive-robotic-arm — the repositories here and that repo depend on each other; the code
repo contains the recording, validation, merging, training and inference pipeline that
produced everything in this organization.

**Authors:** Cleo Baten, Bela Keppler, Jonas Sapper

---

## Start here

If you just want a policy that works on an SO-101:

> **[`Project-IRA/TPSoSe2026_Pi05_LeRobot_SO101_Finetuning_V7_Full_V2`](https://huggingface.co/Project-IRA/TPSoSe2026_Pi05_LeRobot_SO101_Finetuning_V7_Full_V2)** — checkpoint **008000**

This is the strongest model in the org: Pi0.5 fine-tuned on all four tasks, with image
augmentation. Note its unusual internal directory layout, documented on its card.

## Demo

<video controls src="https://huggingface.co/Project-IRA/TPSoSe2026_Pi05_LeRobot_SO101_Finetuning_V7_Full_V2/resolve/main/assets/pi05_lego_demo.mp4"></video>

Pi0.5 sorting lego bricks onto colour-matched plates on the physical SO-101.

## Tasks

| Task | What the arm does |
|---|---|
| **Sort Lego Color** | Sort lego bricks onto colour-matched plates |
| **Desk Cleanup** | Clear objects from the desk into a bowl |
| **Dice Throw** | Pick up a dice cup and tip the dice onto the table ("true random") |
| **Fetch Ball** | Pick up a ball and place it into a waiting human hand |

## Models

Quality ratings are qualitative operator assessments from rollouts on the physical arm.
There are no formal success-rate numbers.

| Model | Base | Trained on | Best checkpoint | Quality |
|---|---|---|---|---|
| [Pi05 V7 Full V2](https://huggingface.co/Project-IRA/TPSoSe2026_Pi05_LeRobot_SO101_Finetuning_V7_Full_V2) | Pi0.5 | all 4 tasks | **008000** | **Best overall** — works really well |
| [Pi05 V7 Full](https://huggingface.co/Project-IRA/TPSoSe2026_Pi05_LeRobot_SO101_Finetuning_V7_Full) | Pi0.5 | all 4 tasks | **010000** | Works really well |
| [Pi05 V4 Lego](https://huggingface.co/Project-IRA/TPSoSe2026_Pi05_LeRobot_SO101_Finetuning_V4_Lego) | Pi0.5 | Lego only | **030000** | Works really well (Lego only) |
| [SmolVLA V6 Full](https://huggingface.co/Project-IRA/TPSoSe2026_SmolVLA_LeRobot_SO101_Finetuning_V6_Full) | SmolVLA | all 4 tasks | ~150000 (untested) | OK-ish, across most tasks |
| [SmolVLA V5 Full](https://huggingface.co/Project-IRA/TPSoSe2026_SmolVLA_LeRobot_SO101_Finetuning_V5_Full) | SmolVLA | all 4 tasks | **100000** | Works, but worse than V6 |
| [SmolVLA V2 Lego](https://huggingface.co/Project-IRA/TPSoSe2026_SmolVLA_LeRobot_SO101_Finetuning_V2_Lego) | SmolVLA | Lego only | **030000** | OK-ish (Lego only) |
| [SmolVLA V3 Desk Cleanup](https://huggingface.co/Project-IRA/TPSoSe2026_SmolVLA_LeRobot_SO101_Finetuning_V3_Desk_Cleanup) | SmolVLA | Desk Cleanup only | — | Does not work |
| [SmolVLA V1 Misc](https://huggingface.co/Project-IRA/TPSoSe2026_SmolVLA_LeRobot_SO101_Finetuning_V1_Misc_Dataset) | SmolVLA | misc early data | — | Does not work |

**The headline result:** Pi0.5 substantially outperforms SmolVLA on this setup. The
~450M SmolVLA appears capacity-limited across four tasks, while Pi0.5 handles the full
multi-task set well — and needs far fewer steps to get there (8k–10k vs 100k–200k).

## Datasets

| Dataset | Episodes | Content |
|---|---|---|
| [Full Merged Final V1](https://huggingface.co/datasets/Project-IRA/TPSoSe2026_Dataset_Full_Merged_Final_LeRobot_SO101_V1) | **930** | The training set. All 4 tasks, 93 prompts, 844,208 frames |
| [Lego](https://huggingface.co/datasets/Project-IRA/TPSoSe2026_Dataset_Lego_LeRobot_SO101) | 460 | Colour sorting |
| [Desk Cleanup](https://huggingface.co/datasets/Project-IRA/TPSoSe2026_Dataset_Desk_Cleanup_LeRobot_SO101) | 350 | Desk clearing (250 of these went into the merge) |
| [Dice Throw](https://huggingface.co/datasets/Project-IRA/TPSoSe2026_Dataset_Dice_Throw_LeRobot_SO101) | 120 | Dice cup |
| [Fetch Ball](https://huggingface.co/datasets/Project-IRA/TPSoSe2026_Dataset_Fetch_Ball_LeRobot_SO101) | 100 | Ball handover |
| [Collection](https://huggingface.co/datasets/Project-IRA/TPSoSe2026_Dataset_Collection_LeRobot_SO101) | — | Early miscellaneous data; superseded |

## Robot setup

| | |
|---|---|
| Robot | SO-101 follower arm (6-DOF), `robot_type: so_follower` |
| Teleoperation | SO-101 leader arm |
| Control frequency | 30 fps |
| State / action space | 6-dim: `shoulder_pan.pos`, `shoulder_lift.pos`, `elbow_flex.pos`, `wrist_flex.pos`, `wrist_roll.pos`, `gripper.pos` |
| Camera `observation.images.desk_view` | 800x600, h264 (recording) |
| Camera `observation.images.wrist_left` | 640x480, h264 (recording) |

> **Inference note:** both cameras are run at **640x480 during inference**, not at their
> recording resolutions, to reduce the payload sent to the inference server.

## Prompt design

Language conditioning was varied deliberately: the prompt phrasing was changed roughly
every 10 episodes during recording. The merged dataset therefore contains **93 distinct
prompts across 10 episodes each**, all in English. Full prompt lists are on each dataset card.

## Licensing

All models and datasets here are **CC BY-SA 4.0** — share-alike, so derivatives must stay
open. Upstream LeRobot, SmolVLA and Pi0.5/openpi components are Apache-2.0; their
copyright notices and licence text are retained as Apache-2.0 Section 4 requires.

## Citation

```bibtex
@misc{project_ira_2026,
  title        = {Project-IRA: Interactive Robotic Arm},
  author       = {Baten, Cleo and Keppler, Bela and Sapper, Jonas},
  year         = {2026},
  howpublished = {\url{https://huggingface.co/Project-IRA}},
  note         = {Code: \url{https://github.com/Project-IRA/interactive-robotic-arm}}
}
```