fix(urdf): fixing multiple issues related to the last URDF update (#117)

* Adding _link suffix to link names to avoid duplicates

* Removing unused intermediate base frame

* Fixing origin frame offsets
This commit is contained in:
Caroline Pascal
2025-07-02 14:14:02 +02:00
committed by GitHub
parent 2448114993
commit 385e8d7c68

View File

@@ -12,86 +12,72 @@
</material>
<!-- Link base -->
<link name="base">
<link name="base_link">
<inertial>
<origin xyz="0.020739 0.00204287 0.065966" rpy="0 0 0"/>
<origin xyz="0.0137179 -5.19711e-05 0.0334843" rpy="0 0 0"/>
<mass value="0.147"/>
<inertia ixx="0.000136117" ixy="4.59787e-07" ixz="9.75275e-08" iyy="0.000114686" iyz="-4.97151e-06" izz="0.000130364"/>
<inertia ixx="0.000114686" ixy="-4.59787e-07" ixz="4.97151e-06" iyy="0.000136117" iyz="9.75275e-08" izz="0.000130364"/>
</inertial>
<!-- Part base_motor_holder_so101_v1 -->
<visual>
<origin xyz="0.0206915 0.0221255 0.0300817" rpy="1.5708 -1.23909e-16 2.33147e-15"/>
<origin xyz="-0.00636471 -9.94414e-05 -0.0024" rpy="1.5708 -1.67685e-15 1.5708"/>
<geometry>
<mesh filename="assets/base_motor_holder_so101_v1.stl"/>
</geometry>
<material name="3d_printed"/>
</visual>
<collision>
<origin xyz="0.0206915 0.0221255 0.0300817" rpy="1.5708 -1.23909e-16 2.33147e-15"/>
<origin xyz="-0.00636471 -9.94414e-05 -0.0024" rpy="1.5708 -1.67685e-15 1.5708"/>
<geometry>
<mesh filename="assets/base_motor_holder_so101_v1.stl"/>
</geometry>
</collision>
<!-- Part base_so101_v2 -->
<visual>
<origin xyz="0.0207909 0.0221255 0.0300817" rpy="1.5708 -0 0"/>
<origin xyz="-0.00636471 -8.97657e-09 -0.0024" rpy="1.5708 -2.78073e-29 1.5708"/>
<geometry>
<mesh filename="assets/base_so101_v2.stl"/>
</geometry>
<material name="3d_printed"/>
</visual>
<collision>
<origin xyz="0.0207909 0.0221255 0.0300817" rpy="1.5708 -0 0"/>
<origin xyz="-0.00636471 -8.97657e-09 -0.0024" rpy="1.5708 -2.78073e-29 1.5708"/>
<geometry>
<mesh filename="assets/base_so101_v2.stl"/>
</geometry>
</collision>
<!-- Part sts3215_03a_v1 -->
<visual>
<origin xyz="0.0207909 -0.0105745 0.0761817" rpy="-2.20282e-15 2.77556e-17 -1.5708"/>
<origin xyz="0.0263353 -8.97657e-09 0.0437" rpy="-8.21148e-16 7.84513e-18 1.249e-15"/>
<geometry>
<mesh filename="assets/sts3215_03a_v1.stl"/>
</geometry>
<material name="sts3215"/>
</visual>
<collision>
<origin xyz="0.0207909 -0.0105745 0.0761817" rpy="-2.20282e-15 2.77556e-17 -1.5708"/>
<origin xyz="0.0263353 -8.97657e-09 0.0437" rpy="-8.21148e-16 7.84513e-18 1.249e-15"/>
<geometry>
<mesh filename="assets/sts3215_03a_v1.stl"/>
</geometry>
</collision>
<!-- Part waveshare_mounting_plate_so101_v2 -->
<visual>
<origin xyz="0.0205915 0.0467435 0.0798817" rpy="1.5708 -1.21716e-14 2.33147e-15"/>
<origin xyz="-0.0309827 -0.000199441 0.0474" rpy="1.5708 -1.35493e-14 1.5708"/>
<geometry>
<mesh filename="assets/waveshare_mounting_plate_so101_v2.stl"/>
</geometry>
<material name="3d_printed"/>
</visual>
<collision>
<origin xyz="0.0205915 0.0467435 0.0798817" rpy="1.5708 -1.21716e-14 2.33147e-15"/>
<origin xyz="-0.0309827 -0.000199441 0.0474" rpy="1.5708 -1.35493e-14 1.5708"/>
<geometry>
<mesh filename="assets/waveshare_mounting_plate_so101_v2.stl"/>
</geometry>
</collision>
</link>
<!-- Frame baseframe (dummy link + fixed joint) -->
<link name="baseframe">
<origin xyz="0 0 0" rpy="0 -0 0"/>
<inertial>
<origin xyz="0 0 0" rpy="0 0 0"/>
<mass value="1e-9"/>
<inertia ixx="0" ixy="0" ixz="0" iyy="0" iyz="0" izz="0"/>
</inertial>
</link>
<joint name="baseframe_frame" type="fixed">
<origin xyz="0.020791 0.0157608 0.0324817" rpy="2.77556e-17 -9.52796e-30 -2.64454e-46"/>
<parent link="base"/>
<child link="baseframe"/>
<axis xyz="0 0 0"/>
</joint>
<!-- Link shoulder -->
<link name="shoulder">
<link name="shoulder_link">
<inertial>
<origin xyz="-0.0307604 -1.66727e-05 -0.0252713" rpy="0 0 0"/>
<mass value="0.100006"/>
@@ -127,21 +113,22 @@
</collision>
<!-- Part rotation_pitch_so101_v1 -->
<visual>
<origin xyz="0.0122008 2.22413e-05 0.0464" rpy="-1.5708 -0 0"/>
<origin xyz="0.0122008 2.22413e-05 0.0464" rpy="-1.5708 2.35221e-33 0"/>
<geometry>
<mesh filename="assets/rotation_pitch_so101_v1.stl"/>
</geometry>
<material name="3d_printed"/>
</visual>
<collision>
<origin xyz="0.0122008 2.22413e-05 0.0464" rpy="-1.5708 -0 0"/>
<origin xyz="0.0122008 2.22413e-05 0.0464" rpy="-1.5708 2.35221e-33 0"/>
<geometry>
<mesh filename="assets/rotation_pitch_so101_v1.stl"/>
</geometry>
</collision>
</link>
<!-- Link upper_arm -->
<link name="upper_arm">
<link name="upper_arm_link">
<inertial>
<origin xyz="-0.0898471 -0.00838224 0.0184089" rpy="0 0 0"/>
<mass value="0.103"/>
@@ -149,35 +136,36 @@
</inertial>
<!-- Part sts3215_03a_v1_3 -->
<visual>
<origin xyz="-0.11257 -0.0155 0.0187" rpy="-3.14159 -6.8695e-16 -1.5708"/>
<origin xyz="-0.11257 -0.0155 0.0187" rpy="-3.14159 -5.27356e-16 -1.5708"/>
<geometry>
<mesh filename="assets/sts3215_03a_v1.stl"/>
</geometry>
<material name="sts3215"/>
</visual>
<collision>
<origin xyz="-0.11257 -0.0155 0.0187" rpy="-3.14159 -6.8695e-16 -1.5708"/>
<origin xyz="-0.11257 -0.0155 0.0187" rpy="-3.14159 -5.27356e-16 -1.5708"/>
<geometry>
<mesh filename="assets/sts3215_03a_v1.stl"/>
</geometry>
</collision>
<!-- Part upper_arm_so101_v1 -->
<visual>
<origin xyz="-0.065085 0.012 0.0182" rpy="3.14159 -9.35612e-32 0"/>
<origin xyz="-0.065085 0.012 0.0182" rpy="3.14159 -0 -1.30911e-30"/>
<geometry>
<mesh filename="assets/upper_arm_so101_v1.stl"/>
</geometry>
<material name="3d_printed"/>
</visual>
<collision>
<origin xyz="-0.065085 0.012 0.0182" rpy="3.14159 -9.35612e-32 0"/>
<origin xyz="-0.065085 0.012 0.0182" rpy="3.14159 -0 -1.30911e-30"/>
<geometry>
<mesh filename="assets/upper_arm_so101_v1.stl"/>
</geometry>
</collision>
</link>
<!-- Link lower_arm -->
<link name="lower_arm">
<link name="lower_arm_link">
<inertial>
<origin xyz="-0.0980701 0.00324376 0.0182831" rpy="0 0 0"/>
<mass value="0.104"/>
@@ -185,49 +173,50 @@
</inertial>
<!-- Part under_arm_so101_v1 -->
<visual>
<origin xyz="-0.0648499 -0.032 0.0182" rpy="-3.14159 -0 3.9443e-31"/>
<origin xyz="-0.0648499 -0.032 0.0182" rpy="3.14159 -0 6.67202e-31"/>
<geometry>
<mesh filename="assets/under_arm_so101_v1.stl"/>
</geometry>
<material name="3d_printed"/>
</visual>
<collision>
<origin xyz="-0.0648499 -0.032 0.0182" rpy="-3.14159 -0 3.9443e-31"/>
<origin xyz="-0.0648499 -0.032 0.0182" rpy="3.14159 -0 6.67202e-31"/>
<geometry>
<mesh filename="assets/under_arm_so101_v1.stl"/>
</geometry>
</collision>
<!-- Part motor_holder_so101_wrist_v1 -->
<visual>
<origin xyz="-0.0648499 -0.032 0.018" rpy="-3.14159 4.73317e-30 7.88861e-31"/>
<origin xyz="-0.0648499 -0.032 0.018" rpy="-3.14159 -2.55351e-15 -1.83387e-30"/>
<geometry>
<mesh filename="assets/motor_holder_so101_wrist_v1.stl"/>
</geometry>
<material name="3d_printed"/>
</visual>
<collision>
<origin xyz="-0.0648499 -0.032 0.018" rpy="-3.14159 4.73317e-30 7.88861e-31"/>
<origin xyz="-0.0648499 -0.032 0.018" rpy="-3.14159 -2.55351e-15 -1.83387e-30"/>
<geometry>
<mesh filename="assets/motor_holder_so101_wrist_v1.stl"/>
</geometry>
</collision>
<!-- Part sts3215_03a_v1_4 -->
<visual>
<origin xyz="-0.1224 0.0052 0.0187" rpy="-3.14159 -3.58047e-15 -3.14159"/>
<origin xyz="-0.1224 0.0052 0.0187" rpy="-3.14159 -7.88861e-31 -3.14159"/>
<geometry>
<mesh filename="assets/sts3215_03a_v1.stl"/>
</geometry>
<material name="sts3215"/>
</visual>
<collision>
<origin xyz="-0.1224 0.0052 0.0187" rpy="-3.14159 -3.58047e-15 -3.14159"/>
<origin xyz="-0.1224 0.0052 0.0187" rpy="-3.14159 -7.88861e-31 -3.14159"/>
<geometry>
<mesh filename="assets/sts3215_03a_v1.stl"/>
</geometry>
</collision>
</link>
<!-- Link wrist -->
<link name="wrist">
<link name="wrist_link">
<inertial>
<origin xyz="-0.000103312 -0.0386143 0.0281156" rpy="0 0 0"/>
<mass value="0.079"/>
@@ -235,14 +224,14 @@
</inertial>
<!-- Part sts3215_03a_no_horn_v1 -->
<visual>
<origin xyz="5.55112e-17 -0.0424 0.0306" rpy="1.5708 1.5708 0"/>
<origin xyz="8.32667e-17 -0.0424 0.0306" rpy="1.5708 1.5708 0"/>
<geometry>
<mesh filename="assets/sts3215_03a_no_horn_v1.stl"/>
</geometry>
<material name="sts3215"/>
</visual>
<collision>
<origin xyz="5.55112e-17 -0.0424 0.0306" rpy="1.5708 1.5708 0"/>
<origin xyz="8.32667e-17 -0.0424 0.0306" rpy="1.5708 1.5708 0"/>
<geometry>
<mesh filename="assets/sts3215_03a_no_horn_v1.stl"/>
</geometry>
@@ -262,8 +251,9 @@
</geometry>
</collision>
</link>
<!-- Link gripper -->
<link name="gripper">
<link name="gripper_link">
<inertial>
<origin xyz="0.000213627 0.000245138 -0.025187" rpy="0 0 0"/>
<mass value="0.087"/>
@@ -271,35 +261,36 @@
</inertial>
<!-- Part sts3215_03a_v1_5 -->
<visual>
<origin xyz="0.0077 0.0001 -0.0234" rpy="-1.5708 -5.55112e-17 -1.38213e-14"/>
<origin xyz="0.0077 0.0001 -0.0234" rpy="-1.5708 -5.19179e-17 -1.66533e-16"/>
<geometry>
<mesh filename="assets/sts3215_03a_v1.stl"/>
</geometry>
<material name="sts3215"/>
</visual>
<collision>
<origin xyz="0.0077 0.0001 -0.0234" rpy="-1.5708 -5.55112e-17 -1.38213e-14"/>
<origin xyz="0.0077 0.0001 -0.0234" rpy="-1.5708 -5.19179e-17 -1.66533e-16"/>
<geometry>
<mesh filename="assets/sts3215_03a_v1.stl"/>
</geometry>
</collision>
<!-- Part wrist_roll_follower_so101_v1 -->
<visual>
<origin xyz="5.55112e-17 -0.000218214 0.000949706" rpy="-3.14159 -5.55112e-17 -9.17912e-24"/>
<origin xyz="8.32667e-17 -0.000218214 0.000949706" rpy="-3.14159 -5.55112e-17 0"/>
<geometry>
<mesh filename="assets/wrist_roll_follower_so101_v1.stl"/>
</geometry>
<material name="3d_printed"/>
</visual>
<collision>
<origin xyz="5.55112e-17 -0.000218214 0.000949706" rpy="-3.14159 -5.55112e-17 -9.17912e-24"/>
<origin xyz="8.32667e-17 -0.000218214 0.000949706" rpy="-3.14159 -5.55112e-17 0"/>
<geometry>
<mesh filename="assets/wrist_roll_follower_so101_v1.stl"/>
</geometry>
</collision>
</link>
<!-- Frame gripperframe (dummy link + fixed joint) -->
<link name="gripperframe">
<!-- Gripper frame (dummy link + fixed joint) -->
<link name="gripper_frame_link">
<origin xyz="0 0 0" rpy="0 -0 0"/>
<inertial>
<origin xyz="0 0 0" rpy="0 0 0"/>
@@ -307,14 +298,16 @@
<inertia ixx="0" ixy="0" ixz="0" iyy="0" iyz="0" izz="0"/>
</inertial>
</link>
<joint name="gripperframe_frame" type="fixed">
<origin xyz="-0.0079 -0.000218121 -0.0981274" rpy="1.5708 1.22465e-16 1.5708"/>
<parent link="gripper"/>
<child link="gripperframe"/>
<joint name="gripper_frame_joint" type="fixed">
<origin xyz="-0.0079 -0.000218121 -0.0981274" rpy="0 3.14159 0"/>
<parent link="gripper_link"/>
<child link="gripper_frame_link"/>
<axis xyz="0 0 0"/>
</joint>
<!-- Link moving_jaw_so101_v1 -->
<link name="moving_jaw_so101_v1">
<link name="moving_jaw_so101_v1_link">
<inertial>
<origin xyz="-0.00157495 -0.0300244 0.0192755" rpy="0 0 0"/>
<mass value="0.012"/>
@@ -322,14 +315,14 @@
</inertial>
<!-- Part moving_jaw_so101_v1 -->
<visual>
<origin xyz="-5.55112e-17 -1.94746e-17 0.0189" rpy="9.53145e-17 -4.66093e-24 0"/>
<origin xyz="-5.55112e-17 -5.55112e-17 0.0189" rpy="9.53145e-17 6.93889e-18 1.24077e-24"/>
<geometry>
<mesh filename="assets/moving_jaw_so101_v1.stl"/>
</geometry>
<material name="3d_printed"/>
</visual>
<collision>
<origin xyz="-5.55112e-17 -1.94746e-17 0.0189" rpy="9.53145e-17 -4.66093e-24 0"/>
<origin xyz="-5.55112e-17 -5.55112e-17 0.0189" rpy="9.53145e-17 6.93889e-18 1.24077e-24"/>
<geometry>
<mesh filename="assets/moving_jaw_so101_v1.stl"/>
</geometry>
@@ -338,9 +331,9 @@
<!-- Joint from gripper to moving_jaw_so101_v1 -->
<joint name="gripper" type="revolute">
<origin xyz="0.0202 0.0188 -0.0234" rpy="1.5708 -5.14108e-17 -1.38655e-14"/>
<parent link="gripper"/>
<child link="moving_jaw_so101_v1"/>
<origin xyz="0.0202 0.0188 -0.0234" rpy="1.5708 -5.24284e-08 -1.41553e-15"/>
<parent link="gripper_link"/>
<child link="moving_jaw_so101_v1_link"/>
<axis xyz="0 0 1"/>
<limit effort="10" velocity="10" lower="-0.174533" upper="1.74533"/>
</joint>
@@ -358,9 +351,9 @@
<!-- Joint from wrist to gripper -->
<joint name="wrist_roll" type="revolute">
<origin xyz="0 -0.0611 0.0181" rpy="1.5708 -9.38083e-08 3.14159"/>
<parent link="wrist"/>
<child link="gripper"/>
<origin xyz="5.55112e-17 -0.0611 0.0181" rpy="1.5708 0.0486795 3.14159"/>
<parent link="wrist_link"/>
<child link="gripper_link"/>
<axis xyz="0 0 1"/>
<limit effort="10" velocity="10" lower="-2.74385" upper="2.84121"/>
</joint>
@@ -378,9 +371,9 @@
<!-- Joint from lower_arm to wrist -->
<joint name="wrist_flex" type="revolute">
<origin xyz="-0.1349 0.0052 1.65232e-16" rpy="3.2474e-15 2.86219e-15 -1.5708"/>
<parent link="lower_arm"/>
<child link="wrist"/>
<origin xyz="-0.1349 0.0052 3.62355e-17" rpy="4.02456e-15 8.67362e-16 -1.5708"/>
<parent link="lower_arm_link"/>
<child link="wrist_link"/>
<axis xyz="0 0 1"/>
<limit effort="10" velocity="10" lower="-1.65806" upper="1.65806"/>
</joint>
@@ -399,9 +392,9 @@
<!-- Joint from upper_arm to lower_arm -->
<!-- Note: 5-degree calibration offset applied to joint limits -->
<joint name="elbow_flex" type="revolute">
<origin xyz="-0.11257 -0.028 2.46331e-16" rpy="-1.22818e-15 5.75928e-16 1.5708"/>
<parent link="upper_arm"/>
<child link="lower_arm"/>
<origin xyz="-0.11257 -0.028 1.73763e-16" rpy="-3.63608e-16 8.74301e-16 1.5708"/>
<parent link="upper_arm_link"/>
<child link="lower_arm_link"/>
<axis xyz="0 0 1"/>
<limit effort="10" velocity="10" lower="-1.69" upper="1.69"/>
</joint>
@@ -420,8 +413,8 @@
<!-- Joint from shoulder to upper_arm -->
<joint name="shoulder_lift" type="revolute">
<origin xyz="-0.0303992 -0.0182778 -0.0542" rpy="-1.5708 -1.5708 0"/>
<parent link="shoulder"/>
<child link="upper_arm"/>
<parent link="shoulder_link"/>
<child link="upper_arm_link"/>
<axis xyz="0 0 1"/>
<limit effort="10" velocity="10" lower="-1.74533" upper="1.74533"/>
</joint>
@@ -439,9 +432,9 @@
<!-- Joint from base to shoulder -->
<joint name="shoulder_pan" type="revolute">
<origin xyz="0.0207909 -0.0230745 0.0948817" rpy="-3.14159 6.03684e-16 1.5708"/>
<parent link="base"/>
<child link="shoulder"/>
<origin xyz="0.0388353 -8.97657e-09 0.0624" rpy="3.14159 4.18253e-17 -3.14159"/>
<parent link="base_link"/>
<child link="shoulder_link"/>
<axis xyz="0 0 1"/>
<limit effort="10" velocity="10" lower="-1.91986" upper="1.91986"/>
</joint>
@@ -457,4 +450,4 @@
</actuator>
</transmission>
</robot>
</robot>