Skip to content

Commit

Permalink
Kr150 r3100 2 (#208)
Browse files Browse the repository at this point in the history
* Add Kuka KR 150 R3100-2
  • Loading branch information
axelschroth authored Nov 12, 2021
1 parent 5418e18 commit bd165a7
Show file tree
Hide file tree
Showing 22 changed files with 253 additions and 0 deletions.
1 change: 1 addition & 0 deletions kuka_kr150_support/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ catkin_package()
if (CATKIN_ENABLE_TESTING)
find_package(roslaunch REQUIRED)
roslaunch_add_file_check(test/roslaunch_test.xml)
roslaunch_add_file_check(test/roslaunch_test_kr150r3100_2.xml)
endif()

install(DIRECTORY config launch meshes urdf
Expand Down
20 changes: 20 additions & 0 deletions kuka_kr150_support/config/opw_parameters_kr150r3100_2.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
#
# Parameters for use with IK solvers which support OPW (Ortho-Parallel Wrist)
# kinematic configurations, as described in the paper "An Analytical Solution
# of the Inverse Kinematics Problem of Industrial Serial Manipulators with an
# Ortho-parallel Basis and a Spherical Wrist" by Mathias Brandstötter, Arthur
# Angerer, and Michael Hofbaur (Proceedings of the Austrian Robotics Workshop
# 2014, 22-23 May, 2014, Linz, Austria).
#
# The moveit_opw_kinematics_plugin package provides such a solver.
#
opw_kinematics_geometric_parameters:
a1: 0.33
a2: -0.115
b: 0.0
c1: 0.645
c2: 1.35
c3: 1.42
c4: 0.215
opw_kinematics_joint_offsets: [0.0, deg(-90.0), 0.0, 0.0, 0.0, 0.0]
opw_kinematics_joint_sign_corrections: [-1, 1, 1, -1, 1, -1]
5 changes: 5 additions & 0 deletions kuka_kr150_support/launch/load_kr150r3100_2.launch
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
<?xml version="1.0"?>
<launch>
<!-- Load robot description to parameter server -->
<param name="robot_description" command="$(find xacro)/xacro '$(find kuka_kr150_support)/urdf/kr150r3100_2.xacro'"/>
</launch>
9 changes: 9 additions & 0 deletions kuka_kr150_support/launch/test_kr150r3100_2.launch
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<?xml version="1.0"?>
<launch>
<include file="$(find kuka_kr150_support)/launch/load_kr150r3100_2.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.
7 changes: 7 additions & 0 deletions kuka_kr150_support/package.xml
Original file line number Diff line number Diff line change
Expand Up @@ -14,13 +14,20 @@
<p><b>Specifications</b>:</p>
<ul>
<li>KR 150-2 - Default</li>
<li>KR 150 R3100-2 - Default</li>
</ul>
<p>
Joint limits and maximum joint velocities are based on the information
found in <em>Series 2000 KR 150-2</em>, version <em>PF0020/E/1/0709</em>.
All urdfs are based on the default motion and joint velocity limits,
unless noted otherwise.
</p>
<p>
Joint limits and maximum joint velocities of KR 150 R3100-2 are based on the information
found in the online datasheet <em>KR 150 R3100-2</em>, version <em>0000-346-515 / V22.1 / 26.03.2021</em>.
All urdfs are based on the default motion and joint velocity limits,
unless noted otherwise.
</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
Expand Down
9 changes: 9 additions & 0 deletions kuka_kr150_support/test/roslaunch_test_kr150r3100_2.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<launch>
<group ns="load_kr150r3100_2__">
<include file="$(find kuka_kr150_support)/launch/load_kr150r3100_2.launch"/>
</group>

<group ns="test_kr150r3100_2__">
<include file="$(find kuka_kr150_support)/launch/test_kr150r3100_2.launch"/>
</group>
</launch>
5 changes: 5 additions & 0 deletions kuka_kr150_support/urdf/kr150r3100_2.xacro
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
<?xml version="1.0"?>
<robot name="kuka_kr150r3100_2" xmlns:xacro="http://wiki.ros.org/xacro">
<xacro:include filename="$(find kuka_kr150_support)/urdf/kr150r3100_2_macro.xacro" />
<xacro:kuka_kr150r3100_2 prefix=""/>
</robot>
197 changes: 197 additions & 0 deletions kuka_kr150_support/urdf/kr150r3100_2_macro.xacro
Original file line number Diff line number Diff line change
@@ -0,0 +1,197 @@
<?xml version="1.0"?>
<robot xmlns:xacro="http://wiki.ros.org/xacro">

<xacro:macro name="kuka_kr150r3100_2" params="prefix">
<xacro:include filename="$(find kuka_resources)/urdf/common_materials.xacro"/>
<!-- LINKS -->
<!-- base link -->
<link name="${prefix}base_link">
<visual>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="package://kuka_kr150_support/meshes/kr150r3100_2/visual/base_link.stl" />
</geometry>
<xacro:material_kuka_pedestal />
</visual>
<collision>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="package://kuka_kr150_support/meshes/kr150r3100_2/collision/base_link.stl" />
</geometry>
</collision>
</link>
<!-- link 1 (A1) -->
<link name="${prefix}link_1">
<visual>
<origin xyz="0 0 0" rpy="0 0 0"/>
<geometry>
<mesh filename="package://kuka_kr150_support/meshes/kr150r3100_2/visual/link_1.stl" />
</geometry>
<xacro:material_kuka_orange />
</visual>
<collision>
<origin xyz="0 0 0" rpy="0 0 0"/>
<geometry>
<mesh filename="package://kuka_kr150_support/meshes/kr150r3100_2/collision/link_1.stl" />
</geometry>
</collision>
</link>
<!-- link 2 -->
<link name="${prefix}link_2">
<visual>
<origin xyz="0 0 0" rpy="0 0 0"/>
<geometry>
<mesh filename="package://kuka_kr150_support/meshes/kr150r3100_2/visual/link_2.stl"/>
</geometry>
<xacro:material_kuka_orange />
</visual>
<collision>
<origin xyz="0 0 0" rpy="0 0 0"/>
<geometry>
<mesh filename="package://kuka_kr150_support/meshes/kr150r3100_2/collision/link_2.stl" />
</geometry>
</collision>
</link>
<!-- link 3 -->
<link name="${prefix}link_3">
<visual>
<origin xyz="0 0 0" rpy="0 0 0"/>
<geometry>
<mesh filename="package://kuka_kr150_support/meshes/kr150r3100_2/visual/link_3.stl" />
</geometry>
<xacro:material_kuka_orange />
</visual>
<collision>
<origin xyz="0 0 0" rpy="0 0 0"/>
<geometry>
<mesh filename="package://kuka_kr150_support/meshes/kr150r3100_2/collision/link_3.stl" />
</geometry>
</collision>
</link>
<!-- link 4 -->
<link name="${prefix}link_4">
<visual>
<origin xyz="0 0 0" rpy="0 0 0"/>
<geometry>
<mesh filename="package://kuka_kr150_support/meshes/kr150r3100_2/visual/link_4.stl" />
</geometry>
<xacro:material_kuka_orange />
</visual>
<collision>
<origin xyz="0 0 0" rpy="0 0 0"/>
<geometry>
<mesh filename="package://kuka_kr150_support/meshes/kr150r3100_2/collision/link_4.stl" />
</geometry>
</collision>
</link>
<!-- link 5 -->
<link name="${prefix}link_5">
<visual>
<origin xyz="0 0 0" rpy="0 0 0"/>
<geometry>
<mesh filename="package://kuka_kr150_support/meshes/kr150r3100_2/visual/link_5.stl" />
</geometry>
<xacro:material_kuka_orange />
</visual>
<collision>
<origin xyz="0 0 0" rpy="0 0 0"/>
<geometry>
<mesh filename="package://kuka_kr150_support/meshes/kr150r3100_2/collision/link_5.stl" />
</geometry>
</collision>
</link>
<!-- link 6 -->
<link name="${prefix}link_6">
<visual>
<origin xyz="0 0 0" rpy="0 0 0"/>
<geometry>
<mesh filename="package://kuka_kr150_support/meshes/kr150r3100_2/visual/link_6.stl" />
</geometry>
<xacro:material_kuka_orange />
</visual>
<collision>
<origin xyz="0 0 0" rpy="0 0 0"/>
<geometry>
<mesh filename="package://kuka_kr150_support/meshes/kr150r3100_2/collision/link_6.stl" />
</geometry>
</collision>
</link>
<!-- END LINKS -->

<!-- JOINTS -->
<!-- joint 1 (A1) -->
<joint name="${prefix}joint_a1" type="revolute">
<origin xyz="0 0 0.645" rpy="0 0 0"/>
<parent link="${prefix}base_link"/>
<child link="${prefix}link_1"/>
<axis xyz="0 0 -1"/>
<limit effort="0" lower="${radians(-185)}" upper="${radians(185)}" velocity="${radians(105)}"/>
</joint>
<!-- joint 2 (A2) -->
<joint name="${prefix}joint_a2" type="revolute">
<origin xyz="0.33 0 0" rpy="0 0 0"/>
<parent link="${prefix}link_1"/>
<child link="${prefix}link_2"/>
<axis xyz="0 1 0"/>
<limit effort="0" lower="${radians(-140)}" upper="${radians(-5)}" velocity="${radians(107)}"/>
</joint>
<!-- joint 3 (A3) -->
<joint name="${prefix}joint_a3" type="revolute">
<origin xyz="1.350 0 0" rpy="0 0 0"/>
<parent link="${prefix}link_2"/>
<child link="${prefix}link_3"/>
<axis xyz="0 1 0"/>
<limit effort="0" lower="${radians(-120)}" upper="${radians(168)}" velocity="${radians(114)}"/>
</joint>
<!-- joint 4 (A4) -->
<joint name="${prefix}joint_a4" type="revolute">
<origin xyz="1.420 0 0.115" rpy="0 0 0"/>
<parent link="${prefix}link_3"/>
<child link="${prefix}link_4"/>
<axis xyz="-1 0 0"/>
<limit effort="0" lower="${radians(-350)}" upper="${radians(350)}" velocity="${radians(190)}"/>
</joint>
<!-- joint 5 (A5) -->
<joint name="${prefix}joint_a5" type="revolute">
<origin xyz="0 0 0" rpy="0 0 0"/>
<parent link="${prefix}link_4"/>
<child link="${prefix}link_5"/>
<axis xyz="0 1 0"/>
<limit effort="0" lower="${radians(-125)}" upper="${radians(125)}" velocity="${radians(180)}"/>
</joint>
<!-- joint 6 (A6) -->
<joint name="${prefix}joint_a6" type="revolute">
<origin xyz="0.215 0 0" rpy="0 0 0"/>
<parent link="${prefix}link_5"/>
<child link="${prefix}link_6"/>
<axis xyz="-1 0 0"/>
<limit effort="0" lower="${radians(-350)}" upper="${radians(350)}" velocity="${radians(260)}"/>
</joint>

<!-- ROS-Industrial 'base' frame: 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>

<!-- ROS-Industrial 'flange' frame: attachment point for EEF models -->
<link name="${prefix}flange" />
<joint name="${prefix}joint_6-flange" type="fixed">
<origin xyz="0 0 0" rpy="0 0 0" />
<parent link="${prefix}link_6" />
<child link="${prefix}flange" />
</joint>

<!-- ROS-Industrial 'tool0' frame: all-zeros tool frame -->
<!-- This frame corresponds to the $FLANGE coordinate system in KUKA KRC controllers. -->
<link name="${prefix}tool0"/>
<joint name="${prefix}flange-tool0" type="fixed">
<parent link="${prefix}flange"/>
<child link="${prefix}tool0"/>
<origin xyz="0 0 0" rpy="0 ${radians(90)} 0"/>
</joint>

</xacro:macro>
</robot>

0 comments on commit bd165a7

Please sign in to comment.