Teaching a low-cost robot arm to automate repetitive lab handling tasks — fully open source.
A collaboration between KiteML and Cornucopia Bio
Biology and life-science labs run on thousands of small, repetitive, manual handling steps — moving samples, loading trays, sorting consumables. These tasks are tedious, error-prone, and a poor use of a scientist's time, yet they have historically been too varied and low-volume to justify traditional fixed automation.
This project is an end-to-end, reproducible demonstration that a low-cost, teleoperated robot arm plus modern imitation-learning policies can pick up one of these tasks — picking objects and placing them into a tray — and that the entire pipeline can be open sourced: the hardware, the data, the trained models, and the tooling used to train and deploy them.
Everything here is free to use, inspect, and build on.
A single SO-101 follower arm, fitted with a custom parallel-jaw gripper, performs a tray pick-and-place: grasp an object from the workspace and place it precisely into a slot in a tray. Two cameras (a top-down view and a gripper-mounted wrist view) give the policy the visual context it needs.
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ 1. TELEOPERATE │ │ 2. TRAIN │ │ 3. DEPLOY │ │ 4. TEST │
│ │ ──▶ │ │ ──▶ │ │ ──▶ │ │
│ SO-101 arm │ │ 6 policies │ │ Push to robot │ │ Evaluate on │
│ human demos │ │ on Kite │ │ via Kite │ │ real hardware │
└─────────────────┘ └─────────────────┘ └─────────────────┘ └─────────────────┘
- Capture — We collected human demonstrations by teleoperating the SO-101 arm, recording synchronized joint states, actions, and dual camera streams. This produced the
so101-v3-tray-pick-placedataset in LeRobot v3.0 format. - Train — Using Kite (KiteML's IDE for robotics), we trained six different imitation-learning policies on the same dataset — from lightweight ACT and Diffusion Policy baselines to state-of-the-art vision-language-action models (SmolVLA, π0, π0-FAST, π0.5).
- Deploy — Each trained policy was deployed back to the physical robot through Kite.
- Test — We evaluated the policies on real hardware to compare their pick-and-place performance.
The point of training six policies on one dataset is comparison: a single, honest benchmark of how today's imitation-learning architectures perform on a real, low-cost lab-automation task.
| Folder | Contents |
|---|---|
hardware/gripper/ |
Custom parallel-jaw gripper design — 3MF and STL files for printing |
dataset/ |
Pointer and documentation for the teleoperation dataset on Hugging Face |
models/ |
The six trained policies, with links, and per-policy notes |
policies/ |
Policy architecture reference — what each model type is and when to use it |
docs/ |
The full capture → train → deploy → test workflow, reproduction steps |
| Asset | Where |
|---|---|
| 🤗 Dataset | kiteml/so101-v3-tray-pick-place |
| 🤗 SmolVLA | kiteml/V3-tray-pick-place-smolvla |
| 🤗 π0 | kiteml/V3-tray-pick-place-pi0 |
| 🤗 π0-FAST | kiteml/V3-tray-pick-place-pi0_fast |
| 🤗 π0.5 | kiteml/V3-tray-pick-place-pi05 |
| 🤗 Diffusion Policy | kiteml/V3-tray-pick-place-diffusion |
| 🤗 ACT | kiteml/V3-tray-pick-place-act |
| 🦾 Gripper design | hardware/gripper/ |
This project would not exist without the open-source robotics community:
- SO-ARM100 / SO-101 (TheRobotStudio & Hugging Face) — the low-cost, 3D-printable robot arm at the center of this project.
- LeRobot (Hugging Face) — the dataset format and imitation-learning framework.
- norma-core — our gripper design takes inspiration from norma-core's parallel-jaw gripper for the SO-101. See
hardware/gripper/for details and attribution.
- KiteML — the IDE for robotics. Kite handles data import, training across policy architectures, deployment, and evaluation. It made the "train six policies and deploy them all" part of this project a few commands rather than a research project.
- Cornucopia Bio — bringing the life-science domain: the real lab tasks, the workflows worth automating, and the validation that this is useful in practice.
Our shared goal: help labs automate the repetitive parts of science, and do it in the open so any lab can reproduce and extend it.
Apache 2.0 — see LICENSE. The gripper hardware design inherits attribution noted in hardware/gripper/README.md.