add articulation & robotiq_2f85 urdf

This commit is contained in:
2025-10-21 19:57:42 +08:00
parent 65a39a4994
commit 6f43878922
10 changed files with 572 additions and 8413 deletions

View File

@@ -0,0 +1,531 @@
<?xml version="1.0" ?>
<robot name="panda" xmlns:xacro="http://www.ros.org/wiki/xacro">
<link name="base_link"/>
<joint name="panda_fixed" type="fixed">
<origin rpy="0 0 0.0" xyz="0 0 0.0"/>
<parent link="base_link"/>
<child link="panda_link0"/>
<axis xyz="0 0 0"/>
</joint>
<link name="panda_link0">
<visual>
<geometry>
<mesh filename="franka_meshes/visual/link0.dae"/>
</geometry>
</visual>
<collision>
<geometry>
<mesh filename="franka_meshes/collision/link0.obj"/>
</geometry>
</collision>
</link>
<link name="panda_link1">
<visual>
<geometry>
<mesh filename="franka_meshes/visual/link1.dae"/>
</geometry>
</visual>
<collision>
<geometry>
<mesh filename="franka_meshes/collision/link1.obj"/>
</geometry>
</collision>
<inertial>
<origin rpy="0 0 0" xyz="0.00033 -0.02204 -0.04762"/>
<mass value="2.797"/>
<inertia ixx="0.0156" ixy="0.0" ixz="0.0" iyy="0.01439" iyz="-0.0024" izz="0.005"/>
</inertial>
</link>
<joint name="panda_joint1" type="revolute">
<safety_controller k_position="100.0" k_velocity="40.0" soft_lower_limit="-2.8973" soft_upper_limit="2.8973"/>
<origin rpy="0 0 0" xyz="0 0 0.333"/>
<parent link="panda_link0"/>
<child link="panda_link1"/>
<axis xyz="0 0 1"/>
<dynamics damping="10.0"/>
<limit effort="87" lower="-2.8973" upper="2.8973" velocity="2.1750"/>
</joint>
<link name="panda_link2">
<visual>
<geometry>
<mesh filename="franka_meshes/visual/link2.dae"/>
</geometry>
</visual>
<collision>
<geometry>
<mesh filename="franka_meshes/collision/link2.obj"/>
</geometry>
</collision>
<inertial>
<origin rpy="0 0 0" xyz="0.00038 -0.09211 0.01908"/>
<mass value="2.542"/>
<inertia ixx="0.0166" ixy="0.0" ixz="0.0" iyy="0.0046" iyz="0.0035" izz="0.015"/>
</inertial>
</link>
<joint name="panda_joint2" type="revolute">
<safety_controller k_position="100.0" k_velocity="40.0" soft_lower_limit="-1.7628" soft_upper_limit="1.7628"/>
<origin rpy="-1.57079632679 0 0" xyz="0 0 0"/>
<parent link="panda_link1"/>
<child link="panda_link2"/>
<axis xyz="0 0 1"/>
<dynamics damping="10.0"/>
<limit effort="87" lower="-1.7628" upper="1.7628" velocity="2.1750"/>
</joint>
<link name="panda_link3">
<visual>
<geometry>
<mesh filename="franka_meshes/visual/link3.dae"/>
</geometry>
</visual>
<collision>
<geometry>
<mesh filename="franka_meshes/collision/link3.obj"/>
</geometry>
</collision>
<inertial>
<origin rpy="0 0 0" xyz="0.05152 0.01696 -0.02971"/>
<mass value="2.2513"/>
<inertia ixx="0.006" ixy="0.009" ixz="0.003" iyy="0.0086" iyz="0.009" izz="0.0065"/>
</inertial>
</link>
<joint name="panda_joint3" type="revolute">
<safety_controller k_position="100.0" k_velocity="40.0" soft_lower_limit="-2.8973" soft_upper_limit="2.8973"/>
<origin rpy="1.57079632679 0 0" xyz="0 -0.316 0"/>
<parent link="panda_link2"/>
<child link="panda_link3"/>
<axis xyz="0 0 1"/>
<dynamics damping="10.0"/>
<limit effort="87" lower="-2.8973" upper="2.8973" velocity="2.1750"/>
</joint>
<link name="panda_link4">
<visual>
<geometry>
<mesh filename="franka_meshes/visual/link4.dae"/>
</geometry>
</visual>
<collision>
<geometry>
<mesh filename="franka_meshes/collision/link4.obj"/>
</geometry>
</collision>
<inertial>
<origin rpy="0 0 0" xyz="-0.05113 0.05825 0.01698"/>
<mass value="2.2037"/>
<inertia ixx="0.0156" ixy="0.0" ixz="0.0" iyy="0.01439" iyz="-0.0024" izz="0.005"/>
</inertial>
</link>
<joint name="panda_joint4" type="revolute">
<safety_controller k_position="100.0" k_velocity="40.0" soft_lower_limit="-3.0718" soft_upper_limit="-0.0698"/>
<origin rpy="1.57079632679 0 0" xyz="0.0825 0 0"/>
<parent link="panda_link3"/>
<child link="panda_link4"/>
<axis xyz="0 0 1"/>
<dynamics damping="10.0"/>
<limit effort="87" lower="-3.0718" upper="-0.0698" velocity="2.1750"/>
<!-- something is weird with this joint limit config
<dynamics damping="10.0"/>
<limit effort="87" lower="-3.0" upper="0.087" velocity="2.1750"/> -->
</joint>
<link name="panda_link5">
<visual>
<geometry>
<mesh filename="franka_meshes/visual/link5.dae"/>
</geometry>
</visual>
<collision>
<geometry>
<mesh filename="franka_meshes/collision/link5.obj"/>
</geometry>
</collision>
<inertial>
<origin rpy="0 0 0" xyz="-0.00005 0.03730 -0.09280"/>
<mass value="2.2855"/>
<inertia ixx="0.02297014781" ixy="0.0" ixz="0.0" iyy="0.02095060919" iyz="0.00382345782" izz="0.00430606551"/>
</inertial>
</link>
<joint name="panda_joint5" type="revolute">
<safety_controller k_position="100.0" k_velocity="40.0" soft_lower_limit="-2.8973" soft_upper_limit="2.8973"/>
<origin rpy="-1.57079632679 0 0" xyz="-0.0825 0.384 0"/>
<parent link="panda_link4"/>
<child link="panda_link5"/>
<axis xyz="0 0 1"/>
<dynamics damping="10.0"/>
<limit effort="12" lower="-2.8973" upper="2.8973" velocity="2.6100"/>
</joint>
<link name="panda_link6">
<visual>
<geometry>
<mesh filename="franka_meshes/visual/link6.dae"/>
</geometry>
</visual>
<collision>
<geometry>
<mesh filename="franka_meshes/collision/link6.obj"/>
</geometry>
</collision>
<inertial>
<origin rpy="0 0 0" xyz="0.06572 -0.00371 0.00153"/>
<mass value="1.353"/>
<inertia ixx="0.00087964522" ixy="-0.00021487814" ixz="-0.00011911662" iyy="0.00277796968" iyz="0.00001274322" izz="0.00286701969"/>
</inertial>
</link>
<joint name="panda_joint6" type="revolute">
<safety_controller k_position="100.0" k_velocity="40.0" soft_lower_limit="-0.0175" soft_upper_limit="3.7525"/>
<origin rpy="1.57079632679 0 0" xyz="0 0 0"/>
<parent link="panda_link5"/>
<child link="panda_link6"/>
<axis xyz="0 0 1"/>
<dynamics damping="10.0"/>
<limit effort="12" lower="-0.0175" upper="3.7525" velocity="2.6100"/>
<!-- <dynamics damping="10.0"/>
<limit effort="12" lower="-0.0873" upper="3.0" velocity="2.6100"/> -->
</joint>
<link name="panda_link7">
<visual>
<geometry>
<mesh filename="franka_meshes/visual/link7.dae"/>
</geometry>
</visual>
<collision>
<geometry>
<mesh filename="franka_meshes/collision/link7.obj"/>
</geometry>
</collision>
<inertial>
<origin rpy="0 0 0" xyz="0.00089 -0.00044 0.05491"/>
<mass value="0.35973"/>
<inertia ixx="0.00019541063" ixy="0.00000165231" ixz="0.00000148826" iyy="0.00019210361" iyz="-0.00000131132" izz="0.00017936256"/>
</inertial>
</link>
<joint name="panda_joint7" type="revolute">
<safety_controller k_position="100.0" k_velocity="40.0" soft_lower_limit="-2.8973" soft_upper_limit="2.8973"/>
<origin rpy="1.57079632679 0 0" xyz="0.088 0 0"/>
<parent link="panda_link6"/>
<child link="panda_link7"/>
<axis xyz="0 0 1"/>
<dynamics damping="10.0"/>
<limit effort="12" lower="-2.8973" upper="2.8973" velocity="2.6100"/>
</joint>
<link name="panda_link8"/>
<joint name="panda_joint8" type="fixed">
<origin rpy="0 0 0" xyz="0 0 0.107"/>
<parent link="panda_link7"/>
<child link="panda_link8"/>
<axis xyz="0 0 0"/>
</joint>
<link name="flange">
<visual>
<geometry>
<mesh filename="flange_meshes/flange.obj"/>
</geometry>
</visual>
<collision>
<geometry>
<mesh filename="flange_meshes/flange.obj"/>
</geometry>
</collision>
<inertial>
<origin rpy="0 0 0" xyz="0.0 0 0.0"/>
<mass value="0.1"/>
<inertia ixx="0.0001" ixy="0" ixz="0" iyy="0.0001" iyz="0" izz="0.0001"/>
</inertial>
</link>
<link name="zed_mini_camera">
<visual>
<geometry>
<mesh filename="zed_mini_camera_meshes/zed_mini_camera.obj" scale="0.001 0.001 0.001"/>
</geometry>
</visual>
<collision>
<geometry>
<mesh filename="zed_mini_camera_meshes/zed_mini_camera.obj" scale="0.001 0.001 0.001"/>
</geometry>
</collision>
<inertial>
<origin rpy="0 0 0" xyz="0.0 0 0.0"/>
<mass value="0.1"/>
<inertia ixx="0.0001" ixy="0" ixz="0" iyy="0.0001" iyz="0" izz="0.0001"/>
</inertial>
</link>
<joint name="panda_zed_mini_camera_joint" type="fixed">
<parent link="panda_link8"/>
<child link="zed_mini_camera"/>
<origin xyz="0 0 -0.01" rpy="-1.57079632679 -1.57079632679 0"/>
</joint>
<!-- flange 连接在 link8 上 -->
<joint name="panda_flange_joint" type="fixed">
<origin rpy="-1.57079632679 0 0" xyz="0 0 0.003"/>
<parent link="panda_link8"/>
<child link="flange"/>
</joint>
<!-- gripper 连接在 flange 上 -->
<joint name="flange_robotiq_fix_joint" type="fixed">
<origin rpy="1.57079632679 1.57079632679 0" xyz="0 -0.0035 0"/>
<parent link="flange"/>
<child link="robotiq_85_base_link"/>
</joint>
<link name="robotiq_85_base_link">
<visual>
<geometry>
<mesh filename="robotiq_2f85_meshes/visual/2f_85/robotiq_base.dae"/>
</geometry>
</visual>
<collision>
<geometry>
<mesh filename="robotiq_2f85_meshes/collision/2f_85/robotiq_base.stl"/>
</geometry>
</collision>
<inertial>
<origin rpy="0 0 0" xyz="0.0 2.274e-05 0.03232288"/>
<mass value="6.6320197e-01"/>
<inertia ixx="5.1617816e-04" ixy="2.936e-8" ixz="0.0" iyy="5.8802208e-04" iyz="-3.2296e-7" izz="3.9462776e-04"/>
</inertial>
</link>
<link name="robotiq_85_left_knuckle_link">
<visual>
<geometry>
<mesh filename="robotiq_2f85_meshes/visual/2f_85/left_knuckle.dae"/>
</geometry>
</visual>
<collision>
<geometry>
<mesh filename="robotiq_2f85_meshes/collision/2f_85/left_knuckle.stl"/>
</geometry>
</collision>
<inertial>
<origin rpy="0 0 0" xyz="0.01213197 0.0002 -0.00058647"/>
<mass value="1.384773208e-02"/>
<inertia ixx="3.5232e-7" ixy="0.0" ixz="1.1744e-7" iyy="2.31944e-6" iyz="0" izz="2.23136e-6"/>
</inertial>
</link>
<link name="robotiq_85_right_knuckle_link">
<visual>
<geometry>
<mesh filename="robotiq_2f85_meshes/visual/2f_85/right_knuckle.dae"/>
</geometry>
</visual>
<collision>
<geometry>
<mesh filename="robotiq_2f85_meshes/collision/2f_85/right_knuckle.stl"/>
</geometry>
</collision>
<inertial>
<origin rpy="0 0 0" xyz="-0.01213197 0.0002 -0.00058647"/>
<mass value="1.384773208e-02"/>
<inertia ixx="3.5232e-7" ixy="0.0" ixz="-1.1744e-7" iyy="2.31944e-6" iyz="0.0" izz="2.23136e-6"/>
</inertial>
</link>
<link name="robotiq_85_left_finger_link">
<visual>
<geometry>
<mesh filename="robotiq_2f85_meshes/visual/2f_85/left_finger.dae"/>
</geometry>
</visual>
<collision>
<geometry>
<mesh filename="robotiq_2f85_meshes/collision/2f_85/left_finger.stl"/>
</geometry>
</collision>
<inertial>
<origin rpy="0 0 0" xyz="0.00346899 -0.00079447 0.01867121"/>
<mass value="4.260376752e-02"/>
<inertia ixx="1.385792000000000e-05" ixy="0.0" ixz="-2.17264e-06" iyy="1.183208e-05" iyz="0.0" izz="5.19672e-06"/>
</inertial>
</link>
<link name="robotiq_85_right_finger_link">
<visual>
<geometry>
<mesh filename="robotiq_2f85_meshes/visual/2f_85/right_finger.dae"/>
</geometry>
</visual>
<collision>
<geometry>
<mesh filename="robotiq_2f85_meshes/collision/2f_85/right_finger.stl"/>
</geometry>
</collision>
<inertial>
<origin rpy="0 0 0" xyz="-0.00346899 -5.53e-06 0.01867121"/>
<mass value="4.260376752000000e-02"/>
<inertia ixx="1.385792e-05" ixy="0.0" ixz="2.17264e-06" iyy="1.183208e-05" iyz="0.0" izz="5.19672e-06"/>
</inertial>
</link>
<link name="robotiq_85_left_inner_knuckle_link">
<visual>
<geometry>
<mesh filename="robotiq_2f85_meshes/visual/2f_85/left_inner_knuckle.dae"/>
</geometry>
</visual>
<collision>
<geometry>
<mesh filename="robotiq_2f85_meshes/collision/2f_85/left_inner_knuckle.stl"/>
</geometry>
</collision>
<inertial>
<origin rpy="0 0 0" xyz="0.01897699 0.00015001 0.02247101"/>
<mass value="2.969376448e-02"/>
<inertia ixx="9.57136e-06" ixy="0.0" ixz="-3.93424e-06" iyy="8.69056e-06" iyz="0.0" izz="8.19144e-06"/>
</inertial>
</link>
<link name="robotiq_85_right_inner_knuckle_link">
<visual>
<geometry>
<mesh filename="robotiq_2f85_meshes/visual/2f_85/right_inner_knuckle.dae"/>
</geometry>
</visual>
<collision>
<geometry>
<mesh filename="robotiq_2f85_meshes/collision/2f_85/right_inner_knuckle.stl"/>
</geometry>
</collision>
<inertial>
<origin rpy="0 0 0" xyz="-0.01926824 5.001e-05 0.02222178"/>
<mass value="2.969376448e-02"/>
<inertia ixx="9.42456e-06" ixy="0.0" ixz="3.9636e-06" iyy="8.69056e-06" iyz="0.0" izz="8.33824e-06"/>
</inertial>
</link>
<link name="robotiq_85_left_finger_tip_link">
<visual>
<geometry>
<mesh filename="robotiq_2f85_meshes/visual/2f_85/left_finger_tip.dae"/>
</geometry>
</visual>
<collision>
<geometry>
<mesh filename="robotiq_2f85_meshes/collision/2f_85/left_finger_tip.stl"/>
</geometry>
<surface>
<friction>
<ode>
<mu1>100000.0</mu1>
<mu2>100000.0</mu2>
</ode>
</friction>
<contact>
<ode>
<kp>1e+5</kp>
<kd>1</kd>
<soft_cfm>0</soft_cfm>
<soft_erp>0.2</soft_erp>
<minDepth>0.002</minDepth>
<maxVel>0</maxVel>
</ode>
</contact>
</surface>
</collision>
<inertial>
<origin rpy="0 0 0" xyz="-0.01456706 -0.0008 0.01649701"/>
<mass value="4.268588744e-02"/>
<inertia ixx="1.048152e-05" ixy="0.0" ixz="3.5232e-6" iyy="1.197888e-05" iyz="0.0" izz="4.22784e-06"/>
</inertial>
</link>
<link name="robotiq_85_right_finger_tip_link">
<visual>
<geometry>
<mesh filename="robotiq_2f85_meshes/visual/2f_85/right_finger_tip.dae"/>
</geometry>
</visual>
<collision>
<geometry>
<mesh filename="robotiq_2f85_meshes/collision/2f_85/right_finger_tip.stl"/>
</geometry>
<surface>
<friction>
<ode>
<mu1>100000.0</mu1>
<mu2>100000.0</mu2>
</ode>
</friction>
<contact>
<ode>
<kp>1e+5</kp>
<kd>1</kd>
<soft_cfm>0</soft_cfm>
<soft_erp>0.2</soft_erp>
<minDepth>0.002</minDepth>
<maxVel>0</maxVel>
</ode>
</contact>
</surface>
</collision>
<inertial>
<origin rpy="0 0 0" xyz="0.01456706 5e-05 0.01649701"/>
<mass value="4.268588744e-02"/>
<inertia ixx="1.048152e-05" ixy="0.0" ixz="-3.5232e-06" iyy="1.197888e-05" iyz="0.0" izz="4.22784e-06"/>
</inertial>
</link>
<joint name="robotiq_85_left_knuckle_joint" type="revolute">
<parent link="robotiq_85_base_link"/>
<child link="robotiq_85_left_knuckle_link"/>
<axis xyz="0 -1 0"/>
<origin rpy="0 0 0" xyz="0.03060114 0.0 0.05490452"/>
<limit effort="50" lower="0.0" upper="0.8" velocity="0.5"/>
</joint>
<joint name="robotiq_85_right_knuckle_joint" type="revolute">
<parent link="robotiq_85_base_link"/>
<child link="robotiq_85_right_knuckle_link"/>
<axis xyz="0 -1 0"/>
<origin rpy="0 0 0" xyz="-0.03060114 0.0 0.05490452"/>
<limit effort="50" lower="-0.8" upper="0.0" velocity="0.5"/>
</joint>
<joint name="robotiq_85_left_finger_joint" type="fixed">
<parent link="robotiq_85_left_knuckle_link"/>
<child link="robotiq_85_left_finger_link"/>
<origin rpy="0 0 0" xyz="0.03152616 0.0 -0.00376347"/>
</joint>
<joint name="robotiq_85_right_finger_joint" type="fixed">
<parent link="robotiq_85_right_knuckle_link"/>
<child link="robotiq_85_right_finger_link"/>
<origin rpy="0 0 0" xyz="-0.03152616 0.0 -0.00376347"/>
</joint>
<joint name="robotiq_85_left_inner_knuckle_joint" type="revolute">
<parent link="robotiq_85_base_link"/>
<child link="robotiq_85_left_inner_knuckle_link"/>
<axis xyz="0 -1 0"/>
<origin rpy="0 0 0" xyz="0.0127 0.0 0.06142"/>
<limit effort="50" lower="0" upper="0.8" velocity="0.5"/>
</joint>
<joint name="robotiq_85_right_inner_knuckle_joint" type="revolute">
<parent link="robotiq_85_base_link"/>
<child link="robotiq_85_right_inner_knuckle_link"/>
<axis xyz="0 -1 0"/>
<origin rpy="0 0 0" xyz="-0.0127 0.0 0.06142"/>
<limit effort="50" lower="-0.8" upper="0" velocity="0.5"/>
</joint>
<joint name="robotiq_85_left_finger_tip_joint" type="revolute">
<parent link="robotiq_85_left_finger_link"/>
<child link="robotiq_85_left_finger_tip_link"/>
<axis xyz="0 -1 0"/>
<origin rpy="0 0 0" xyz="0.00563134 0.0 0.04718515"/>
<limit effort="50" lower="-0.8" upper="0" velocity="0.5"/>
</joint>
<joint name="robotiq_85_right_finger_tip_joint" type="revolute">
<parent link="robotiq_85_right_finger_link"/>
<child link="robotiq_85_right_finger_tip_link"/>
<axis xyz="0 -1 0"/>
<origin rpy="0 0 0" xyz="-0.00563134 0.0 0.04718515"/>
<limit effort="50" lower="0" upper="0.8" velocity="0.5"/>
</joint>
<link name="gripper_center"/>
<joint name="ee_fixed_joint" type="fixed">
<parent link="robotiq_85_base_link"/>
<child link="gripper_center"/>
<origin rpy="0 0.0 -1.57079632679" xyz="0.0 0. 0.1635"/>
</joint>
</robot>