Search models, users, collections, and posts

LeRobot Humanoid - Robot to modify and learn from

GIF
GIF

Print Profile(1)

All
H2C
H2S
H2D Pro
H2D
A2L

0.2mm layer, 2 walls, 15% infill
0.2mm layer, 2 walls, 15% infill
Designer
90.9 h
12 plates

Open in Bambu Studio
Boost
28
29
3
0
7
0
Released 

Description

A humanoid you can build, modify, and learn from 

Humanoid robots are becoming an increasingly important target for robot learning. They are general-purpose, human-scale platforms, able to interact with the same objects, tools, and environments as we do. But today, experimenting with humanoids remains difficult: the hardware is often expensive, closed, fragile, or hard to reproduce.
 

This creates a bottleneck for open robot learning. Even when models, datasets, simulators, and training code are released, the physical platforms used to generate data and validate policies often remain inaccessible. Many people can train policies in simulation, but only a small number of labs can close the loop on real humanoid hardware.
 

LeRobot Humanoid is designed for a specific niche: an open humanoid platform that is affordable enough to reproduce, simple enough to modify, and complete enough to support real robot-learning experiments.
 

If you are looking for the most advanced humanoid robot, this is not it.
If you are looking for a humanoid you can build, understand, repair, instrument, simulate, and use for learning experiments, this is the robot we are trying to make.
 

This is why the release includes more than a robot model or a controller. It includes hardware files, assembly documentation, simulation assets, runtime tools, identification pipelines, and training environments. The goal is to make the full humanoid learning loop accessible, from mechanical design to real-world control.

Source (check for updates and detailed infos):

https://github.com/Virgileboat/lerobot-humanoid 
https://huggingface.co/blog/VirgileBatto/lerobot-humanoid 

BOM:
https://github.com/Virgileboat/lerobot-humanoid-hardware/blob/main/hardware/bom/bom_buy.md 
(see also attached file bom_buy.csv)

(scroll down for price overview)
motors

namesubassemblyqty_subassemblyqty_robot
RobStride O0torso22
RobStride O2hipz12
RobStride O3thigh24
RobStride O5shin24

torso

categorynamespecificationqty_subassemblyqty_robot
electronics_controllerRaspberry Pi 5single-board computer11
electronics_imuIMUBNO055 or BNO08511
electronics_canfd_adapterSAVVYCANFD 2CH CANFD adapterUSB, dual CAN FD, 12 Mbps max11
cable_powerPower cable reddiameter >= 2.5 mm, 5 m11
cable_powerPower cable blackdiameter >= 2.5 mm, 5 m11
cable_communicationCommunication cable color 15 m11
cable_communicationCommunication cable color 25 m11
motorRobStride O0actuator22
fastener_screwM2 screwM2 x 5 cyl head44
fastener_screwM2.5 screwM2.5 x 20 cyl head99
fastener_screwM3 screwM3 x 8 cyl head1212
fastener_screwM4 screwM4 x 20 cyl head1616
fastener_screwM5 screwM5 x 10 cyl head55

Comment: cheaper or better CAN-FD adapters may exist, but this one is currently the only adapter proven in this project to handle the RobStride CAN protocol.

hipx

categorynamespecificationqty_subassemblyqty_robot
fastener_screwM3 screwM3 x 8 cyl head36
fastener_screwM4 screwM4 x 40 cyl head612
fastener_screwM4 screwM4 x 45 cyl head918
fastener_screwM4 screwM4 x 8 cyl head816

hipz

categorynamespecificationqty_subassemblyqty_robot
motorRobStride O2actuator12
bearingBearing35x72x1724
fastener_screwM4 screwM4 x 10 cyl head816
fastener_screwM4 screwM4 x 20 cyl head816

thigh

