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",