diff --git a/README.md b/README.md
index 2ffb22cc4..b7cc92dd5 100644
--- a/README.md
+++ b/README.md
@@ -92,7 +92,7 @@ ROS2 Distro | Branch | Build status | Documentation | Released packages
# launches only robot model with Joint state publisher GUI
ros2 launch kuka_kr3_support test_kr3r540.launch.py
- # possible arguments for the following launch file are as follows:
+ # possible arguments for the following launch file are as follows:
"robot_description_package",
choices=[
@@ -105,7 +105,7 @@ ROS2 Distro | Branch | Build status | Documentation | Released packages
"kuka_kr150_support",
"kuka_kr210_support",
]
-
+
"robot_description_macro_file",
choices=[
"kr3r540_macro.xacro",
@@ -121,6 +121,8 @@ ROS2 Distro | Branch | Build status | Documentation | Released packages
"kr150_2_macro.xacro",
"kr150r3100_2_macro.xacro",
"kr210l150_macro.xacro",
+ "kr210r3100_macro.xacro",
+ "lbr_iiwa_14_r820_macro.xacro",
]
"robot_name",
choices=[
@@ -137,6 +139,8 @@ ROS2 Distro | Branch | Build status | Documentation | Released packages
"kuka_kr150_2",
"kuka_kr150r3100_2",
"kuka_kr210l150",
+ "kuka_kr210r3100",
+ "kuka_lbr_iiwa_14_r820",
]
"controllers_file",
choices=[
@@ -155,4 +159,4 @@ ROS2 Distro | Branch | Build status | Documentation | Released packages
# launches robot model with ros2_control support and gazebo simulator for "kuka_kr16_2" robot
ros2 launch kuka_ros2_control_sim_support test_common_gazebo_sim_ros2_control.launch.py robot_description_package:=kuka_kr16_support robot_description_macro_file:=kr16_2_macro.xacro robot_name:=kuka_kr16_2 controllers_file:=kuka_6dof_controllers.yaml
- ```
\ No newline at end of file
+ ```
diff --git a/kuka_kr210_support/meshes/kr210r3100/collision/base_link.stl b/kuka_kr210_support/meshes/kr210r3100/collision/base_link.stl
new file mode 100644
index 000000000..ffc84fa9f
Binary files /dev/null and b/kuka_kr210_support/meshes/kr210r3100/collision/base_link.stl differ
diff --git a/kuka_kr210_support/meshes/kr210r3100/collision/l1_1.stl b/kuka_kr210_support/meshes/kr210r3100/collision/l1_1.stl
new file mode 100644
index 000000000..800b09952
Binary files /dev/null and b/kuka_kr210_support/meshes/kr210r3100/collision/l1_1.stl differ
diff --git a/kuka_kr210_support/meshes/kr210r3100/collision/l2_1.stl b/kuka_kr210_support/meshes/kr210r3100/collision/l2_1.stl
new file mode 100644
index 000000000..cbecfd473
Binary files /dev/null and b/kuka_kr210_support/meshes/kr210r3100/collision/l2_1.stl differ
diff --git a/kuka_kr210_support/meshes/kr210r3100/collision/l3_1.stl b/kuka_kr210_support/meshes/kr210r3100/collision/l3_1.stl
new file mode 100644
index 000000000..160042d0f
Binary files /dev/null and b/kuka_kr210_support/meshes/kr210r3100/collision/l3_1.stl differ
diff --git a/kuka_kr210_support/meshes/kr210r3100/collision/l4_1.stl b/kuka_kr210_support/meshes/kr210r3100/collision/l4_1.stl
new file mode 100644
index 000000000..2a46ec881
Binary files /dev/null and b/kuka_kr210_support/meshes/kr210r3100/collision/l4_1.stl differ
diff --git a/kuka_kr210_support/meshes/kr210r3100/collision/l5_1.stl b/kuka_kr210_support/meshes/kr210r3100/collision/l5_1.stl
new file mode 100644
index 000000000..8f9e2f5d4
Binary files /dev/null and b/kuka_kr210_support/meshes/kr210r3100/collision/l5_1.stl differ
diff --git a/kuka_kr210_support/meshes/kr210r3100/collision/l6_1.stl b/kuka_kr210_support/meshes/kr210r3100/collision/l6_1.stl
new file mode 100644
index 000000000..13208bb30
Binary files /dev/null and b/kuka_kr210_support/meshes/kr210r3100/collision/l6_1.stl differ
diff --git a/kuka_kr210_support/meshes/kr210r3100/original/base_link.stl b/kuka_kr210_support/meshes/kr210r3100/original/base_link.stl
new file mode 100644
index 000000000..83a587061
Binary files /dev/null and b/kuka_kr210_support/meshes/kr210r3100/original/base_link.stl differ
diff --git a/kuka_kr210_support/meshes/kr210r3100/original/l1_1.stl b/kuka_kr210_support/meshes/kr210r3100/original/l1_1.stl
new file mode 100644
index 000000000..fadb7290c
Binary files /dev/null and b/kuka_kr210_support/meshes/kr210r3100/original/l1_1.stl differ
diff --git a/kuka_kr210_support/meshes/kr210r3100/original/l2_1.stl b/kuka_kr210_support/meshes/kr210r3100/original/l2_1.stl
new file mode 100644
index 000000000..5f6b7e23c
Binary files /dev/null and b/kuka_kr210_support/meshes/kr210r3100/original/l2_1.stl differ
diff --git a/kuka_kr210_support/meshes/kr210r3100/original/l3_1.stl b/kuka_kr210_support/meshes/kr210r3100/original/l3_1.stl
new file mode 100644
index 000000000..8d4bf71e0
Binary files /dev/null and b/kuka_kr210_support/meshes/kr210r3100/original/l3_1.stl differ
diff --git a/kuka_kr210_support/meshes/kr210r3100/original/l4_1.stl b/kuka_kr210_support/meshes/kr210r3100/original/l4_1.stl
new file mode 100644
index 000000000..961de8f7b
Binary files /dev/null and b/kuka_kr210_support/meshes/kr210r3100/original/l4_1.stl differ
diff --git a/kuka_kr210_support/meshes/kr210r3100/original/l5_1.stl b/kuka_kr210_support/meshes/kr210r3100/original/l5_1.stl
new file mode 100644
index 000000000..b4fca35d8
Binary files /dev/null and b/kuka_kr210_support/meshes/kr210r3100/original/l5_1.stl differ
diff --git a/kuka_kr210_support/meshes/kr210r3100/original/l6_1.stl b/kuka_kr210_support/meshes/kr210r3100/original/l6_1.stl
new file mode 100644
index 000000000..4e014c3c6
Binary files /dev/null and b/kuka_kr210_support/meshes/kr210r3100/original/l6_1.stl differ
diff --git a/kuka_kr210_support/meshes/kr210r3100/reduced/base_link.stl b/kuka_kr210_support/meshes/kr210r3100/reduced/base_link.stl
new file mode 100644
index 000000000..354568623
Binary files /dev/null and b/kuka_kr210_support/meshes/kr210r3100/reduced/base_link.stl differ
diff --git a/kuka_kr210_support/meshes/kr210r3100/reduced/l1_1.stl b/kuka_kr210_support/meshes/kr210r3100/reduced/l1_1.stl
new file mode 100644
index 000000000..d01903f39
Binary files /dev/null and b/kuka_kr210_support/meshes/kr210r3100/reduced/l1_1.stl differ
diff --git a/kuka_kr210_support/meshes/kr210r3100/reduced/l2_1.stl b/kuka_kr210_support/meshes/kr210r3100/reduced/l2_1.stl
new file mode 100644
index 000000000..3b0f09264
Binary files /dev/null and b/kuka_kr210_support/meshes/kr210r3100/reduced/l2_1.stl differ
diff --git a/kuka_kr210_support/meshes/kr210r3100/reduced/l3_1.stl b/kuka_kr210_support/meshes/kr210r3100/reduced/l3_1.stl
new file mode 100644
index 000000000..ee3480c68
Binary files /dev/null and b/kuka_kr210_support/meshes/kr210r3100/reduced/l3_1.stl differ
diff --git a/kuka_kr210_support/meshes/kr210r3100/reduced/l4_1.stl b/kuka_kr210_support/meshes/kr210r3100/reduced/l4_1.stl
new file mode 100644
index 000000000..3027c339d
Binary files /dev/null and b/kuka_kr210_support/meshes/kr210r3100/reduced/l4_1.stl differ
diff --git a/kuka_kr210_support/meshes/kr210r3100/reduced/l5_1.stl b/kuka_kr210_support/meshes/kr210r3100/reduced/l5_1.stl
new file mode 100644
index 000000000..70d5653ad
Binary files /dev/null and b/kuka_kr210_support/meshes/kr210r3100/reduced/l5_1.stl differ
diff --git a/kuka_kr210_support/meshes/kr210r3100/reduced/l6_1.stl b/kuka_kr210_support/meshes/kr210r3100/reduced/l6_1.stl
new file mode 100644
index 000000000..71a1e66ac
Binary files /dev/null and b/kuka_kr210_support/meshes/kr210r3100/reduced/l6_1.stl differ
diff --git a/kuka_kr210_support/meshes/kr210r3100/visual/base_link.stl b/kuka_kr210_support/meshes/kr210r3100/visual/base_link.stl
new file mode 100644
index 000000000..aa0d50a7e
Binary files /dev/null and b/kuka_kr210_support/meshes/kr210r3100/visual/base_link.stl differ
diff --git a/kuka_kr210_support/meshes/kr210r3100/visual/l1_1.stl b/kuka_kr210_support/meshes/kr210r3100/visual/l1_1.stl
new file mode 100644
index 000000000..ee27e714b
Binary files /dev/null and b/kuka_kr210_support/meshes/kr210r3100/visual/l1_1.stl differ
diff --git a/kuka_kr210_support/meshes/kr210r3100/visual/l2_1.stl b/kuka_kr210_support/meshes/kr210r3100/visual/l2_1.stl
new file mode 100644
index 000000000..cbecfd473
Binary files /dev/null and b/kuka_kr210_support/meshes/kr210r3100/visual/l2_1.stl differ
diff --git a/kuka_kr210_support/meshes/kr210r3100/visual/l3_1.stl b/kuka_kr210_support/meshes/kr210r3100/visual/l3_1.stl
new file mode 100644
index 000000000..388d63d63
Binary files /dev/null and b/kuka_kr210_support/meshes/kr210r3100/visual/l3_1.stl differ
diff --git a/kuka_kr210_support/meshes/kr210r3100/visual/l4_1.stl b/kuka_kr210_support/meshes/kr210r3100/visual/l4_1.stl
new file mode 100644
index 000000000..28c230f12
Binary files /dev/null and b/kuka_kr210_support/meshes/kr210r3100/visual/l4_1.stl differ
diff --git a/kuka_kr210_support/meshes/kr210r3100/visual/l5_1.stl b/kuka_kr210_support/meshes/kr210r3100/visual/l5_1.stl
new file mode 100644
index 000000000..a3a42af47
Binary files /dev/null and b/kuka_kr210_support/meshes/kr210r3100/visual/l5_1.stl differ
diff --git a/kuka_kr210_support/meshes/kr210r3100/visual/l6_1.stl b/kuka_kr210_support/meshes/kr210r3100/visual/l6_1.stl
new file mode 100644
index 000000000..5d5821b34
Binary files /dev/null and b/kuka_kr210_support/meshes/kr210r3100/visual/l6_1.stl differ
diff --git a/kuka_kr210_support/urdf/kr210r3100.urdf b/kuka_kr210_support/urdf/kr210r3100.urdf
new file mode 100644
index 000000000..e9411aada
--- /dev/null
+++ b/kuka_kr210_support/urdf/kr210r3100.urdf
@@ -0,0 +1,233 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/kuka_kr210_support/urdf/kr210r3100.xacro b/kuka_kr210_support/urdf/kr210r3100.xacro
new file mode 100644
index 000000000..6326ec3bf
--- /dev/null
+++ b/kuka_kr210_support/urdf/kr210r3100.xacro
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
diff --git a/kuka_kr210_support/urdf/kr210r3100_macro.xacro b/kuka_kr210_support/urdf/kr210r3100_macro.xacro
new file mode 100644
index 000000000..12fd77aa7
--- /dev/null
+++ b/kuka_kr210_support/urdf/kr210r3100_macro.xacro
@@ -0,0 +1,236 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/kuka_ros2_control_sim_support/CMakeLists.txt b/kuka_ros2_control_sim_support/CMakeLists.txt
deleted file mode 100644
index 7bdb84a2b..000000000
--- a/kuka_ros2_control_sim_support/CMakeLists.txt
+++ /dev/null
@@ -1,19 +0,0 @@
-cmake_minimum_required(VERSION 3.16)
-
-project(kuka_ros2_control_sim_support LANGUAGES CXX)
-
-if(CMAKE_CXX_COMPILER_ID MATCHES "(GNU|Clang)")
- add_compile_options(-Wall -Wextra)
-endif()
-
-# find dependencies
-find_package(ament_cmake REQUIRED)
-
-
-install(
- DIRECTORY urdf launch
- DESTINATION share/${PROJECT_NAME}
-)
-
-
-ament_package()
diff --git a/kuka_ros2_control_sim_support/launch/test_common_gazebo_classic_ros2_control.launch.py b/kuka_ros2_control_sim_support/launch/test_common_gazebo_classic_ros2_control.launch.py
deleted file mode 100644
index b0fecaba6..000000000
--- a/kuka_ros2_control_sim_support/launch/test_common_gazebo_classic_ros2_control.launch.py
+++ /dev/null
@@ -1,275 +0,0 @@
-# Copyright 2023 Stogl Robotics Consulting UG (haftungsbeschränkt)
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-#
-# Author: Dr. Denis
-from launch import LaunchDescription
-from launch.actions import (
- DeclareLaunchArgument,
- IncludeLaunchDescription,
- RegisterEventHandler,
- TimerAction,
-)
-from launch.event_handlers import OnProcessExit, OnProcessStart
-from launch.launch_description_sources import PythonLaunchDescriptionSource
-from launch.substitutions import Command, FindExecutable, LaunchConfiguration, PathJoinSubstitution
-from launch_ros.actions import Node
-from launch_ros.substitutions import FindPackageShare
-
-
-def generate_launch_description():
- # Declare arguments
- declared_arguments = []
- declared_arguments.append(
- DeclareLaunchArgument(
- "runtime_config_package",
- default_value="kuka_resources",
- description='Package with the controller\'s configuration in "config" folder. \
- Usually the argument is not set, it enables use of a custom setup.',
- )
- )
- declared_arguments.append(
- DeclareLaunchArgument(
- "controllers_file",
- choices=[
- "kuka_6dof_controllers.yaml",
- "kuka_7dof_controllers.yaml",
- # Note: for the robot kuka_lbr_iiwa_14_r820, kuka_7dof_controllers.yaml should be used
- # and the rest use kuka_6dof_controllers.yaml
- ],
- description="YAML file with the controllers configuration.",
- )
- )
- declared_arguments.append(
- DeclareLaunchArgument(
- "robot_description_package",
- choices=[
- "kuka_kr3_support",
- "kuka_kr5_support",
- "kuka_kr6_support",
- "kuka_kr10_support",
- "kuka_kr16_support",
- "kuka_kr120_support",
- "kuka_kr150_support",
- "kuka_kr210_support",
- "kuka_lbr_iiwa_support",
- ],
- description="Description package with robot URDF/xacro files. Usually the argument \
- is not set, it enables use of a custom description.",
- )
- )
- declared_arguments.append(
- DeclareLaunchArgument(
- "robot_description_macro_file",
- choices=[
- "kr3r540_macro.xacro",
- "kr5_arc_macro.xacro",
- "kr6r700sixx_macro.xacro",
- "kr6r900_2_macro.xacro",
- "kr6r900sixx_macro.xacro",
- "kr10r900_2_macro.xacro",
- "kr10r1100sixx_macro.xacro",
- "kr10r1420_macro.xacro",
- "kr16_2_macro.xacro",
- "kr120r2500pro_macro.xacro",
- "kr150_2_macro.xacro",
- "kr150r3100_2_macro.xacro",
- "kr210l150_macro.xacro",
- "lbr_iiwa_14_r820_macro.xacro",
- ],
- description="URDF/XACRO description file with the robot.",
- )
- )
- declared_arguments.append(
- DeclareLaunchArgument(
- "prefix",
- default_value="",
- description="Prefix of the joint names, useful for \
- multi-robot setup. If changed than also joint names in the controllers' configuration \
- have to be updated.",
- )
- )
- declared_arguments.append(
- DeclareLaunchArgument(
- "robot_controller",
- default_value="forward_position_controller",
- choices=["forward_position_controller", "joint_trajectory_controller"],
- description="Robot controller to start.",
- )
- )
- declared_arguments.append(
- DeclareLaunchArgument(
- "robot_name",
- choices=[
- "kuka_kr3r540",
- "kuka_kr5_arc",
- "kuka_kr6r700sixx",
- "kuka_kr6r900_2",
- "kuka_kr6r900sixx",
- "kuka_kr10r900_2",
- "kuka_kr10r1100sixx",
- "kuka_kr10r1420",
- "kuka_kr16_2",
- "kuka_kr120r2500pro",
- "kuka_kr150_2",
- "kuka_kr150r3100_2",
- "kuka_kr210l150",
- "kuka_lbr_iiwa_14_r820",
- ],
- description="NOTE:robot name and robot description macro name are same",
- )
- )
-
- # Initialize Arguments
- runtime_config_package = LaunchConfiguration("runtime_config_package")
- controllers_file = LaunchConfiguration("controllers_file")
- robot_description_package = LaunchConfiguration("robot_description_package")
- robot_description_macro_file = LaunchConfiguration("robot_description_macro_file")
- robot_name = LaunchConfiguration("robot_name")
- prefix = LaunchConfiguration("prefix")
- robot_controller = LaunchConfiguration("robot_controller")
- robot_controllers = PathJoinSubstitution(
- [FindPackageShare(runtime_config_package), "config", controllers_file]
- )
- rviz_config_file = PathJoinSubstitution(
- [FindPackageShare(runtime_config_package), "config", "view_robot.rviz"]
- )
-
- # Get URDF via xacro
- robot_description_content = Command(
- [
- PathJoinSubstitution([FindExecutable(name="xacro")]),
- " ",
- PathJoinSubstitution(
- [
- FindPackageShare("kuka_ros2_control_sim_support"),
- "urdf",
- "common_sim_kuka.xacro",
- ]
- ),
- " ",
- "prefix:=",
- prefix,
- " ",
- "mock_sensor_commands:=false",
- " ",
- "sim_gazebo_classic:=true",
- " ",
- "sim_gazebo:=false",
- " ",
- "simulation_controllers:=",
- robot_controllers,
- " ",
- "controllers_file:=",
- controllers_file,
- " ",
- "robot_description_package:=",
- robot_description_package,
- " ",
- "robot_description_macro_file:=",
- robot_description_macro_file,
- " ",
- "robot_name:=",
- robot_name,
- " ",
- ]
- )
- robot_description = {"robot_description": robot_description_content}
-
- robot_state_pub_node = Node(
- package="robot_state_publisher",
- executable="robot_state_publisher",
- output="both",
- parameters=[robot_description],
- )
- rviz_node = Node(
- package="rviz2",
- executable="rviz2",
- name="rviz2",
- output="log",
- arguments=["-d", rviz_config_file],
- )
-
- # # Gazebo node
- gazebo = IncludeLaunchDescription(
- PythonLaunchDescriptionSource(
- [FindPackageShare("gazebo_ros"), "/launch", "/gazebo.launch.py"]
- ),
- )
-
- # Spawn robot
-
- gazebo_spawn_robot = Node(
- package="gazebo_ros",
- executable="spawn_entity.py",
- arguments=["-topic", "robot_description", "-entity", "$ROBOT_NAME$"],
- output="screen",
- )
-
- joint_state_broadcaster_spawner = Node(
- package="controller_manager",
- executable="spawner.py",
- arguments=["joint_state_broadcaster", "--controller-manager", "/controller_manager"],
- )
-
- robot_controllers = [robot_controller]
- robot_controller_spawners = []
- for controller in robot_controllers:
- robot_controller_spawners += [
- Node(
- package="controller_manager",
- executable="spawner.py",
- arguments=[controller, "-c", "/controller_manager"],
- )
- ]
- # Delay loading and activation of `joint_state_broadcaster` after start of ros2_control_node
- delay_joint_state_broadcaster_spawner_after_ros2_control_node = RegisterEventHandler(
- event_handler=OnProcessStart(
- target_action=gazebo_spawn_robot,
- on_start=[
- TimerAction(
- period=3.0,
- actions=[joint_state_broadcaster_spawner],
- ),
- ],
- )
- )
-
- # Delay loading and activation of robot_controller after `joint_state_broadcaster`
- delay_robot_controller_spawners_after_joint_state_broadcaster_spawner = []
- for controller in robot_controller_spawners:
- delay_robot_controller_spawners_after_joint_state_broadcaster_spawner += [
- RegisterEventHandler(
- event_handler=OnProcessExit(
- target_action=joint_state_broadcaster_spawner,
- on_exit=[
- TimerAction(
- period=3.0,
- actions=[controller],
- ),
- ],
- )
- )
- ]
- return LaunchDescription(
- declared_arguments
- + [
- gazebo,
- gazebo_spawn_robot,
- robot_state_pub_node,
- rviz_node,
- delay_joint_state_broadcaster_spawner_after_ros2_control_node,
- ]
- + delay_robot_controller_spawners_after_joint_state_broadcaster_spawner
- )
diff --git a/kuka_ros2_control_sim_support/launch/test_common_gazebo_sim_ros2_control.launch.py b/kuka_ros2_control_sim_support/launch/test_common_gazebo_sim_ros2_control.launch.py
deleted file mode 100644
index 46568b4df..000000000
--- a/kuka_ros2_control_sim_support/launch/test_common_gazebo_sim_ros2_control.launch.py
+++ /dev/null
@@ -1,275 +0,0 @@
-# Copyright 2023 Stogl Robotics Consulting UG (haftungsbeschränkt)
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-#
-# Author: Dr. Denis
-
-from launch import LaunchDescription
-from launch.actions import (
- DeclareLaunchArgument,
- IncludeLaunchDescription,
- RegisterEventHandler,
- TimerAction,
-)
-from launch.event_handlers import OnProcessExit, OnProcessStart
-from launch.launch_description_sources import PythonLaunchDescriptionSource
-from launch.substitutions import Command, FindExecutable, LaunchConfiguration, PathJoinSubstitution
-from launch_ros.actions import Node
-from launch_ros.substitutions import FindPackageShare
-
-
-def generate_launch_description():
- # Declare arguments
- declared_arguments = []
- declared_arguments.append(
- DeclareLaunchArgument(
- "runtime_config_package",
- default_value="kuka_resources",
- description='Package with the controller\'s configuration in "config" folder. \
- Usually the argument is not set, it enables use of a custom setup.',
- )
- )
- declared_arguments.append(
- DeclareLaunchArgument(
- "controllers_file",
- choices=[
- "kuka_6dof_controllers.yaml",
- "kuka_7dof_controllers.yaml",
- # Note: for the robot kuka_lbr_iiwa_14_r820, kuka_7dof_controllers.yaml should be used
- # and the rest use kuka_6dof_controllers.yaml
- ],
- description="YAML file with the controllers configuration.",
- )
- )
- declared_arguments.append(
- DeclareLaunchArgument(
- "robot_description_package",
- choices=[
- "kuka_kr3_support",
- "kuka_kr5_support",
- "kuka_kr6_support",
- "kuka_kr10_support",
- "kuka_kr16_support",
- "kuka_kr120_support",
- "kuka_kr150_support",
- "kuka_kr210_support",
- ],
- description="Description package with robot URDF/xacro files. Usually the argument \
- is not set, it enables use of a custom description.",
- )
- )
- declared_arguments.append(
- DeclareLaunchArgument(
- "robot_description_macro_file",
- choices=[
- "kr3r540_macro.xacro",
- "kr5_arc_macro.xacro",
- "kr6r700sixx_macro.xacro",
- "kr6r900_2_macro.xacro",
- "kr6r900sixx_macro.xacro",
- "kr10r900_2_macro.xacro",
- "kr10r1100sixx_macro.xacro",
- "kr10r1420_macro.xacro",
- "kr16_2_macro.xacro",
- "kr120r2500pro_macro.xacro",
- "kr150_2_macro.xacro",
- "kr150r3100_2_macro.xacro",
- "kr210l150_macro.xacro",
- ],
- description="URDF/XACRO description file with the robot.",
- )
- )
- declared_arguments.append(
- DeclareLaunchArgument(
- "prefix",
- default_value="",
- description="Prefix of the joint names, useful for \
- multi-robot setup. If changed than also joint names in the controllers' configuration \
- have to be updated.",
- )
- )
- declared_arguments.append(
- DeclareLaunchArgument(
- "robot_controller",
- default_value="forward_position_controller",
- choices=["forward_position_controller", "joint_trajectory_controller"],
- description="Robot controller to start.",
- )
- )
- declared_arguments.append(
- DeclareLaunchArgument(
- "robot_name",
- choices=[
- "kuka_kr3r540",
- "kuka_kr5_arc",
- "kuka_kr6r700sixx",
- "kuka_kr6r900_2",
- "kuka_kr6r900sixx",
- "kuka_kr10r900_2",
- "kuka_kr10r1100sixx",
- "kuka_kr10r1420",
- "kuka_kr16_2",
- "kuka_kr120r2500pro",
- "kuka_kr150_2",
- "kuka_kr150r3100_2",
- "kuka_kr210l150",
- ],
- description="NOTE:robot name and robot description macro name are same",
- )
- )
-
- # Initialize Arguments
- runtime_config_package = LaunchConfiguration("runtime_config_package")
- controllers_file = LaunchConfiguration("controllers_file")
- robot_description_package = LaunchConfiguration("robot_description_package")
- robot_description_macro_file = LaunchConfiguration("robot_description_macro_file")
- robot_name = LaunchConfiguration("robot_name")
- prefix = LaunchConfiguration("prefix")
- robot_controller = LaunchConfiguration("robot_controller")
-
- robot_controllers = PathJoinSubstitution(
- [FindPackageShare(runtime_config_package), "config", controllers_file]
- )
-
- rviz_config_file = PathJoinSubstitution(
- [FindPackageShare(runtime_config_package), "config", "view_robot.rviz"]
- )
-
- # Get URDF via xacro
- robot_description_content = Command(
- [
- PathJoinSubstitution([FindExecutable(name="xacro")]),
- " ",
- PathJoinSubstitution(
- [
- FindPackageShare("kuka_ros2_control_sim_support"),
- "urdf",
- "common_sim_kuka.xacro",
- ]
- ),
- " ",
- "prefix:=",
- prefix,
- " ",
- "mock_sensor_commands:=false",
- " ",
- "sim_gazebo_classic:=false",
- " ",
- "sim_gazebo:=true",
- " ",
- "simulation_controllers:=",
- robot_controllers,
- " ",
- "robot_description_package:=",
- robot_description_package,
- " ",
- "robot_description_macro_file:=",
- robot_description_macro_file,
- " ",
- "robot_name:=",
- robot_name,
- " ",
- ]
- )
- robot_description = {"robot_description": robot_description_content}
-
- robot_state_pub_node = Node(
- package="robot_state_publisher",
- executable="robot_state_publisher",
- output="both",
- parameters=[robot_description],
- )
- rviz_node = Node(
- package="rviz2",
- executable="rviz2",
- name="rviz2",
- output="log",
- arguments=["-d", rviz_config_file],
- )
-
- # # Gazebo nodes
- gazebo_sim = IncludeLaunchDescription(
- PythonLaunchDescriptionSource(
- [FindPackageShare("ros_ign_gazebo"), "/launch", "/ign_gazebo.launch.py"]
- ),
- launch_arguments={"ign_args": " -r -v 3 empty.sdf"}.items(),
- )
-
- # Spawn robot
- gazebo_spawn_robot = Node(
- package="ros_ign_gazebo",
- executable="create",
- name="spawn_robot",
- arguments=["-name", "$ROBOT_NAME$", "-topic", "robot_description"],
- output="screen",
- )
-
- joint_state_broadcaster_spawner = Node(
- package="controller_manager",
- executable="spawner.py",
- arguments=["joint_state_broadcaster", "--controller-manager", "/controller_manager"],
- )
-
- robot_controllers = [robot_controller]
- robot_controller_spawners = []
- for controller in robot_controllers:
- robot_controller_spawners += [
- Node(
- package="controller_manager",
- executable="spawner.py",
- arguments=[controller, "-c", "/controller_manager"],
- )
- ]
-
- # Delay loading and activation of `joint_state_broadcaster` after start of ros2_control_node
- delay_joint_state_broadcaster_spawner_after_ros2_control_node = RegisterEventHandler(
- event_handler=OnProcessStart(
- target_action=gazebo_spawn_robot,
- on_start=[
- TimerAction(
- period=3.0,
- actions=[joint_state_broadcaster_spawner],
- ),
- ],
- )
- )
-
- # Delay loading and activation of robot_controller after `joint_state_broadcaster`
- delay_robot_controller_spawners_after_joint_state_broadcaster_spawner = []
- for controller in robot_controller_spawners:
- delay_robot_controller_spawners_after_joint_state_broadcaster_spawner += [
- RegisterEventHandler(
- event_handler=OnProcessExit(
- target_action=joint_state_broadcaster_spawner,
- on_exit=[
- TimerAction(
- period=3.0,
- actions=[controller],
- ),
- ],
- )
- )
- ]
-
- return LaunchDescription(
- declared_arguments
- + [
- gazebo_sim,
- gazebo_spawn_robot,
- robot_state_pub_node,
- rviz_node,
- delay_joint_state_broadcaster_spawner_after_ros2_control_node,
- ]
- + delay_robot_controller_spawners_after_joint_state_broadcaster_spawner
- )
diff --git a/kuka_ros2_control_sim_support/package.xml b/kuka_ros2_control_sim_support/package.xml
deleted file mode 100644
index 9514631cf..000000000
--- a/kuka_ros2_control_sim_support/package.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-
-
-
- kuka_ros2_control_sim_support
- 0.0.0
- ros2_control simulator, Gazebo-classic and Gazebo support package
- Dr.-Ing. Denis Štogl
- Giridhar Bukka
- Apache2
-
- ament_cmake
-
- controller_manager
- forward_command_controller
- gazebo_ros2_control
- gz_ros2_control
- ign_ros2_control
- joint_state_publisher
- joint_state_broadcaster
- robot_state_publisher
- joint_state_publisher_gui
- ros_gz_sim
- kuka_ros2_control_support
- rviz
- xacroign-ros2-control
-
-
- ament_cmake
-
-
diff --git a/kuka_ros2_control_sim_support/urdf/common_sim_kuka.xacro b/kuka_ros2_control_sim_support/urdf/common_sim_kuka.xacro
deleted file mode 100644
index 841951927..000000000
--- a/kuka_ros2_control_sim_support/urdf/common_sim_kuka.xacro
+++ /dev/null
@@ -1,98 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/kuka_ros2_control_support/launch/test_ros2_control_kuka.launch.py b/kuka_ros2_control_support/launch/test_ros2_control_kuka.launch.py
index 8f3137ea0..32599c665 100644
--- a/kuka_ros2_control_support/launch/test_ros2_control_kuka.launch.py
+++ b/kuka_ros2_control_support/launch/test_ros2_control_kuka.launch.py
@@ -69,6 +69,7 @@ def generate_launch_description():
"kr150_2_macro.xacro",
"kr150r3100_2_macro.xacro",
"kr210l150_macro.xacro",
+ "kr210r3100_macro.xacro",
"lbr_iiwa_14_r820_macro.xacro",
],
description="URDF/XACRO description file with the robot.",
@@ -108,6 +109,7 @@ def generate_launch_description():
"kuka_kr150_2",
"kuka_kr150r3100_2",
"kuka_kr210l150",
+ "kuka_kr210r3100",
"kuka_lbr_iiwa_14_r820",
],
description="NOTE:robot name and robot description macro name are same",