--- 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 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}} } ```