CoolFace
Datasetpublic

Project-IRA/TPSoSe2026_Dataset_Fetch_Ball_LeRobot_SO101

SO-101 Fetch Ball — 100 episodes Teleoperated SO-101 demonstrations of picking up a ball and placing it into a waiting human hand. The smallest and most recently recorded task dataset in Project-IRA. Part of Project-IRA — Interactive Robotic Arm. Code: https://github.com/Project-IRA/interactive-robotic-arm Episodes 100 Distinct task prompts 10 LeRobot codebase version v3.0 Robot type so_follower (SO-101, 6-DOF) Control frequency 30 fps Language English… See the full description on the dataset page: https://huggingface.co/datasets/Project-IRA/TPSoSe2026_Dataset_Fetch_Ball_LeRobot_SO101.

sourceHugging Facecc-by-sa-4.0updated 2mo agoView on Hugging Face
0likes90downloads
Dataset Card

SO-101 Fetch Ball — 100 episodes

Teleoperated SO-101 demonstrations of picking up a ball and placing it into a waiting human hand. The smallest and most recently recorded task dataset in Project-IRA.

Part of [Project-IRA](https://huggingface.co/Project-IRA) — Interactive Robotic Arm. Code: https://github.com/Project-IRA/interactive-robotic-arm

Episodes100
Distinct task prompts10
LeRobot codebase versionv3.0
Robot typeso_follower (SO-101, 6-DOF)
Control frequency30 fps
LanguageEnglish

Composition

100 episodes across 10 prompt phrasings, 10 episodes each.

Recording scheme: a human holds their hand in one position while the ball is placed on the table; the arm picks up the ball and places it into the waiting hand. The hand position is held constant for 5 episodes at a time, then moved.

This is the only task in Project-IRA involving direct human-robot handover, which means a human hand is present in the camera frames throughout.

Robot setup

RobotSO-101 follower arm (6-DOF), robot_type: so_follower
TeleoperationSO-101 leader arm
Control frequency30 fps
State / action space6-dim: shoulder_pan.pos, shoulder_lift.pos, elbow_flex.pos, wrist_flex.pos, wrist_roll.pos, gripper.pos
Camera observation.images.desk_view800x600, h264 (recording)
Camera observation.images.wrist_left640x480, 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.

Schema

Featuredtypeshape
observation.statefloat32(6,) — shoulder_pan.pos, shoulder_lift.pos, elbow_flex.pos, wrist_flex.pos, wrist_roll.pos, gripper.pos
observation.images.desk_viewvideo(600, 800, 3), h264, 30 fps
observation.images.wrist_leftvideo(480, 640, 3), h264, 30 fps
actionfloat32(6,) — same joint layout as state
timestamp, frame_index, episode_index, index, task_index—bookkeeping

Recording protocol

  • —Recorded by teleoperating the SO-101 follower with an SO-101 leader arm.
  • —10 episodes per prompt. The prompt phrasing was deliberately changed roughly every 10 episodes, so language conditioning sees many surface forms of the same intent.
  • —Object positions and scene difficulty were varied systematically within each block (e.g. early episodes with a single object, later ones with several).
  • —Recovery behaviour is incidental. Where the operator made a mistake mid-episode and corrected it, that correction stayed in the data. No recovery episodes were scripted deliberately, so recovery coverage is uneven.

Prompts

All 10 prompts, in English, 10 episodes each.

  1. 1.Fetch the ball and put it into my hand
  2. 2.Bring the ball back into my hand
  3. 3.Retrieve the ball and drop it into the waiting hand
  4. 4.Put the ball into the open hand
  5. 5.Carry the ball and set it down in the waiting palm
  6. 6.Pass the ball to the waiting hand
  7. 7.Fetch the ball
  8. 8.Find the ball on the desk and put it in the hand
  9. 9.Grab the multicolored ball and then drop it gently into the hand
  10. 10.Pick up the round ball and place it into the hand

Usage

python
from lerobot.datasets.lerobot_dataset import LeRobotDataset

ds = LeRobotDataset("Project-IRA/TPSoSe2026_Dataset_Fetch_Ball_LeRobot_SO101")
print(ds.meta.info)

Train a policy on it:

bash
lerobot-train \
    --policy.path=lerobot/smolvla_base \
    --dataset.repo_id=Project-IRA/TPSoSe2026_Dataset_Fetch_Ball_LeRobot_SO101 \
    --batch_size=64 --steps=200000 \
    --policy.device=cuda

Models trained on this dataset

No single-task model was trained on this dataset. Ball fetching is covered by the multi-task models trained on `Dataset_Full_Merged_Final_V1` — best results from Pi05 V7 Full V2.

[!NOTE] Because this task involves handing an object to a person, human hands appear in the training frames. If you fine-tune on this data, be aware the policy will move toward a human hand in the workspace by design.

Limitations

  • —Single environment. One desk, one lighting setup, one camera geometry, one set of physical objects. Policies trained here should not be expected to transfer.
  • —Teleoperated demonstrations vary in quality and speed between operators and sessions.
  • —Recovery coverage is uneven — see the recording protocol note above.
  • —No held-out split. The dataset ships as a single train split; all episodes were used for training. Evaluation was done by running policies on the physical arm.

Licensing

Released under CC BY-SA 4.0. This is a share-alike licence: you may use, share and adapt this dataset, including commercially, provided you give attribution and release any derivative dataset under the same licence. It cannot be taken closed-source.

Recorded with LeRobot (Apache-2.0); the LeRobot dataset format and tooling remain under their original licence.

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