categorynamespecificationqty_subassemblyqty_robot
motorRobStride O3actuator24
bearingBearing15x21x412
bearingBearing5x16x524
fastener_screwM2.5 screwM2.5 x 6 cyl head36
fastener_screwM4 screwM4 x 10 cyl head48
fastener_screwM4 screwM4 x 23.5 cyl head48
fastener_screwM4 screwM4 x 8 cyl head1020
fastener_axisShoulder screw 07534-05X40ISO7379, D1=5, L1=40, B=8, M4, SW=2.5, steel 12.912

knee_mechanism

categorynamespecificationqty_subassemblyqty_robot
bearingBearing15x21x424
fastener_screwM3 screwM3 x 12.5 cyl head36
fastener_screwM4 screwM4 x 16 cyl head816

shin

categorynamespecificationqty_subassemblyqty_robot
motorRobStride O5actuator24
bearingBearing15x21x448
fastener_screwM2.5 screwM2.5 x 8 cyl head36
fastener_screwM3 screwM3 x 17.5 cyl head48
fastener_screwM3 screwM3 x 10 cyl head2448
fastener_screwM4 screwM4 x 18 cyl head1632
fastener_screwM4 screwM4 x 10 cyl head918
fastener_nutNut M4M4 nut36
fastener_insertHeat-set insert M3brass threaded insert M348

ankle_mechanism

categorynamespecificationqty_subassemblyqty_robot
fastener_screwM5 screwM5 x 15 cyl head48
joint_sphericalSpherical joint 27628-01-05Norelem48
fastener_axisShoulder screw 07534-05X20ISO7379, D1=5, L1=20, B=8, M4, steel 12.948

ankle

categorynamespecificationqty_subassemblyqty_robot
fastener_screwM2.5 screwM2.5 x 8 cyl head612
fastener_axisShoulder screw 07534-05X40ISO7379, D1=5, L1=40, B=8, M4, SW=2.5, steel 12.912

foot

categorynamespecificationqty_subassemblyqty_robot
bearingBearing5x16x524
fastener_screwM2.5 screwM2.5 x 8 cyl head36
fastener_nutNut M4M4 nut36

assembly_pins

categorynamespecificationqty_subassemblyqty_robot
fastener_pinPin d3mmd3 pin (goupille)48
fastener_pinPin d4mmd4 pin (goupille)918

tools

categorynamespecificationqty_subassemblyqty_robot
toolAllen key2.5 mm11


 

Price:
The actuators do most of the cost, but you sure need actuators in that price range for a working humanoid robot.

