Add URDF model for RM75-B OmniPicker with detailed link and joint specifications

This commit is contained in:
2026-07-28 17:06:06 +08:00
parent fae5a560fb
commit 2a12eea4d5
34 changed files with 2006 additions and 403 deletions
@@ -0,0 +1,503 @@
<?xml version='1.0' encoding='UTF-8'?>
<robot name="RM75_B_OmniPicker_fixed">
<link name="base_link">
<inertial>
<origin xyz="0.00049987 5.2709E-05 0.060019" rpy="0 0 0"/>
<mass value="1.862"/>
<inertia ixx="0.0017232" ixy="-3.1058E-06" ixz="-3.7924E-05" iyy="0.0017051" iyz="1.3691E-06" izz="0.00090158"/>
</inertial>
<visual>
<origin xyz="0 0 0" rpy="0 0 0"/>
<geometry>
<mesh filename="package://xr_rm_teleop/models/rm75_omnipicker/meshes/rm75/base_link.STL"/>
</geometry>
<material name="">
<color rgba="1 1 1 1"/>
</material>
</visual>
<collision>
<origin xyz="0 0 0" rpy="0 0 0"/>
<geometry>
<mesh filename="package://xr_rm_teleop/models/rm75_omnipicker/meshes/rm75/base_link.STL"/>
</geometry>
</collision>
</link>
<link name="link_1">
<inertial>
<origin xyz="0.000241 -0.013273 -0.00995" rpy="0 0 0"/>
<mass value="1.574"/>
<inertia ixx="0.002487573" ixy="0.000009663" ixz="-0.000007909" iyy="0.002321038" iyz="0.000179393" izz="0.001450554"/>
</inertial>
<visual>
<origin xyz="0 0 0" rpy="0 0 0"/>
<geometry>
<mesh filename="package://xr_rm_teleop/models/rm75_omnipicker/meshes/rm75/link_1.STL"/>
</geometry>
<material name="">
<color rgba="1 1 1 1"/>
</material>
</visual>
<collision>
<origin xyz="0 0 0" rpy="0 0 0"/>
<geometry>
<mesh filename="package://xr_rm_teleop/models/rm75_omnipicker/meshes/rm75/link_1.STL"/>
</geometry>
</collision>
</link>
<joint name="joint_1" type="revolute">
<origin xyz="0 0 0.2405" rpy="0 0 0"/>
<parent link="base_link"/>
<child link="link_1"/>
<axis xyz="0 0 1"/>
<limit lower="-3.106" upper="3.106" effort="60" velocity="3.14"/>
</joint>
<link name="link_2">
<inertial>
<origin xyz="-0.000357 -0.106789 0.005329" rpy="0 0 0"/>
<mass value="1.217"/>
<inertia ixx="0.003494121" ixy="0.000002921" ixz="-0.000005613" iyy="0.000892721" iyz="-0.000583884" izz="0.003444080"/>
</inertial>
<visual>
<origin xyz="0 0 0" rpy="0 0 0"/>
<geometry>
<mesh filename="package://xr_rm_teleop/models/rm75_omnipicker/meshes/rm75/link_2.STL"/>
</geometry>
<material name="">
<color rgba="1 1 1 1"/>
</material>
</visual>
<collision>
<origin xyz="0 0 0" rpy="0 0 0"/>
<geometry>
<mesh filename="package://xr_rm_teleop/models/rm75_omnipicker/meshes/rm75/link_2.STL"/>
</geometry>
</collision>
</link>
<joint name="joint_2" type="revolute">
<origin xyz="0 0 0" rpy="-1.5708 0 0"/>
<parent link="link_1"/>
<child link="link_2"/>
<axis xyz="0 0 1"/>
<limit lower="-2.2689" upper="2.2689" effort="60" velocity="3.14"/>
</joint>
<link name="link_3">
<inertial>
<origin xyz="0.000003 -0.01398 -0.011324" rpy="0 0 0"/>
<mass value="1.11"/>
<inertia ixx="0.001836663" ixy="0.000002259" ixz="-0.000004216" iyy="0.001498875" iyz="0.000037167" izz="0.001062545"/>
</inertial>
<visual>
<origin xyz="0 0 0" rpy="0 0 0"/>
<geometry>
<mesh filename="package://xr_rm_teleop/models/rm75_omnipicker/meshes/rm75/link_3.STL"/>
</geometry>
<material name="">
<color rgba="1 1 1 1"/>
</material>
</visual>
<collision>
<origin xyz="0 0 0" rpy="0 0 0"/>
<geometry>
<mesh filename="package://xr_rm_teleop/models/rm75_omnipicker/meshes/rm75/link_3.STL"/>
</geometry>
</collision>
</link>
<joint name="joint_3" type="revolute">
<origin xyz="0 -0.256 0" rpy="1.5708 0 0"/>
<parent link="link_2"/>
<child link="link_3"/>
<axis xyz="0 0 1"/>
<limit lower="-3.106" upper="3.106" effort="30" velocity="3.14"/>
</joint>
<link name="link_4">
<inertial>
<origin xyz="-0.000005 -0.084658 0.004747" rpy="0 0 0"/>
<mass value="0.685"/>
<inertia ixx="0.001282444" ixy="-0.000000551" ixz="-0.000000630" iyy="0.000373013" iyz="-0.000232084" izz="0.001256177"/>
</inertial>
<visual>
<origin xyz="0 0 0" rpy="0 0 0"/>
<geometry>
<mesh filename="package://xr_rm_teleop/models/rm75_omnipicker/meshes/rm75/link_4.STL"/>
</geometry>
<material name="">
<color rgba="1 1 1 1"/>
</material>
</visual>
<collision>
<origin xyz="0 0 0" rpy="0 0 0"/>
<geometry>
<mesh filename="package://xr_rm_teleop/models/rm75_omnipicker/meshes/rm75/link_4.STL"/>
</geometry>
</collision>
</link>
<joint name="joint_4" type="revolute">
<origin xyz="0 0 0" rpy="-1.5708 0 0"/>
<parent link="link_3"/>
<child link="link_4"/>
<axis xyz="0 0 1"/>
<limit lower="-2.356" upper="2.356" effort="30" velocity="3.14"/>
</joint>
<link name="link_5">
<inertial>
<origin xyz="0.000078 -0.012937 -0.008781" rpy="0 0 0"/>
<mass value="0.619"/>
<inertia ixx="0.000627336" ixy="0.000001636" ixz="-0.000001345" iyy="0.000542455" iyz="0.000034970" izz="0.000370291"/>
</inertial>
<visual>
<origin xyz="0 0 0" rpy="0 0 0"/>
<geometry>
<mesh filename="package://xr_rm_teleop/models/rm75_omnipicker/meshes/rm75/link_5.STL"/>
</geometry>
<material name="">
<color rgba="1 1 1 1"/>
</material>
</visual>
<collision>
<origin xyz="0 0 0" rpy="0 0 0"/>
<geometry>
<mesh filename="package://xr_rm_teleop/models/rm75_omnipicker/meshes/rm75/link_5.STL"/>
</geometry>
</collision>
</link>
<joint name="joint_5" type="revolute">
<origin xyz="0 -0.21 0" rpy="1.5708 0 0"/>
<parent link="link_4"/>
<child link="link_5"/>
<axis xyz="0 0 1"/>
<limit lower="-3.106" upper="3.106" effort="10" velocity="3.14"/>
</joint>
<link name="link_6">
<inertial>
<origin xyz="-0.000014 -0.078524 0.002819" rpy="0 0 0"/>
<mass value="0.602"/>
<inertia ixx="0.000780774" ixy="-0.000000121" ixz="-0.000000469" iyy="0.000289973" iyz="-0.000120513" izz="0.000763955"/>
</inertial>
<visual>
<origin xyz="0 0 0" rpy="0 0 0"/>
<geometry>
<mesh filename="package://xr_rm_teleop/models/rm75_omnipicker/meshes/rm75/link_6.STL"/>
</geometry>
<material name="">
<color rgba="1 1 1 1"/>
</material>
</visual>
<collision>
<origin xyz="0 0 0" rpy="0 0 0"/>
<geometry>
<mesh filename="package://xr_rm_teleop/models/rm75_omnipicker/meshes/rm75/link_6.STL"/>
</geometry>
</collision>
</link>
<joint name="joint_6" type="revolute">
<origin xyz="0 0 0" rpy="-1.5708 0 0"/>
<parent link="link_5"/>
<child link="link_6"/>
<axis xyz="0 0 1"/>
<limit lower="-2.234" upper="2.234" effort="10" velocity="3.14"/>
</joint>
<link name="link_7">
<inertial>
<origin xyz="0.001094 -0.000077 -0.010119" rpy="0 0 0"/>
<mass value="0.107"/>
<inertia ixx="0.000044123" ixy="-0.000000064" ixz="0.0000003" iyy="0.000035078" iyz="-0.000000029" izz="0.000065445"/>
</inertial>
<visual>
<origin xyz="0 0 0" rpy="0 0 0"/>
<geometry>
<mesh filename="package://xr_rm_teleop/models/rm75_omnipicker/meshes/rm75/link_7.STL"/>
</geometry>
<material name="">
<color rgba="1 1 1 1"/>
</material>
</visual>
<collision>
<origin xyz="0 0 0" rpy="0 0 0"/>
<geometry>
<mesh filename="package://xr_rm_teleop/models/rm75_omnipicker/meshes/rm75/link_7.STL"/>
</geometry>
</collision>
</link>
<joint name="joint_7" type="revolute">
<origin xyz="0 -0.144 0" rpy="1.5708 0 0"/>
<parent link="link_6"/>
<child link="link_7"/>
<axis xyz="0 0 1"/>
<limit lower="-6.28" upper="6.28" effort="10" velocity="3.14"/>
</joint>
<!-- RM75 end-flange alias. link_7 is treated as the tool mounting frame. -->
<link name="rm75_flange"/>
<joint name="rm75_link7_to_flange" type="fixed">
<origin xyz="0 0 0" rpy="0 0 0"/>
<parent link="link_7"/>
<child link="rm75_flange"/>
</joint>
<!-- OmniPicker mounting transform. Adjust xyz/rpy here if an adapter plate or different clocking is used. -->
<joint name="rm75_flange_to_omnipicker" type="fixed">
<origin xyz="0 0 0" rpy="0 0 0"/>
<parent link="rm75_flange"/>
<child link="omnipicker_base_link"/>
</joint>
<link name="omnipicker_base_link">
<inertial>
<origin xyz="-0.00005520 1.2341E-05 0.03296193" rpy="0 0 0"/>
<mass value="0.25641368"/>
<inertia ixx="4.6351E-04" ixy="-1.0E-08" ixz="-1.04E-06" iyy="4.4525E-04" iyz="-5.00E-08" izz="1.0438E-04"/>
</inertial>
<visual>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="package://xr_rm_teleop/models/rm75_omnipicker/meshes/omnipicker/base_link.STL"/>
</geometry>
<material name="">
<color rgba="0.89804 0.91765 0.92941 1"/>
</material>
</visual>
</link>
<link name="omnipicker_hand_narrow1_Link">
<inertial>
<origin xyz="0.0094685 0.0068806 6.5437E-05" rpy="0 0 0"/>
<mass value="0.025428"/>
<inertia ixx="1.9574E-06" ixy="-4.2911E-07" ixz="-3.7111E-11" iyy="2.3919E-06" iyz="-3.008E-10" izz="1.5501E-06"/>
</inertial>
<visual>
<origin xyz="0 0 0" rpy="0 0 0"/>
<geometry>
<mesh filename="package://xr_rm_teleop/models/rm75_omnipicker/meshes/omnipicker/narrow1_Link.STL"/>
</geometry>
<material name="">
<color rgba="0.75294 0.75294 0.75294 1"/>
</material>
</visual>
<collision>
<origin xyz="0 0 0" rpy="0 0 0"/>
<geometry>
<mesh filename="package://xr_rm_teleop/models/rm75_omnipicker/meshes/omnipicker/narrow1_Link.STL"/>
</geometry>
</collision>
</link>
<joint name="omnipicker_hand_narrow1_joint" type="fixed">
<origin xyz="0 -0.0195 0.0565" rpy="-2.9951 -1.5708 -0.15964"/>
<parent link="omnipicker_base_link"/>
<child link="omnipicker_hand_narrow1_Link"/>
</joint>
<link name="omnipicker_hand_narrow2_Link">
<inertial>
<origin xyz="0.0088027 -0.007035 1.6424E-05" rpy="0 0 0"/>
<mass value="0.0040132"/>
<inertia ixx="1.0307E-07" ixy="5.7851E-08" ixz="9.5801E-11" iyy="1.1385E-07" iyz="-2.81E-11" izz="1.7009E-07"/>
</inertial>
<visual>
<origin xyz="0 0 0" rpy="0 0 0"/>
<geometry>
<mesh filename="package://xr_rm_teleop/models/rm75_omnipicker/meshes/omnipicker/narrow2_Link.STL"/>
</geometry>
<material name="">
<color rgba="0.75294 0.75294 0.75294 1"/>
</material>
</visual>
<collision>
<origin xyz="0 0 0" rpy="0 0 0"/>
<geometry>
<mesh filename="package://xr_rm_teleop/models/rm75_omnipicker/meshes/omnipicker/narrow2_Link.STL"/>
</geometry>
</collision>
</link>
<joint name="omnipicker_hand_narrow2_joint" type="fixed">
<origin xyz="0.030852 0.018551 0" rpy="0 0 0"/>
<parent link="omnipicker_hand_narrow1_Link"/>
<child link="omnipicker_hand_narrow2_Link"/>
</joint>
<link name="omnipicker_hand_narrow3_Link">
<inertial>
<origin xyz="0.012508 -0.0079729 9.4339E-05" rpy="0 0 0"/>
<mass value="0.018029"/>
<inertia ixx="1.1403E-06" ixy="5.5159E-07" ixz="-4.0096E-13" iyy="2.5704E-06" iyz="1.0951E-12" izz="2.3252E-06"/>
</inertial>
<visual>
<origin xyz="0 0 0" rpy="0 0 0"/>
<geometry>
<mesh filename="package://xr_rm_teleop/models/rm75_omnipicker/meshes/omnipicker/narrow3_Link.STL"/>
</geometry>
<material name="">
<color rgba="0.75294 0.75294 0.75294 1"/>
</material>
</visual>
<collision>
<origin xyz="0 0 0" rpy="0 0 0"/>
<geometry>
<mesh filename="package://xr_rm_teleop/models/rm75_omnipicker/meshes/omnipicker/narrow3_Link.STL"/>
</geometry>
</collision>
</link>
<joint name="omnipicker_hand_narrow3_joint" type="fixed">
<origin xyz="0.018118 -0.01574 0" rpy="0 0 0"/>
<parent link="omnipicker_hand_narrow2_Link"/>
<child link="omnipicker_hand_narrow3_Link"/>
</joint>
<link name="omnipicker_hand_narrow4_Link">
</link>
<joint name="omnipicker_hand_narrow4_joint" type="fixed">
<origin xyz="0 -0.0104 0" rpy="0 0 0"/>
<parent link="omnipicker_hand_narrow3_Link"/>
<child link="omnipicker_hand_narrow4_Link"/>
<axis xyz="0 0 1"/>
<limit lower="-3.14" upper="3.14" effort="0" velocity="0"/>
</joint>
<link name="omnipicker_hand_narrow_loop_Link">
<inertial>
<origin xyz="0.014869 -0.0036066 0.00029307" rpy="0 0 0"/>
<mass value="0.022591"/>
<inertia ixx="4.3916E-06" ixy="1.114E-07" ixz="-4.9655E-12" iyy="4.737E-06" iyz="1.7121E-11" izz="6.0445E-07"/>
</inertial>
<visual>
<origin xyz="0 0 0" rpy="0 0 0"/>
<geometry>
<mesh filename="package://xr_rm_teleop/models/rm75_omnipicker/meshes/omnipicker/narrow_loop_Link.STL"/>
</geometry>
<material name="">
<color rgba="0.75294 0.75294 0.75294 1"/>
</material>
</visual>
<collision>
<origin xyz="0 0 0" rpy="0 0 0"/>
<geometry>
<mesh filename="package://xr_rm_teleop/models/rm75_omnipicker/meshes/omnipicker/narrow_loop_Link.STL"/>
</geometry>
</collision>
</link>
<joint name="omnipicker_hand_narrow_loop_joint" type="fixed">
<origin xyz="0 -0.021633 0.07387" rpy="-2.9951 -1.5708 -0.15964"/>
<parent link="omnipicker_base_link"/>
<child link="omnipicker_hand_narrow_loop_Link"/>
</joint>
<link name="omnipicker_hand_wide1_Link">
<inertial>
<origin xyz="0.0095051 -0.0068479 6.8268E-05" rpy="0 0 0"/>
<mass value="0.025428"/>
<inertia ixx="1.9565E-06" ixy="4.2798E-07" ixz="2.3844E-10" iyy="2.3928E-06" iyz="-1.4454E-10" izz="1.5501E-06"/>
</inertial>
<visual>
<origin xyz="0 0 0" rpy="0 0 0"/>
<geometry>
<mesh filename="package://xr_rm_teleop/models/rm75_omnipicker/meshes/omnipicker/wide1_Link.STL"/>
</geometry>
<material name="">
<color rgba="0.75294 0.75294 0.75294 1"/>
</material>
</visual>
<collision>
<origin xyz="0 0 0" rpy="0 0 0"/>
<geometry>
<mesh filename="package://xr_rm_teleop/models/rm75_omnipicker/meshes/omnipicker/wide1_Link.STL"/>
</geometry>
</collision>
</link>
<joint name="omnipicker_hand_wide1_joint" type="fixed">
<origin xyz="0 0.0195 0.0565" rpy="-2.9951 -1.5708 -0.15964"/>
<parent link="omnipicker_base_link"/>
<child link="omnipicker_hand_wide1_Link"/>
</joint>
<link name="omnipicker_hand_wide2_Link">
<inertial>
<origin xyz="0.0088027 0.007035 -1.6424E-05" rpy="0 0 0"/>
<mass value="0.0040132"/>
<inertia ixx="1.0307E-07" ixy="-5.7851E-08" ixz="-9.58E-11" iyy="1.1385E-07" iyz="-2.81E-11" izz="1.7009E-07"/>
</inertial>
<visual>
<origin xyz="0 0 0" rpy="0 0 0"/>
<geometry>
<mesh filename="package://xr_rm_teleop/models/rm75_omnipicker/meshes/omnipicker/wide2_Link.STL"/>
</geometry>
<material name="">
<color rgba="0.75294 0.75294 0.75294 1"/>
</material>
</visual>
<collision>
<origin xyz="0 0 0" rpy="0 0 0"/>
<geometry>
<mesh filename="package://xr_rm_teleop/models/rm75_omnipicker/meshes/omnipicker/wide2_Link.STL"/>
</geometry>
</collision>
</link>
<joint name="omnipicker_hand_wide2_joint" type="fixed">
<origin xyz="0.030852 -0.018551 0" rpy="0 0 0"/>
<parent link="omnipicker_hand_wide1_Link"/>
<child link="omnipicker_hand_wide2_Link"/>
</joint>
<link name="omnipicker_hand_wide3_Link">
<inertial>
<origin xyz="0.016206 0.0094593 4.7668E-05" rpy="0 0 0"/>
<mass value="0.035835"/>
<inertia ixx="8.5056E-06" ixy="-1.1363E-06" ixz="-4.2908E-11" iyy="1.1235E-05" iyz="-2.9251E-11" izz="4.6309E-06"/>
</inertial>
<visual>
<origin xyz="0 0 0" rpy="0 0 0"/>
<geometry>
<mesh filename="package://xr_rm_teleop/models/rm75_omnipicker/meshes/omnipicker/wide3_Link.STL"/>
</geometry>
<material name="">
<color rgba="0.75294 0.75294 0.75294 1"/>
</material>
</visual>
<collision>
<origin xyz="0 0 0" rpy="0 0 0"/>
<geometry>
<mesh filename="package://xr_rm_teleop/models/rm75_omnipicker/meshes/omnipicker/wide3_Link.STL"/>
</geometry>
</collision>
</link>
<joint name="omnipicker_hand_wide3_joint" type="fixed">
<origin xyz="0.018118 0.01574 0" rpy="0 0 0"/>
<parent link="omnipicker_hand_wide2_Link"/>
<child link="omnipicker_hand_wide3_Link"/>
</joint>
<link name="omnipicker_hand_wide4_Link">
</link>
<joint name="omnipicker_hand_wide4_joint" type="fixed">
<origin xyz="0 0.0104 0" rpy="0 0 0"/>
<parent link="omnipicker_hand_wide3_Link"/>
<child link="omnipicker_hand_wide4_Link"/>
<axis xyz="0 0 1"/>
<limit lower="-3.14" upper="3.14" effort="0" velocity="0"/>
</joint>
<link name="omnipicker_hand_wide_loop_Link">
<inertial>
<origin xyz="0.016268 0.0040555 0.00030323" rpy="0 0 0"/>
<mass value="0.025142"/>
<inertia ixx="5.887E-06" ixy="-1.1234E-07" ixz="2.1954E-11" iyy="6.236E-06" iyz="-9.473E-12" izz="6.2389E-07"/>
</inertial>
<visual>
<origin xyz="0 0 0" rpy="0 0 0"/>
<geometry>
<mesh filename="package://xr_rm_teleop/models/rm75_omnipicker/meshes/omnipicker/wide_loop_Link.STL"/>
</geometry>
<material name="">
<color rgba="0.75294 0.75294 0.75294 1"/>
</material>
</visual>
<collision>
<origin xyz="0 0 0" rpy="0 0 0"/>
<geometry>
<mesh filename="package://xr_rm_teleop/models/rm75_omnipicker/meshes/omnipicker/wide_loop_Link.STL"/>
</geometry>
</collision>
</link>
<joint name="omnipicker_hand_wide_loop_joint" type="fixed">
<origin xyz="0 0.021633 0.07387" rpy="-2.9951 -1.5708 -0.15964"/>
<parent link="omnipicker_base_link"/>
<child link="omnipicker_hand_wide_loop_Link"/>
</joint>
<link name="omnipicker_mount_frame"/>
<joint name="omnipicker_base_to_mount_frame" type="fixed">
<origin xyz="0 0 0" rpy="0 0 0"/>
<parent link="omnipicker_base_link"/>
<child link="omnipicker_mount_frame"/>
</joint>
<link name="omnipicker_tcp"/>
<joint name="omnipicker_tcp_joint" type="fixed">
<parent link="omnipicker_base_link"/>
<child link="omnipicker_tcp"/>
<origin xyz="0 0 0.16" rpy="0 0 0"/>
</joint>
</robot>