<?xml version="1.0" ?>
<!-- =================================================================================== -->
<!-- |    This document was autogenerated by xacro from /home/florent/devel/pinocchio/src/universal_robot/ur_description/urdf/ur3_joint_limited_robot.urdf.xacro | -->
<!-- |    EDITING THIS FILE BY HAND IS NOT RECOMMENDED                                 | -->
<!-- =================================================================================== -->
<robot name="ur3" xmlns:xacro="http://www.ros.org/wiki/xacro">
  <!-- common stuff -->
  <gazebo>
    <plugin filename="libgazebo_ros_control.so" name="ros_control">
      <!--robotNamespace>/</robotNamespace-->
      <!--robotSimType>gazebo_ros_control/DefaultRobotHWSim</robotSimType-->
    </plugin>
    <!--
    <plugin name="gazebo_ros_power_monitor_controller" filename="libgazebo_ros_power_monitor.so">
      <alwaysOn>true</alwaysOn>
      <updateRate>1.0</updateRate>
      <timeout>5</timeout>
      <powerStateTopic>power_state</powerStateTopic>
      <powerStateRate>10.0</powerStateRate>
      <fullChargeCapacity>87.78</fullChargeCapacity>
      <dischargeRate>-474</dischargeRate>
      <chargeRate>525</chargeRate>
      <dischargeVoltage>15.52</dischargeVoltage>
      <chargeVoltage>16.41</chargeVoltage>
    </plugin>
-->
  </gazebo>
  <!-- ur3 -->
  <!--
  Author: Felix Messmer
