Files
cadSet/text-to-cad/models/robots/tom/v2/tom.urdf
T
2026-07-22 19:38:36 +08:00

296 lines
11 KiB
XML

<?xml version="1.0"?>
<!-- cadpy:sourcePath=tom.py -->
<!-- cadpy:sourceHash=c0a371705415e81db5ea479d394de2370143c3e5bdba68d76ad6ddfcf4ea50b2 -->
<robot name="tom_v2">
<!-- Generated by models/robots/tom/v2/tom.py. -->
<!-- Jointed v2 URDF; all visual meshes are 3MF in millimeters with scale 0.001 0.001 0.001. Link inertials use Feetech STS3250 74.5 g / STS3215 55 g masses and 5052 aluminum density for plates/standoffs; gripper inertials use shared Robonine mesh-derived estimates when included. Joint efforts use 50/30 kg-cm stall torque converted to N-m for arm joints; joint velocities use Feetech no-load speed at 12 V converted to rad/s. -->
<material name="aluminum_5052">
<color rgba="0.643137 0.670588 0.701961 1" />
</material>
<material name="dark_servo">
<color rgba="0.168627 0.184314 0.2 1" />
</material>
<material name="silver_aluminum_alloy">
<color rgba="0.78 0.8 0.82 1" />
</material>
<link name="base_footprint" />
<link name="base_link">
<inertial>
<origin xyz="-0.013353431 0.018724832 -0.000001429" rpy="0 0 0" />
<mass value="0.084740622" />
<inertia ixx="0.000017132" ixy="0.000001016" ixz="0" iyy="0.000020565" iyz="0" izz="0.000028114" />
</inertial>
<visual>
<origin xyz="0 0.029432 0" rpy="0 0 0" />
<geometry>
<mesh filename="3MF/sts3250.3mf" scale="0.001 0.001 0.001" />
</geometry>
<material name="dark_servo" />
</visual>
<visual>
<origin xyz="0 0.0318322 0" rpy="0 0 0" />
<geometry>
<mesh filename="3MF/base_plate.3mf" scale="0.001 0.001 0.001" />
</geometry>
<material name="aluminum_5052" />
</visual>
</link>
<link name="shoulder_yaw_link">
<inertial>
<origin xyz="-0.053955865 0.001259017 -0.000001498" rpy="0 0 0" />
<mass value="0.08083064" />
<inertia ixx="0.000013458" ixy="0.000000169" ixz="0" iyy="0.000023608" iyz="0" izz="0.000028834" />
</inertial>
<visual>
<origin xyz="-0.042540999 0.0096 0" rpy="0 0 0" />
<geometry>
<mesh filename="3MF/sts3250.3mf" scale="0.001 0.001 0.001" />
</geometry>
<material name="dark_servo" />
</visual>
<visual>
<origin xyz="-0.042540999 0.0096 0" rpy="0 0 0" />
<geometry>
<mesh filename="3MF/servo_end_mount.3mf" scale="0.001 0.001 0.001" />
</geometry>
<material name="aluminum_5052" />
</visual>
</link>
<link name="shoulder_pitch_link">
<inertial>
<origin xyz="0 0 -0.018247693" rpy="0 0 0" />
<mass value="0.007398382" />
<inertia ixx="0.000001532" ixy="0" ixz="0" iyy="0.000000827" iyz="0" izz="0.000001249" />
</inertial>
<visual>
<origin xyz="0 0.0091 -0.0265" rpy="0 0 0" />
<geometry>
<mesh filename="3MF/servo_horn_yoke.3mf" scale="0.001 0.001 0.001" />
</geometry>
<material name="aluminum_5052" />
</visual>
</link>
<link name="shoulder_roll_link">
<inertial>
<origin xyz="-0.007012151 0 0.079974877" rpy="0 0 0" />
<mass value="0.190640174" />
<inertia ixx="0.00101799" ixy="0.000000001" ixz="-0.000061431" iyy="0.001033248" iyz="0.000000019" izz="0.000054962" />
</inertial>
<visual>
<origin xyz="-0.0255 0 -0.0091" rpy="-1.570796327 0 3.141592654" />
<geometry>
<mesh filename="3MF/sts3250.3mf" scale="0.001 0.001 0.001" />
</geometry>
<material name="dark_servo" />
</visual>
<visual>
<origin xyz="0 0 0.0165" rpy="0 0 3.141592654" />
<geometry>
<mesh filename="3MF/link_bracket_right.3mf" scale="0.001 0.001 0.001" />
</geometry>
<material name="aluminum_5052" />
</visual>
<visual>
<origin xyz="0 0 0.0165" rpy="0 0 3.141592654" />
<geometry>
<mesh filename="3MF/link_bracket_left.3mf" scale="0.001 0.001 0.001" />
</geometry>
<material name="aluminum_5052" />
</visual>
<visual>
<origin xyz="-0.011406392 0 0.065639414" rpy="0 0 3.141592654" />
<geometry>
<mesh filename="3MF/link_standoff_m3_35.3mf" scale="0.001 0.001 0.001" />
</geometry>
<material name="silver_aluminum_alloy" />
</visual>
<visual>
<origin xyz="-0.027135464 0 0.065639414" rpy="0 0 3.141592654" />
<geometry>
<mesh filename="3MF/link_standoff_m3_35.3mf" scale="0.001 0.001 0.001" />
</geometry>
<material name="silver_aluminum_alloy" />
</visual>
<visual>
<origin xyz="0.009131584 0 0.113691096" rpy="0 0 3.141592654" />
<geometry>
<mesh filename="3MF/link_standoff_m3_35.3mf" scale="0.001 0.001 0.001" />
</geometry>
<material name="silver_aluminum_alloy" />
</visual>
<visual>
<origin xyz="-0.006006049 0 0.113691096" rpy="0 0 3.141592654" />
<geometry>
<mesh filename="3MF/link_standoff_m3_35.3mf" scale="0.001 0.001 0.001" />
</geometry>
<material name="silver_aluminum_alloy" />
</visual>
<visual>
<origin xyz="-0.0091 0 0.141" rpy="0 1.570796327 1.570796327" />
<geometry>
<mesh filename="3MF/sts3250.3mf" scale="0.001 0.001 0.001" />
</geometry>
<material name="dark_servo" />
</visual>
</link>
<link name="elbow_pitch_link">
<inertial>
<origin xyz="0 0 -0.018247693" rpy="0 0 0" />
<mass value="0.007398382" />
<inertia ixx="0.000001532" ixy="0" ixz="0" iyy="0.000000827" iyz="0" izz="0.000001249" />
</inertial>
<visual>
<origin xyz="0 0.0091 -0.0265" rpy="0 0 0" />
<geometry>
<mesh filename="3MF/servo_horn_yoke.3mf" scale="0.001 0.001 0.001" />
</geometry>
<material name="aluminum_5052" />
</visual>
</link>
<link name="elbow_roll_link">
<inertial>
<origin xyz="-0.008234046 0 0.079714101" rpy="0 0 0" />
<mass value="0.151640174" />
<inertia ixx="0.000741394" ixy="0.000000273" ixz="-0.000060941" iyy="0.00075431" iyz="0.000002857" izz="0.000048678" />
</inertial>
<visual>
<origin xyz="-0.0255 0 -0.0091" rpy="-1.570796327 0 3.141592654" />
<geometry>
<mesh filename="3MF/sts3215.3mf" scale="0.001 0.001 0.001" />
</geometry>
<material name="dark_servo" />
</visual>
<visual>
<origin xyz="0 0 0.0165" rpy="0 0 3.141592654" />
<geometry>
<mesh filename="3MF/link_bracket_right.3mf" scale="0.001 0.001 0.001" />
</geometry>
<material name="aluminum_5052" />
</visual>
<visual>
<origin xyz="0 0 0.0165" rpy="0 0 3.141592654" />
<geometry>
<mesh filename="3MF/link_bracket_left.3mf" scale="0.001 0.001 0.001" />
</geometry>
<material name="aluminum_5052" />
</visual>
<visual>
<origin xyz="-0.011406392 0 0.065639414" rpy="0 0 3.141592654" />
<geometry>
<mesh filename="3MF/link_standoff_m3_35.3mf" scale="0.001 0.001 0.001" />
</geometry>
<material name="silver_aluminum_alloy" />
</visual>
<visual>
<origin xyz="-0.027135464 0 0.065639414" rpy="0 0 3.141592654" />
<geometry>
<mesh filename="3MF/link_standoff_m3_35.3mf" scale="0.001 0.001 0.001" />
</geometry>
<material name="silver_aluminum_alloy" />
</visual>
<visual>
<origin xyz="0.009131584 0 0.113691096" rpy="0 0 3.141592654" />
<geometry>
<mesh filename="3MF/link_standoff_m3_35.3mf" scale="0.001 0.001 0.001" />
</geometry>
<material name="silver_aluminum_alloy" />
</visual>
<visual>
<origin xyz="-0.006006049 0 0.113691096" rpy="0 0 3.141592654" />
<geometry>
<mesh filename="3MF/link_standoff_m3_35.3mf" scale="0.001 0.001 0.001" />
</geometry>
<material name="silver_aluminum_alloy" />
</visual>
<visual>
<origin xyz="-0.0091 0 0.141" rpy="0 1.570796327 1.570796327" />
<geometry>
<mesh filename="3MF/sts3215.3mf" scale="0.001 0.001 0.001" />
</geometry>
<material name="dark_servo" />
</visual>
</link>
<link name="wrist_pitch_link">
<inertial>
<origin xyz="0 0 -0.018247693" rpy="0 0 0" />
<mass value="0.007398382" />
<inertia ixx="0.000001532" ixy="0" ixz="0" iyy="0.000000827" iyz="0" izz="0.000001249" />
</inertial>
<visual>
<origin xyz="0 0.0091 -0.0265" rpy="0 0 0" />
<geometry>
<mesh filename="3MF/servo_horn_yoke.3mf" scale="0.001 0.001 0.001" />
</geometry>
<material name="aluminum_5052" />
</visual>
</link>
<link name="wrist_roll_link">
<inertial>
<origin xyz="-0.014792892 -0.000341769 0.000259841" rpy="0 0 0" />
<mass value="0.055" />
<inertia ixx="0.000009213" ixy="0" ixz="0" iyy="0.000015785" iyz="0" izz="0.000012176" />
</inertial>
<visual>
<origin xyz="-0.0255 0 0.0091" rpy="1.570796327 0 3.141592653" />
<geometry>
<mesh filename="3MF/sts3215.3mf" scale="0.001 0.001 0.001" />
</geometry>
<material name="dark_servo" />
</visual>
</link>
<joint name="base_footprint_to_base_link" type="fixed">
<parent link="base_footprint" />
<child link="base_link" />
<origin xyz="0.014635742 0 0" rpy="1.570796327 0 0" />
</joint>
<joint name="base_yaw" type="continuous">
<parent link="base_link" />
<child link="shoulder_yaw_link" />
<origin xyz="-0.0255 0.020332 0" rpy="0 0 -1.570796327" />
<axis xyz="-1 0 0" />
<limit effort="4.903325" velocity="7.873665798" />
</joint>
<joint name="shoulder_pitch" type="revolute">
<parent link="shoulder_yaw_link" />
<child link="shoulder_pitch_link" />
<origin xyz="-0.068040999 0.0005 0" rpy="0 1.570796327 0" />
<axis xyz="0 1 0" />
<limit lower="-2.356194490" upper="2.356194490" effort="4.903325" velocity="7.873665798" />
</joint>
<joint name="shoulder_roll" type="continuous">
<parent link="shoulder_pitch_link" />
<child link="shoulder_roll_link" />
<origin xyz="0 0 -0.0448" rpy="3.141592654 0 1.570796327" />
<axis xyz="0 0 -1" />
<limit effort="4.903325" velocity="7.873665798" />
</joint>
<joint name="elbow_pitch" type="revolute">
<parent link="shoulder_roll_link" />
<child link="elbow_pitch_link" />
<origin xyz="0 0 0.1665" rpy="3.141592654 0 1.570796327" />
<axis xyz="0 -1 0" />
<limit lower="-2.356194490" upper="2.356194490" effort="4.903325" velocity="7.873665798" />
</joint>
<joint name="elbow_roll" type="continuous">
<parent link="elbow_pitch_link" />
<child link="elbow_roll_link" />
<origin xyz="0 0 -0.0448" rpy="3.141592654 0 1.570796327" />
<axis xyz="0 0 -1" />
<limit effort="2.941995" velocity="4.717106086" />
</joint>
<joint name="wrist_pitch" type="revolute">
<parent link="elbow_roll_link" />
<child link="wrist_pitch_link" />
<origin xyz="0 0 0.1665" rpy="-3.141592654 0 1.570796327" />
<axis xyz="0 -1 0" />
<limit lower="-2.356194490" upper="2.356194490" effort="2.941995" velocity="4.717106086" />
</joint>
<joint name="wrist_roll" type="continuous">
<parent link="wrist_pitch_link" />
<child link="wrist_roll_link" />
<origin xyz="0 0 -0.0448" rpy="0 0 1.570796327" />
<axis xyz="0 0 1" />
<limit effort="2.941995" velocity="4.717106086" />
</joint>
</robot>