From f473593ec1655445638057ccf6758f5dd1cf3dfd Mon Sep 17 00:00:00 2001
From: "E. Gil Jones" <gjones@willowgarage.com>
Date: Thu, 29 Mar 2012 13:59:50 -0700
Subject: [PATCH] Adding pretty urdf and updating visualization launch to
 something that actually works

---
 ur5_description/urdf/robot.urdf.pretty.xacro  | 289 ++++++++++++++++++
 ur5_description/urdf/robot.urdf.pretty.xml    | 248 +++++++++++++++
 ur5_moveit/config/joint_limits.yaml           |  12 +-
 ur5_moveit/config/ur5.srdf                    |   2 -
 .../launch/ur5_moveit_visualization.launch    |  17 +-
 .../src/universal_robot_arm_ikfast_plugin.cpp |   4 +-
 6 files changed, 558 insertions(+), 14 deletions(-)
 create mode 100644 ur5_description/urdf/robot.urdf.pretty.xacro
 create mode 100644 ur5_description/urdf/robot.urdf.pretty.xml

diff --git a/ur5_description/urdf/robot.urdf.pretty.xacro b/ur5_description/urdf/robot.urdf.pretty.xacro
new file mode 100644
index 0000000..019ed7e
--- /dev/null
+++ b/ur5_description/urdf/robot.urdf.pretty.xacro
@@ -0,0 +1,289 @@
+<?xml version="1.0"?>
+<!--
+DH for UR5:
+a = [0.00000, -0.42500, -0.39225,  0.00000,  0.00000,  0.0000]
+d = [0.089159,  0.00000,  0.00000,  0.10915,  0.09465,  0.0823]
+alpha = [ 1.570796327, 0, 0, 1.570796327, -1.570796327, 0 ]
+q_home_offset = [0, -1.570796327, 0, -1.570796327, 0, 0]
+joint_direction = [-1, -1, 1, 1, 1, 1]
+mass = [3.7000, 8.3930, 2.2750, 1.2190, 1.2190, 0.1879]
+center_of_mass = [ [0, -0.02561, 0.00193], [0.2125, 0, 0.11336], [0.11993, 0.0, 0.0265], [0, -0.0018, 0.01634], [0, 0.0018,0.01634], [0, 0, -0.001159] ]
+-->
+<robot name="universal_robot">
+
+  <property name="pi" value="3.14159265" />
+
+<!-- Inertia parameters -->
+  <property name="base_mass" value="4.0" /> <!-- Invented number, only matters for simulator -->
+  <property name="shoulder_mass" value="3.7000" />
+  <property name="upper_arm_mass" value="8.3930" />
+  <property name="forearm_mass" value="2.2750" />
+  <property name="wrist_1_mass" value="1.2190" />
+  <property name="wrist_2_mass" value="1.2190" />
+  <property name="wrist_3_mass" value="0.1879" />
+
+  <property name="shoulder_cog" value="0.0 0.00193 -0.02561" />
+  <property name="upper_arm_cog" value="0.0 -0.024201 0.2125" />   <!-- 0.11336 - 0.089159 =  -->
+  <property name="forearm_cog" value="0.0 0.0265 0.11993" />       <!-- 0.119 is not half of 0.39225, is this really correct? -->
+  <property name="wrist_1_cog" value="0.0 0.110949 0.01634" />     <!-- 0.0018 + 0.10915 = 0.110949 -->
+  <property name="wrist_2_cog" value="0.0 0.0018 0.11099" />       <!-- 0.01634 + 0.09465 = 0.11099-->
+  <property name="wrist_3_cog" value="0.0 0.001159 0.0" />
+
+<!-- Kinematic model -->
+  <property name="shoulder_height" value="0.089159" />  
+  <property name="shoulder_offset" value="0.13585" />  <!-- shoulder_offset - elbow_offset + wrist_1_length = 0.10915 -->
+  <property name="upper_arm_length" value="0.42500" />
+  <property name="elbow_offset" value="0.1197" />       <!-- CAD measured -->
+  <property name="forearm_length" value="0.39225" />
+  <property name="wrist_1_length" value="0.093" />     <!-- CAD measured -->
+  <property name="wrist_2_length" value="0.09465" />   <!-- In CAD this distance is 0.930, but in the spec it is 0.09465 -->
+  <property name="wrist_3_length" value="0.0823" />
+
+  <property name="shoulder_radius" value="0.060" />   <!-- manually measured -->
+  <property name="upper_arm_radius" value="0.054" />  <!-- manually measured -->
+  <property name="elbow_radius" value="0.060" />      <!-- manually measured -->
+  <property name="forearm_radius" value="0.040" />    <!-- manually measured -->
+  <property name="wrist_radius" value="0.045" />      <!-- manually measured -->
+
+<!-- Collision model -->
+  <property name="base_collision_length" value="0.160" />      <!-- manually measured -->
+  <property name="shoulder_collision_length" value="0.200" />  <!-- manually measured -->
+  <property name="shoulder_collision_offset" value="0.035" />  <!-- manually measured -->
+  <property name="elbow_collision_length" value="0.200" />     <!-- manually measured -->
+  <property name="elbow_collision_offset" value="0.035" />     <!-- manually measured -->
+
+
+
+
+  <link name="base_link" >
+    <visual>
+      <geometry>
+        <mesh filename="package://ur5_description/meshes/Base.dae" />
+      </geometry>
+      <origin xyz="0.0 0.0 0.003" rpy="0.0 0.0 ${3.0 * pi / 4.0}" />
+    </visual>
+    <collision>
+      <geometry>
+        <mesh filename="package://ur5_description/meshes/Base.dae" />
+      </geometry>
+      <origin xyz="0.0 0.0 0.003" rpy="0.0 0.0 ${3.0 * pi / 4.0}" />
+    </collision>
+    <inertial>
+      <mass value="${base_mass}" />
+      <inertia ixx="1.0" ixy="0.0" ixz="0.0" iyy="1.0" iyz="0.0" izz="1.0"/>
+    </inertial>
+  </link>
+
+  <joint name="shoulder_pan_joint" type="revolute">
+    <parent link="base_link" />
+    <child link = "shoulder_link" />
+    <origin xyz="0.0 0.0 ${shoulder_height}" rpy="0.0 0.0 0.0" />
+    <axis xyz="0.0 0.0 1.0" />
+    <limit lower="${-2.0 * pi}" upper="${2.0 * pi}" effort="10.0" velocity="${pi}"/>
+    <dynamics damping="0.1" friction="0.1"/>
+  </joint>
+  
+  <link name="shoulder_link">
+    <visual>
+      <geometry>
+        <mesh filename="package://ur5_description/meshes/Shoulder.dae" />
+      </geometry>
+    </visual>
+    <collision>
+      <geometry>
+        <mesh filename="package://ur5_description/meshes/Shoulder.dae" />
+      </geometry>
+    </collision>
+    <inertial>
+      <mass value="${shoulder_mass}" />
+      <inertia ixx="1.0" ixy="0.0" ixz="0.0" iyy="1.0" iyz="0.0" izz="1.0"/>
+      <origin xyz="${shoulder_cog}" rpy="0.0 0.0 0.0" />
+    </inertial>
+  </link>
+
+  <joint name="shoulder_lift_joint" type="revolute">
+    <parent link="shoulder_link" />
+    <child link = "upper_arm_link" />
+    <origin xyz="0.0 ${shoulder_offset} 0.0" rpy="0.0 ${pi / 2.0} 0.0" />    
+    <axis xyz="0.0 1.0 0.0" />
+    <limit lower="${-2.0 * pi}" upper="${2.0 * pi}" effort="10.0" velocity="${pi}"/>
+    <dynamics damping="0.1" friction="0.1"/>
+  </joint>
+
+  <link name="upper_arm_link">
+    <visual>
+      <geometry>
+        <mesh filename="package://ur5_description/meshes/UpperArm.dae" />
+      </geometry>
+      <origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
+    </visual>
+    <collision>
+      <geometry>
+        <mesh filename="package://ur5_description/meshes/UpperArm.dae" />
+      </geometry>
+      <origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
+    </collision>
+    <inertial>
+      <mass value="${upper_arm_mass}" />
+      <inertia ixx="1.0" ixy="0.0" ixz="0.0" iyy="1.0" iyz="0.0" izz="1.0"/>
+      <origin xyz="${upper_arm_cog}" rpy="0.0 0.0 0.0" />
+    </inertial>
+  </link>
+
+  <joint name="elbow_joint" type="revolute">
+    <parent link="upper_arm_link" />
+    <child link = "forearm_link" />
+    <origin xyz="0.0 ${-elbow_offset} ${upper_arm_length}" rpy="0.0 0.0 0.0" />
+    <axis xyz="0.0 1.0 0.0" />
+    <limit lower="${-2.0 * pi}" upper="${2.0 * pi}" effort="10.0" velocity="${pi}"/>
+    <dynamics damping="0.1" friction="0.1"/>
+  </joint>
+
+  <link name="forearm_link">
+    <visual>
+      <geometry>
+        <mesh filename="package://ur5_description/meshes/Forearm.dae" />
+      </geometry>
+    </visual>
+    <collision>
+      <geometry>
+        <mesh filename="package://ur5_description/meshes/Forearm.dae" />
+      </geometry>
+    </collision>
+    <inertial>
+      <mass value="${forearm_mass}" />
+      <origin xyz="${forearm_cog}" rpy="0.0 0.0 0.0" />
+      <inertia ixx="1.0" ixy="0.0" ixz="0.0" iyy="1.0" iyz="0.0" izz="1.0"/>
+    </inertial>
+  </link>
+
+  <joint name="wrist_1_joint" type="revolute">
+    <parent link="forearm_link" />
+    <child link = "wrist_1_link" />
+    <origin xyz="0.0 0.0 ${forearm_length}" rpy="0.0 ${pi / 2.0} 0.0" />
+    <axis xyz="0.0 1.0 0.0" />
+    <limit lower="${-2.0 * pi}" upper="${2.0 * pi}" effort="10.0" velocity="${pi}"/>
+    <dynamics damping="0.1" friction="0.1"/>
+  </joint>
+
+  <link name="wrist_1_link">
+     <visual>
+      <geometry>
+        <mesh filename="package://ur5_description/meshes/Wrist1.dae" />
+      </geometry>
+      <origin xyz="0.0 ${wrist_1_length} 0.0" rpy="0.0 ${pi / 2.0} 0.0" />
+    </visual>
+    <collision>
+      <geometry>
+        <mesh filename="package://ur5_description/meshes/Wrist1.dae" />
+      </geometry>
+      <origin xyz="0.0 ${wrist_1_length} 0.0" rpy="0.0 ${pi / 2.0} 0.0" />
+    </collision>
+     <inertial>
+      <mass value="${wrist_1_mass}" />
+      <origin xyz="${wrist_1_cog}" rpy="0.0 0.0 0.0" />
+      <inertia ixx="1.0" ixy="0.0" ixz="0.0" iyy="1.0" iyz="0.0" izz="1.0"/>
+    </inertial>
+  </link>
+
+  <joint name="wrist_2_joint" type="revolute">
+    <parent link="wrist_1_link" />
+    <child link = "wrist_2_link" />
+    <origin xyz="0.0 ${wrist_1_length} 0.0" rpy="0.0 0.0 0.0" />
+    <axis xyz="0.0 0.0 1.0" />
+    <limit lower="${-2.0 * pi}" upper="${2.0 * pi}" effort="10.0" velocity="${pi}"/>
+    <dynamics damping="0.1" friction="0.1"/>
+  </joint>
+
+  <link name="wrist_2_link">
+    <visual>
+      <geometry>
+        <mesh filename="package://ur5_description/meshes/Wrist2.dae" />
+      </geometry>
+      <origin xyz="0.0 0.0 ${wrist_2_length}" rpy="0.0 0.0 0.0" />
+    </visual>
+    <collision>
+      <geometry>
+        <mesh filename="package://ur5_description/meshes/Wrist2.dae" />
+      </geometry>
+      <origin xyz="0.0 0.0 ${wrist_2_length}" rpy="0.0 0.0 0.0" />
+    </collision>
+    <inertial>
+      <mass value="${wrist_2_mass}" />
+      <origin xyz="${wrist_2_cog}" rpy="0.0 0.0 0.0" />
+      <inertia ixx="1.0" ixy="0.0" ixz="0.0" iyy="1.0" iyz="0.0" izz="1.0"/>
+    </inertial>
+  </link>
+
+  <joint name="wrist_3_joint" type="revolute">
+    <parent link="wrist_2_link" />
+    <child link = "wrist_3_link" />
+    <origin xyz="0.0 0.0 ${wrist_2_length}" rpy="0.0 0.0 0.0" />
+    <axis xyz="0.0 1.0 0.0" />
+    <limit lower="${-2.0 * pi}" upper="${2.0 * pi}" effort="10.0" velocity="${pi}"/>
+    <dynamics damping="0.1" friction="0.1"/>
+  </joint>
+
+  <link name="wrist_3_link">
+    <visual>
+      <geometry>
+        <mesh filename="package://ur5_description/meshes/Wrist3.dae" />
+      </geometry>
+    </visual>
+    <collision>
+      <geometry>
+        <mesh filename="package://ur5_description/meshes/Wrist3.dae" />
+      </geometry>
+    </collision>
+    <inertial>
+      <mass value="${wrist_3_mass}" />
+      <origin xyz="${wrist_3_cog}" rpy="0.0 0.0 0.0" />
+      <inertia ixx="1.0" ixy="0.0" ixz="0.0" iyy="1.0" iyz="0.0" izz="1.0"/>
+    </inertial>
+  </link>
+  
+  <joint name="ee_fixed_joint" type="fixed">
+    <parent link="wrist_3_link" />
+    <child link = "ee_link" />
+    <origin xyz="0.0 ${wrist_3_length} 0.0" rpy="0.0 0.0 ${pi/2.0}" />    
+  </joint>
+
+  <link name="ee_link" />
+  
+
+
+  <!-- Extra links for collision model -->
+  <joint name="shoulder_collision_joint" type="fixed">
+    <parent link="upper_arm_link" />
+    <child link = "shoulder_collision_link" />
+  </joint>
+  <link name="shoulder_collision_link">
+    <collision>
+      <geometry>
+        <cylinder length="${shoulder_collision_length}" radius="${shoulder_radius}"/>
+      </geometry>
+      <origin xyz="0.0 ${-shoulder_collision_offset} 0.0" rpy="${-pi / 2.0} 0.0 0.0" />
+    </collision>
+  </link>
+
+  <joint name="elbow_collision_joint" type="fixed">
+    <parent link="upper_arm_link" />
+    <child link = "elbow_collision_link" />
+  </joint>
+  <link name="elbow_collision_link">
+    <collision>
+      <geometry>
+        <cylinder length="${elbow_collision_length}" radius="${elbow_radius}"/>
+      </geometry>
+      <origin xyz="0.0 ${-elbow_collision_offset} ${upper_arm_length}" rpy="${pi / 2.0} 0.0 0.0" />
+    </collision>
+  </link>
+
+  <gazebo reference="universal_robot">
+    <material>Gazebo/Blue</material>
+  </gazebo>
+
+</robot>
+
+
+
diff --git a/ur5_description/urdf/robot.urdf.pretty.xml b/ur5_description/urdf/robot.urdf.pretty.xml
new file mode 100644
index 0000000..44f307c
--- /dev/null
+++ b/ur5_description/urdf/robot.urdf.pretty.xml
@@ -0,0 +1,248 @@
+<?xml version="1.0" ?>
+<!-- =================================================================================== -->
+<!-- |    This document was autogenerated by xacro from robot.urdf.pretty.xacro        | -->
+<!-- |    EDITING THIS FILE BY HAND IS NOT RECOMMENDED                                 | -->
+<!-- =================================================================================== -->
+<!--
+DH for UR5:
+a = [0.00000, -0.42500, -0.39225,  0.00000,  0.00000,  0.0000]
+d = [0.089159,  0.00000,  0.00000,  0.10915,  0.09465,  0.0823]
+alpha = [ 1.570796327, 0, 0, 1.570796327, -1.570796327, 0 ]
+q_home_offset = [0, -1.570796327, 0, -1.570796327, 0, 0]
+joint_direction = [-1, -1, 1, 1, 1, 1]
+mass = [3.7000, 8.3930, 2.2750, 1.2190, 1.2190, 0.1879]
+center_of_mass = [ [0, -0.02561, 0.00193], [0.2125, 0, 0.11336], [0.11993, 0.0, 0.0265], [0, -0.0018, 0.01634], [0, 0.0018,0.01634], [0, 0, -0.001159] ]
+-->
+<robot name="universal_robot">
+  <!-- Inertia parameters -->
+  <!-- Invented number, only matters for simulator -->
+  <!-- 0.11336 - 0.089159 =  -->
+  <!-- 0.119 is not half of 0.39225, is this really correct? -->
+  <!-- 0.0018 + 0.10915 = 0.110949 -->
+  <!-- 0.01634 + 0.09465 = 0.11099-->
+  <!-- Kinematic model -->
+  <!-- shoulder_offset - elbow_offset + wrist_1_length = 0.10915 -->
+  <!-- CAD measured -->
+  <!-- CAD measured -->
+  <!-- In CAD this distance is 0.930, but in the spec it is 0.09465 -->
+  <!-- manually measured -->
+  <!-- manually measured -->
+  <!-- manually measured -->
+  <!-- manually measured -->
+  <!-- manually measured -->
+  <!-- Collision model -->
+  <!-- manually measured -->
+  <!-- manually measured -->
+  <!-- manually measured -->
+  <!-- manually measured -->
+  <!-- manually measured -->
+  <link name="base_link">
+    <visual>
+      <geometry>
+        <mesh filename="package://ur5_description/meshes/Base.dae"/>
+      </geometry>
+      <origin rpy="0.0 0.0 2.3561944875" xyz="0.0 0.0 0.003"/>
+    </visual>
+    <collision>
+      <geometry>
+        <mesh filename="package://ur5_description/meshes/Base.dae"/>
+      </geometry>
+      <origin rpy="0.0 0.0 2.3561944875" xyz="0.0 0.0 0.003"/>
+    </collision>
+    <inertial>
+      <mass value="4.0"/>
+      <inertia ixx="1.0" ixy="0.0" ixz="0.0" iyy="1.0" iyz="0.0" izz="1.0"/>
+    </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.089159"/>
+    <axis xyz="0.0 0.0 1.0"/>
+    <limit effort="10.0" lower="-6.2831853" upper="6.2831853" velocity="3.14159265"/>
+    <dynamics damping="0.1" friction="0.1"/>
+  </joint>
+  <link name="shoulder_link">
+    <visual>
+      <geometry>
+        <mesh filename="package://ur5_description/meshes/Shoulder.dae"/>
+      </geometry>
+    </visual>
+    <collision>
+      <geometry>
+        <mesh filename="package://ur5_description/meshes/Shoulder.dae"/>
+      </geometry>
+    </collision>
+    <inertial>
+      <mass value="3.7"/>
+      <inertia ixx="1.0" ixy="0.0" ixz="0.0" iyy="1.0" iyz="0.0" izz="1.0"/>
+      <origin rpy="0.0 0.0 0.0" xyz="0.0 0.00193 -0.02561"/>
+    </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.13585 0.0"/>
+    <axis xyz="0.0 1.0 0.0"/>
+    <limit effort="10.0" lower="-6.2831853" upper="6.2831853" velocity="3.14159265"/>
+    <dynamics damping="0.1" friction="0.1"/>
+  </joint>
+  <link name="upper_arm_link">
+    <visual>
+      <geometry>
+        <mesh filename="package://ur5_description/meshes/UpperArm.dae"/>
+      </geometry>
+      <origin rpy="0.0 0.0 0.0" xyz="0.0 0.0 0.0"/>
+    </visual>
+    <collision>
+      <geometry>
+        <mesh filename="package://ur5_description/meshes/UpperArm.dae"/>
+      </geometry>
+      <origin rpy="0.0 0.0 0.0" xyz="0.0 0.0 0.0"/>
+    </collision>
+    <inertial>
+      <mass value="8.393"/>
+      <inertia ixx="1.0" ixy="0.0" ixz="0.0" iyy="1.0" iyz="0.0" izz="1.0"/>
+      <origin rpy="0.0 0.0 0.0" xyz="0.0 -0.024201 0.2125"/>
+    </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.1197 0.425"/>
+    <axis xyz="0.0 1.0 0.0"/>
+    <limit effort="10.0" lower="-6.2831853" upper="6.2831853" velocity="3.14159265"/>
+    <dynamics damping="0.1" friction="0.1"/>
+  </joint>
+  <link name="forearm_link">
+    <visual>
+      <geometry>
+        <mesh filename="package://ur5_description/meshes/Forearm.dae"/>
+      </geometry>
+    </visual>
+    <collision>
+      <geometry>
+        <mesh filename="package://ur5_description/meshes/Forearm.dae"/>
+      </geometry>
+    </collision>
+    <inertial>
+      <mass value="2.275"/>
+      <origin rpy="0.0 0.0 0.0" xyz="0.0 0.0265 0.11993"/>
+      <inertia ixx="1.0" ixy="0.0" ixz="0.0" iyy="1.0" iyz="0.0" izz="1.0"/>
+    </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.39225"/>
+    <axis xyz="0.0 1.0 0.0"/>
+    <limit effort="10.0" lower="-6.2831853" upper="6.2831853" velocity="3.14159265"/>
+    <dynamics damping="0.1" friction="0.1"/>
+  </joint>
+  <link name="wrist_1_link">
+    <visual>
+      <geometry>
+        <mesh filename="package://ur5_description/meshes/Wrist1.dae"/>
+      </geometry>
+      <origin rpy="0.0 1.570796325 0.0" xyz="0.0 0.093 0.0"/>
+    </visual>
+    <collision>
+      <geometry>
+        <mesh filename="package://ur5_description/meshes/Wrist1.dae"/>
+      </geometry>
+      <origin rpy="0.0 1.570796325 0.0" xyz="0.0 0.093 0.0"/>
+    </collision>
+    <inertial>
+      <mass value="1.219"/>
+      <origin rpy="0.0 0.0 0.0" xyz="0.0 0.110949 0.01634"/>
+      <inertia ixx="1.0" ixy="0.0" ixz="0.0" iyy="1.0" iyz="0.0" izz="1.0"/>
+    </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.093 0.0"/>
+    <axis xyz="0.0 0.0 1.0"/>
+    <limit effort="10.0" lower="-6.2831853" upper="6.2831853" velocity="3.14159265"/>
+    <dynamics damping="0.1" friction="0.1"/>
+  </joint>
+  <link name="wrist_2_link">
+    <visual>
+      <geometry>
+        <mesh filename="package://ur5_description/meshes/Wrist2.dae"/>
+      </geometry>
+      <origin rpy="0.0 0.0 0.0" xyz="0.0 0.0 0.09465"/>
+    </visual>
+    <collision>
+      <geometry>
+        <mesh filename="package://ur5_description/meshes/Wrist2.dae"/>
+      </geometry>
+      <origin rpy="0.0 0.0 0.0" xyz="0.0 0.0 0.09465"/>
+    </collision>
+    <inertial>
+      <mass value="1.219"/>
+      <origin rpy="0.0 0.0 0.0" xyz="0.0 0.0018 0.11099"/>
+      <inertia ixx="1.0" ixy="0.0" ixz="0.0" iyy="1.0" iyz="0.0" izz="1.0"/>
+    </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.09465"/>
+    <axis xyz="0.0 1.0 0.0"/>
+    <limit effort="10.0" lower="-6.2831853" upper="6.2831853" velocity="3.14159265"/>
+    <dynamics damping="0.1" friction="0.1"/>
+  </joint>
+  <link name="wrist_3_link">
+    <visual>
+      <geometry>
+        <mesh filename="package://ur5_description/meshes/Wrist3.dae"/>
+      </geometry>
+    </visual>
+    <collision>
+      <geometry>
+        <mesh filename="package://ur5_description/meshes/Wrist3.dae"/>
+      </geometry>
+    </collision>
+    <inertial>
+      <mass value="0.1879"/>
+      <origin rpy="0.0 0.0 0.0" xyz="0.0 0.001159 0.0"/>
+      <inertia ixx="1.0" ixy="0.0" ixz="0.0" iyy="1.0" iyz="0.0" izz="1.0"/>
+    </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.0823 0.0"/>
+  </joint>
+  <link name="ee_link"/>
+  <!-- Extra links for collision model -->
+  <joint name="shoulder_collision_joint" type="fixed">
+    <parent link="upper_arm_link"/>
+    <child link="shoulder_collision_link"/>
+  </joint>
+  <link name="shoulder_collision_link">
+    <collision>
+      <geometry>
+        <cylinder length="0.2" radius="0.06"/>
+      </geometry>
+      <origin rpy="-1.570796325 0.0 0.0" xyz="0.0 -0.035 0.0"/>
+    </collision>
+  </link>
+  <joint name="elbow_collision_joint" type="fixed">
+    <parent link="upper_arm_link"/>
+    <child link="elbow_collision_link"/>
+  </joint>
+  <link name="elbow_collision_link">
+    <collision>
+      <geometry>
+        <cylinder length="0.2" radius="0.06"/>
+      </geometry>
+      <origin rpy="1.570796325 0.0 0.0" xyz="0.0 -0.035 0.425"/>
+    </collision>
+  </link>
+  <gazebo reference="universal_robot">
+    <material>Gazebo/Blue</material>
+  </gazebo>
+</robot>
+
diff --git a/ur5_moveit/config/joint_limits.yaml b/ur5_moveit/config/joint_limits.yaml
index d79d499..97f1242 100644
--- a/ur5_moveit/config/joint_limits.yaml
+++ b/ur5_moveit/config/joint_limits.yaml
@@ -4,40 +4,40 @@ joint_limits:
     has_velocity_limits: true
     max_velocity: 3.14159265
     has_acceleration_limits: true
