The three ways to drive an arm here
| Method | What you need | Where it fits |
|---|---|---|
| Browser cockpit | A browser, nothing installed | Trying the loop before you own hardware, or driving a paired arm from another room |
| Desktop client | The client from /download and an arm on USB | Everyday recording. The driver ships with it, there is no Python environment to set up |
| Leader arm | A second arm of the same design | The cleanest demonstrations, because the follower stays torqued and your hand never carries the arm |
Driving and recording are separate jobs. The record command opens and closes episodes and writes them to disk, it does not move anything: you teleoperate throughout. Enter ends an episode and keeps it, Ctrl-C discards the one in progress rather than saving half an attempt.
# Ten episodes, two cameras, one task sentence you reuse every time
ay-robots record --task "pick up the red cube and place it in the bowl" \
--episodes 10 --cameras wrist,topThe browser cockpit at /live drives a physical SO-100, with no signup and nothing to install. It is the cheapest way to learn how a five joint arm answers your inputs before deciding how many of them you want on your desk.
Why your driving shows up in the policy
A policy trained by imitation reproduces the motion style it was shown, not an idealized version of it. Nervous corrections in your demonstrations come back as nervous corrections. Pace matters in both directions: driving faster than you can be accurate produces a dataset of near misses, and an episode driven at a pace the model cannot decide at will not replay the same way, since Pi0.5 at about 485 ms per action step reconsiders the scene roughly twice a second.
Keep the operator constant too. Two people with different habits recording into one dataset is the same problem as one person switching strategy halfway through, and it is harder to spot afterward because both halves look competent.
The mechanics of a session are in /learn/record-your-first-dataset, and /so-100/data-collection covers what separates a usable episode from a wasted one.