SO-101: low-cost open-source robot arm for LeRobot
← Robots
SO-101: low-cost open-source robot arm for LeRobot
TheRobotStudio@therobotstudioApache 2.0updated Oct 31, 20261 view

Files

view_in_arSO-101 follower armAssemblychevron_rightview_in_arSO-101 leader armAssemblychevron_rightprecision_manufacturingSO-101 pick and placeScenechevron_rightprecision_manufacturingSO-101 leader drives the followerScenechevron_rightschemaSO-101 follower wiringSchematicchevron_right

Overview

A 3D-printed 6-DOF follower arm on six Feetech STS3215 serial bus servos, teleoperated by a matching leader arm to collect data and train AI policies with Hugging Face LeRobot.

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.

Follower arm

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).

Leader arm

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.

In this project

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:

  • Each STS3215 is drawn as three boxes for its case and two discs for its horns. The vendor model, with its gears and motor, is 4 MB per servo.
  • The bus servo adapter board is a single box.
  • Screws, nuts, cables and connectors are left out.
  • Printed parts are black and the moving jaw white, as on the photographed robot. The CAD has no colours.
  • Only the follower is modelled. The leader has no assembly STEP in the repository.

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.

Software

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.

Lineage

Based on

This robot was built from scratch.

Forks

0 forks of this robot. Most forks stay private projects.