From an unopened box to a working policy
Four guides in sequence. Each one ends where the next one starts, and none of them assume you have done this before.
SO-100 getting started: from the box to the first movement
Assemble, wire and calibrate an SO-100 robot arm, install the AY-Robots client, and move the arm for the first time. No prior robotics experience required.
Record your first imitation learning dataset
Record fifty usable demonstrations with an SO-100 robot arm, review them, and upload a LeRobot dataset ready for training.
Train your first policy
Start a training run on an uploaded SO-100 dataset, choose a policy architecture, read the loss curve honestly, and pick the right checkpoint.
Run your first policy on the arm
Deploy a trained policy to a real SO-100, evaluate it honestly, diagnose the common failure modes, and decide what data to record next.
Reference
Deeper background on the parts that trip people up.
How to record clean imitation learning demonstrations with an SO-100 robot arm: episode structure, how many demos you actually need, and the mistakes that quietly ruin a dataset.
How SO-100 recordings map onto the LeRobot dataset format, what changed between v2.1 and v3.0, and which format the common policy trainers actually accept.
What imitation learning is, why it suits a low-cost arm like the SO-100, which policy architectures are worth your time, and what to expect at each stage.
Pick a model
The third tutorial puts you on ACT on purpose, because a first run should tell you something about your dataset rather than about your hyperparameters. Once that run works, the model becomes a real decision: these five differ in the GPU they need, how long they take to answer on the arm, and how many episodes they want before they are worth training at all.
The strongest starting point when you have a proper dataset and want the highest success rate.
- GPU
- A100 80 GB or H100 80 GB
- Inference
- 152 ms per action step
- Data
- from 50 episodes
- Format
- LeRobot v2.1
Kept available for reproducing older runs. New projects should use N1.7.
- GPU
- A100 80 GB or H100 80 GB
- Inference
- 165 ms per action step
- Data
- from 50 episodes
- Format
- LeRobot v2.1
Highest precision on contact-rich tasks, at roughly three times the inference latency of GR00T.
- GPU
- A100 80 GB or H100 80 GB
- Inference
- 485 ms per action step
- Data
- from 50 episodes
- Format
- LeRobot v2.1
The default first run: cheap enough to iterate on, good enough to tell you whether your data is any good.
- GPU
- RTX 4090 or any card with 24 GB
- Inference
- 245 ms per action step
- Data
- from 30 episodes
- Format
- LeRobot v2.1
No pretraining, no language, no foundation model. It learns exactly your task and nothing else, very fast.
- GPU
- RTX 4090 or any card with 24 GB
- Inference
- 20 ms per action step
- Data
- from 50 episodes
- Format
- LeRobot v2.1
Train it
Each guide below takes one SO-100 recording through a full run on one model: what the trainer expects from the dataset, which of the defaults are worth changing, and how to tell a finished run from a stalled one. They are ordered by what a run costs, since ACT and SmolVLA fit on a 24 GB card while GR00T N1.7 and Pi0.5 need an 80 GB one.
No pretraining, no language, no foundation model. It learns exactly your task and nothing else, very fast.
The default first run: cheap enough to iterate on, good enough to tell you whether your data is any good.
The strongest starting point when you have a proper dataset and want the highest success rate.
Highest precision on contact-rich tasks, at roughly three times the inference latency of GR00T.