-    max_acceleration: 1
+    max_acceleration: 3
     angle_wraparound: false
   shoulder_lift_joint:
     has_position_limits: true
     has_velocity_limits: true
     max_velocity: 3.14159265
     has_acceleration_limits: true
-    max_acceleration: 1
+    max_acceleration: 3
     angle_wraparound: false
   elbow_joint:
     has_position_limits: true
     has_velocity_limits: true
     max_velocity: 3.14159265
     has_acceleration_limits: true
-    max_acceleration: 1
+    max_acceleration: 3
     angle_wraparound: false
   wrist_1_joint:
     has_position_limits: true
     has_velocity_limits: true
     max_velocity: 3.14159265
     has_acceleration_limits: true
-    max_acceleration: 1
+    max_acceleration: 3
     angle_wraparound: false
   wrist_2_joint:
     has_position_limits: true
     has_velocity_limits: true
     max_velocity: 3.14159265
     has_acceleration_limits: true
-    max_acceleration: 1
+    max_acceleration: 3
     angle_wraparound: false
   wrist_3_joint:
     has_position_limits: true
     has_velocity_limits: true
     max_velocity: 3.14159265
     has_acceleration_limits: true
-    max_acceleration: 1
+    max_acceleration: 3
     angle_wraparound: false
\ No newline at end of file
diff --git a/ur5_moveit/config/ur5.srdf b/ur5_moveit/config/ur5.srdf
index d7e5611..cdbe1fb 100644
--- a/ur5_moveit/config/ur5.srdf
+++ b/ur5_moveit/config/ur5.srdf
@@ -2,8 +2,6 @@
 
 <robot name="universal_robot">
 
