cetiennec/so101-leader-urdf
SO-101 leader URDF Open so101_leader_new_calib.urdf with the adjacent assets/ directory intact. All mesh paths are relative; all mesh coordinates are in metres. This is a geometry/kinematics conversion of the supplied follower URDF, with a provisional trigger calibration. Changes Preserved the original base, shoulder, upper arm, lower arm, wrist, motor meshes, and the five arm joint origins, axes, limits and transmissions. Replaced the fixed follower gripper body… See the full description on the dataset page: https://huggingface.co/datasets/cetiennec/so101-leader-urdf.
SO-101 leader URDF
Open so101_leader_new_calib.urdf with the adjacent assets/ directory intact. All mesh paths are relative; all mesh coordinates are in metres. This is a geometry/kinematics conversion of the supplied follower URDF, with a provisional trigger calibration.
Changes
- Preserved the original base, shoulder, upper arm, lower arm, wrist, motor meshes, and the five arm joint origins, axes, limits and transmissions.
- Replaced the fixed follower gripper body with the supplied
Wrist_Roll_SO101.stepandHandle_SO101.step. The handle remains rigidly attached togripper_link. - Replaced the moving jaw with
Trigger_SO101.stepontrigger_link. The actuated joint is still namedgripper; all six original actuator/joint names remain available. - Converted the three STEP models to binary STL, converting millimetres to metres.
- Updated the gripper and trigger mass, centre of mass and inertia estimates.
- Kept
gripper_frame_linkat the original follower TCP for compatibility. It is a virtual reference, not a physical point on the leader. Addedhandle_frame_linkat the handle CAD volume centroid, with the same orientation as the compatibility TCP.
Placement and calibration assumptions
The leader wrist mounting features align with the follower wrist after removing the follower CAD offset (Y = -0.218214 mm, Z = +0.949706 mm). The supplied leader wrist and handle already share a CAD frame; both use rpy="pi 0 0", xyz="0 0 0" in gripper_link. Their common handle screw axis also coincides.
The trigger uses the original gripper joint origin and axis, placing it on the servo output-horn face. Its mesh is flipped 180 degrees about X so the mounting plate faces outward and the finger loop extends inward. A 140-degree local Z rotation establishes a provisional near-closed pose with clearance from the supplied handle and wrist.
The STEP parts do not specify the assembled trigger horn indexing, encoder zero, or physical travel stops. Trigger visual/collision RPY is therefore provisionally [pi, 0, 2.443460952792]. Joint travel is provisionally 0 to 0.785398163397 rad (0–45 degrees), with positive motion opening away from the handle. This replaces the follower jaw's -10 to 100 degree range. Confirm mounting, zero, direction and limits against your assembled leader before using the model as a calibrated digital twin. The stored five arm joint calibrations are inherited from your file; they are not measurements of your leader.
If you change trigger mesh yaw, update both visual and collision origins and rotate the trigger centre of mass and inertia tensor consistently. Alternatively, apply a measured zero correction to the joint origin as a rotation about its local Z axis, which rotates the entire link consistently. A normalized gripper signal (e.g. 0–100) must be mapped to the chosen physical angle range in radians outside the URDF.
Inertial estimates
Effective printed-part density is 579.95 kg/m³, inferred from the supplied follower jaw's 12 g mass and the upstream jaw STEP volume. It represents a rough average for printed material and infill, not solid PLA density or a measured leader mass.
The old follower wrist contribution was subtracted from the original gripper inertial, and the new wrist plus handle contributions were added using exact STEP volume properties and the parallel-axis theorem. The existing motor/hardware residual was retained. The trigger uses its STEP volume properties at the same effective density.
- Fixed gripper assembly (motor, wrist, handle): approximately 117.59 g.
- Trigger: approximately 6.48 g.
Actual print settings, fasteners and the leader's servo variants can change these values. Original servo effort/velocity limits and PositionJointInterface transmissions were retained for compatibility; they are not verified leader actuator parameters or a configured passive/backdrivable control system.
Validation
- Loaded successfully with
yourdfpy; nine links and six revolute joints. - All referenced STL assets resolve, with finite coordinates and metre-scale dimensions.
- The five original arm joints are unchanged.
- All nonempty inertial blocks have positive-definite inertia tensors satisfying the principal-moment triangle inequality.
- All three converted leader meshes are watertight after removing ten zero-area trigger triangles.
- Forward kinematics evaluated at ten trigger positions.
- Exact STEP intersections checked at 17 poses across the provisional trigger range against the supplied wrist and handle. This sampled check does not establish physical stops or certify clearance against motors, screws, cables or all other links.
A 30,000-point trigger surface sample at zero found a small overlap (maximum sampled depth 0.16 mm) with the original servo horn/screw mesh. The original servo mesh was retained; this is not a certified mechanical-fit model.
preview.png shows the result. validation.json contains the checks and sampled clearances; conversion_details.json records source hashes and conversion parameters. Visual and collision geometry use the same detailed meshes; simulators requiring convex dynamic collision shapes may need an additional convex decomposition.
Sources
User supplied: so101_new_calib.urdf, Handle_SO101.step, Trigger_SO101.step, Wrist_Roll_SO101.step. The three STEP sources are included in source_step/.
Unchanged arm meshes and reference follower CAD came from TheRobotStudio/SO-ARM100, tree/commit eecbe3e0a9ebb23e25ad7b2759b03884c6660903, under Simulation/SO101/assets and STEP/SO101/Follower_Specific. See LICENSE.upstream.
Assembly topology was checked against the official SO-101 assembly guide. No instructions embedded in CAD metadata were treated as user instructions.
