LeRobot Robot URDF Dataset
lerobot/robot-urdfs
The LeRobot repository hosts a collection of Universal Robot Description Format (URDF) models for multiple robotic systems. The dataset includes detailed specifications for joints, meshes, and licenses for robots such as the SO-101 follower and leader arms, bimanual OpenArm, Unitree G1 with various hand configurations (Dex3-1, Dex1-1, Inspire), Pollen Robotics' Grabette, Menlo Research's Asimov 1 humanoid, and I2RT's YAM arm. Each robot folder contains the URDF file and associated meshes referenced by relative paths, ensuring that downloaded folders load directly. The dataset supports both standard URDF formats with STL/DAE meshes and optimized GLB versions for web-based loading. Usage examples demonstrate downloading specific robot subsets via Hugging Face or loading models directly in a browser using URDFLoader.
This repository provides URDF models and meshes for various robots within the LeRobot ecosystem, including SO-101, OpenArm, Unitree G1 variants, Grabette, Asimov 1, and YAM, facilitating simulation-to-real alignment and data loading.
Source: LeRobot — Dataset repository updates · Read original article ↗
Article text · Original source · English
URDF models of the robots in LeRobot datasets and tools. Each robot is a folder holding its URDF and meshes, referenced by relative paths, so a downloaded folder loads as is. Joints are in radians (meters for prismatic ones), like any URDF.
The OpenUSD versions of SO-101, OpenArm and the Unitree G1s carry these URDFs' link and joint names, so a dataset's joint values drive both the same way.
| Robot | URDF | Moving joints | Meshes | License |
|---|---|---|---|---|
| SO-101 follower | so101/so101_new_calib.urdf |
6 revolute | STL | Apache-2.0 |
| SO-101 leader | so101/so101_leader_new_calib.urdf |
6 revolute | STL | Apache-2.0 |
| SO-100 | so101/so100.urdf |
6 revolute | STL | Apache-2.0 |
| OpenArm, bimanual | openarm/openarm_bimanual.urdf |
14 revolute, 4 prismatic | DAE | Apache-2.0 |
| Unitree G1, 29 DoF with Dex3-1 hands | g1/g1_body29_hand14.urdf |
43 revolute | STL | Apache-2.0 |
| Unitree G1, 29 DoF with Dex1-1 grippers | g1_dex1/g1_body29_dex1.urdf |
29 revolute, 4 prismatic | STL | BSD-3-Clause |
| Unitree G1, 29 DoF with Inspire hands | g1_inspire/g1_body29_inspire.urdf |
53 revolute (12 mimic) | STL | BSD-3-Clause |
| Grabette, left and right | grabette/grabette_left/robot.urdf, grabette_right |
2 revolute | STL | Apache-2.0 |
| Asimov 1, 25 DoF | asimov/asimov_1_25dof/urdf/asimov_1_25dof.urdf |
25 revolute | STL | CERN-OHL-S-2.0 |
| YAM v1 with linear DM4310 gripper | yam/v1/linear_4310.urdf |
6 revolute, 2 prismatic | none | MIT |
Robots
SO-101 and SO-100 (so101/), from TheRobotStudio's SO-ARM100 (Apache-2.0), generated with onshape-to-robot from its Onshape model:
so101_new_calib.urdf: the follower arm, the same file as SO-ARM100'sSimulation/SO101/so101_new_calib.urdf. Jointsshoulder_pan,shoulder_lift,elbow_flex,wrist_flex,wrist_roll,gripper;gripper_frame_linkis the tool point.so101_leader_new_calib.urdf: the leader arm: the follower's links and joints, with the leader's trigger (trigger_link,handle_frame_link) in place of the moving jaw.so100.urdf: the SO-100 arm, with jointsRotation,Pitch,Elbow,Wrist_Pitch,Wrist_Roll,Jaw.
OpenArm (openarm/), Enactic's bimanual OpenArm (Apache-2.0): openarm_<side>_joint1 to joint7 per arm, and openarm_<side>_finger_joint1 and finger_joint2 (prismatic, the second following the first as a <mimic>). openarm_<side>_hand_tcp is each tool point.
Unitree G1 (g1/, g1_dex1/, g1_inspire/), all with the same 29 body joints (waist_yaw_joint, left_hip_pitch_joint, right_elbow_joint, ...):
g1_body29_hand14.urdf: with Dex3-1 hands (7 joints each), fromassets/g1/g1_body29_hand14.urdfin unitreerobotics/xr_teleoperate (Apache-2.0), its mesh extensions lowercased (.STLto.stl).g1_body29_dex1.urdf: with Dex1-1 grippers (2 prismatic finger joints each), a copy ofg1_29dof_mode_15_with_dex1_1.urdfin unitreerobotics/unitree_ros (BSD-3-Clause).g1_body29_inspire.urdf: with Inspire RH56DFQ hands (6 driven joints each, the other finger joints following them as<mimic>), a copy ofg1_29dof_rev_1_0_with_inspire_hand_DFQ.urdfin unitreerobotics/unitree_ros (BSD-3-Clause).
Grabette (grabette/), Pollen Robotics' handheld data recording gripper: copies of packages/grabette/urdf/grabette_left and grabette_right in pollen-robotics/grabette (Apache-2.0). Joints proximal and distal. Their meshes are referenced as package://assets/..., relative to each URDF's folder.
Asimov 1 (asimov/), Menlo Research's 25 DoF humanoid: an unmodified copy of sim-model/asimov_1_25dof in menloresearch/asimov-1, with its MuJoCo MJCF. Licensed under CERN-OHL-S-2.0, see asimov/HARDWARE-LICENSE.txt and asimov/README.md.
YAM (yam/v1/), I2RT's YAM arm with the linear DM4310 gripper: a dynamics-only URDF (no meshes), converted from LeRobot's YAM v1 MJCF model, derived from i2rt at commit 120c3c8 (MIT, notice in the file). Joints joint1 to joint6 (revolute) and joint7, joint8 (prismatic gripper).
so101_new_calib_web.urdf and openarm_bimanual_web.urdf are the same robots with GLB visual meshes, smaller and faster to load in a browser; their collision meshes are unchanged.
Usage
Download one robot's folder:
from huggingface_hub import snapshot_download
root = snapshot_download("lerobot/robot-urdfs", repo_type="dataset", allow_patterns="so101/*")
urdf = f"{root}/so101/so101_new_calib.urdf" # meshes in so101/assets/
Or load it straight from the Hub in a browser, for example with urdf-loader: meshes resolve next to the URDF's URL. Its default mesh loader reads STL and DAE; the _web URDFs need a GLB loader passed as loadMeshCb.
import URDFLoader from "urdf-loader";
const robot = await new URDFLoader().loadAsync(
"https://huggingface.co/datasets/lerobot/robot-urdfs/resolve/main/so101/so101_new_calib.urdf",
);
robot.setJointValue("shoulder_lift", Math.PI / 4);
Each robot keeps the license of its source, listed above.
What the source reports
Publisher-reported claims, with original evidence. These results have not been independently verified by RoboSignal.
Dataset details reported by the source
- License
- Apache-2.0 Open source S3
- Version
- v1 Open source S10
- Embodiments
- SO-101 Open source S3SO-100 Open source S3OpenArm Open source S3Unitree G1 Open source S3Grabette Open source S4Asimov 1 Open source S4YAM Open source S4
- paper: not_reported
- weights: not_reported
- dataset: Available Artifact link Open source S12
- dataset: not_reported
What remains unknown
Source excerpts and review record
Automatically extracted; no manual editorial approval recorded.
Meshes License SO-101 follower so101/so101_new_calib.urdf 6 revolute STL Apache-2.0 SO-101 leader so101/so101_leader_new_calib.urdf 6 revolute STL Apache-2.0 SO-100 so101/so100.urdf 6 revolute STL Apache-2.0 OpenArm, bimanual openarm/openarm_bimanual.urdf 14 revolute, 4 prismatic DAE Apache-2.0 Unitree G1, 29 DoF with Dex3-1 hands g1/g1_body29_hand14.urdf 43 revolute STL Apache-2.0 Unitree G1, 29 DoF with Dex1-1 grip
Open source S3
URDF models of the robots in LeRobot datasets and tools. Each robot is a folder holding its URDF and meshes, referenced by relative paths, so a downloaded folder loads as is. Joints are in radians (meters for prismatic ones), like any URDF. The OpenUSD versions of SO-101, OpenArm and the Unitree G1s carry these URDFs' link and joint names, so a dataset's joint values drive both the same way. Robot URDF Moving joints
Open source S2
pers g1_dex1/g1_body29_dex1.urdf 29 revolute, 4 prismatic STL BSD-3-Clause Unitree G1, 29 DoF with Inspire hands g1_inspire/g1_body29_inspire.urdf 53 revolute (12 mimic) STL BSD-3-Clause Grabette, left and right grabette/grabette_left/robot.urdf , grabette_right 2 revolute STL Apache-2.0 Asimov 1, 25 DoF asimov/asimov_1_25dof/urdf/asimov_1_25dof.urdf 25 revolute STL CERN-OHL-S-2.0 YAM v1 with linear DM4310 gripper ya
Open source S4
nloresearch/asimov-1 , with its MuJoCo MJCF. Licensed under CERN-OHL-S-2.0, see asimov/HARDWARE-LICENSE.txt and asimov/README.md . YAM ( yam/v1/ ), I2RT's YAM arm with the linear DM4310 gripper: a dynamics-only URDF (no meshes), converted from LeRobot's YAM v1 MJCF model, derived from i2rt at commit 120c3c8 (MIT, notice in the file). Joints joint1 to joint6 (revolute) and joint7 , joint8 (prismatic gripper). so101_ne
Open source S10
ointValue ( "shoulder_lift" , Math . PI / 4 ); Each robot keeps the license of its source, listed above.
Open source S13
w_calib_web.urdf and openarm_bimanual_web.urdf are the same robots with GLB visual meshes, smaller and faster to load in a browser; their collision meshes are unchanged. Usage Download one robot's folder: from huggingface_hub import snapshot_download root = snapshot_download( "lerobot/robot-urdfs" , repo_type= "dataset" , allow_patterns= "so101/*" ) urdf = f" {root} /so101/so101_new_calib.urdf" # meshes in so101/asse
Open source S11
ts/ Or load it straight from the Hub in a browser, for example with urdf-loader : meshes resolve next to the URDF's URL. Its default mesh loader reads STL and DAE; the _web URDFs need a GLB loader passed as loadMeshCb . import URDFLoader from "urdf-loader" ; const robot = await new URDFLoader (). loadAsync ( "https://huggingface.co/datasets/lerobot/robot-urdfs/resolve/main/so101/so101_new_calib.urdf" , ); robot. setJ
Open source S12
Implications for data suppliers
RoboSignal interpretation and collection questions, not statements of buyer demand.
- Confirm the required data type and collection setting with the buyer; this source does not establish a complete collection specification.
- Check the exact dataset version, license, modalities and task coverage against the intended use.
- Validate demand and acceptance criteria with a buyer before scaling. Publication, popularity and a research result do not establish a purchase commitment.
Source:LeRobot — Dataset repository updates · huggingface.co