Project ~7 min read
at the endWhy one SO-101 pair plus a LeKiwi kit is already a robot, what the leader does once it stops being a handle, and what to say to the objections.
Why the pair¶
Every SO-101 kit ships two arms. The follower does the work: it holds the gripper, runs the policy, appears in the papers, and it is clamped to a desk. The leader is the input device. You hold it for an afternoon of teleop, the follower copies it, and then the leader sits in the box while the follower runs autonomous rollouts filmed by a webcam on a tripod.
The problem¶
Three things are true at once on most SO-101 desks.
- The follower cannot go anywhere. It is clamped to one desk, and its tasks are the tasks that fit on that desk.
- Its rollouts are filmed from one fixed viewpoint. A policy trained on that view learns that view. Anyone who has moved the webcam an inch between recording and evaluation knows what happens next.
- The leader is idle. It exists for one job and does it for a few hours per dataset. Nobody builds for it: every printed part, every firmware, every tutorial is for the arm with the gripper.
The insight¶
Every servo in the box speaks the same bus protocol, including the three wheel servos of a LeKiwi kit. One printed body puts the follower on those wheels with a computer under it and a camera on the arm: a robot that moves, from parts that were already on the shelf.
The leader already has six readable, drivable STS3215 servos on one bus and already knows where it is; that is what made it a leader. Take the handle off and the last two servos are a pan/tilt gimbal. Wrist roll becomes pan. The trigger servo becomes tilt. The four screws that held the handle hold a Nicla Vision. The leader keeps its first job, driving the follower, and gets a second: it films the rollout from a viewpoint that moves with the task and reads its own pose back.
The leader, handle off, Nicla head on, aimed at the follower. The agent holds both.
Why now¶
- SO-101 is the arm LeRobot ships its tutorials for, and LeKiwi is the base it ships next to it. The parts are already in the same houses.
- LeRobot made teleop and datasets a routine. LeKiwi episodes already carry base velocities next to arm state, so a robot shaped like this records into a format that exists.
- An agent can drive hardware from a sentence. "Track the gripper" and "back up half a metre" are tool calls, not scripts.
- A board the size of a servo horn runs face detection on-device. The Nicla Vision has a 2 MP camera, ToF, IMU and Wi-Fi on an STM32H7, and it fits on horn 6.
- A single board now runs Debian on one side and a microcontroller on the other. The Arduino UNO Q is that board, and it takes the pack's voltage directly.
All of it landed in the same two years.
What it is¶
Three parts and one package.
| part | what |
|---|---|
| the base | a printed three-wheel omni body on the LeKiwi kit: three STS3215 on a 12 V bus, 60 mm omni wheels, a 3S pack, an UNO Q; three pods and two decks, 14.7 h and 311 g of PLA, no supports |
| the arm on it | the SO-101 follower, rebuilt on the upper deck, Nicla Vision fixed to it as the robot's eyes |
| the leader | handle off, a 15.4 g printed pan/tilt head: one plate, 88 minutes, ten screws, all into servos; the teleop device and the cameraman |
Around them: one guard in front of every servo write, arm or wheel; one calibration file read by the kinematics, the guard, the autocal and the 3D mirror; a dashboard with the camera, the senses and a drive pad; a CLI, and the same verbs as MCP tools. teach a camera move by hand, replay it, shot orbit, watch face, record --lerobot, drive. Concepts has the vocabulary, The guard has the rules and the incidents that wrote them, The base has the body.
Where it goes¶
The leader on this desk is the teleop device and the cameraman. The body carries the follower on its upper deck; the first roll at 0.1 speed teaches base.json which way each wheel spins. teleop takes the leader's joints to the follower's through the guard, the base from keys or a phone at the same time. The cameraman demo is a follower rollout filmed gripper-in-frame and saved as a LeRobot episode with two views and base velocities. Then other idle leaders, Koch, Moss, SO-100 and GELLO, through a parametric horn cradle. Same head, same tools. The robot has the parts and what comes next.
The reason this matters beyond one desk is the dataset. Every SO-101 pair plus a LeKiwi kit is a mobile worker plus a camera crane that already knows where it is, from hardware people already own.
Objections¶
Why not a webcam on a tripod?
A tripod gives one viewpoint per recording. The leader gives a viewpoint that moves with the task, re-bases the arm when the head runs out of travel, and reads its own pose back at 10 Hz, so every frame carries where the camera was. It is also already on the desk.
Why not LeKiwi as it ships?
LeKiwi is a Raspberry Pi on two acrylic plates with the arm on top, sized for 4 inch wheels. This body is printed around the 60 mm wheels in the box, carries an UNO Q instead of a Pi, and keeps the wheels on their own 12 V bus and adapter. The kinematics are LeKiwi's, row for row, and a test checks that, so a LeKiwi policy's numbers drive this base unchanged.
Does it damage the leader?
No. The handle comes off its four horn screws; the yoke goes on with the same four. Nothing is drilled, glued or cut. Servo 6 moves from the handle's cup into the printed yoke on four M2 x 4 self-tap screws into its own mounting tabs.
Can I still teleop with it?
That is the leader's job. Torque off, every joint reads back, and teach uses exactly that. Leader to follower through the guard is teleop, dry until --go; for classic LeRobot teleop you take the head off and put the handle back, the same four screws in reverse. The original LeRobot file for this arm is kept in hardware/calib/. See Calibrate.
Why two buses?
The arm servos and the wheel servos are different voltage classes of the same STS3215. The wheel bus runs at 12 V from the pack; the arm bus does not. WheelBus refuses to open the arm's port and any bus where ids 1 to 6 answer.
What does it cost me?
For the head: one Arduino Nicla Vision, six screws (2 x M2.5 x 5, 4 x M2 x 4), a micro-USB cable and 15.4 g of PLA. For the body: an UNO Q, 311 g of PLA, and a LeKiwi kit you may already have. Everything else is in the boxes.
Why Nicla Vision and not a Pi camera?
Weight and wiring. Leader gearing is not built for payload, so the head stays under 20 g; a Pi plus camera plus battery does not. The Nicla is one board with camera, IMU, ToF, microphone and Wi-Fi, runs face detection on its own STM32H7, and streams over the LAN, so the only cable to the head is USB power along the bus.
How does it know where its joints really go?
A hand measured them. strands-arm calibrate --mode manual turns torque off, you sweep every joint to both ends, and the extremes become the window the guard enforces and the servos' own EEPROM limits. The stop search finds the folded home; the hand finds the metal. See Calibrate.
Who builds it¶
cagatay and his agents at strands robots. The CAD is Python, the fit checks run against the real servo and board STEP files, the firmware is MicroPython on the Nicla, the driver speaks to the bus. Fork any layer. MIT.
See it move · Print it · The base · Talk to it