-   <virtual_joint name="world_joint" type="floating" parent_frame="odom_combined" child_link="base_link"/> 
-
    <group name="arm">
       <chain base_link="base_link" tip_link="wrist_3_link"/>
    </group>
diff --git a/ur5_moveit/launch/ur5_moveit_visualization.launch b/ur5_moveit/launch/ur5_moveit_visualization.launch
index 2b20088..4a9244a 100644
--- a/ur5_moveit/launch/ur5_moveit_visualization.launch
+++ b/ur5_moveit/launch/ur5_moveit_visualization.launch
@@ -1,19 +1,28 @@
 <launch>
-  <param name="robot_description" textfile="$(find ur5_description)/urdf/robot.urdf.xml" />
+  <arg name="monitor_robot_state" default="false"/>
+  <arg name="allow_trajectory_execution" default="false"/>
+
+  <param name="robot_description" textfile="$(find ur5_description)/urdf/robot.urdf.pretty.xml" />
   <!--<param name="robot_description" textfile="$(find ur5_description)/urdf/universal_or.dae" /-->
   <param name="robot_description_semantic" textfile="$(find ur5_moveit)/config/ur5.srdf" />
 
+  <node pkg="robot_state_publisher" type="state_publisher" name="rob_st_pub" />
+  <node unless="$(arg monitor_robot_state)" pkg="moveit_visualization_ros" name="wall_clock_server" type="fake_time.py" />
+
+  <rosparam if="$(arg allow_trajectory_execution)" command="load" file="$(find ur5_moveit)/config/controllers.yaml" />
+
   <group ns="robot_description_planning">
     <rosparam command="load" file="$(find ur5_moveit)/config/collision_matrix.yaml"/>
     <rosparam command="load" file="$(find ur5_moveit)/config/joint_limits.yaml"/>
   </group>
   
