Skip to content

Commit

Permalink
Merge branch 'master' into feature/sunrise_ip
Browse files Browse the repository at this point in the history
  • Loading branch information
Aron Svastits committed Apr 16, 2024
2 parents 6d0c80a + e465a46 commit 1562593
Show file tree
Hide file tree
Showing 75 changed files with 5,336 additions and 170 deletions.
5 changes: 3 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,7 @@ Some of the data in the xacros might not be valid or missing, the following tabl
|kr6_r900_sixx| agilus |||| | ||
|kr10_r1100_2| agilus ||||| | |
|kr16_r2010_2| cybertech ||||| | |
|kr70_r2100| iontec |||||||
|kr210_r2700_2| quantec ||||| | |
|kr210_r3100_2| quantec ||||| | |
|kr560_r3100_2| fortec ||||| ||
Expand All @@ -104,7 +105,7 @@ Additionally two hardware parameters are added:
- To support similar timing behaviour as the actual robots, the mock hardware was extended with a blocking wait, so that the read function does not return immediately, but cyclically. The frequency of the loops is defined by the `cycle_time_ms` parameter. Default value is 4 [ms].
- To be able to test whether a specific setup would fit into the roundtrip time enforced by a real robot, the `roundtrip_time_micro` parameter can be used. If the `write()` method is not called before the given timeout is exceeded (starting from the previous `read()` function), a warning message is logged (but the return value of the `write()` will be still SUCCESS). Default value is 0 [us], which means, that the roundrip time should not be monitored.

The mock hardware was implemented in this repository to allow testing moveit without having to build the driver code.
The mock hardware was implemented in this repository to allow testing moveit capabilities for the robots without having to build the driver code.

## Starting the move group server with mock hardware

