Skip to content
Snippets Groups Projects
Commit 6f3120f5 authored by ipa-fxm's avatar ipa-fxm
Browse files

beautification

parent e4d67ddd
Branches
Tags
No related merge requests found
<?xml version="1.0"?>
<robot xmlns:xacro="http://www.ros.org/wiki/xacro">
<!--
Author: Kelsey Hawkins
Contributers: Jimmy Da Silva, Ajit Krisshna N L, Muhammad Asif Rana
-->
<robot xmlns:xacro="http://www.ros.org/wiki/xacro">
<xacro:include filename="$(find ur_description)/urdf/ur10.transmission.xacro" />
<xacro:include filename="$(find ur_description)/urdf/ur10.gazebo.xacro" />
<xacro:include filename="$(find ur_description)/urdf/materials.urdf.xacro" />
......@@ -35,7 +34,6 @@
<property name="wrist_3_cog" value="0 -0.001156 -0.00149" />
<!-- Kinematic model -->
<!-- Properties from urcontrol.conf -->
<property name="ur10_d1" value="0.1273" />
<property name="ur10_a2" value="-0.612" />
......@@ -55,7 +53,7 @@
<property name="wrist_1_length" value="${ur10_d4 - elbow_offset - shoulder_offset}" />
<property name="wrist_2_length" value="${ur10_d5}" />
<property name="wrist_3_length" value="${ur10_d6}" />
<xacro:macro name="cylinder_inertial" params="radius length mass *origin">
<inertial>
<mass value="${mass}" />
......@@ -65,252 +63,237 @@
izz="${0.5 * mass * radius * radius}" />
</inertial>
</xacro:macro>
<xacro:macro name="ur10_robot" params="prefix joint_limited">
<link name="${prefix}base_link" >
<visual>
<geometry>
<mesh filename="package://ur_description/meshes/ur10/visual/Base.dae" scale="${scale}"/>
</geometry>
<origin xyz="0.0 0.0 0.0" rpy="${pi / 2.0} 0.0 0.0" />
<material name="UR/Blue" />
</visual>
<collision>
<geometry>
<mesh filename="package://ur_description/meshes/ur10/collision/Base.dae" scale="${scale}"/>
</geometry>
<origin xyz="0.0 0.0 0.0" rpy="${pi / 2.0} 0.0 0.0" />
</collision>
<xacro:cylinder_inertial radius="0.075" length="0.038" mass="${base_mass}">
<origin xyz="0.0 0.0 0.019" rpy="0 0 0" />
</xacro:cylinder_inertial>
</link>
<joint name="${prefix}shoulder_pan_joint" type="revolute">
<parent link="${prefix}base_link" />
<child link = "${prefix}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" />
<xacro:unless value="${joint_limited}">
<limit lower="${-2.0 * pi}" upper="${2.0 * pi}" effort="330.0" velocity="2.16"/>
</xacro:unless>
<xacro:if value="${joint_limited}">
<limit lower="${-pi}" upper="${pi}" effort="330.0" velocity="2.16"/>
</xacro:if>
<dynamics damping="0.0" friction="0.0"/>
</joint>
<xacro:macro name="ur10_robot" params="prefix joint_limited">
<link name="${prefix}shoulder_link">
<visual>
<geometry>
<link name="${prefix}base_link" >
<visual>
<geometry>
<mesh filename="package://ur_description/meshes/ur10/visual/Base.dae" scale="${scale}"/>
</geometry>
<origin xyz="0.0 0.0 0.0" rpy="${pi / 2.0} 0.0 0.0" />
<material name="UR/Blue" />
</visual>
<collision>
<geometry>
<mesh filename="package://ur_description/meshes/ur10/collision/Base.dae" scale="${scale}"/>
</geometry>
<origin xyz="0.0 0.0 0.0" rpy="${pi / 2.0} 0.0 0.0" />
</collision>
<xacro:cylinder_inertial radius="0.075" length="0.038" mass="${base_mass}">
<origin xyz="0.0 0.0 0.019" rpy="0 0 0" />
</xacro:cylinder_inertial>
</link>
<joint name="${prefix}shoulder_pan_joint" type="revolute">
<parent link="${prefix}base_link" />
<child link = "${prefix}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" />
<xacro:unless value="${joint_limited}">
<limit lower="${-2.0 * pi}" upper="${2.0 * pi}" effort="330.0" velocity="2.16"/>
</xacro:unless>
<xacro:if value="${joint_limited}">
<limit lower="${-pi}" upper="${pi}" effort="330.0" velocity="2.16"/>
</xacro:if>
<dynamics damping="0.0" friction="0.0"/>
</joint>
<link name="${prefix}shoulder_link">
<visual>
<geometry>
<mesh filename="package://ur_description/meshes/ur10/visual/Shoulder.dae" scale="${scale}"/>
</geometry>
<origin rpy="${pi / 2.0} 0.0 0.0" xyz="0.0 0.0 -0.127"/> <!-- -0.127 ???? -->
<material name="UR/Grey" />
</visual>
<collision>
<geometry>
<mesh filename="package://ur_description/meshes/ur10/collision/Shoulder.dae" scale="${scale}"/>
</geometry>
<origin rpy="${pi / 2.0} 0.0 0.0" xyz="0.0 0.0 -0.127"/> <!-- -0.127 ???? -->
</collision>
<xacro:cylinder_inertial radius="0.075" length="0.178" mass="${shoulder_mass}">
<origin xyz="0.0 0.0 0.089" rpy="0 0 0" />
</xacro:cylinder_inertial>
</link>
<joint name="${prefix}shoulder_lift_joint" type="revolute">
<parent link="${prefix}shoulder_link" />
<child link = "${prefix}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" />
<xacro:unless value="${joint_limited}">
<limit lower="${-2.0 * pi}" upper="${2.0 * pi}" effort="330.0" velocity="2.16"/>
</xacro:unless>
<xacro:if value="${joint_limited}">
<limit lower="${-pi}" upper="${pi}" effort="330.0" velocity="2.16"/>
</xacro:if>
<dynamics damping="0.0" friction="0.0"/>
</joint>
<link name="${prefix}upper_arm_link">
<visual>
<geometry>
<mesh filename="package://ur_description/meshes/ur10/visual/UpperArm.dae" scale="${scale}"/>
</geometry>
<origin xyz="0.0 -0.221 -0.127" rpy="${pi / 2.0} 0.0 0.0" /> <!-- new offset-->
<material name="UR/Blue" />
</visual>
<collision>
<geometry>
<mesh filename="package://ur_description/meshes/ur10/collision/UpperArm.dae" scale="${scale}"/>
</geometry>
<origin xyz="0.0 -0.221 -0.127" rpy="${pi / 2.0} 0.0 0.0" /> <!-- new offset-->
</collision>
<xacro:cylinder_inertial radius="0.075" length="${-ur10_a2}" mass="${upper_arm_mass}">
<origin xyz="0.0 0.0 ${-ur10_a2/2.0}" rpy="0 0 0" />
</xacro:cylinder_inertial>
</link>
<joint name="${prefix}elbow_joint" type="revolute">
<parent link="${prefix}upper_arm_link" />
<child link = "${prefix}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" />
<xacro:unless value="${joint_limited}">
<limit lower="${-2.0 * pi}" upper="${2.0 * pi}" effort="150.0" velocity="3.15"/>
</xacro:unless>
<xacro:if value="${joint_limited}">
<limit lower="${-pi}" upper="${pi}" effort="150.0" velocity="3.15"/>
</xacro:if>
<dynamics damping="0.0" friction="0.0"/>
</joint>
<link name="${prefix}forearm_link">
<visual>
<geometry>
<mesh filename="package://ur_description/meshes/ur10/visual/Forearm.dae" scale="${scale}"/>
</geometry>
<origin xyz="0.0 -0.049 -0.739" rpy="${pi / 2.0} 0.0 0.0" /> <!-- new offset -->
<material name="UR/Grey" />
</visual>
<collision>
<geometry>
<mesh filename="package://ur_description/meshes/ur10/collision/Forearm.dae" scale="${scale}"/>
</geometry>
<origin xyz="0.0 -0.049 -0.739" rpy="${pi / 2.0} 0.0 0.0" /> <!-- new offset -->
</collision>
<xacro:cylinder_inertial radius="0.075" length="${-ur10_a3}" mass="${forearm_mass}">
<origin xyz="0.0 0.0 ${-ur10_a3/2.0}" rpy="0 0 0" />
</xacro:cylinder_inertial>
</link>
<joint name="${prefix}wrist_1_joint" type="revolute">
<parent link="${prefix}forearm_link" />
<child link = "${prefix}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" />
<xacro:unless value="${joint_limited}">
<limit lower="${-2.0 * pi}" upper="${2.0 * pi}" effort="54.0" velocity="3.2"/>
</xacro:unless>
<xacro:if value="${joint_limited}">
<limit lower="${-pi}" upper="${pi}" effort="54.0" velocity="3.2"/>
</xacro:if>
<dynamics damping="0.0" friction="0.0"/>
</joint>
<link name="${prefix}wrist_1_link">
<visual>
<geometry>
<mesh filename="package://ur_description/meshes/ur10/visual/Wrist1.dae" scale="${scale}"/>
</geometry>
<origin xyz="0.0 -0.049 -1.312" rpy="${pi / 2.0} 0 0.0" /> <!-- new offset -->
<material name="UR/Blue" />
</visual>
<collision>
<geometry>
<mesh filename="package://ur_description/meshes/ur10/collision/Wrist1.dae" scale="${scale}"/>
</geometry>
<origin xyz="0.0 -0.049 -1.312" rpy="${pi / 2.0} 0 0.0" /> <!-- new offset -->
</collision>
<xacro:cylinder_inertial radius="0.075" length="0.12" mass="${wrist_1_mass}">
<origin xyz="0.0 0.0 0.0" rpy="0 0 0" />
</xacro:cylinder_inertial>
</link>
</geometry>
<origin rpy="${pi / 2.0} 0.0 0.0" xyz="0.0 0.0 -0.127"/> <!-- -0.127 ???? -->
<material name="UR/Grey" />
</visual>
<collision>
<geometry>
<mesh filename="package://ur_description/meshes/ur10/collision/Shoulder.dae" scale="${scale}"/>
</geometry>
<origin rpy="${pi / 2.0} 0.0 0.0" xyz="0.0 0.0 -0.127"/> <!-- -0.127 ???? -->
</collision>
<xacro:cylinder_inertial radius="0.075" length="0.178" mass="${shoulder_mass}">
<origin xyz="0.0 0.0 0.089" rpy="0 0 0" />
</xacro:cylinder_inertial>
</link>
<joint name="${prefix}shoulder_lift_joint" type="revolute">
<parent link="${prefix}shoulder_link" />
<child link = "${prefix}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" />
<xacro:unless value="${joint_limited}">
<limit lower="${-2.0 * pi}" upper="${2.0 * pi}" effort="330.0" velocity="2.16"/>
</xacro:unless>
<xacro:if value="${joint_limited}">
<limit lower="${-pi}" upper="${pi}" effort="330.0" velocity="2.16"/>
</xacro:if>
<dynamics damping="0.0" friction="0.0"/>
</joint>
<link name="${prefix}upper_arm_link">
<visual>
<geometry>
<mesh filename="package://ur_description/meshes/ur10/visual/UpperArm.dae" scale="${scale}"/>
</geometry>
<origin xyz="0.0 -0.221 -0.127" rpy="${pi / 2.0} 0.0 0.0" /> <!-- new offset-->
<material name="UR/Blue" />
</visual>
<collision>
<geometry>
<mesh filename="package://ur_description/meshes/ur10/collision/UpperArm.dae" scale="${scale}"/>
</geometry>
<origin xyz="0.0 -0.221 -0.127" rpy="${pi / 2.0} 0.0 0.0" /> <!-- new offset-->
</collision>
<xacro:cylinder_inertial radius="0.075" length="${-ur10_a2}" mass="${upper_arm_mass}">
<origin xyz="0.0 0.0 ${-ur10_a2/2.0}" rpy="0 0 0" />
</xacro:cylinder_inertial>
</link>
<joint name="${prefix}elbow_joint" type="revolute">
<parent link="${prefix}upper_arm_link" />
<child link = "${prefix}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" />
<xacro:unless value="${joint_limited}">
<limit lower="${-2.0 * pi}" upper="${2.0 * pi}" effort="150.0" velocity="3.15"/>
</xacro:unless>
<xacro:if value="${joint_limited}">
<limit lower="${-pi}" upper="${pi}" effort="150.0" velocity="3.15"/>
</xacro:if>
<dynamics damping="0.0" friction="0.0"/>
</joint>
<link name="${prefix}forearm_link">
<visual>
<geometry>
<mesh filename="package://ur_description/meshes/ur10/visual/Forearm.dae" scale="${scale}"/>
</geometry>
<origin xyz="0.0 -0.049 -0.739" rpy="${pi / 2.0} 0.0 0.0" /> <!-- new offset -->
<material name="UR/Grey" />
</visual>
<collision>
<geometry>
<mesh filename="package://ur_description/meshes/ur10/collision/Forearm.dae" scale="${scale}"/>
</geometry>
<origin xyz="0.0 -0.049 -0.739" rpy="${pi / 2.0} 0.0 0.0" /> <!-- new offset -->
</collision>
<xacro:cylinder_inertial radius="0.075" length="${-ur10_a3}" mass="${forearm_mass}">
<origin xyz="0.0 0.0 ${-ur10_a3/2.0}" rpy="0 0 0" />
</xacro:cylinder_inertial>
</link>
<joint name="${prefix}wrist_1_joint" type="revolute">
<parent link="${prefix}forearm_link" />
<child link = "${prefix}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" />
<xacro:unless value="${joint_limited}">
<limit lower="${-2.0 * pi}" upper="${2.0 * pi}" effort="54.0" velocity="3.2"/>
</xacro:unless>
<xacro:if value="${joint_limited}">
<limit lower="${-pi}" upper="${pi}" effort="54.0" velocity="3.2"/>
</xacro:if>
<dynamics damping="0.0" friction="0.0"/>
</joint>
<link name="${prefix}wrist_1_link">
<visual>
<geometry>
<mesh filename="package://ur_description/meshes/ur10/visual/Wrist1.dae" scale="${scale}"/>
</geometry>
<origin xyz="0.0 -0.049 -1.312" rpy="${pi / 2.0} 0 0.0" /> <!-- new offset -->
<material name="UR/Blue" />
</visual>
<collision>
<geometry>
<mesh filename="package://ur_description/meshes/ur10/collision/Wrist1.dae" scale="${scale}"/>
</geometry>
<origin xyz="0.0 -0.049 -1.312" rpy="${pi / 2.0} 0 0.0" /> <!-- new offset -->
</collision>
<xacro:cylinder_inertial radius="0.075" length="0.12" mass="${wrist_1_mass}">
<origin xyz="0.0 0.0 0.0" rpy="0 0 0" />
</xacro:cylinder_inertial>
</link>
<joint name="${prefix}wrist_2_joint" type="revolute">
<parent link="${prefix}wrist_1_link" />
<child link = "${prefix}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" />
<xacro:unless value="${joint_limited}">
<limit lower="${-2.0 * pi}" upper="${2.0 * pi}" effort="54.0" velocity="3.2"/>
</xacro:unless>
<xacro:if value="${joint_limited}">
<limit lower="${-pi}" upper="${pi}" effort="54.0" velocity="3.2"/>
</xacro:if>
<dynamics damping="0.0" friction="0.0"/>
</joint>
<link name="${prefix}wrist_2_link">
<visual>
<geometry>
<mesh filename="package://ur_description/meshes/ur10/visual/Wrist2.dae" scale="${scale}"/>
</geometry>
<origin xyz="0.0 -0.164 -1.312" rpy="${pi / 2.0} 0.0 0.0" /> <!-- new offset -->
<material name="UR/Grey" />
</visual>
<collision>
<geometry>
<mesh filename="package://ur_description/meshes/ur10/collision/Wrist2.dae" scale="${scale}"/>
</geometry>
<origin xyz="0.0 -0.164 -1.312" rpy="${pi / 2.0} 0.0 0.0" /> <!-- new offset -->
</collision>
<xacro:cylinder_inertial radius="0.075" length="0.12" mass="${wrist_2_mass}">
<origin xyz="0.0 0.0 0.0" rpy="0 0 0" />
</xacro:cylinder_inertial>
</link>
<joint name="${prefix}wrist_3_joint" type="revolute">
<parent link="${prefix}wrist_2_link" />
<child link = "${prefix}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" />
<xacro:unless value="${joint_limited}">
<limit lower="${-2.0 * pi}" upper="${2.0 * pi}" effort="54.0" velocity="3.2"/>
</xacro:unless>
<xacro:if value="${joint_limited}">
<limit lower="${-pi}" upper="${pi}" effort="54.0" velocity="3.2"/>
</xacro:if>
<dynamics damping="0.0" friction="0.0"/>
</joint>
<link name="${prefix}wrist_3_link">
<visual>
<geometry>
<mesh filename="package://ur_description/meshes/ur10/visual/Wrist3.dae" scale="${scale}"/>
</geometry>
<origin xyz="0.0 -0.164 -1.427" rpy="${pi / 2.0} 0.0 0" /> <!-- new offset -->
<material name="UR/Blue" />
</visual>
<parent link="${prefix}wrist_1_link" />
<child link = "${prefix}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" />
<xacro:unless value="${joint_limited}">
<limit lower="${-2.0 * pi}" upper="${2.0 * pi}" effort="54.0" velocity="3.2"/>
</xacro:unless>
<xacro:if value="${joint_limited}">
<limit lower="${-pi}" upper="${pi}" effort="54.0" velocity="3.2"/>
</xacro:if>
<dynamics damping="0.0" friction="0.0"/>
</joint>
<link name="${prefix}wrist_2_link">
<visual>
<geometry>
<mesh filename="package://ur_description/meshes/ur10/visual/Wrist2.dae" scale="${scale}"/>
</geometry>
<origin xyz="0.0 -0.164 -1.312" rpy="${pi / 2.0} 0.0 0.0" /> <!-- new offset -->
<material name="UR/Grey" />
</visual>
<collision>
<geometry>
<mesh filename="package://ur_description/meshes/ur10/collision/Wrist2.dae" scale="${scale}"/>
</geometry>
<origin xyz="0.0 -0.164 -1.312" rpy="${pi / 2.0} 0.0 0.0" /> <!-- new offset -->
</collision>
<xacro:cylinder_inertial radius="0.075" length="0.12" mass="${wrist_2_mass}">
<origin xyz="0.0 0.0 0.0" rpy="0 0 0" />
</xacro:cylinder_inertial>
</link>
<joint name="${prefix}wrist_3_joint" type="revolute">
<parent link="${prefix}wrist_2_link" />
<child link = "${prefix}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" />
<xacro:unless value="${joint_limited}">
<limit lower="${-2.0 * pi}" upper="${2.0 * pi}" effort="54.0" velocity="3.2"/>
</xacro:unless>
<xacro:if value="${joint_limited}">
<limit lower="${-pi}" upper="${pi}" effort="54.0" velocity="3.2"/>
</xacro:if>
<dynamics damping="0.0" friction="0.0"/>
</joint>
<link name="${prefix}wrist_3_link">
<visual>
<geometry>
<mesh filename="package://ur_description/meshes/ur10/visual/Wrist3.dae" scale="${scale}"/>
</geometry>
<origin xyz="0.0 -0.164 -1.427" rpy="${pi / 2.0} 0.0 0" /> <!-- new offset -->
<material name="UR/Blue" />
</visual>
<collision>
<geometry>
<mesh filename="package://ur_description/meshes/ur10/collision/Wrist3.dae" scale="${scale}"/>
</geometry>
<origin xyz="0.0 -0.164 -1.427" rpy="${pi / 2.0} 0.0 0" /> <!-- new offset -->
</collision>
<xacro:cylinder_inertial radius="0.075" length="0.12" mass="${wrist_3_mass}">
<origin xyz="0.0 0.0 0.0" rpy="0 0 0" />
</xacro:cylinder_inertial>
</link>
<joint name="${prefix}ee_fixed_joint" type="fixed">
<parent link="${prefix}wrist_3_link" />
<child link = "${prefix}ee_link" />
<origin xyz="0.0 ${wrist_3_length} 0.0" rpy="0.0 0.0 ${pi/2.0}" />
</joint>
<collision>
<geometry>
<mesh filename="package://ur_description/meshes/ur10/collision/Wrist3.dae" scale="${scale}"/>
</geometry>
<origin xyz="0.0 -0.164 -1.427" rpy="${pi / 2.0} 0.0 0" /> <!-- new offset -->
</collision>
<link name="${prefix}ee_link" />
<xacro:cylinder_inertial radius="0.075" length="0.12" mass="${wrist_3_mass}">
<origin xyz="0.0 0.0 0.0" rpy="0 0 0" />
</xacro:cylinder_inertial>
</link>
<xacro:ur10_arm_transmission prefix="${prefix}" />
<xacro:ur10_arm_gazebo prefix="${prefix}" />
<joint name="${prefix}ee_fixed_joint" type="fixed">
<parent link="${prefix}wrist_3_link" />
<child link = "${prefix}ee_link" />
<origin xyz="0.0 ${wrist_3_length} 0.0" rpy="0.0 0.0 ${pi/2.0}" />
</joint>
<link name="${prefix}ee_link" />
<xacro:ur10_arm_transmission prefix="${prefix}" />
<xacro:ur10_arm_gazebo prefix="${prefix}" />
</xacro:macro>
</robot>
......@@ -4,20 +4,10 @@
<xacro:include filename="$(find ur_description)/urdf/ur5.transmission.xacro" />
<xacro:include filename="$(find ur_description)/urdf/ur5.gazebo.xacro" />
<xacro:include filename="$(find ur_description)/urdf/materials.urdf.xacro" />
<!--
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] ]
-->
<property name="pi" value="3.14159265" />
<!-- Inertia parameters -->
<!-- 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" />
......@@ -33,7 +23,36 @@ center_of_mass = [ [0, -0.02561, 0.00193], [0.2125, 0, 0.11336], [0.11993, 0.0,
<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 -->
<!-- Kinematic model -->
<!-- Properties from urcontrol.conf -->
<!--
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] ]
-->
<property name="ur5_d1" value="0.1273" />
<property name="ur5_a2" value="-0.612" />
<property name="ur5_a3" value="-0.5723" />
<property name="ur5_d4" value="0.163941" />
<property name="ur5_d5" value="0.1157" />
<property name="ur5_d6" value="0.0922" />
<!-- Arbitrary offsets for shoulder/elbow joints -->
<!--property name="shoulder_offset" value="0.220941" /--> <!-- measured from model -->
<!--property name="elbow_offset" value="-0.1719" /--> <!-- measured from model -->
<!-- link lengths used in model -->
<!--property name="shoulder_height" value="${ur5_d1}" />
<property name="upper_arm_length" value="${-ur5_a2}" />
<property name="forearm_length" value="${-ur5_a3}" />
<property name="wrist_1_length" value="${ur5_d4 - elbow_offset - shoulder_offset}" />
<property name="wrist_2_length" value="${ur5_d5}" />
<property name="wrist_3_length" value="${ur5_d6}" /-->
<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" />
......@@ -49,207 +68,237 @@ center_of_mass = [ [0, -0.02561, 0.00193], [0.2125, 0, 0.11336], [0.11993, 0.0,
<property name="forearm_radius" value="0.040" /> <!-- manually measured -->
<property name="wrist_radius" value="0.045" /> <!-- manually measured -->
<xacro:macro name="ur5_robot" params="prefix">
<link name="${prefix}base_link" >
<visual>
<geometry>
<mesh filename="package://ur_description/meshes/ur5/visual/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://ur_description/meshes/ur5/collision/Base.dae" />
</geometry>
<!-- <origin rpy="0.0 0.0 0.0" xyz="0.0 0.0 -0.009159"/> -->
</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="${prefix}shoulder_pan_joint" type="revolute">
<parent link="${prefix}base_link" />
<child link = "${prefix}shoulder_link" />
<origin xyz="0.0 0.0 ${shoulder_height}" rpy="0.0 0.0 0.0" />
<axis xyz="0 0 1" />
<limit lower="${-2.0 * pi}" upper="${2.0 * pi}" effort="150.0" velocity="${pi}"/>
<dynamics damping="0.4" friction="0.0"/>
</joint>
<link name="${prefix}shoulder_link">
<visual>
<geometry>
<mesh filename="package://ur_description/meshes/ur5/visual/Shoulder.dae" />
</geometry>
</visual>
<collision>
<geometry>
<mesh filename="package://ur_description/meshes/ur5/collision/Shoulder.dae" />
</geometry>
<!-- <origin rpy="0.0 0.0 0.0" xyz="0.0 0.0 -0.009159"/> -->
</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="${prefix}shoulder_lift_joint" type="revolute">
<parent link="${prefix}shoulder_link" />
<child link = "${prefix}upper_arm_link" />
<origin xyz="0.0 ${shoulder_offset} 0.0" rpy="0.0 ${pi / 2.0} 0.0" />
<axis xyz="0 1 0" />
<limit lower="${-2.0 * pi}" upper="${2.0 * pi}" effort="150.0" velocity="${pi}"/>
<dynamics damping="0.4" friction="0.0"/>
</joint>
<link name="${prefix}upper_arm_link">
<visual>
<geometry>
<mesh filename="package://ur_description/meshes/ur5/visual/UpperArm.dae" />
</geometry>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
</visual>
<collision>
<geometry>
<mesh filename="package://ur_description/meshes/ur5/collision/UpperArm.dae" />
</geometry>
<!-- <origin rpy="0.0 0.0 0.0" xyz="0.0 0.0 0.2125"/> -->
</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="${prefix}elbow_joint" type="revolute">
<parent link="${prefix}upper_arm_link" />
<child link = "${prefix}forearm_link" />
<origin xyz="0.0 ${-elbow_offset} ${upper_arm_length}" rpy="0.0 0.0 0.0" />
<axis xyz="0 1 0" />
<limit lower="${-2.0 * pi}" upper="${2.0 * pi}" effort="150.0" velocity="${pi}"/>
<dynamics damping="0.4" friction="0.0"/>
</joint>
<link name="${prefix}forearm_link">
<visual>
<geometry>
<mesh filename="package://ur_description/meshes/ur5/visual/Forearm.dae" />
</geometry>
</visual>
<collision>
<geometry>
<mesh filename="package://ur_description/meshes/ur5/collision/Forearm.dae" />
</geometry>
<!-- <origin rpy="0.0 0.0 0.0" xyz="0.0 0.0 0.196125"/> -->
</collision>
<xacro:macro name="cylinder_inertial" params="radius length mass *origin">
<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"/>
<mass value="${mass}" />
<insert_block name="origin" />
<inertia ixx="${0.0833333 * mass * (3 * radius * radius + length * length)}" ixy="0.0" ixz="0.0"
iyy="${0.0833333 * mass * (3 * radius * radius + length * length)}" iyz="0.0"
izz="${0.5 * mass * radius * radius}" />
</inertial>
</link>
<joint name="${prefix}wrist_1_joint" type="revolute">
<parent link="${prefix}forearm_link" />
<child link = "${prefix}wrist_1_link" />
<origin xyz="0.0 0.0 ${forearm_length}" rpy="0.0 ${pi / 2.0} 0.0" />
<axis xyz="0 1 0" />
<limit lower="${-1.0 * pi}" upper="${0.25 * pi}" effort="28.0" velocity="${pi}"/>
<dynamics damping="0.3" friction="0.0"/>
</joint>
<link name="${prefix}wrist_1_link">
<visual>
<geometry>
<mesh filename="package://ur_description/meshes/ur5/visual/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://ur_description/meshes/ur5/collision/Wrist1.dae" />
</geometry>
<origin rpy="0.0 1.570796325 0.0" xyz="0.0 0.093 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="${prefix}wrist_2_joint" type="revolute">
<parent link="${prefix}wrist_1_link" />
<child link = "${prefix}wrist_2_link" />
<origin xyz="0.0 ${wrist_1_length} 0.0" rpy="0.0 0.0 0.0" />
<axis xyz="0 0 1" />
<limit lower="${-1.0 * pi}" upper="${1.0 * pi}" effort="28.0" velocity="${pi}"/>
<dynamics damping="0.3" friction="0.0"/>
</joint>
<link name="${prefix}wrist_2_link">
<visual>
<geometry>
<mesh filename="package://ur_description/meshes/ur5/visual/Wrist2.dae" />
</geometry>
</xacro:macro>
<xacro:macro name="ur5_robot" params="prefix joint_limited">
<link name="${prefix}base_link" >
<visual>
<geometry>
<mesh filename="package://ur_description/meshes/ur5/visual/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://ur_description/meshes/ur5/collision/Base.dae" />
</geometry>
<!-- <origin rpy="0.0 0.0 0.0" xyz="0.0 0.0 -0.009159"/> -->
</collision>
<xacro:cylinder_inertial radius="0.075" length="0.038" mass="${base_mass}">
<origin xyz="0.0 0.0 0.019" rpy="0 0 0" />
</xacro:cylinder_inertial>
</link>
<joint name="${prefix}shoulder_pan_joint" type="revolute">
<parent link="${prefix}base_link" />
<child link = "${prefix}shoulder_link" />
<origin xyz="0.0 0.0 ${shoulder_height}" rpy="0.0 0.0 0.0" />
<axis xyz="0 0 1" />
<xacro:unless value="${joint_limited}">
<limit lower="${-2.0 * pi}" upper="${2.0 * pi}" effort="330.0" velocity="2.16"/>
</xacro:unless>
<xacro:if value="${joint_limited}">
<limit lower="${-pi}" upper="${pi}" effort="330.0" velocity="2.16"/>
</xacro:if>
<dynamics damping="0.0" friction="0.0"/>
</joint>
<link name="${prefix}shoulder_link">
<visual>
<geometry>
<mesh filename="package://ur_description/meshes/ur5/visual/Shoulder.dae" />
</geometry>
</visual>
<collision>
<geometry>
<mesh filename="package://ur_description/meshes/ur5/collision/Shoulder.dae" />
</geometry>
<!-- <origin rpy="0.0 0.0 0.0" xyz="0.0 0.0 -0.009159"/> -->
</collision>
<xacro:cylinder_inertial radius="0.075" length="0.178" mass="${shoulder_mass}">
<origin xyz="0.0 0.0 0.089" rpy="0 0 0" />
</xacro:cylinder_inertial>
</link>
<joint name="${prefix}shoulder_lift_joint" type="revolute">
<parent link="${prefix}shoulder_link" />
<child link = "${prefix}upper_arm_link" />
<origin xyz="0.0 ${shoulder_offset} 0.0" rpy="0.0 ${pi / 2.0} 0.0" />
<axis xyz="0 1 0" />
<xacro:unless value="${joint_limited}">
<limit lower="${-2.0 * pi}" upper="${2.0 * pi}" effort="330.0" velocity="2.16"/>
</xacro:unless>
<xacro:if value="${joint_limited}">
<limit lower="${-pi}" upper="${pi}" effort="330.0" velocity="2.16"/>
</xacro:if>
<dynamics damping="0.0" friction="0.0"/>
</joint>
<link name="${prefix}upper_arm_link">
<visual>
<geometry>
<mesh filename="package://ur_description/meshes/ur5/visual/UpperArm.dae" />
</geometry>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
</visual>
<collision>
<geometry>
<mesh filename="package://ur_description/meshes/ur5/collision/UpperArm.dae" />
</geometry>
<!-- <origin rpy="0.0 0.0 0.0" xyz="0.0 0.0 0.2125"/> -->
</collision>
<xacro:cylinder_inertial radius="0.075" length="${-ur5_a2}" mass="${upper_arm_mass}">
<origin xyz="0.0 0.0 ${-ur5_a2/2.0}" rpy="0 0 0" />
</xacro:cylinder_inertial>
</link>
<joint name="${prefix}elbow_joint" type="revolute">
<parent link="${prefix}upper_arm_link" />
<child link = "${prefix}forearm_link" />
<origin xyz="0.0 ${-elbow_offset} ${upper_arm_length}" rpy="0.0 0.0 0.0" />
<axis xyz="0 1 0" />
<xacro:unless value="${joint_limited}">
<limit lower="${-2.0 * pi}" upper="${2.0 * pi}" effort="150.0" velocity="3.15"/>
</xacro:unless>
<xacro:if value="${joint_limited}">
<limit lower="${-pi}" upper="${pi}" effort="150.0" velocity="3.15"/>
</xacro:if>
<dynamics damping="0.0" friction="0.0"/>
</joint>
<link name="${prefix}forearm_link">
<visual>
<geometry>
<mesh filename="package://ur_description/meshes/ur5/visual/Forearm.dae" />
</geometry>
</visual>
<collision>
<geometry>
<mesh filename="package://ur_description/meshes/ur5/collision/Forearm.dae" />
</geometry>
<!-- <origin rpy="0.0 0.0 0.0" xyz="0.0 0.0 0.196125"/> -->
</collision>
<xacro:cylinder_inertial radius="0.075" length="${-ur5_a3}" mass="${forearm_mass}">
<origin xyz="0.0 0.0 ${-ur5_a3/2.0}" rpy="0 0 0" />
</xacro:cylinder_inertial>
</link>
<joint name="${prefix}wrist_1_joint" type="revolute">
<parent link="${prefix}forearm_link" />
<child link = "${prefix}wrist_1_link" />
<origin xyz="0.0 0.0 ${forearm_length}" rpy="0.0 ${pi / 2.0} 0.0" />
<axis xyz="0 1 0" />
<xacro:unless value="${joint_limited}">
<limit lower="${-2.0 * pi}" upper="${2.0 * pi}" effort="54.0" velocity="3.2"/>
</xacro:unless>
<xacro:if value="${joint_limited}">
<limit lower="${-pi}" upper="${pi}" effort="54.0" velocity="3.2"/>
</xacro:if>
<dynamics damping="0.0" friction="0.0"/>
</joint>
<link name="${prefix}wrist_1_link">
<visual>
<geometry>
<mesh filename="package://ur_description/meshes/ur5/visual/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://ur_description/meshes/ur5/collision/Wrist1.dae" />
</geometry>
<origin rpy="0.0 1.570796325 0.0" xyz="0.0 0.093 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="${prefix}wrist_2_joint" type="revolute">
<parent link="${prefix}wrist_1_link" />
<child link = "${prefix}wrist_2_link" />
<origin xyz="0.0 ${wrist_1_length} 0.0" rpy="0.0 0.0 0.0" />
<axis xyz="0 0 1" />
<xacro:unless value="${joint_limited}">
<limit lower="${-2.0 * pi}" upper="${2.0 * pi}" effort="54.0" velocity="3.2"/>
</xacro:unless>
<xacro:if value="${joint_limited}">
<limit lower="${-pi}" upper="${pi}" effort="54.0" velocity="3.2"/>
</xacro:if>
<dynamics damping="0.0" friction="0.0"/>
</joint>
<link name="${prefix}wrist_2_link">
<visual>
<geometry>
<mesh filename="package://ur_description/meshes/ur5/visual/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://ur_description/meshes/ur5/collision/Wrist2.dae" />
</geometry>
<origin rpy="0.0 0.0 0.0" xyz="0.0 0.0 0.09465"/>
</collision>
<xacro:cylinder_inertial radius="0.075" length="0.12" mass="${wrist_2_mass}">
<origin xyz="0.0 0.0 0.0" rpy="0 0 0" />
</xacro:cylinder_inertial>
</link>
<joint name="${prefix}wrist_3_joint" type="revolute">
<parent link="${prefix}wrist_2_link" />
<child link = "${prefix}wrist_3_link" />
<origin xyz="0.0 0.0 ${wrist_2_length}" rpy="0.0 0.0 0.0" />
</visual>
<collision>
<geometry>
<mesh filename="package://ur_description/meshes/ur5/collision/Wrist2.dae" />
</geometry>
<origin rpy="0.0 0.0 0.0" xyz="0.0 0.0 0.09465"/>
</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="${prefix}wrist_3_joint" type="revolute">
<parent link="${prefix}wrist_2_link" />
<child link = "${prefix}wrist_3_link" />
<origin xyz="0.0 0.0 ${wrist_2_length}" rpy="0.0 0.0 0.0" />
<axis xyz="0 1 0" />
<limit lower="${-1.0 * pi}" upper="${1.0 * pi}" effort="28.0" velocity="${pi}"/>
<dynamics damping="0.3" friction="0.0"/>
</joint>
<link name="${prefix}wrist_3_link">
<visual>
<geometry>
<mesh filename="package://ur_description/meshes/ur5/visual/Wrist3.dae" />
</geometry>
</visual>
<collision>
<geometry>
<mesh filename="package://ur_description/meshes/ur5/collision/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="${prefix}ee_fixed_joint" type="fixed">
<parent link="${prefix}wrist_3_link" />
<child link = "${prefix}ee_link" />
<origin xyz="0.0 ${wrist_3_length} 0.0" rpy="0.0 0.0 ${pi/2.0}" />
</joint>
<link name="${prefix}ee_link" />
<xacro:ur5_arm_transmission prefix="${prefix}" />
<xacro:ur5_arm_gazebo prefix="${prefix}" />
<axis xyz="0 1 0" />
<xacro:unless value="${joint_limited}">
<limit lower="${-2.0 * pi}" upper="${2.0 * pi}" effort="54.0" velocity="3.2"/>
</xacro:unless>
<xacro:if value="${joint_limited}">
<limit lower="${-pi}" upper="${pi}" effort="54.0" velocity="3.2"/>
</xacro:if>
<dynamics damping="0.0" friction="0.0"/>
</joint>
<link name="${prefix}wrist_3_link">
<visual>
<geometry>
<mesh filename="package://ur_description/meshes/ur5/visual/Wrist3.dae" />
</geometry>
</visual>
<collision>
<geometry>
<mesh filename="package://ur_description/meshes/ur5/collision/Wrist3.dae" />
</geometry>
</collision>
<xacro:cylinder_inertial radius="0.075" length="0.12" mass="${wrist_3_mass}">
<origin xyz="0.0 0.0 0.0" rpy="0 0 0" />
</xacro:cylinder_inertial>
</link>
<joint name="${prefix}ee_fixed_joint" type="fixed">
<parent link="${prefix}wrist_3_link" />
<child link = "${prefix}ee_link" />
<origin xyz="0.0 ${wrist_3_length} 0.0" rpy="0.0 0.0 ${pi/2.0}" />
</joint>
<link name="${prefix}ee_link" />
<xacro:ur5_arm_transmission prefix="${prefix}" />
<xacro:ur5_arm_gazebo prefix="${prefix}" />
</xacro:macro>
</robot>
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment