Skip to content

Commit

Permalink
Adding KR 3 R540 support package (#108)
Browse files Browse the repository at this point in the history
* Adding KR 3 R540 support package

Support for Kuka KR3 R540 Agilus robot.

Links 2 and 4 collision meshes generated using gaschler/bounding-mesh
to address "holes" (standard convex hull results in link 2/4 and link
4/6 collision near joint limits. Run with the following:

$ bounding-convex-decomposition --voxels 500000 link_2.obj link_2.wrl

Note: STL bug still present and thus requires stl>obj>wrl>stl
workflow

kuka_resources: Adding RAL 9010 Pure White color/material

* Use Jade+ xacro, even on Indigo.

* Add preamble.

* Be explicit about supported variants.

* Remove empty line.

* Use Jade+ radians() in place of constant

* Switching to stl from dae for size considerations
  • Loading branch information
BrettHemes authored and gavanderhoorn committed Mar 13, 2018
1 parent dfdcdb2 commit f99a6f6
Show file tree
Hide file tree
Showing 24 changed files with 276 additions and 0 deletions.
15 changes: 15 additions & 0 deletions kuka_kr3_support/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
cmake_minimum_required(VERSION 2.8.3)

project(kuka_kr3_support)

find_package(catkin REQUIRED)

catkin_package()

if (CATKIN_ENABLE_TESTING)
find_package(roslaunch REQUIRED)
roslaunch_add_file_check(test/roslaunch_test_kr3r540.xml)
endif()

install(DIRECTORY config launch meshes urdf
DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION})
1 change: 1 addition & 0 deletions kuka_kr3_support/config/joint_names_kr3r540.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
controller_joint_names: ['joint_a1', 'joint_a2', 'joint_a3', 'joint_a4', 'joint_a5', 'joint_a6']
4 changes: 4 additions & 0 deletions kuka_kr3_support/launch/load_kr3r540.launch
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
<?xml version="1.0"?>
<launch>
<param name="robot_description" command="$(find xacro)/xacro --inorder '$(find kuka_kr3_support)/urdf/kr3r540.xacro'"/>
</launch>
9 changes: 9 additions & 0 deletions kuka_kr3_support/launch/test_kr3r540.launch
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<?xml version="1.0"?>
<launch>
<include file="$(find kuka_kr3_support)/launch/load_kr3r540.launch" />
<node name="joint_state_publisher" pkg="joint_state_publisher" type="joint_state_publisher">
<param name="use_gui" value="true" />
</node>
<node name="robot_state_publisher" pkg="robot_state_publisher" type="robot_state_publisher"/>
<node name="rviz" pkg="rviz" type="rviz" args="-d $(find industrial_robot_client)/config/robot_state_visualize.rviz" required="true" />
</launch>
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
53 changes: 53 additions & 0 deletions kuka_kr3_support/package.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
<?xml version="1.0"?>
<package format="2">
<name>kuka_kr3_support</name>
<version>0.1.0</version>
<description>
<p>
ROS-Industrial support for the KUKA KR 3 (and variants).
</p>
<p>
This package contains configuration data, 3D models and launch files
for the KUKA KR 3 manipulators. This currently includes the R540 only.
</p>
<p><b>Specifications</b>:</p>
<ul>
<li>KR 3 R540 - Default</li>
</ul>
<p>
Joint limits and maximum joint velocities are based on the information
in the <em>KUKA Roboter GmbH - KR 3 AGILUS Specification</em> version
<em>Spez KR 3 AGILUS V3, 21.03.2017</em>.
All urdfs are based on the default motion and joint velocity limits,
unless noted otherwise (ie: no support for high speed joints,
extended / limited motion ranges or other options).
</p>
<p>
Before using any of the configuration files and / or meshes included
in this package, be sure to check they are correct for the particular
robot model and configuration you intend to use them with.
</p>
</description>
<author>Brett Hemes (3M)</author>
<maintainer email="g.a.vanderhoorn@tudelft.nl">G.A. vd. Hoorn (TU Delft Robotics Institute)</maintainer>
<license>BSD</license>

<url type="website">http://wiki.ros.org/kuka_kr3_support</url>
<url type="bugtracker">https://github.com/ros-industrial/kuka_experimental/issues</url>
<url type="repository">https://github.com/ros-industrial/kuka_experimental</url>

<buildtool_depend>catkin</buildtool_depend>

<test_depend>roslaunch</test_depend>

<exec_depend>industrial_robot_client</exec_depend>
<exec_depend>joint_state_publisher</exec_depend>
<exec_depend>kuka_resources</exec_depend>
<exec_depend>robot_state_publisher</exec_depend>
<exec_depend>rviz</exec_depend>
<exec_depend>xacro</exec_depend>

<export>
<architecture_independent/>
</export>
</package>
10 changes: 10 additions & 0 deletions kuka_kr3_support/test/roslaunch_test_kr3r540.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
<?xml version="1.0" ?>
<launch>
<group ns="load_kr3r540__">
<include file="$(find kuka_kr3_support)/launch/load_kr3r540.launch"/>
</group>

<group ns="test_kr3r540__">
<include file="$(find kuka_kr3_support)/launch/test_kr3r540.launch"/>
</group>
</launch>
5 changes: 5 additions & 0 deletions kuka_kr3_support/urdf/kr3r540.xacro
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
<?xml version="1.0" ?>
<robot name="kuka_kr3r540" xmlns:xacro="http://wiki.ros.org/xacro">
<xacro:include filename="$(find kuka_kr3_support)/urdf/kr3r540_macro.xacro"/>
<xacro:kuka_kr3r540 prefix=""/>
</robot>
170 changes: 170 additions & 0 deletions kuka_kr3_support/urdf/kr3r540_macro.xacro
Original file line number Diff line number Diff line change
@@ -0,0 +1,170 @@
<?xml version="1.0"?>
<robot xmlns:xacro="http://wiki.ros.org/xacro">
<xacro:include filename="$(find kuka_resources)/urdf/common_materials.xacro"/>

<xacro:macro name="kuka_kr3r540" params="prefix">
<link name="${prefix}base_link">
<visual>
<origin xyz="0 0 0" rpy="0 0 0" />
<geometry>
<mesh filename="package://kuka_kr3_support/meshes/kr3r540/visual/base_link.stl" />
</geometry>
<xacro:material_kuka_pedestal />
</visual>
<collision>
<origin xyz="0 0 0" rpy="0 0 0" />
<geometry>
<mesh filename="package://kuka_kr3_support/meshes/kr3r540/collision/base_link.stl" />
</geometry>
</collision>
</link>
<link name="${prefix}link_1">
<visual>
<origin xyz="0 0 0" rpy="0 0 0" />
<geometry>
<mesh filename="package://kuka_kr3_support/meshes/kr3r540/visual/link_1.stl" />
</geometry>
<xacro:material_kuka_ral_pure_white />
</visual>
<collision>
<origin xyz="0 0 0" rpy="0 0 0" />
<geometry>
<mesh filename="package://kuka_kr3_support/meshes/kr3r540/collision/link_1.stl" />
</geometry>
</collision>
</link>
<link name="${prefix}link_2">
<visual>
<origin xyz="0 0 0" rpy="0 0 0" />
<geometry>
<mesh filename="package://kuka_kr3_support/meshes/kr3r540/visual/link_2.stl" />
</geometry>
<xacro:material_kuka_ral_pure_white />
</visual>
<collision>
<origin xyz="0 0 0" rpy="0 0 0" />
<geometry>
<mesh filename="package://kuka_kr3_support/meshes/kr3r540/collision/link_2.stl" />
</geometry>
</collision>
</link>
<link name="${prefix}link_3">
<visual>
<origin xyz="0 0 0" rpy="0 0 0" />
<geometry>
<mesh filename="package://kuka_kr3_support/meshes/kr3r540/visual/link_3.stl" />
</geometry>
<xacro:material_kuka_ral_pure_white />
</visual>
<collision>
<origin xyz="0 0 0" rpy="0 0 0" />
<geometry>
<mesh filename="package://kuka_kr3_support/meshes/kr3r540/collision/link_3.stl" />
</geometry>
</collision>
</link>
<link name="${prefix}link_4">
<visual>
<origin xyz="0 0 0" rpy="0 0 0" />
<geometry>
<mesh filename="package://kuka_kr3_support/meshes/kr3r540/visual/link_4.stl" />
</geometry>
<xacro:material_kuka_ral_pure_white />
</visual>
<collision>
<origin xyz="0 0 0" rpy="0 0 0" />
<geometry>
<mesh filename="package://kuka_kr3_support/meshes/kr3r540/collision/link_4.stl" />
</geometry>
</collision>
</link>
<link name="${prefix}link_5">
<visual>
<origin xyz="0 0 0" rpy="0 0 0" />
<geometry>
<mesh filename="package://kuka_kr3_support/meshes/kr3r540/visual/link_5.stl" />
</geometry>
<xacro:material_kuka_ral_pure_white />
</visual>
<collision>
<origin xyz="0 0 0" rpy="0 0 0" />
<geometry>
<mesh filename="package://kuka_kr3_support/meshes/kr3r540/collision/link_5.stl" />
</geometry>
</collision>
</link>
<link name="${prefix}link_6">
<visual>
<origin xyz="0 0 0" rpy="0 0 0" />
<geometry>
<mesh filename="package://kuka_kr3_support/meshes/kr3r540/visual/link_6.stl" />
</geometry>
<xacro:material_kuka_pedestal />
</visual>
<collision>
<origin xyz="0 0 0" rpy="0 0 0" />
<geometry>
<mesh filename="package://kuka_kr3_support/meshes/kr3r540/collision/link_6.stl" />
</geometry>
</collision>
</link>
<!-- This frame corresponds to the $FLANGE coordinate system in KUKA KRC controllers. -->
<link name="${prefix}tool0" />

<joint name="${prefix}joint_a1" type="revolute">
<origin xyz="0 0 0.345" rpy="0 0 0"/>
<parent link="${prefix}base_link"/>
<child link="${prefix}link_1"/>
<axis xyz="0 0 -1"/>
<limit lower="${radians(-170)}" upper="${radians(170)}" effort="0" velocity="${radians(530)}"/>
</joint>
<joint name="${prefix}joint_a2" type="revolute">
<origin xyz="0.020 0 0" rpy="0 0 0"/>
<parent link="${prefix}link_1"/>
<child link="${prefix}link_2"/>
<axis xyz="0 1 0"/>
<limit lower="${radians(-170)}" upper="${radians(50)}" effort="0" velocity="${radians(529)}"/>
</joint>
<joint name="${prefix}joint_a3" type="revolute">
<origin xyz="0.260 0 0" rpy="0 0 0"/>
<parent link="${prefix}link_2"/>
<child link="${prefix}link_3"/>
<axis xyz="0 1 0"/>
<limit lower="${radians(-110)}" upper="${radians(155)}" effort="0" velocity="${radians(538)}"/>
</joint>
<joint name="${prefix}joint_a4" type="revolute">
<origin xyz="0 0 0.020" rpy="0 0 0"/>
<parent link="${prefix}link_3"/>
<child link="${prefix}link_4"/>
<axis xyz="-1 0 0"/>
<limit lower="${radians(-175)}" upper="${radians(175)}" effort="0" velocity="${radians(600)}"/>
</joint>
<joint name="${prefix}joint_a5" type="revolute">
<origin xyz="0.260 0 0" rpy="0 0 0"/>
<parent link="${prefix}link_4"/>
<child link="${prefix}link_5"/>
<axis xyz="0 1 0"/>
<limit lower="${radians(-120)}" upper="${radians(120)}" effort="0" velocity="${radians(600)}"/>
</joint>
<joint name="${prefix}joint_a6" type="revolute">
<origin xyz="0.075 0 0" rpy="0 0 0"/>
<parent link="${prefix}link_5"/>
<child link="${prefix}link_6"/>
<axis xyz="-1 0 0"/>
<limit lower="${radians(-350)}" upper="${radians(350)}" effort="0" velocity="${radians(800)}"/>
</joint>
<joint name="${prefix}joint_a6-tool0" type="fixed">
<parent link="${prefix}link_6"/>
<child link="${prefix}tool0"/>
<origin xyz="0 0 0" rpy="0 ${radians(90)} 0"/>
</joint>

<!-- ROS base_link to KUKA $ROBROOT coordinate system transform -->
<link name="${prefix}base" />
<joint name="${prefix}base_link-base" type="fixed">
<origin xyz="0 0 0" rpy="0 0 0"/>
<parent link="${prefix}base_link"/>
<child link="${prefix}base"/>
</joint>
</xacro:macro>
</robot>
3 changes: 3 additions & 0 deletions kuka_resources/urdf/common_colours.xacro
Original file line number Diff line number Diff line change
Expand Up @@ -105,4 +105,7 @@

<!-- RAL 9002 - gray white -->
<xacro:property name="colour_kuka_ral_gray_white" value="${215/255} ${213/255} ${203/255} 1.0" />

<!-- RAL 9010 - pure white -->
<xacro:property name="colour_kuka_ral_pure_white" value="${241/255} ${236/255} ${255/255} 1.0" />
</robot>
6 changes: 6 additions & 0 deletions kuka_resources/urdf/common_materials.xacro
Original file line number Diff line number Diff line change
Expand Up @@ -181,4 +181,10 @@
<color rgba="${colour_kuka_ral_gray_white}"/>
</material>
</xacro:macro>

<xacro:macro name="material_kuka_ral_pure_white">
<material name="">
<color rgba="${colour_kuka_ral_pure_white}"/>
</material>
</xacro:macro>
</robot>

0 comments on commit f99a6f6

Please sign in to comment.