SO-101 is the low-cost, 3D-printed 6-DOF arm designed by TheRobotStudio with Hugging Face for LeRobot. It comes as a pair: you move the leader arm by hand and the follower copies its joint angles, while cameras record the scene, so you can collect demonstrations and train imitation-learning policies. One follower costs about $120 in parts.
Five arm joints plus a one-jaw gripper, each driven by a Feetech STS3215 serial bus servo (7.4 V version, 1/345 gear, C001):
| Joint | Range |
|---|---|
| shoulder pan | -110 to 110 deg |
| shoulder lift | -100 to 100 deg |
| elbow flex | -97 to 97 deg |
| wrist flex | -95 to 95 deg |
| wrist roll | -157 to 163 deg |
| gripper (moving jaw) | -10 to 100 deg |
The links are printed parts that hold the servos directly, so the arm needs no bearings or gears of its own. The upper arm is about 116 mm between joints and the forearm 135 mm. The servos are daisy-chained on one TTL bus to a Waveshare bus servo adapter on the base, with a 5 V supply (a 12 V servo set with a 12 V supply is an option for more torque).
Same kinematics with a handle and trigger in place of the gripper, built on STS3215 servos with lighter gearing (1/147 and 1/191 on most joints) so it can be moved by hand.
The follower's parts come from the repository's SO101 Assembly STEP. That file shows the arm folded, so each link was registered onto the URDF meshes (mean surface error under 0.01 mm) and moved into the URDF zero pose: upper arm vertical, forearm horizontal. Joints, limits, masses and inertias come from so101_new_calib.urdf, and the zero pose and joint signs match the LeRobot "new calibration".
The servos are modelled as position servos with the gains of the repository's MuJoCo model and a 1.6 N m torque limit, the repository's stall figure for the 7.4 V servo (16.5 kg.cm at 6 V). The 12 V version would give about 2.9 N m.
What is simplified:
The demo is a scripted pick and place solved by inverse kinematics, with the gripper pointing straight down. On the real robot the follower would copy a leader arm or run a trained policy instead.
LeRobot drives both arms: lerobot-setup-motors sets the servo ids, lerobot-calibrate calibrates, lerobot-teleoperate runs leader-to-follower teleoperation and lerobot-record records datasets for training policies such as ACT or SmolVLA. The repository also has URDF and MuJoCo models for simulation.
This robot was built from scratch.
0 forks of this robot. Most forks stay private projects.