SO-101 AUTONOMOUS ARM
Home learning project: a 3D-printed SO-101 arm trained with an ACT imitation-learning policy to pick a chocolate bar off the desk and drop it into a mug - 52 teleop demos, $2.23 of cloud training, autonomous rollout.
- Year
- 2026
- ARM
- SO-101 / SO-ARM100, 5 DOF + gripper, 6x Feetech STS3215

GRIPPER HOLDING THE KIFKEF OVER THE TARGET MUG (RERUN VIEWER)
IMITATION LEARNING ON AN OPEN-SOURCE ROBOTIC ARM
Behind the project.
An end-to-end physical AI build on the open-source SO-101 (SO-ARM100) 5-DOF arm with parallel gripper. Demonstrations were collected by teleoperating a twin leader arm; an ACT (Action Chunking Transformer) policy was trained with Hugging Face LeRobot on a rented RTX 4090 and deployed back to the real arm, which completed the pick-and-place autonomously.
The first trained policy lifted the arm 5 mm and froze: 34.5% of the recorded frames were static dwell at the start and end of each demo, and ACT's 100-action chunks turned that into a strong 'do nothing' prior. An automated kinematic trimming pipeline cut the dataset from 21,665 frames to 14,201 pure-motion frames, and the retrained policy completed the task.
Windows + WSL2 is a trap for real-time robotics: usbipd camera passthrough starved the 30 Hz control loop down to 4.6 Hz, so the camera runs through a native Windows DirectShow MJPEG server consumed by WSL over HTTP. Cloud training was wrapped in triple budget watchdogs (local cost cap, in-container watchdog, guaranteed cleanup) and finished at $2.23 for 47,700 steps. Physical rollout debugging covered leader/follower serial-port calibration mixups, a policy gone blind in a dark room (mean pixel brightness 4.33), and out-of-distribution starting poses.
Project media.
6 photos & media · Tap to expand
Under the hood.
- ARM
- SO-101 / SO-ARM100, 5 DOF + gripper, 6x Feetech STS3215
- TELEOP
- Twin leader-follower setup
- POLICY
- ACT via LeRobot 0.6.1 (PyTorch 2.4)
- DATA
- 52 episodes; 21.7k frames raw / 14.2k curated
- TRAINING
- 47,700 steps, RTX 4090, 2.5h, $2.23
- SIM
- MuJoCo digital twin
- ENV
- Windows 11 + WSL2, custom DirectShow MJPEG camera server
What came out of it.
- Killed the 'inaction attractor': auto-trimmed 7.4k static frames (34.5% of data) that taught the first policy to freeze after 5 mm.
- Full cloud training run for $2.23 with triple budget watchdogs - no surprise bill.
- Native Windows MJPEG camera server restored a rock-solid 30 Hz control loop over WSL2.
- Autonomous pick-and-place rollout verified on the real arm after lighting, serial-port and starting-pose debugging.