Expand All @@ -127,4 +128,4 @@ ros2 launch kuka_lbr_iiwa_moveit_config moveit_planning_fake_hardware.launch.py
```
A `robot_model` argument can be added after the command (e.g. `robot_model:=lbr_iisy11_r1300`). The default robot model is `lbr_iisy3_r760`

These launch files are not using the actual driver implementation, they only start `rviz` the `move_group` server and a `ros2_control_node` with fake hardware and two controllers `joint_state_broadcaster` and `joint_trajectory_controller` The server will be able to accept planning requests from the plugin or from code. (An example how to create such a request from C++ code can be found in the `iiqka_moveit_example` package in the `kuka_drivers` repository.) To support hardwares with less performance, the update rate of the control node was reduced to 50 Hz for all robots.
These launch files are not using the actual driver implementation, they only start `rviz` the `move_group` server and a `ros2_control_node` with fake hardware and two controllers `joint_state_broadcaster` and `joint_trajectory_controller` The server will be able to accept planning requests from the plugin or from code. (An example how to create such a request from C++ code can be found in the `iiqka_moveit_example` package in the `kuka_drivers` repository.)
40 changes: 6 additions & 34 deletions kuka_agilus_support/package.xml
Original file line number Diff line number Diff line change
@@ -1,44 +1,16 @@
<?xml version="1.0"?>
<package format="3">
<name>kuka_agilus_support</name>
<version>0.1.0</version>
<description>
<p>
ROS-Industrial support for the KUKA KR 6 (and variants).
</p>
<p>
This package contains configuration data, 3D models and launch files
for KUKA agilus manipulators. This currently includes the R700 sixx,
the R900 sixx and the R1100-2.
</p>
<p><b>Specifications</b>:</p>
<ul>
<li>KR 6 R700 sixx - Default</li>
<li>KR 6 R900 sixx - Default</li>
<li>KR 6 R1100-2 - Default</li>
</ul>
<p>
Joint limits and maximum joint velocities for sixx models are based on the information
in the <em>KUKA Roboter GmbH - KR AGILUS sixx - With W and C Variants -
Specification</em> version <em>Spez KR AGILUS sixx V12, 26.03.2015</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>G.A. vd. Hoorn (TU Delft Robotics Institute)</author>
<version>0.9.0</version>
<description>Robot models for the KUKA agilus family.</description>
<author>Brett Hemes (3M)</author>
<maintainer email="g.a.vanderhoorn@tudelft.nl">G.A. vd. Hoorn (TU Delft Robotics Institute)</maintainer>
<author email="g.a.vanderhoorn@tudelft.nl">G.A. vd. Hoorn (TU Delft Robotics Institute)</author>
<maintainer email="svastits1@gmail.com">Aron Svastits</maintainer>
<license>BSD</license>
<license>Apache-2.0</license>
<buildtool_depend>ament_cmake</buildtool_depend>
<depend>urdf</depend>
<depend>xacro</depend>
<depend>launch_ros</depend>
<exec_depend>launch_ros</exec_depend>
<exec_depend>joint_state_publisher_gui</exec_depend>
<exec_depend>kuka_resources</exec_depend>
<exec_depend>robot_state_publisher</exec_depend>
Expand Down
2 changes: 1 addition & 1 deletion kuka_agilus_support/test/test_kr_agilus.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Copyright 2024 Áron Svastits
# Copyright 2024 Aron Svastits
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
Expand Down
3 changes: 2 additions & 1 deletion kuka_agilus_support/urdf/kr10_r1100_2.urdf.xacro
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
<xacro:include filename="$(find kuka_agilus_support)/urdf/kr10_r1100_2_macro.xacro"/>
<!-- Read additional arguments -->
<xacro:arg name="use_fake_hardware" default="false"/>
<xacro:arg name="roundtrip_time" default="0"/>
<xacro:arg name="client_ip" default="0.0.0.0"/>
<xacro:arg name="client_port" default="59152"/>
<xacro:arg name="prefix" default=""/>
Expand All @@ -13,7 +14,7 @@
<xacro:arg name="roll" default="0"/>
<xacro:arg name="pitch" default="0"/>
<xacro:arg name="yaw" default="0"/>
<xacro:kuka_kr10_r1100_2_robot client_ip="$(arg client_ip)" client_port="$(arg client_port)" prefix="$(arg prefix)" use_fake_hardware="$(arg use_fake_hardware)">
<xacro:kuka_kr10_r1100_2_robot client_ip="$(arg client_ip)" client_port="$(arg client_port)" prefix="$(arg prefix)" use_fake_hardware="$(arg use_fake_hardware)" roundtrip_time="$(arg roundtrip_time)">
<origin xyz="$(arg x) $(arg y) $(arg z)" rpy="$(arg roll) $(arg pitch) $(arg yaw)"/>
</xacro:kuka_kr10_r1100_2_robot>
</robot>
4 changes: 2 additions & 2 deletions kuka_agilus_support/urdf/kr10_r1100_2_macro.xacro
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@
<xacro:include filename="$(find kuka_agilus_support)/urdf/kr_agilus_ros2_control.xacro"/>
<xacro:include filename="$(find kuka_agilus_support)/urdf/kr_agilus_transmission.xacro"/>
<xacro:include filename="$(find kuka_resources)/urdf/common_materials.xacro"/>
<xacro:macro name="kuka_kr10_r1100_2_robot" params="client_ip client_port prefix use_fake_hardware *origin">
<xacro:macro name="kuka_kr10_r1100_2_robot" params="client_ip client_port prefix use_fake_hardware roundtrip_time *origin">
<!-- ros2 control instance -->
<xacro:kuka_agilus_ros2_control name="${prefix}kr10_r1100_2" client_ip="${client_ip}" client_port="${client_port}" prefix="${prefix}" use_fake_hardware="${use_fake_hardware}"/>
<xacro:kuka_agilus_ros2_control name="${prefix}kr10_r1100_2" client_ip="${client_ip}" client_port="${client_port}" prefix="${prefix}" use_fake_hardware="${use_fake_hardware}" roundtrip_time="${roundtrip_time}"/>
<!-- links - main serial chain -->
<link name="world"/>
<link name="${prefix}base_link">
Expand Down
3 changes: 2 additions & 1 deletion kuka_agilus_support/urdf/kr6_r700_sixx.urdf.xacro
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
<xacro:include filename="$(find kuka_agilus_support)/urdf/kr6_r700_sixx_macro.xacro"/>
<!-- Read additional arguments -->
<xacro:arg name="use_fake_hardware" default="false"/>
<xacro:arg name="roundtrip_time" default="0"/>
<xacro:arg name="client_ip" default="0.0.0.0"/>
<xacro:arg name="client_port" default="59152"/>
<xacro:arg name="prefix" default=""/>
Expand All @@ -13,7 +14,7 @@
<xacro:arg name="roll" default="0"/>
<xacro:arg name="pitch" default="0"/>
<xacro:arg name="yaw" default="0"/>
<xacro:kuka_kr6_r700_sixx_robot client_ip="$(arg client_ip)" client_port="$(arg client_port)" prefix="$(arg prefix)" use_fake_hardware="$(arg use_fake_hardware)">
<xacro:kuka_kr6_r700_sixx_robot client_ip="$(arg client_ip)" client_port="$(arg client_port)" prefix="$(arg prefix)" use_fake_hardware="$(arg use_fake_hardware)" roundtrip_time="$(arg roundtrip_time)">
<origin xyz="$(arg x) $(arg y) $(arg z)" rpy="$(arg roll) $(arg pitch) $(arg yaw)"/>
</xacro:kuka_kr6_r700_sixx_robot>
</robot>
4 changes: 2 additions & 2 deletions kuka_agilus_support/urdf/kr6_r700_sixx_macro.xacro
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@
<xacro:include filename="$(find kuka_resources)/urdf/common_materials.xacro"/>
<xacro:include filename="$(find kuka_agilus_support)/urdf/kr_agilus_ros2_control.xacro"/>
<xacro:include filename="$(find kuka_agilus_support)/urdf/kr_agilus_transmission.xacro"/>
<xacro:macro name="kuka_kr6_r700_sixx_robot" params="client_ip client_port prefix use_fake_hardware *origin">
<xacro:macro name="kuka_kr6_r700_sixx_robot" params="client_ip client_port prefix use_fake_hardware roundtrip_time *origin">
<!-- ros2 control instance -->
<xacro:kuka_agilus_ros2_control name="${prefix}kr6_r700_sixx" client_ip="${client_ip}" client_port="${client_port}" prefix="${prefix}" use_fake_hardware="${use_fake_hardware}"/>
<xacro:kuka_agilus_ros2_control name="${prefix}kr6_r700_sixx" client_ip="${client_ip}" client_port="${client_port}" prefix="${prefix}" use_fake_hardware="${use_fake_hardware}" roundtrip_time="${roundtrip_time}"/>
<link name="world"/>
<link name="${prefix}base_link">
<visual>
Expand Down
3 changes: 2 additions & 1 deletion kuka_agilus_support/urdf/kr6_r900_sixx.urdf.xacro
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
<xacro:include filename="$(find kuka_agilus_support)/urdf/kr6_r900_sixx_macro.xacro"/>
<!-- Read additional arguments -->
<xacro:arg name="use_fake_hardware" default="false"/>
<xacro:arg name="roundtrip_time" default="0"/>
<xacro:arg name="client_ip" default="0.0.0.0"/>
<xacro:arg name="client_port" default="59152"/>
<xacro:arg name="prefix" default=""/>
Expand All @@ -13,7 +14,7 @@
<xacro:arg name="roll" default="0"/>
<xacro:arg name="pitch" default="0"/>
<xacro:arg name="yaw" default="0"/>
<xacro:kuka_kr6_r900_sixx_robot client_ip="$(arg client_ip)" client_port="$(arg client_port)" prefix="$(arg prefix)" use_fake_hardware="$(arg use_fake_hardware)">
<xacro:kuka_kr6_r900_sixx_robot client_ip="$(arg client_ip)" client_port="$(arg client_port)" prefix="$(arg prefix)" use_fake_hardware="$(arg use_fake_hardware)" roundtrip_time="$(arg roundtrip_time)">
<origin xyz="$(arg x) $(arg y) $(arg z)" rpy="$(arg roll) $(arg pitch) $(arg yaw)"/>
</xacro:kuka_kr6_r900_sixx_robot>
</robot>
4 changes: 2 additions & 2 deletions kuka_agilus_support/urdf/kr6_r900_sixx_macro.xacro
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@
<xacro:include filename="$(find kuka_resources)/urdf/common_materials.xacro"/>
<xacro:include filename="$(find kuka_agilus_support)/urdf/kr_agilus_ros2_control.xacro"/>
<xacro:include filename="$(find kuka_agilus_support)/urdf/kr_agilus_transmission.xacro"/>
<xacro:macro name="kuka_kr6_r900_sixx_robot" params="client_ip client_port prefix use_fake_hardware *origin">
<xacro:macro name="kuka_kr6_r900_sixx_robot" params="client_ip client_port prefix use_fake_hardware roundtrip_time *origin">
<!-- ros2 control instance -->
<xacro:kuka_agilus_ros2_control name="${prefix}kr6_r900_sixx" client_ip="${client_ip}" client_port="${client_port}" prefix="${prefix}" use_fake_hardware="${use_fake_hardware}"/>
<xacro:kuka_agilus_ros2_control name="${prefix}kr6_r900_sixx" client_ip="${client_ip}" client_port="${client_port}" prefix="${prefix}" use_fake_hardware="${use_fake_hardware}" roundtrip_time="${roundtrip_time}"/>
<link name="world"/>
<link name="${prefix}base_link">
<visual>
Expand Down
8 changes: 4 additions & 4 deletions kuka_agilus_support/urdf/kr_agilus_ros2_control.xacro
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<robot xmlns:xacro="http://www.ros.org/wiki/xacro">
<xacro:macro name="kuka_agilus_ros2_control" params="name client_ip client_port prefix use_fake_hardware">
<xacro:macro name="kuka_agilus_ros2_control" params="name client_ip client_port prefix use_fake_hardware roundtrip_time">
<ros2_control name="${name}" type="system">
<hardware>
<xacro:if value="${use_fake_hardware}">
<plugin>kuka_mock_hardware_interface::KukaMockHardwareInterface</plugin>
<param name="cycle_time_ms">4</param>
<param name="roundtrip_time_micro">4000</param>
<param name="roundtrip_time_micro">${roundtrip_time}</param>
<param name="mock_sensor_commands">false</param>
<param name="state_following_offset">0.0</param>
</xacro:if>
Expand All @@ -25,13 +25,13 @@
<joint name="${prefix}joint_2">
<command_interface name="position"/>
<state_interface name="position">
<param name="initial_value">0.0</param>
<param name="initial_value">-1.5708</param>
</state_interface>
</joint>
<joint name="${prefix}joint_3">
<command_interface name="position"/>
<state_interface name="position">
<param name="initial_value">0.0</param>
<param name="initial_value">1.5708</param>
</state_interface>
</joint>
<joint name="${prefix}joint_4">
Expand Down
8 changes: 4 additions & 4 deletions kuka_cybertech_support/package.xml
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
<?xml version="1.0"?>
<package format="3">
<name>kuka_cybertech_support</name>
<version>0.0.1</version>
<version>0.9.0</version>
<description>Robot models for the KUKA cybertech family.</description>
<author>Aron Svastits</author>
<maintainer email="svastits1@gmail.com">Aron Svastits</maintainer>
<license>BSD</license>
<license>Apache-2.0</license>
<buildtool_depend>ament_cmake</buildtool_depend>
<depend>urdf</depend>
<depend>xacro</depend>
<depend>launch_ros</depend>
<exec_depend>launch_ros</exec_depend>
<exec_depend>joint_state_publisher_gui</exec_depend>
<exec_depend>kuka_resources</exec_depend>
<exec_depend>robot_state_publisher</exec_depend>
Expand Down
2 changes: 1 addition & 1 deletion kuka_cybertech_support/test/test_kr_cybertech.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Copyright 2024 Áron Svastits
# Copyright 2024 Aron Svastits
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
Expand Down
3 changes: 2 additions & 1 deletion kuka_cybertech_support/urdf/kr16_r2010_2.urdf.xacro
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
<xacro:include filename="$(find kuka_cybertech_support)/urdf/kr16_r2010_2_macro.xacro"/>
<!-- Read additional arguments -->
<xacro:arg name="use_fake_hardware" default="false"/>
<xacro:arg name="roundtrip_time" default="0"/>
<xacro:arg name="client_ip" default="0.0.0.0"/>
<xacro:arg name="client_port" default="59152"/>
<xacro:arg name="prefix" default=""/>
Expand All @@ -13,7 +14,7 @@
<xacro:arg name="roll" default="0"/>
<xacro:arg name="pitch" default="0"/>
<xacro:arg name="yaw" default="0"/>
<xacro:kuka_kr16_r2010_2_robot client_ip="$(arg client_ip)" client_port="$(arg client_port)" prefix="$(arg prefix)" use_fake_hardware="$(arg use_fake_hardware)">
<xacro:kuka_kr16_r2010_2_robot client_ip="$(arg client_ip)" client_port="$(arg client_port)" prefix="$(arg prefix)" use_fake_hardware="$(arg use_fake_hardware)" roundtrip_time="$(arg roundtrip_time)">
<origin xyz="$(arg x) $(arg y) $(arg z)" rpy="$(arg roll) $(arg pitch) $(arg yaw)"/>
</xacro:kuka_kr16_r2010_2_robot>
</robot>
4 changes: 2 additions & 2 deletions kuka_cybertech_support/urdf/kr16_r2010_2_macro.xacro
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@
<robot xmlns:xacro="http://wiki.ros.org/xacro">
<xacro:include filename="$(find kuka_cybertech_support)/urdf/kr_cybertech_ros2_control.xacro"/>
<xacro:include filename="$(find kuka_cybertech_support)/urdf/kr_cybertech_transmission.xacro"/>
<xacro:macro name="kuka_kr16_r2010_2_robot" params="client_ip client_port prefix use_fake_hardware *origin">
<xacro:macro name="kuka_kr16_r2010_2_robot" params="client_ip client_port prefix use_fake_hardware roundtrip_time *origin">
<!-- ros2 control instance -->
<xacro:kuka_cybertech_ros2_control name="${prefix}kr16_r2010_2" client_ip="${client_ip}" client_port="${client_port}" prefix="${prefix}" use_fake_hardware="${use_fake_hardware}"/>
<xacro:kuka_cybertech_ros2_control name="${prefix}kr16_r2010_2" client_ip="${client_ip}" client_port="${client_port}" prefix="${prefix}" use_fake_hardware="${use_fake_hardware}" roundtrip_time="${roundtrip_time}"/>
<link name="world"/>
<link name="${prefix}base_link">
<collision>
Expand Down
8 changes: 4 additions & 4 deletions kuka_cybertech_support/urdf/kr_cybertech_ros2_control.xacro
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<robot xmlns:xacro="http://www.ros.org/wiki/xacro">
<xacro:macro name="kuka_cybertech_ros2_control" params="name client_ip client_port prefix use_fake_hardware">
<xacro:macro name="kuka_cybertech_ros2_control" params="name client_ip client_port prefix use_fake_hardware roundtrip_time">
<ros2_control name="${name}" type="system">
<hardware>
<xacro:if value="${use_fake_hardware}">
<plugin>kuka_mock_hardware_interface::KukaMockHardwareInterface</plugin>
<param name="cycle_time_ms">4</param>
<param name="roundtrip_time_micro">4000</param>
<param name="roundtrip_time_micro">${roundtrip_time}</param>
<param name="mock_sensor_commands">false</param>
<param name="state_following_offset">0.0</param>
</xacro:if>
Expand All @@ -25,13 +25,13 @@
<joint name="${prefix}joint_2">
<command_interface name="position"/>
<state_interface name="position">
<param name="initial_value">0.0</param>
<param name="initial_value">-1.5708</param>
</state_interface>
</joint>
<joint name="${prefix}joint_3">
<command_interface name="position"/>
<state_interface name="position">
<param name="initial_value">0.0</param>
<param name="initial_value">1.5708</param>
</state_interface>
</joint>
<joint name="${prefix}joint_4">
Expand Down
11 changes: 6 additions & 5 deletions kuka_fortec_support/package.xml
Original file line number Diff line number Diff line change
@@ -1,14 +1,15 @@
<?xml version="1.0"?>
<package format="3">
<name>kuka_fortec_support</name>
<version>0.0.1</version>
<version>0.9.0</version>
<description>Robot models for the KUKA FORTEC family.</description>
<author>Eugenio Bernardi</author>
<maintainer email="e.bernardi@tudelft.nl">Eugenio Bernardi</maintainer>
<license>BSD</license>
<author email="e.bernardi@tudelft.nl">Eugenio Bernardi</author>
<maintainer email="svastits1@gmail.com">Aron Svastits</maintainer>
<license>Apache-2.0</license>
<buildtool_depend>ament_cmake</buildtool_depend>
<depend>urdf</depend>
<depend>xacro</depend>
<depend>launch_ros</depend>
<exec_depend>launch_ros</exec_depend>
<exec_depend>joint_state_publisher_gui</exec_depend>
<exec_depend>kuka_resources</exec_depend>
<exec_depend>robot_state_publisher</exec_depend>
Expand Down
2 changes: 1 addition & 1 deletion kuka_fortec_support/test/test_kr_fortec.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Copyright 2024 Áron Svastits
# Copyright 2024 Aron Svastits
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
Expand Down
3 changes: 2 additions & 1 deletion kuka_fortec_support/urdf/kr560_r3100_2.urdf.xacro
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
<xacro:include filename="$(find kuka_fortec_support)/urdf/kr560_r3100_2_macro.xacro"/>
<!-- Read additional arguments -->
<xacro:arg name="use_fake_hardware" default="false"/>
<xacro:arg name="roundtrip_time" default="0"/>
<xacro:arg name="client_ip" default="0.0.0.0"/>
<xacro:arg name="client_port" default="59152"/>
<xacro:arg name="prefix" default=""/>
Expand All @@ -13,7 +14,7 @@
<xacro:arg name="roll" default="0"/>
<xacro:arg name="pitch" default="0"/>
<xacro:arg name="yaw" default="0"/>
<xacro:kuka_kr560_r3100_2_robot client_ip="$(arg client_ip)" client_port="$(arg client_port)" prefix="$(arg prefix)" use_fake_hardware="$(arg use_fake_hardware)">
<xacro:kuka_kr560_r3100_2_robot client_ip="$(arg client_ip)" client_port="$(arg client_port)" prefix="$(arg prefix)" use_fake_hardware="$(arg use_fake_hardware)" roundtrip_time="$(arg roundtrip_time)">
<origin xyz="$(arg x) $(arg y) $(arg z)" rpy="$(arg roll) $(arg pitch) $(arg yaw)"/>
</xacro:kuka_kr560_r3100_2_robot>
</robot>
Loading

0 comments on commit 1562593

Please sign in to comment.