-  <node pkg="robot_state_publisher" type="state_publisher" name="rob_st_pub" />
-  <node pkg="moveit_visualization_ros" name="wall_clock_server" type="fake_time.py" />
-
   <node pkg="moveit_visualization_ros" type="moveit_visualizer" name="moveit_visualizer" output="screen">
     <rosparam command="load" file="$(find ur5_moveit)/config/ompl_planning.yaml"/>
     <rosparam command="load" file="$(find ur5_moveit)/config/kinematics.yaml"/>
+    <rosparam if="$(arg allow_trajectory_execution)" file="$(find ur5_moveit)/config/controllers.yaml"/>
+    <param name="monitor_robot_state" value="$(arg monitor_robot_state)"/>
+    <param name="allow_trajectory_execution" value="$(arg allow_trajectory_execution)"/>
+    <param if="$(arg allow_trajectory_execution)" name="manage_controllers" value="false"/>
   </node>
 
 </launch>
diff --git a/ur5_moveit/src/universal_robot_arm_ikfast_plugin.cpp b/ur5_moveit/src/universal_robot_arm_ikfast_plugin.cpp
index d18972d..25d705e 100644
--- a/ur5_moveit/src/universal_robot_arm_ikfast_plugin.cpp
+++ b/ur5_moveit/src/universal_robot_arm_ikfast_plugin.cpp
@@ -191,7 +191,7 @@ public:
         std::vector<double> sol;
         ik_solver_->getSolution(s,sol);
         bool obeys_limits = true;
-        ROS_INFO_STREAM("Got " << numsol << " solutions");
+        ROS_DEBUG_STREAM("Got " << numsol << " solutions");
         for(unsigned int i = 0; i < sol.size(); i++) {
           if(joint_has_limits_vector_[i] && (sol[i] < joint_min_vector_[i] || sol[i] > joint_max_vector_[i])) {
             obeys_limits = false;
@@ -206,7 +206,7 @@ public:
         }
       }
     } else {
-      ROS_INFO_STREAM("No ik solution");
+      ROS_DEBUG_STREAM("No ik solution");
     }
 	
     error_code.val = error_code.NO_IK_SOLUTION; 
-- 
GitLab