Add Linkerbot URDF models for O6, G20/L20, and L6 hands.

This commit is contained in:
sunxianghui
2026-09-03 11:41:27 +08:00
commit f525985ff6
101 changed files with 16057 additions and 0 deletions
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,953 @@
<?xml version="1.0" encoding="utf-8"?>
<robot
name="linkerhand_l6v3.1_right">
<!-- 手掌基座,作为整只手的根链接 -->
<link
name="rh_hand_base_link">
<inertial>
<origin
xyz="0.0019900000 0.0009100000 0.0583810000"
rpy="0 0 0" />
<mass
value="0.4185" />
<inertia
ixx="0.0004998"
ixy="-1.2853e-05"
ixz="-8.317e-06"
iyy="0.0003567"
iyz="-1.0354e-05"
izz="0.0002301" />
</inertial>
<visual>
<origin
xyz="0 0 0"
rpy="0 0 0" />
<geometry>
<mesh
filename="meshes/hand_base_link.STL" />
</geometry>
<material
name="">
<color
rgba="0.796078431372549 0.823529411764706 0.937254901960784 1" />
</material>
</visual>
<collision>
<origin
xyz="0 0 0"
rpy="0 0 0" />
<geometry>
<mesh
filename="meshes/hand_base_link.STL" />
</geometry>
</collision>
</link>
<link
name="rh_thumb_metacarpals_base1">
<inertial>
<origin
xyz="0.0018663000 0.0066406000 0.0015330000"
rpy="0 0 0" />
<mass
value="0.01" />
<inertia
ixx="3.3724e-07"
ixy="-1.11e-07"
ixz="-3.6039e-08"
iyy="2.9457e-07"
iyz="-5.7181e-08"
izz="4.903e-07" />
</inertial>
<visual>
<origin
xyz="0 0 0"
rpy="0 0 0" />
<geometry>
<mesh
filename="meshes/thumb_metacarpals_base1.STL" />
</geometry>
<material
name="">
<color
rgba="0.796078431372549 0.823529411764706 0.937254901960784 1" />
</material>
</visual>
<collision>
<origin
xyz="0 0 0"
rpy="0 0 0" />
<geometry>
<mesh
filename="meshes/thumb_metacarpals_base1.STL" />
</geometry>
</collision>
</link>
<joint
name="rh_thumb_cmc_roll"
type="revolute">
<origin
xyz="0.0078133 0.030812 0.025678"
rpy="-0.0349069999759288 6.51804876738993e-09 0.00738597563689764" />
<parent
link="rh_hand_base_link" />
<child
link="rh_thumb_metacarpals_base1" />
<axis
xyz="0 0.034899 -0.99939" />
<limit
lower="0"
upper="1.12177324"
effort="0.588"
velocity="5.95" />
<dynamics damping="0.02" friction="0.05416667"/>
</joint>
<link
name="rh_thumb_metacarpals">
<inertial>
<origin
xyz="0.0076927091 -0.0859662185 0.0235283087"
rpy="0 0 0" />
<mass
value="0.065" />
<inertia
ixx="8.407e-06"
ixy="1.1338e-09"
ixz="1.1136e-08"
iyy="8.3899e-06"
iyz="-3.1171e-07"
izz="2.0091e-06" />
</inertial>
<visual>
<origin
xyz="0 0 0"
rpy="0 0 0" />
<geometry>
<mesh
filename="meshes/thumb_metacarpals.STL" />
</geometry>
<material
name="">
<color
rgba="0.796078431372549 0.823529411764706 0.937254901960784 1" />
</material>
</visual>
<collision>
<origin
xyz="0 0 0"
rpy="0 0 0" />
<geometry>
<mesh
filename="meshes/thumb_metacarpals.STL" />
</geometry>
</collision>
</link>
<joint
name="rh_thumb_cmc_pitch"
type="revolute">
<origin
xyz="0.0054997 0.013314 0.0032166"
rpy="-0.98568644 0.0136370000000001 -0.40121" />
<parent
link="rh_thumb_metacarpals_base1" />
<child
link="rh_thumb_metacarpals" />
<axis
xyz="1 0 0" />
<limit
lower="0"
upper="0.65673088"
effort="1.008"
velocity="3.47" />
<dynamics damping="0.02" friction="0.0375"/>
</joint>
<link
name="rh_thumb_distal">
<inertial>
<origin
xyz="0.0076927091 -0.0798662185 -0.0591716913"
rpy="0 0 0" />
<mass
value="0.018" />
<inertia
ixx="1.5546e-06"
ixy="-2.4423e-09"
ixz="2.8147e-09"
iyy="1.7108e-06"
iyz="7.2756e-08"
izz="9.1709e-07" />
</inertial>
<visual>
<origin
xyz="0 0 0"
rpy="0 0 0" />
<geometry>
<mesh
filename="meshes/thumb_distal.STL" />
</geometry>
<material
name="">
<color
rgba="0.796078431372549 0.823529411764706 0.937254901960784 1" />
</material>
</visual>
<collision>
<origin
xyz="0 0 0"
rpy="0 0 0" />
<geometry>
<mesh
filename="meshes/thumb_distal.STL" />
</geometry>
</collision>
</link>
<link
name="rh_thumb_tip">
<inertial>
<origin
xyz="0 0 0"
rpy="0 0 0" />
<mass
value="1e-06" />
<inertia
ixx="1e-09"
ixy="0"
ixz="0"
iyy="1e-09"
iyz="0"
izz="1e-09" />
</inertial>
</link>
<joint
name="rh_thumb_tip_fixed"
type="fixed">
<origin
xyz="0 -0.0035 0.026"
rpy="0 0 -1.5708" />
<parent
link="rh_thumb_distal" />
<child
link="rh_thumb_tip" />
</joint>
<joint
name="rh_thumb_dip"
type="revolute">
<origin
xyz="0 -0.0061 0.0827"
rpy="0 0 0" />
<parent
link="rh_thumb_metacarpals" />
<child
link="rh_thumb_distal" />
<axis
xyz="1 0 0" />
<limit
lower="0"
upper="0.963287"
effort="0"
velocity="1.7" />
<mimic
joint="rh_thumb_cmc_pitch"
multiplier="0.88524192477979"
offset="0" />
</joint>
<link
name="rh_index_proximal">
<inertial>
<origin
xyz="0.0017760000 0.0001100000 0.0125560000"
rpy="0 0 0" />
<mass
value="0.008553" />
<inertia
ixx="7.97543e-07"
ixy="1.275e-09"
ixz="1.38601e-07"
iyy="8.00499e-07"
iyz="-9.39e-10"
izz="3.57001e-07" />
</inertial>
<visual>
<origin
xyz="0 0 0"
rpy="0 0 0" />
<geometry>
<mesh
filename="meshes/index_proximal.STL" />
</geometry>
<material
name="">
<color
rgba="0.796078431372549 0.823529411764706 0.937254901960784 1" />
</material>
</visual>
<collision>
<origin
xyz="0 0 0"
rpy="0 0 0" />
<geometry>
<mesh
filename="meshes/index_proximal.STL" />
</geometry>
</collision>
</link>
<joint
name="rh_index_mcp_pitch"
type="revolute">
<origin
xyz="-0.00066821 0.033467 0.11622"
rpy="-0.087266 0 0" />
<parent
link="rh_hand_base_link" />
<child
link="rh_index_proximal" />
<axis
xyz="0 1 0" />
<limit
lower="0"
upper="1.23208487"
effort="0.574"
velocity="6.10" />
<dynamics damping="0.01" friction="0.04"/>
</joint>
<link
name="rh_index_distal">
<inertial>
<origin
xyz="0.0134000000 -0.0022620000 0.0169920000"
rpy="0 0 0" />
<mass
value="0.018408" />
<inertia
ixx="2.488712e-06"
ixy="-8.249e-09"
ixz="-1.523059e-06"
iyy="3.723754e-06"
iyz="-1.4019e-08"
izz="1.813582e-06" />
</inertial>
<visual>
<origin
xyz="0 0 0"
rpy="0 0 0" />
<geometry>
<mesh
filename="meshes/index_distal.STL" />
</geometry>
<material
name="">
<color
rgba="0.796078431372549 0.823529411764706 0.937254901960784 1" />
</material>
</visual>
<collision>
<origin
xyz="0 0 0"
rpy="0 0 0" />
<geometry>
<mesh
filename="meshes/index_distal.STL" />
</geometry>
</collision>
</link>
<link
name="rh_index_tip">
<inertial>
<origin
xyz="0 0 0"
rpy="0 0 0" />
<mass
value="1e-06" />
<inertia
ixx="1e-09"
ixy="0"
ixz="0"
iyy="1e-09"
iyz="0"
izz="1e-09" />
</inertial>
</link>
<joint
name="rh_index_tip_fixed"
type="fixed">
<origin
xyz="0.0341 0 0.034"
rpy="0 0 0" />
<parent
link="rh_index_distal" />
<child
link="rh_index_tip" />
</joint>
<joint
name="rh_index_dip"
type="revolute">
<origin
xyz="0.0009359 0 0.028002"
rpy="0 0 0" />
<parent
link="rh_index_proximal" />
<child
link="rh_index_distal" />
<axis
xyz="0 1 0" />
<limit
lower="0"
upper="1.277039"
effort="0"
velocity="3.1" />
<mimic
joint="rh_index_mcp_pitch"
multiplier="0.923280528556446"
offset="0" />
</joint>
<link
name="rh_middle_proximal">
<inertial>
<origin
xyz="0.0017760000 0.0001100000 0.0125560000"
rpy="0 0 0" />
<mass
value="0.008553" />
<inertia
ixx="7.97543e-07"
ixy="1.275e-09"
ixz="1.38601e-07"
iyy="8.00499e-07"
iyz="-9.39e-10"
izz="3.57001e-07" />
</inertial>
<visual>
<origin
xyz="0 0 0"
rpy="0 0 0" />
<geometry>
<mesh
filename="meshes/middle_proximal.STL" />
</geometry>
<material
name="">
<color
rgba="0.796078431372549 0.823529411764706 0.937254901960784 1" />
</material>
</visual>
<collision>
<origin
xyz="0 0 0"
rpy="0 0 0" />
<geometry>
<mesh
filename="meshes/middle_proximal.STL" />
</geometry>
</collision>
</link>
<joint
name="rh_middle_mcp_pitch"
type="revolute">
<origin
xyz="-0.00066821 0.0134013 0.12272"
rpy="-0.034907 0 0" />
<parent
link="rh_hand_base_link" />
<child
link="rh_middle_proximal" />
<axis
xyz="0 1 0" />
<limit
lower="0"
upper="1.23208487"
effort="0.574"
velocity="6.10" />
<dynamics damping="0.01" friction="0.02708333"/>
</joint>
<link
name="rh_middle_distal">
<inertial>
<origin
xyz="0.0134000000 -0.0022620000 0.0169920000"
rpy="0 0 0" />
<mass
value="0.018408" />
<inertia
ixx="2.488712e-06"
ixy="-8.249e-09"
ixz="-1.523059e-06"
iyy="3.723754e-06"
iyz="-1.4019e-08"
izz="1.813582e-06" />
</inertial>
<visual>
<origin
xyz="0 0 0"
rpy="0 0 0" />
<geometry>
<mesh
filename="meshes/middle_distal.STL" />
</geometry>
<material
name="">
<color
rgba="0.796078431372549 0.823529411764706 0.937254901960784 1" />
</material>
</visual>
<collision>
<origin
xyz="0 0 0"
rpy="0 0 0" />
<geometry>
<mesh
filename="meshes/middle_distal.STL" />
</geometry>
</collision>
</link>
<link
name="rh_middle_tip">
<inertial>
<origin
xyz="0 0 0"
rpy="0 0 0" />
<mass
value="1e-06" />
<inertia
ixx="1e-09"
ixy="0"
ixz="0"
iyy="1e-09"
iyz="0"
izz="1e-09" />
</inertial>
</link>
<joint
name="rh_middle_tip_fixed"
type="fixed">
<origin
xyz="0.0341 0 0.034"
rpy="0 0 0" />
<parent
link="rh_middle_distal" />
<child
link="rh_middle_tip" />
</joint>
<joint
name="rh_middle_dip"
type="revolute">
<origin
xyz="0.0009359 0 0.028002"
rpy="0 0 0" />
<parent
link="rh_middle_proximal" />
<child
link="rh_middle_distal" />
<axis
xyz="0 1 0" />
<limit
lower="0"
upper="1.277039"
effort="0"
velocity="3.1" />
<mimic
joint="rh_middle_mcp_pitch"
multiplier="0.923280528556446"
offset="0" />
</joint>
<link
name="rh_ring_proximal">
<inertial>
<origin
xyz="0.0017760000 0.0001100000 0.0125560000"
rpy="0 0 0" />
<mass
value="0.008553" />
<inertia
ixx="7.97543e-07"
ixy="1.275e-09"
ixz="1.38601e-07"
iyy="8.00499e-07"
iyz="-9.39e-10"
izz="3.57001e-07" />
</inertial>
<visual>
<origin
xyz="0 0 0"
rpy="0 0 0" />
<geometry>
<mesh
filename="meshes/ring_proximal.STL" />
</geometry>
<material
name="">
<color
rgba="0.796078431372549 0.823529411764706 0.937254901960784 1" />
</material>
</visual>
<collision>
<origin
xyz="0 0 0"
rpy="0 0 0" />
<geometry>
<mesh
filename="meshes/ring_proximal.STL" />
</geometry>
</collision>
</link>
<joint
name="rh_ring_mcp_pitch"
type="revolute">
<origin
xyz="-0.00067368 -0.006217 0.11872"
rpy="0.017453 0 0" />
<parent
link="rh_hand_base_link" />
<child
link="rh_ring_proximal" />
<axis
xyz="0 1 0" />
<limit
lower="0"
upper="1.23208487"
effort="0.574"
velocity="6.10" />
<dynamics damping="0.01" friction="0.02291667"/>
</joint>
<link
name="rh_ring_distal">
<inertial>
<origin
xyz="0.0134000000 -0.0022620000 0.0169920000"
rpy="0 0 0" />
<mass
value="0.018408" />
<inertia
ixx="2.488712e-06"
ixy="-8.249e-09"
ixz="-1.523059e-06"
iyy="3.723754e-06"
iyz="-1.4019e-08"
izz="1.813582e-06" />
</inertial>
<visual>
<origin
xyz="0 0 0"
rpy="0 0 0" />
<geometry>
<mesh
filename="meshes/ring_distal.STL" />
</geometry>
<material
name="">
<color
rgba="0.796078431372549 0.823529411764706 0.937254901960784 1" />
</material>
</visual>
<collision>
<origin
xyz="0 0 0"
rpy="0 0 0" />
<geometry>
<mesh
filename="meshes/ring_distal.STL" />
</geometry>
</collision>
</link>
<link
name="rh_ring_tip">
<inertial>
<origin
xyz="0 0 0"
rpy="0 0 0" />
<mass
value="1e-06" />
<inertia
ixx="1e-09"
ixy="0"
ixz="0"
iyy="1e-09"
iyz="0"
izz="1e-09" />
</inertial>
</link>
<joint
name="rh_ring_tip_fixed"
type="fixed">
<origin
xyz="0.0341 0 0.034"
rpy="0 0 0" />
<parent
link="rh_ring_distal" />
<child
link="rh_ring_tip" />
</joint>
<joint
name="rh_ring_dip"
type="revolute">
<origin
xyz="0.0009359 0 0.028002"
rpy="0 0 0" />
<parent
link="rh_ring_proximal" />
<child
link="rh_ring_distal" />
<axis
xyz="0 1 0" />
<limit
lower="0"
upper="1.277039"
effort="0"
velocity="3.1" />
<mimic
joint="rh_ring_mcp_pitch"
multiplier="0.923280528556446"
offset="0" />
</joint>
<link
name="rh_pinky_proximal">
<inertial>
<origin
xyz="0.0017760000 0.0001100000 0.0125560000"
rpy="0 0 0" />
<mass
value="0.008553" />
<inertia
ixx="7.97543e-07"
ixy="1.275e-09"
ixz="1.38601e-07"
iyy="8.00499e-07"
iyz="-9.39e-10"
izz="3.57001e-07" />
</inertial>
<visual>
<origin
xyz="0 0 0"
rpy="0 0 0" />
<geometry>
<mesh
filename="meshes/pinky_proximal.STL" />
</geometry>
<material
name="">
<color
rgba="0.796078431372549 0.823529411764706 0.937254901960784 1" />
</material>
</visual>
<collision>
<origin
xyz="0 0 0"
rpy="0 0 0" />
<geometry>
<mesh
filename="meshes/pinky_proximal.STL" />
</geometry>
</collision>
</link>
<joint
name="rh_pinky_mcp_pitch"
type="revolute">
<origin
xyz="-0.00067852 -0.025314 0.11474"
rpy="0.05236 0 0" />
<parent
link="rh_hand_base_link" />
<child
link="rh_pinky_proximal" />
<axis
xyz="0 1 0" />
<limit
lower="0"
upper="1.23208487"
effort="0.574"
velocity="6.10" />
<dynamics damping="0.01" friction="0.01"/>
</joint>
<link
name="rh_pinky_distal">
<inertial>
<origin
xyz="0.0134000000 -0.0022620000 0.0169920000"
rpy="0 0 0" />
<mass
value="0.018408" />
<inertia
ixx="2.488712e-06"
ixy="-8.249e-09"
ixz="-1.523059e-06"
iyy="3.723754e-06"
iyz="-1.4019e-08"
izz="1.813582e-06" />
</inertial>
<visual>
<origin
xyz="0 0 0"
rpy="0 0 0" />
<geometry>
<mesh
filename="meshes/pinky_distal.STL" />
</geometry>
<material
name="">
<color
rgba="0.796078431372549 0.823529411764706 0.937254901960784 1" />
</material>
</visual>
<collision>
<origin
xyz="0 0 0"
rpy="0 0 0" />
<geometry>
<mesh
filename="meshes/pinky_distal.STL" />
</geometry>
</collision>
</link>
<link
name="rh_pinky_tip">
<inertial>
<origin
xyz="0 0 0"
rpy="0 0 0" />
<mass
value="1e-06" />
<inertia
ixx="1e-09"
ixy="0"
ixz="0"
iyy="1e-09"
iyz="0"
izz="1e-09" />
</inertial>
</link>
<joint
name="rh_pinky_tip_fixed"
type="fixed">
<origin
xyz="0.0341 0 0.034"
rpy="0 0 0" />
<parent
link="rh_pinky_distal" />
<child
link="rh_pinky_tip" />
</joint>
<joint
name="rh_pinky_dip"
type="revolute">
<origin
xyz="0.0009359 0 0.028002"
rpy="0 0 0" />
<parent
link="rh_pinky_proximal" />
<child
link="rh_pinky_distal" />
<axis
xyz="0 1 0" />
<limit
lower="0"
upper="1.277039"
effort="0"
velocity="3.1" />
<mimic
joint="rh_pinky_mcp_pitch"
multiplier="0.923280528556446"
offset="0" />
</joint>
<transmission name="trans_thumb_cmc_roll">
<type>transmission_interface/SimpleTransmission</type>
<joint name="rh_thumb_cmc_roll">
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
</joint>
<actuator name="motor_thumb_cmc_roll">
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
<mechanicalReduction>0.0084</mechanicalReduction>
</actuator>
</transmission>
<transmission name="trans_index_mcp_pitch">
<type>transmission_interface/SimpleTransmission</type>
<joint name="rh_index_mcp_pitch">
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
</joint>
<actuator name="motor_index_mcp_pitch">
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
<mechanicalReduction>0.0082</mechanicalReduction>
</actuator>
</transmission>
<transmission name="trans_middle_mcp_pitch">
<type>transmission_interface/SimpleTransmission</type>
<joint name="rh_middle_mcp_pitch">
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
</joint>
<actuator name="motor_middle_mcp_pitch">
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
<mechanicalReduction>0.0082</mechanicalReduction>
</actuator>
</transmission>
<transmission name="trans_ring_mcp_pitch">
<type>transmission_interface/SimpleTransmission</type>
<joint name="rh_ring_mcp_pitch">
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
</joint>
<actuator name="motor_ring_mcp_pitch">
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
<mechanicalReduction>0.0082</mechanicalReduction>
</actuator>
</transmission>
<transmission name="trans_pinky_mcp_pitch">
<type>transmission_interface/SimpleTransmission</type>
<joint name="rh_pinky_mcp_pitch">
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
</joint>
<actuator name="motor_pinky_mcp_pitch">
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
<mechanicalReduction>0.0082</mechanicalReduction>
</actuator>
</transmission>
<transmission name="trans_thumb_cmc_pitch">
<type>transmission_interface/SimpleTransmission</type>
<joint name="rh_thumb_cmc_pitch">
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
</joint>
<actuator name="motor_thumb_cmc_pitch">
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
<mechanicalReduction>0.0144</mechanicalReduction>
</actuator>
</transmission>
<mujoco>
<compiler meshdir="meshes/" balanceinertia="true" discardvisual="false"/>
<default>
<joint armature="3.4707e-08" damping="5.0" frictionloss="0.5"/>
</default>
<equality>
<joint name="rh_couple_index" joint1="rh_index_dip" joint2="rh_index_mcp_pitch" polycoef="0 1.17646620703189 -0.184902818001199 0 0 0"/>
<joint name="rh_couple_middle" joint1="rh_middle_dip" joint2="rh_middle_mcp_pitch" polycoef="0 1.17646620703189 -0.184902818001199 0 0 0"/>
<joint name="rh_couple_ring" joint1="rh_ring_dip" joint2="rh_ring_mcp_pitch" polycoef="0 1.17646620703189 -0.184902818001199 0 0 0"/>
<joint name="rh_couple_pinky" joint1="rh_pinky_dip" joint2="rh_pinky_mcp_pitch" polycoef="0 1.17646620703189 -0.184902818001199 0 0 0"/>
<joint name="rh_couple_thumb" joint1="rh_thumb_dip" joint2="rh_thumb_cmc_pitch" polycoef="0 0.88524192477979 0 0 0 0"/>
</equality>
</mujoco>
<gazebo reference="rh_hand_base_link">
<mu1>1.5</mu1>
<mu2>1.5</mu2>
<selfCollide>true</selfCollide>
</gazebo>
<gazebo reference="rh_thumb_distal">
<mu1>1.5</mu1>
<mu2>1.5</mu2>
<selfCollide>true</selfCollide>
</gazebo>
<gazebo reference="rh_index_distal">
<mu1>1.1</mu1>
<mu2>1.1</mu2>
<selfCollide>true</selfCollide>
</gazebo>
<gazebo reference="rh_middle_distal">
<mu1>1.1</mu1>
<mu2>1.1</mu2>
<selfCollide>true</selfCollide>
</gazebo>
<gazebo reference="rh_ring_distal">
<mu1>1.1</mu1>
<mu2>1.1</mu2>
<selfCollide>true</selfCollide>
</gazebo>
<gazebo reference="rh_pinky_distal">
<mu1>1.1</mu1>
<mu2>1.1</mu2>
<selfCollide>true</selfCollide>
</gazebo>
</robot>
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.