<?xml version="1.0" ?>
<!-- =================================================================================== -->
<!-- |    This document was autogenerated by xacro from ros2_mara_ws/src/robotiq_modular_gripper/robotiq_140_gripper_description/urdf/robotiq_140_world.urdf.xacro | -->
<!-- |    EDITING THIS FILE BY HAND IS NOT RECOMMENDED                                 | -->
<!-- =================================================================================== -->
<robot name="robotiq_gripper">
 <!-- control -->
  <link name="base_link">
    <inertial>
      <mass value="0" />
      <inertia ixx = "0" ixy = "0" ixz = "0"
               iyx = "0" iyy = "0" iyz = "0"
               izx = "0" izy = "0" izz = "0" />
    </inertial>
  </link>

  <joint name="center_x" type="prismatic">
    <parent link="base_link"/>
    <child link="y_control"/>
    <axis xyz="1 0 0"/>
    <limit effort="1000.0" lower="-0.5" upper="0.5" velocity="0.2"/>
  </joint>

  <link name="y_control">
    <inertial>
      <mass value="0.1" />
      <inertia ixx = "0" ixy = "0" ixz = "0"
               iyx = "0" iyy = "0" iyz = "0"
               izx = "0" izy = "0" izz = "0" />
    </inertial>
  </link>

  <joint name="center_y" type="prismatic">
    <parent link="y_control"/>
    <child link="z_control"/>
    <axis xyz="0 1 0"/>
    <limit effort="1000.0" lower="-0.5" upper="0.5" velocity="0.2"/>
  </joint>

  <link name="z_control">
    <inertial>
      <mass value="0.1" />
      <inertia ixx = "0" ixy = "0" ixz = "0"
               iyx = "0" iyy = "0" iyz = "0"
               izx = "0" izy = "0" izz = "0" />
    </inertial>
  </link>

  <joint name="center_z" type="prismatic">
    <parent link="z_control"/>
    <child link="yaw_control"/>
    <axis xyz="0 0 1"/>
    <limit effort="1000.0" lower="-0.25" upper="1" velocity="0.2"/>
  </joint>

  <link name="yaw_control">
    <inertial>
      <mass value="0.1" />
      <inertia ixx = "0" ixy = "0" ixz = "0"
               iyx = "0" iyy = "0" iyz = "0"
               izx = "0" izy = "0" izz = "0" />
    </inertial>
  </link>

  <joint name="gripper_yaw" type="revolute">
    <parent link="yaw_control"/>
    <child link="pitch_control"/>
    <axis xyz="0 0 1"/>
    <limit lower="-31.4" upper="31.4" velocity="3.14" effort="10000"/>

  </joint>

  <link name="pitch_control">
    <inertial>
      <mass value="0.1" />
      <inertia ixx = "0" ixy = "0" ixz = "0"
               iyx = "0" iyy = "0" iyz = "0"
               izx = "0" izy = "0" izz = "0" />
    </inertial>
  </link>

  <joint name="gripper_pitch" type="revolute">
    <parent link="pitch_control"/>
    <child link="roll_control"/>
    <axis xyz="0 1 0"/>
    <limit lower="-31.4" upper="31.4" velocity="3.14" effort="10000"/>

  </joint>

  <link name="roll_control">
    <inertial>
      <mass value="0.1" />
      <inertia ixx = "0" ixy = "0" ixz = "0"
               iyx = "0" iyy = "0" iyz = "0"
               izx = "0" izy = "0" izz = "0" />
    </inertial>
  </link>

  <joint name="gripper_roll" type="revolute">
    <parent link="roll_control"/>
    <child link="dummy_center_indicator_link"/>
    <axis xyz="1 0 0"/>
    <limit lower="-31.4" upper="31.4" velocity="3.14" effort="100000"/>
  </joint>

  <link name="dummy_center_indicator_link">
    <visual>
      <geometry>
        <box size="0.020 0.085 0.002"/>
      </geometry>
    </visual>
    <inertial>
      <mass value="0.1" />
      <inertia ixx = "0" ixy = "0" ixz = "0"
               iyx = "0" iyy = "0" iyz = "0"
               izx = "0" izy = "0" izz = "0" />
    </inertial>
  </link>

  <joint name="dummy_center_fixed_joint" type="fixed">
    <parent link="dummy_center_indicator_link"/>
    <child link="robotiq_140_robotiq_arg2f_base_link"/>
    <origin xyz="-0.137 0 0" />
  </joint>
  <!-- robot -->
  <!-- robotiq_85_base_link -->
  <link name="robotiq_140_robotiq_arg2f_base_link">
    <inertial>
      <origin rpy="0 0 0" xyz="-0.00013 0.00011 0.03284"/>
      <mass value="0.52954"/>
      <inertia ixx="573495E-9" ixy="-554E-9" ixz="2628E-9" iyy="681780E-9" iyz="607E-9" izz="483281E-9"/>
    </inertial>
    <visual>
      <origin rpy="0 0 0" xyz="0 0 0"/>
      <geometry>
        <mesh filename="package://robotiq_140_gripper_description/meshes/GRIPPER_base_axis.dae" scale="0.001 0.001 0.001"/>
      </geometry>
      <material name="Gazebo/Black">
        <color rgba="0.1 0.1 0.1 1"/>
      </material>
    </visual>
    <collision>
      <origin rpy="0 0 0" xyz="0 0 0"/>
      <geometry>
        <mesh filename="package://robotiq_140_gripper_description/meshes/GRIPPER_base_axis.dae" scale="0.001 0.001 0.001"/>
      </geometry>
    </collision>
  </link>
  <gazebo reference="robotiq_140_robotiq_arg2f_base_link">
    <material>Gazebo/Black</material>
    <selfCollide>True</selfCollide>
  </gazebo>
  <!-- robotiq_85_left_knuckle_link -->
  <link name="robotiq_140_left_outer_knuckle">
    <inertial>
      <origin rpy="0 0 0" xyz="0.01616 0 -0.00133"/>
      <mass value="0.0131"/>
      <inertia ixx="325.5E-9" ixy="0" ixz="197.94E-9" iyy="2306.36E-9" iyz="0" izz="2176E-9"/>
    </inertial>
    <visual>
      <origin rpy="0 0 0" xyz="0 0 0"/>
      <geometry>
        <mesh filename="package://robotiq_140_gripper_description/meshes/robotiq_140_left_outer_knuckle.dae" scale="0.001 0.001 0.001"/>
      </geometry>
      <material name="">
        <color rgba="0.792156862745098 0.819607843137255 0.933333333333333 1"/>
      </material>
    </visual>
    <collision>
      <origin rpy="0 0 0" xyz="0 0 0"/>
      <geometry>
        <mesh filename="package://robotiq_140_gripper_description/meshes/robotiq_140_left_outer_knuckle.dae" scale="0.001 0.001 0.001"/>
      </geometry>
    </collision>
  </link>
  <gazebo reference="robotiq_140_left_outer_knuckle">
    <material>Gazebo/Grey</material>
    <selfCollide>True</selfCollide>
  </gazebo>
  <!-- robotiq_85_right_knuckle_link -->
  <link name="robotiq_140_right_outer_knuckle">
    <inertial>
      <origin rpy="0 0 0" xyz="-0.01616 0 -0.00133"/>
      <mass value="0.0131"/>
      <inertia ixx="325.5E-9" ixy="0" ixz="-197.94E-9" iyy="2306.36E-9" iyz="0" izz="2176E-9"/>
    </inertial>
    <visual>
      <origin rpy="0 0 0" xyz="0 0 0"/>
      <geometry>
        <mesh filename="package://robotiq_140_gripper_description/meshes/robotiq_140_right_outer_knuckle.dae" scale="0.001 0.001 0.001"/>
      </geometry>
      <material name="">
        <color rgba="0.792156862745098 0.819607843137255 0.933333333333333 1"/>
      </material>
    </visual>
    <collision>
      <origin rpy="0 0 0" xyz="0 0 0"/>
      <geometry>
        <mesh filename="package://robotiq_140_gripper_description/meshes/robotiq_140_right_outer_knuckle.dae" scale="0.001 0.001 0.001"/>
      </geometry>
    </collision>
  </link>
  <gazebo reference="robotiq_140_right_outer_knuckle">
    <material>Gazebo/Grey</material>
    <selfCollide>True</selfCollide>
  </gazebo>
  <!-- robotiq_85_left_inner_knuckle_link -->
  <link name="robotiq_140_left_inner_knuckle">
    <inertial>
      <origin rpy="0 0 0" xyz="0.03332 0 0.0379"/>
      <mass value="0.04476"/>
      <inertia ixx="28054E-9" ixy="0" ixz="-19174E-9" iyy="39758E-9" iyz="0" izz="23453E-9"/>
    </inertial>
    <visual>
      <origin rpy="0 0 0" xyz="0 0 0"/>
      <geometry>
        <mesh filename="package://robotiq_140_gripper_description/meshes/robotiq_140_left_inner_knuckle.dae" scale="0.001 0.001 0.001"/>
      </geometry>
      <material name="Gazebo/Black">
        <color rgba="0.1 0.1 0.1 1"/>
      </material>
    </visual>
    <collision>
      <origin rpy="0 0 0" xyz="0 0 0"/>
      <geometry>
        <mesh filename="package://robotiq_140_gripper_description/meshes/robotiq_140_left_inner_knuckle.dae" scale="0.001 0.001 0.001"/>
      </geometry>
    </collision>
  </link>
  <gazebo reference="robotiq_140_left_inner_knuckle">
    <material>Gazebo/Black</material>
    <selfCollide>False</selfCollide>
  </gazebo>
  <!-- robotiq_85_right_inner_knuckle_link -->
  <link name="robotiq_140_right_inner_knuckle">
    <inertial>
      <origin rpy="0 0 0" xyz="-0.03332 0 0.0379"/>
      <mass value="0.04476"/>
      <inertia ixx="28054E-9" ixy="0" ixz="19174E-9" iyy="39758E-9" iyz="0" izz="23453E-9"/>
    </inertial>
    <visual>
      <origin rpy="0 0 0" xyz="0 0 0"/>
      <geometry>
        <mesh filename="package://robotiq_140_gripper_description/meshes/robotiq_140_right_inner_knuckle.dae" scale="0.001 0.001 0.001"/>
      </geometry>
      <material name="Gazebo/Black">
        <color rgba="0.1 0.1 0.1 1"/>
      </material>
    </visual>
    <collision>
      <origin rpy="0 0 0" xyz="0 0 0"/>
      <geometry>
        <mesh filename="package://robotiq_140_gripper_description/meshes/robotiq_140_right_inner_knuckle.dae" scale="0.001 0.001 0.001"/>
      </geometry>
    </collision>
  </link>
  <gazebo reference="robotiq_140_right_inner_knuckle">
    <material>Gazebo/Black</material>
    <selfCollide>False</selfCollide>
  </gazebo>
  <!-- robotiq_85_left_finger_link -->
  <link name="robotiq_140_left_inner_finger">
    <inertial>
      <origin rpy="0 0 0" xyz="-0.01563 0 0.02522"/>
      <mass value="0.045"/>
      <inertia ixx="26663E-9" ixy="0" ixz="5579E-9" iyy="28009E-9" iyz="0" izz="4368E-9"/>
    </inertial>
    <visual>
      <origin rpy="0 0 0" xyz="0 0 0"/>
      <geometry>
        <mesh filename="package://robotiq_140_gripper_description/meshes/robotiq_140_left_inner_finger.dae" scale="0.001 0.001 0.001"/>
      </geometry>
      <material name="Gazebo/Black">
        <color rgba="0.1 0.1 0.1 1"/>
      </material>
    </visual>
    <collision>
      <origin rpy="0 0 0" xyz="0 0 0"/>
      <geometry>
        <mesh filename="package://robotiq_140_gripper_description/meshes/robotiq_140_left_inner_finger.dae" scale="0.001 0.001 0.001"/>
      </geometry>
    </collision>
  </link>
  <gazebo reference="robotiq_140_left_inner_finger">
    <material>Gazebo/Black</material>
    <selfCollide>False</selfCollide>
  </gazebo>
  <!-- robotiq_85_right_finger_link -->
  <link name="robotiq_140_right_inner_finger">
    <inertial>
      <origin rpy="0 0 0" xyz="0.01563 0 0.02522"/>
      <mass value="0.045"/>
      <inertia ixx="26663E-9" ixy="0" ixz="-5579E-9" iyy="28009E-9" iyz="0" izz="4368E-9"/>
    </inertial>
    <visual>
      <origin rpy="0 0 0" xyz="0 0 0"/>
      <geometry>
        <mesh filename="package://robotiq_140_gripper_description/meshes/robotiq_140_right_inner_finger.dae" scale="0.001 0.001 0.001"/>
      </geometry>
      <material name="Gazebo/Black">
        <color rgba="0.1 0.1 0.1 1"/>
      </material>
    </visual>
    <collision>
      <origin rpy="0 0 0" xyz="0 0 0"/>
      <geometry>
        <mesh filename="package://robotiq_140_gripper_description/meshes/robotiq_140_right_inner_finger.dae" scale="0.001 0.001 0.001"/>
      </geometry>
    </collision>
  </link>
  <gazebo reference="robotiq_140_right_inner_finger">
    <material>Gazebo/Black</material>
    <selfCollide>False</selfCollide>
  </gazebo>
  <!-- robot -->
  <link name="robotiq_140_left_outer_finger">
    <inertial>
      <origin rpy="0 0 0" xyz="0.01482 0 0.03451"/>
      <mass value="0.07637"/>
      <inertia ixx="45513E-9" ixy="0" ixz="-20691E-9" iyy="52570E-9" iyz="0" izz="17804E-9"/>
    </inertial>
    <visual>
      <origin rpy="0 0 0" xyz="0 0 0"/>
      <geometry>
        <mesh filename="package://robotiq_140_gripper_description/meshes/robotiq_140_left_outer_finger.dae" scale="0.001 0.001 0.001"/>
      </geometry>
      <material name="Gazebo/Black">
        <color rgba="0.1 0.1 0.1 1"/>
      </material>
    </visual>
    <collision>
      <origin rpy="0 0 0" xyz="0 0 0"/>
      <geometry>
        <mesh filename="package://robotiq_140_gripper_description/meshes/robotiq_140_left_outer_finger.dae" scale="0.001 0.001 0.001"/>
      </geometry>
    </collision>
  </link>
  <gazebo reference="robotiq_140_left_outer_finger">
    <material>Gazebo/Black</material>
    <selfCollide>True</selfCollide>
  </gazebo>
  <!-- robot -->
  <link name="robotiq_140_right_outer_finger">
    <inertial>
      <origin rpy="0 0 0" xyz="-0.01482 0 0.03451"/>
      <mass value="0.07637"/>
      <inertia ixx="45513E-9" ixy="0" ixz="20691E-9" iyy="52570E-9" iyz="0" izz="17804E-9"/>
    </inertial>
    <visual>
      <origin rpy="0 0 0" xyz="0 0 0"/>
      <geometry>
        <mesh filename="package://robotiq_140_gripper_description/meshes/robotiq_140_right_outer_finger.dae" scale="0.001 0.001 0.001"/>
      </geometry>
      <material name="Gazebo/Black">
        <color rgba="0.1 0.1 0.1 1"/>
      </material>
    </visual>
    <collision>
      <origin rpy="0 0 0" xyz="0 0 0"/>
      <geometry>
        <mesh filename="package://robotiq_140_gripper_description/meshes/robotiq_140_right_outer_finger.dae" scale="0.001 0.001 0.001"/>
      </geometry>
    </collision>
  </link>
  <gazebo reference="robotiq_140_right_outer_finger">
    <material>Gazebo/Black</material>
    <selfCollide>True</selfCollide>
  </gazebo>
  <!-- robot -->
  <joint name="robotiq_arg2f_base_to_robotiq_140_left_outer_knuckle" type="revolute">
    <origin rpy="0 0 0" xyz="0.0306 0 0.05466"/>
    <parent link="robotiq_140_robotiq_arg2f_base_link"/>
    <child link="robotiq_140_left_outer_knuckle"/>
    <axis xyz="0 -1 0"/>
    <limit effort="18.65" lower="0" upper="0.78574722925" velocity="2.0"/>
    <mimic joint="robotiq_140_joint_finger" multiplier="1" offset="0"/>
  </joint>
  <!-- robot -->
  <joint name="robotiq_140_joint_finger" type="revolute">
    <origin rpy="0 0 0" xyz="-0.0306 0 0.05466"/>
    <parent link="robotiq_140_robotiq_arg2f_base_link"/>
    <child link="robotiq_140_right_outer_knuckle"/>
    <axis xyz="0 1 0"/>
    <limit effort="18.65" lower="0" upper="0.78574722925" velocity="3.54"/>
  </joint>
  <!-- robot -->
  <joint name="robotiq_arg2f_base_to_robotiq_140_left_inner_knuckle" type="revolute">
    <origin rpy="0 0 0" xyz="0.0127 0 0.06118"/>
    <parent link="robotiq_140_robotiq_arg2f_base_link"/>
    <child link="robotiq_140_left_inner_knuckle"/>
    <axis xyz="0 -1 0"/>
    <limit effort="18.65" lower="0" upper="0.78574722925" velocity="3.54"/>
    <mimic joint="robotiq_140_joint_finger" multiplier="1" offset="0"/>
  </joint>
  <!-- robot -->
  <joint name="robotiq_arg2f_base_to_robotiq_140_right_inner_knuckle" type="revolute">
    <origin rpy="0 0 0" xyz="-0.0127 0 0.06118"/>
    <parent link="robotiq_140_robotiq_arg2f_base_link"/>
    <child link="robotiq_140_right_inner_knuckle"/>
    <axis xyz="0 1 0"/>
    <limit effort="18.65" lower="0" upper="0.78574722925" velocity="3.54"/>
    <mimic joint="robotiq_140_joint_finger" multiplier="1" offset="0"/>
  </joint>
  <!-- robot -->
  <joint name="robotiq_140_left_outer_knuckle_to_finger" type="fixed">
    <origin rpy="0 0 0" xyz="0.03142 0 -0.00453"/>
    <parent link="robotiq_140_left_outer_knuckle"/>
    <child link="robotiq_140_left_outer_finger"/>
  </joint>
  <!-- robot -->
  <joint name="robotiq_140_right_outer_knuckle_to_finger" type="fixed">
    <origin rpy="0 0 0" xyz="-0.03142 0 -0.00453"/>
    <parent link="robotiq_140_right_outer_knuckle"/>
    <child link="robotiq_140_right_outer_finger"/>
  </joint>
  <!-- robot -->
  <joint name="robotiq_140_left_outer_finger_to_inner" type="revolute">
    <origin rpy="0 0 0" xyz="0.03543 0 0.0789"/>
    <parent link="robotiq_140_left_outer_finger"/>
    <child link="robotiq_140_left_inner_finger"/>
    <axis xyz="0 1 0"/>
    <limit effort="18.65" lower="0" upper="0.78574722925" velocity="3.54"/>
    <mimic joint="robotiq_140_joint_finger" multiplier="1" offset="0"/>
  </joint>
  <!-- robot -->
  <joint name="robotiq_140_right_outer_finger_to_inner" type="revolute">
    <origin rpy="0 0 0" xyz="-0.03543 0 0.0789"/>
    <parent link="robotiq_140_right_outer_finger"/>
    <child link="robotiq_140_right_inner_finger"/>
    <axis xyz="0 -1 0"/>
    <limit effort="18.65" lower="0" upper="0.78574722925" velocity="3.54"/>
    <mimic joint="robotiq_140_joint_finger" multiplier="1" offset="0"/>
  </joint>
</robot>