(see detailed list here: https://github.com/Virgileboat/lerobot-humanoid-hardware/tree/main)
 

Cost blockEstimate (USD)
ankle subtotal17.56
ankle_mechanism subtotal220.16
assembly_pins subtotal13.50
foot subtotal8.56
hipx subtotal7.84
hipz subtotal327.08
knee_mechanism subtotal14.58
shin subtotal478.10
thigh subtotal934.54
tools subtotal3.00
torso subtotal554.92
BOM-to-buy subtotal (without filament)2579.84
PLA+ subtotal (~3.5 kg)56.00
Estimated total2635.84

-------------

Motor Commissioning

https://github.com/Virgileboat/lerobot-humanoid-hardware/blob/ae8abe99f3677b85f41f0dda122d504d5debfd9f/docs/electronics/motor_commissioning.md 

The mostors are the key for this project, they are actually cheap compared with other brands.
Commission every motor before mechanical assembly. 

Preconditions

  • Connect only one motor on the CAN bus during commissioning.
  • Adapter: SAVVYCANFD 2CH CANFD adapter (currently the only proven one in this project).
  • Linux CAN interface is up (example: can0).

Recommended Command

https://github.com/Virgileboat/lerobot-humanoid-hardware/blob/ae8abe99f3677b85f41f0dda122d504d5debfd9f/hardware/config/commission_motor.py 

python commission_motor.py wizard --channel can0

What the Wizard Does

  1. Detects motor ID and active protocol (CANopen, private, or MIT).
  2. Switches motor to MIT protocol (with required reboot checkpoints).
  3. Applies final motor ID according to motor model mapping.
  4. Reboots and verifies final ID and protocol (MIT).
  5. Runs motion check: set zero, enable, move to 90 deg for 1 s, then back to 0 deg, then disable motor.

Final ID Map

  • RobStride O0: IDs 1, 7
  • RobStride O2: IDs 2, 8
  • RobStride O3: IDs 3, 4, 9, 10
  • RobStride O5: IDs 5, 6, 11, 12

Use one motor at a time and assign one of the allowed IDs for its model.

Batch Policy for This Robot

  • Repeat the same process for each motor individually.
  • Keep a log table: serial, final_id, final_protocol, commissioning_date.

-----------

Assembly Guide

https://github.com/Virgileboat/lerobot-humanoid-hardware/blob/ae8abe99f3677b85f41f0dda122d504d5debfd9f/docs/assembly/assembly_guide.md 

Assembly order:

  1. Configure all motors (see commissioning).
  2. Print all STL parts (all parts are sorted in the mf3.file).
  3. Build torso first.
  4. Build upper legs in order: hipx -> hipy (hipz in repo naming) -> thigh (left and right).
  5. In parallel, build lower legs in order: foot -> ankle -> knee_mechanism -> shin -> ankle_mechanism (left and right).
  6. Assemble upper and lower leg modules.
  7. Integrate both legs to torso and run wiring checks.

Common assembly rules:

  • For each subassembly, insert bearings first (press or gentle hammer).
  • Place motor goupille/pin during the same phase as bearing insertion.
  • Exception: in knee_mechanism and ankle, one interface should stay slightly loose but still movable.
  • For subassembly goupilles: place them during assembly except on thigh (keep thigh demountable).
  • Motor orientation is critical: follow the Onshape assembly orientation relative to each motor connector, otherwise cable length can become insufficient.
  • Default thread strategy is direct screw in plastic; use around 5 Nm for non-structural plastic threads.
  • For motor threaded holes and structural insert zones, use higher torque appropriate to the thread/material.
  • Some fits are intentionally tight; if required, gently ream/drill with a metal bit at low speed.
  • Pins are not a standalone assembly stage: install them inside each motor/subassembly during build.
  • Tools are prerequisites only (not assemblies).

Leg cabling note:

  • Left and right legs use the same sub-cable design and routing logic.
  • Cable legend: red = power, green = CAN, blue = CAN + power.

Leg cabling integration order (both legs):

  1. Prepare three sub-cables using hardware/electronics/cabling/README.md: shin, thigh, hip pass-through.
  2. Install the shin sub-cable during shin assembly, before final closure.
  3. Install the thigh sub-cable during thigh assembly, before final tightening.
  4. Route the hip pass-through sub-cable during hipz integration.
  5. Join leg cables to torso harness during final leg-to-torso integration.

torso
 

Components:

CategoryNameSpecificationQty / SubassemblyQty / Robot
electronics_controllerRaspberry Pi 5single-board computer11
electronics_imuIMUBNO055 or BNO08511
electronics_canfd_adapterSAVVYCANFD 2CH CANFD adapterUSB, dual CAN FD, 12 Mbps max11
cable_powerPower cable reddiameter >= 2.5 mm, 5 m11
cable_powerPower cable blackdiameter >= 2.5 mm, 5 m11
cable_communicationCommunication cable color 15 m11
cable_communicationCommunication cable color 25 m11
motorRobStride O0actuator22
fastener_screwM2 screwM2 x 5 cyl head44
fastener_screwM2.5 screwM2.5 x 20 cyl head99
fastener_screwM3 screwM3 x 8 cyl head1212
fastener_screwM4 screwM4 x 20 cyl head1616
fastener_screwM5 screwM5 x 10 cyl head55

STL To Print:

NameQuantity
torso/torso_can_holder.stl1
torso/torso_imu_holder.stl1
torso/torso_torso13.stl1
torso/torso_torso23.stl1
torso/torso_torso33.stl1
torso/torso_uper_torso_22.stl1
torso/torso_upper_torso_12.stl1

Comment: cheaper or better CAN-FD adapters may exist, but this one is currently the only adapter proven in this project to handle the RobStride CAN protocol.

Assembly steps:

  1. Assemble each torso motor on its motor support and screw it.
  2. Place each motor-support subassembly on top of the bearing stack and screw it.
  3. Verify both torso motor outputs rotate freely after tightening.

hipx

Components:

CategoryNameSpecificationQty / SubassemblyQty / Robot
fastener_screwM3 screwM3 x 8 cyl head36
fastener_screwM4 screwM4 x 40 cyl head612
fastener_screwM4 screwM4 x 45 cyl head918
fastener_screwM4 screwM4 x 8 cyl head816

Comment: the hipx M3 screw line is optional and can be removed without issue.

STL To Print:

NameQuantity
left_leg/hipx/hipx_2_hipxy_sym.stl1
right_leg/hipx/hipx_2_hipxy.stl1

Assembly steps:

  1. Start by inserting the hip axis and fixing it to the motor.
  2. Align hipx parts on the previous subassembly and screw the full assembly.
  3. Verify hipx motion is free with no hard point.

hipz

Components:

CategoryNameSpecificationQty / SubassemblyQty / Robot
motorRobStride O2actuator12
bearingBearing35x72x1724
fastener_screwM4 screwM4 x 10 cyl head816
fastener_screwM4 screwM4 x 20 cyl head816

STL To Print:

NameQuantity
left_leg/hipz/hip_z_hipz12_sym.stl1
left_leg/hipz/hip_z_hipz22_sym.stl1
right_leg/hipz/hip_z_hipz12.stl1
right_leg/hipz/hip_z_hipz22.stl1

Assembly steps:

  1. Insert hipz bearings.
  2. Start by inserting the axis and fixing it to the motor (hipz naming in this repo corresponds to the hipy joint).
  3. Place and screw the motor.
  4. Route the hip pass-through sub-cable through hipz according to hardware/electronics/cabling/README.md.
  5. Assemble the bearing to the hipz assembly and verify free motion.

thigh

Components:

CategoryNameSpecificationQty / SubassemblyQty / Robot
motorRobStride O3actuator24
bearingBearing15x21x412
bearingBearing5x16x524
fastener_screwM2.5 screwM2.5 x 6 cyl head36
fastener_screwM4 screwM4 x 10 cyl head48
fastener_screwM4 screwM4 x 23.5 cyl head48
fastener_screwM4 screwM4 x 8 cyl head1020
fastener_axisShoulder screw 07534-05X40ISO7379, D1=5, L1=40, B=8, M4, SW=2.5, steel 12.912

STL To Print:

NameQuantity
left_leg/thigh/femur_v2_femur_12_sym_1.stl1
left_leg/thigh/femur_v2_femur_22_sym_1.stl1
left_leg/thigh/femur_v2_hat_femur_2.stl1
right_leg/thigh/femur_v2_femur_12_1.stl1
right_leg/thigh/femur_v2_femur_22_1.stl1
right_leg/thigh/femur_v2_hat_femur_2.stl1

Assembly steps:

  1. Insert the exterior thigh shell (femur_22) into the hipy joint side first (hipz naming in this repo).
  2. Fix femur_12 to the hipy/hipz side.
  3. Install and route the thigh sub-cable before final closing (hardware/electronics/cabling/README.md).
  4. Screw femur_12 and femur_22 together once joint alignment is correct.
  5. Do not lock thigh with permanent goupilles if you want it demountable.

foot

Components:

CategoryNameSpecificationQty / SubassemblyQty / Robot
bearingBearing5x16x524
fastener_screwM2.5 screwM2.5 x 8 cyl head36
fastener_nutNut M4M4 nut36

STL To Print:

NameQuantity
left_leg/foot/bearing_spacer14_5_7_3.stl1
left_leg/foot/bearing_spacer24_5_7_3.stl1
left_leg/foot/bearing_spacer34_5_7_3.stl1
left_leg/foot/bearing_spacer44_5_7_3.stl1
left_leg/foot/foot_foot.stl1
left_leg/foot/foot_hat_small.stl1
right_leg/foot/bearing_spacer14_5_7_3.stl1
right_leg/foot/bearing_spacer24_5_7_3.stl1
right_leg/foot/bearing_spacer34_5_7_3.stl1
right_leg/foot/bearing_spacer44_5_7_3.stl1
right_leg/foot/foot_foot.stl1
right_leg/foot/foot_hat_small.stl1

Assembly steps:

  1. Insert foot bearings and pins/goupilles.
  2. Assemble and screw foot parts.
  3. Check foot alignment before full tightening.

ankle

Components:

CategoryNameSpecificationQty / SubassemblyQty / Robot
fastener_screwM2.5 screwM2.5 x 8 cyl head612
fastener_axisShoulder screw 07534-05X40ISO7379, D1=5, L1=40, B=8, M4, SW=2.5, steel 12.912

STL To Print:

NameQuantity
left_leg/ankle/ujoint_hat_small_12.stl1
left_leg/ankle/ujoint_hat_small_22.stl1
left_leg/ankle/ujoint_spacer_12_ujoint.stl1
left_leg/ankle/ujoint_spacer_22_ujoint.stl1
left_leg/ankle/ujoint_ujoint.stl1
right_leg/ankle/ujoint_hat_small_12.stl1
right_leg/ankle/ujoint_hat_small_22.stl1
right_leg/ankle/ujoint_spacer_12_ujoint.stl1
right_leg/ankle/ujoint_spacer_22_ujoint.stl1
right_leg/ankle/ujoint_ujoint.stl1

Assembly steps:

  1. Assemble U-joint parts and install pins/goupilles.
  2. Insert the assembled U-joint into shin bearings (bearings are installed in the shin subassembly, not in ankle STL parts).
  3. Keep one ankle interface slightly loose but still movable.
  4. Verify free ankle motion after tightening.

knee_mechanism

Components:

CategoryNameSpecificationQty / SubassemblyQty / Robot
bearingBearing15x21x424
fastener_screwM3 screwM3 x 12.5 cyl head36
fastener_screwM4 screwM4 x 16 cyl head816

STL To Print:

NameQuantity
left_leg/knee_mechanism/femur_v2_knee_actuation_2.stl1
left_leg/knee_mechanism/femur_v2_knee_rod12_sym_1.stl1
left_leg/knee_mechanism/femur_v2_knee_rod22_sym_1.stl1
right_leg/knee_mechanism/femur_v2_knee_actuation_1.stl1
right_leg/knee_mechanism/femur_v2_knee_rod12_1.stl1
right_leg/knee_mechanism/femur_v2_knee_rod22_1.stl1

Assembly steps:

  1. Pre-assemble the knee mechanism with its motor and rods.
  2. Keep the knee interface slightly loose but still movable.
  3. Integrate this knee mechanism inside the shin assembly first.
  4. Fix the knee motor to the thigh at the end of leg integration.
  5. Check that knee motion is smooth and not binding.

shin

Components:

CategoryNameSpecificationQty / SubassemblyQty / Robot
motorRobStride O5actuator24
bearingBearing15x21x448
fastener_screwM2.5 screwM2.5 x 8 cyl head36
fastener_screwM3 screwM3 x 17.5 cyl head48
fastener_screwM3 screwM3 x 10 cyl head2448
fastener_screwM4 screwM4 x 18 cyl head1632
fastener_screwM4 screwM4 x 10 cyl head918
fastener_nutNut M4M4 nut36
fastener_insertHeat-set insert M3brass threaded insert M348

STL To Print:

NameQuantity
left_leg/shin/spacer12_5_9_4_5.stl1
left_leg/shin/spacer22_5_9_4_5.stl1
left_leg/shin/tibias2_hat_big.stl1
left_leg/shin/tibias2_shin_spacer_2.stl1
left_leg/shin/tibias2_tibias12_sym_4.stl1
left_leg/shin/tibias2_tibias22_sym_4.stl1
right_leg/shin/spacer12_5_9_4_5.stl1
right_leg/shin/spacer22_5_9_4_5.stl1
right_leg/shin/tibias2_hat_big.stl1
right_leg/shin/tibias2_shin_spacer_2.stl1
right_leg/shin/tibias2_tibias12.stl1
right_leg/shin/tibias2_tibias22.stl1

Assembly steps:

  1. Install M3 inserts first (4 per shin).
  2. Insert bearings and pins/goupilles.
  3. Mandatory: place the full knee mechanism (including motor) inside before final shin closure.
  4. For re-assembly in tight fit conditions: gently shift the bearing with light hammer taps to create spacer clearance, insert spacer, then re-seat bearing.
  5. Install and route the shin sub-cable before closure (hardware/electronics/cabling/README.md).
  6. Preferable: place ankle module now (recommended, not mandatory).
  7. Close and screw shin structure, then verify internal parts still move.

ankle_mechanism

Components:

CategoryNameSpecificationQty / SubassemblyQty / Robot
fastener_screwM5 screwM5 x 15 cyl head48
joint_sphericalSpherical joint 27628-01-05Norelem48
fastener_axisShoulder screw 07534-05X20ISO7379, D1=5, L1=20, B=8, M4, steel 12.948

STL To Print:

NameQuantity
left_leg/ankle_mechanism/bearing_spacer14_5_7_3.stl1
left_leg/ankle_mechanism/bearing_spacer24_5_7_3.stl1
left_leg/ankle_mechanism/bearing_spacer34_5_7_3.stl1
left_leg/ankle_mechanism/bearing_spacer44_5_7_3.stl1
left_leg/ankle_mechanism/tibias2_rod_long.stl1
left_leg/ankle_mechanism/tibias2_rod_small.stl1
left_leg/ankle_mechanism/tibias_actuation_ankle_12.stl1
left_leg/ankle_mechanism/tibias_actuation_ankle_22.stl1
right_leg/ankle_mechanism/bearing_spacer14_5_7_3.stl1
right_leg/ankle_mechanism/bearing_spacer24_5_7_3.stl1
right_leg/ankle_mechanism/bearing_spacer34_5_7_3.stl1
right_leg/ankle_mechanism/bearing_spacer44_5_7_3.stl1
right_leg/ankle_mechanism/tibias2_rod_long.stl1
right_leg/ankle_mechanism/tibias2_rod_small.stl1
right_leg/ankle_mechanism/tibias_actuation_ankle_12.stl1
right_leg/ankle_mechanism/tibias_actuation_ankle_22.stl1

Assembly steps:

  1. Install spherical joints on rods (2 per rod, 4 per leg, 8 per robot).
  2. Assemble rods, spacers, and ankle actuation parts, then screw.
  3. Verify mechanism moves freely through its range.
     

--------

Code / Training

Now the real work begins, programming and training this robot.
But sadly we hit the maximal post size, so for more visit the GitHub pages.
The project is from May 2026, so its brand new and the work is still progressing.
And yes, we still need the upper half of the robot, all this will follow hopefully.
https://github.com/Virgileboat/lerobot-humanoid 
https://github.com/Virgileboat/lerobot-humanoid-runtime 

https://github.com/Virgileboat/lerobot-legged-zoo 


Documentation (2)

Other Files (2)
LICENSE.txt
bom_buy.zip

Comment & Rating (3)

(0/1000)