-->
  <!-- Inertia parameters -->
  <!-- This mass might be incorrect -->
  <!-- These parameters are borrowed from the urcontrol.conf file
       but are not verified for the correct permutation.
       The permutation was guessed by looking at the UR5 parameters.
       Serious use of these parameters needs further inspection. -->
  <!-- Kinematic model -->
  <!-- Properties from urcontrol.conf -->
  <!-- Arbitrary offsets for shoulder/elbow joints -->
  <!-- measured from model -->
  <!-- measured from model -->
  <!-- link lengths used in model -->
  <!-- arm -->
  <link name="base_link">
    <visual>
      <geometry>
        <mesh filename="package://example-robot-data/robots/ur_description/meshes/ur3/visual/base.dae"/>
      </geometry>
    </visual>
    <collision>
      <geometry>
        <mesh filename="package://example-robot-data/robots/ur_description/meshes/ur3/collision/base.stl"/>
      </geometry>
    </collision>
    <inertial>
      <mass value="2.0"/>
      <origin rpy="0 0 0" xyz="0.0 0.0 0.0"/>
      <inertia ixx="0.0030531654454" ixy="0.0" ixz="0.0" iyy="0.0030531654454" iyz="0.0" izz="0.005625"/>
    </inertial>
  </link>
  <joint name="shoulder_pan_joint" type="revolute">
    <parent link="base_link"/>
    <child link="shoulder_link"/>
    <origin rpy="0.0 0.0 0.0" xyz="0.0 0.0 0.1519"/>
    <axis xyz="0 0 1"/>
    <limit effort="330.0" lower="-3.14159265" upper="3.14159265" velocity="2.16"/>
    <dynamics damping="0.0" friction="0.0"/>
  </joint>
  <link name="shoulder_link">
    <visual>
      <geometry>
        <mesh filename="package://example-robot-data/robots/ur_description/meshes/ur3/visual/shoulder.dae"/>
      </geometry>
    </visual>
    <collision>
      <geometry>
        <mesh filename="package://example-robot-data/robots/ur_description/meshes/ur3/collision/shoulder.stl"/>
      </geometry>
    </collision>
    <inertial>
      <mass value="2.0"/>
      <origin rpy="0 0 0" xyz="0.0 0.0 0.0"/>
      <inertia ixx="0.0080931634294" ixy="0.0" ixz="0.0" iyy="0.0080931634294" iyz="0.0" izz="0.005625"/>
    </inertial>
  </link>
  <joint name="shoulder_lift_joint" type="revolute">
    <parent link="shoulder_link"/>
    <child link="upper_arm_link"/>
    <origin rpy="0.0 1.570796325 0.0" xyz="0.0 0.1198 0.0"/>
    <axis xyz="0 1 0"/>
    <limit effort="330.0" lower="-3.14159265" upper="3.14159265" velocity="2.16"/>
    <dynamics damping="0.0" friction="0.0"/>
  </joint>
  <link name="upper_arm_link">
    <visual>
      <geometry>
        <mesh filename="package://example-robot-data/robots/ur_description/meshes/ur3/visual/upperarm.dae"/>
      </geometry>
    </visual>
    <collision>
      <geometry>
        <mesh filename="package://example-robot-data/robots/ur_description/meshes/ur3/collision/upperarm.stl"/>
      </geometry>
    </collision>
    <inertial>
      <mass value="3.42"/>
      <origin rpy="0 0 0" xyz="0.0 0.0 0.121825"/>
      <inertia ixx="0.0217284832211" ixy="0.0" ixz="0.0" iyy="0.0217284832211" iyz="0.0" izz="0.00961875"/>
    </inertial>
  </link>
  <joint name="elbow_joint" type="revolute">
    <parent link="upper_arm_link"/>
    <child link="forearm_link"/>
    <origin rpy="0.0 0.0 0.0" xyz="0.0 -0.0925 0.24365"/>
    <axis xyz="0 1 0"/>
    <limit effort="150.0" lower="-3.14159265" upper="3.14159265" velocity="3.15"/>
    <dynamics damping="0.0" friction="0.0"/>
  </joint>
  <link name="forearm_link">
    <visual>
      <geometry>
        <mesh filename="package://example-robot-data/robots/ur_description/meshes/ur3/visual/forearm.dae"/>
      </geometry>
    </visual>
    <collision>
      <geometry>
        <mesh filename="package://example-robot-data/robots/ur_description/meshes/ur3/collision/forearm.stl"/>
      </geometry>
    </collision>
    <inertial>
      <mass value="1.26"/>
      <origin rpy="0 0 0" xyz="0.0 0.0 0.106625"/>
      <inertia ixx="0.00654680644378" ixy="0.0" ixz="0.0" iyy="0.00654680644378" iyz="0.0" izz="0.00354375"/>
    </inertial>
  </link>
  <joint name="wrist_1_joint" type="revolute">
    <parent link="forearm_link"/>
    <child link="wrist_1_link"/>
    <origin rpy="0.0 1.570796325 0.0" xyz="0.0 0.0 0.21325"/>
    <axis xyz="0 1 0"/>
    <limit effort="54.0" lower="-3.14159265" upper="3.14159265" velocity="3.2"/>
    <dynamics damping="0.0" friction="0.0"/>
  </joint>
  <link name="wrist_1_link">
    <visual>
      <geometry>
        <mesh filename="package://example-robot-data/robots/ur_description/meshes/ur3/visual/wrist1.dae"/>
      </geometry>
    </visual>
    <collision>
      <geometry>
        <mesh filename="package://example-robot-data/robots/ur_description/meshes/ur3/collision/wrist1.stl"/>
      </geometry>
    </collision>
    <inertial>
      <mass value="0.8"/>
      <origin rpy="0 0 0" xyz="0.0 0.0 0.0"/>
      <inertia ixx="0.002084999166" ixy="0.0" ixz="0.0" iyy="0.002084999166" iyz="0.0" izz="0.00225"/>
    </inertial>
  </link>
  <joint name="wrist_2_joint" type="revolute">
    <parent link="wrist_1_link"/>
    <child link="wrist_2_link"/>
    <origin rpy="0.0 0.0 0.0" xyz="0.0 0.08505 0.0"/>
    <axis xyz="0 0 1"/>
    <limit effort="54.0" lower="-3.14159265" upper="3.14159265" velocity="3.2"/>
    <dynamics damping="0.0" friction="0.0"/>
  </joint>
  <link name="wrist_2_link">
    <visual>
      <geometry>
        <mesh filename="package://example-robot-data/robots/ur_description/meshes/ur3/visual/wrist2.dae"/>
      </geometry>
    </visual>
    <collision>
      <geometry>
        <mesh filename="package://example-robot-data/robots/ur_description/meshes/ur3/collision/wrist2.stl"/>
      </geometry>
    </collision>
    <inertial>
      <mass value="0.8"/>
      <origin rpy="0 0 0" xyz="0.0 0.0 0.0"/>
      <inertia ixx="0.002084999166" ixy="0.0" ixz="0.0" iyy="0.002084999166" iyz="0.0" izz="0.00225"/>
    </inertial>
  </link>
  <joint name="wrist_3_joint" type="revolute">
    <parent link="wrist_2_link"/>
    <child link="wrist_3_link"/>
    <origin rpy="0.0 0.0 0.0" xyz="0.0 0.0 0.08535"/>
    <axis xyz="0 1 0"/>
    <limit effort="54.0" lower="-3.14159265" upper="3.14159265" velocity="3.2"/>
    <dynamics damping="0.0" friction="0.0"/>
  </joint>
  <link name="wrist_3_link">
    <visual>
      <geometry>
        <mesh filename="package://example-robot-data/robots/ur_description/meshes/ur3/visual/wrist3.dae"/>
      </geometry>
    </visual>
    <collision>
      <geometry>
        <mesh filename="package://example-robot-data/robots/ur_description/meshes/ur3/collision/wrist3.stl"/>
      </geometry>
    </collision>
    <inertial>
      <mass value="0.35"/>
      <origin rpy="0 0 0" xyz="0.0 0.0 0.0"/>
      <inertia ixx="0.000912187135125" ixy="0.0" ixz="0.0" iyy="0.000912187135125" iyz="0.0" izz="0.000984375"/>
    </inertial>
  </link>
  <joint name="ee_fixed_joint" type="fixed">
    <parent link="wrist_3_link"/>
    <child link="ee_link"/>
    <origin rpy="0.0 0.0 1.570796325" xyz="0.0 0.0819 0.0"/>
  </joint>
  <link name="ee_link">
    <inertial>
      <mass value="0.0"/>
      <origin rpy="0 0 0" xyz="0 0 0"/>
      <inertia ixx="0" ixy="0" ixz="0" iyy="0" iyz="0" izz="0"/>
    </inertial>
    <collision>
      <geometry>
        <box size="0.01 0.01 0.01"/>
      </geometry>
      <origin rpy="0 0 0" xyz="-0.01 0 0"/>
    </collision>
  </link>
  <transmission name="shoulder_pan_trans">
    <type>transmission_interface/SimpleTransmission</type>
    <joint name="shoulder_pan_joint">
      <hardwareInterface>PositionJointInterface</hardwareInterface>
    </joint>
    <actuator name="shoulder_pan_motor">
      <mechanicalReduction>1</mechanicalReduction>
    </actuator>
  </transmission>
  <transmission name="shoulder_lift_trans">
    <type>transmission_interface/SimpleTransmission</type>
    <joint name="shoulder_lift_joint">
      <hardwareInterface>PositionJointInterface</hardwareInterface>
    </joint>
    <actuator name="shoulder_lift_motor">
      <mechanicalReduction>1</mechanicalReduction>
    </actuator>
  </transmission>
  <transmission name="elbow_trans">
    <type>transmission_interface/SimpleTransmission</type>
    <joint name="elbow_joint">
      <hardwareInterface>PositionJointInterface</hardwareInterface>
    </joint>
    <actuator name="elbow_motor">
      <mechanicalReduction>1</mechanicalReduction>
    </actuator>
  </transmission>
  <transmission name="wrist_1_trans">
    <type>transmission_interface/SimpleTransmission</type>
    <joint name="wrist_1_joint">
      <hardwareInterface>PositionJointInterface</hardwareInterface>
    </joint>
    <actuator name="wrist_1_motor">
      <mechanicalReduction>1</mechanicalReduction>
    </actuator>
  </transmission>
  <transmission name="wrist_2_trans">
    <type>transmission_interface/SimpleTransmission</type>
    <joint name="wrist_2_joint">
      <hardwareInterface>PositionJointInterface</hardwareInterface>
    </joint>
    <actuator name="wrist_2_motor">
      <mechanicalReduction>1</mechanicalReduction>
    </actuator>
  </transmission>
  <transmission name="wrist_3_trans">
    <type>transmission_interface/SimpleTransmission</type>
    <joint name="wrist_3_joint">
      <hardwareInterface>PositionJointInterface</hardwareInterface>
    </joint>
    <actuator name="wrist_3_motor">
      <mechanicalReduction>1</mechanicalReduction>
    </actuator>
  </transmission>
  <!-- nothing to do here at the moment -->
  <!-- ROS base_link to UR 'Base' Coordinates transform -->
  <link name="base">
    <inertial>
      <mass value="0.0"/>
      <origin rpy="0 0 0" xyz="0 0 0"/>
      <inertia ixx="0" ixy="0" ixz="0" iyy="0" iyz="0" izz="0"/>
    </inertial>
  </link>
  <joint name="base_link-base_fixed_joint" type="fixed">
    <!-- NOTE: this rotation is only needed as long as base_link itself is
                 not corrected wrt the real robot (ie: rotated over 180
                 degrees)
      -->
    <origin rpy="0 0 -3.14159265" xyz="0 0 0"/>
    <parent link="base_link"/>
    <child link="base"/>
  </joint>
  <!-- Frame coincident with all-zeros TCP on UR controller -->
  <link name="tool0">
    <inertial>
      <mass value="0.0"/>
      <origin rpy="0 0 0" xyz="0 0 0"/>
      <inertia ixx="0" ixy="0" ixz="0" iyy="0" iyz="0" izz="0"/>
    </inertial>
    <visual>
      <geometry>
	<box size="0.005 0.02 0.05" />
      </geometry>
      <origin xyz="0.03 0 0.035" />
    </visual>
    <visual>
      <geometry>
	<box size="0.005 0.02 0.05" />
      </geometry>
      <origin xyz="-0.03 0 0.035" />
    </visual>
    <visual>
      <geometry>
	<box size="0.065 0.02 0.005" />
      </geometry>
      <origin xyz="0 0 0.01" />
    </visual>

    <collision>
      <geometry>
	<box size="0.005 0.02 0.05" />
      </geometry>
      <origin xyz="0.03 0 0.035" />
    </collision>
    <collision>
      <geometry>
	<box size="0.005 0.02 0.05" />
      </geometry>
      <origin xyz="-0.03 0 0.035" />
    </collision>
    <collision>
      <geometry>
	<box size="0.065 0.02 0.005" />
      </geometry>
      <origin xyz="0 0 0.01" />
    </collision>
  </link>
  <joint name="wrist_3_link-tool0_fixed_joint" type="fixed">
    <origin rpy="-1.570796325 0 0" xyz="0 0.0823 0"/>
    <parent link="wrist_3_link"/>
    <child link="tool0"/>
  </joint>
  <link name="world"/>
  <joint name="world_joint" type="fixed">
    <parent link="world"/>
    <child link="base_link"/>
    <origin rpy="0.0 0.0 0.0" xyz="0.0 0.0 0.0"/>
  </joint>
</robot>
