diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 5ef0323a..8de17f0b 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -1,6 +1,13 @@ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Changelog for package LBR FRI ROS 2 Stack ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Humble v2.1.1 (2024-09-27) +-------------------------- +* Adds support for the new Gazebo and removes support for Gazebo Classic (End-of-Life January 2025, refer https://community.gazebosim.org/t/gazebo-classic-end-of-life/2563). + * ``lbr_bringup``: Updated launch files and dependencies. + * ``lbr_description``: Updated ```` tag to include Gazebo plugin (see https://github.com/ros-controls/gz_ros2_control/tree/humble). + * ``lbr_ros2_control``: Changed ``gazebo_ros2_control/GazeboSystem`` -> ``ign_ros2_control/IgnitionSystem``` + Humble v2.1.0 (2024-09-10) -------------------------- * De-couple launch files from ``lbr_bringup`` for easier customization (breaking change): diff --git a/CITATION.cff b/CITATION.cff index 90ea1234..83e295ed 100644 --- a/CITATION.cff +++ b/CITATION.cff @@ -19,6 +19,6 @@ authors: title: "LBR-Stack: ROS 2 and Python Integration of KUKA FRI for Med and IIWA Robots" -version: 2.1.0 +version: 2.1.1 doi: 10.48550/arXiv.2311.12709 -date-released: 2024-09-10 +date-released: 2024-09-27 diff --git a/lbr_bringup/launch/gazebo.launch.py b/lbr_bringup/launch/gazebo.launch.py index 0ff93e5b..bc1ff586 100644 --- a/lbr_bringup/launch/gazebo.launch.py +++ b/lbr_bringup/launch/gazebo.launch.py @@ -38,10 +38,10 @@ def generate_launch_description() -> LaunchDescription: # Gazebo ld.add_action(GazeboMixin.include_gazebo()) # Gazebo has its own controller manager - spawn_entity = GazeboMixin.node_spawn_entity( - tf=world_robot_tf + ld.add_action(GazeboMixin.node_clock_bridge()) + ld.add_action( + GazeboMixin.node_create(tf=world_robot_tf) ) # spawns robot in Gazebo through robot_description topic of robot_state_publisher - ld.add_action(spawn_entity) # controllers joint_state_broadcaster = LBRROS2ControlMixin.node_controller_spawner( diff --git a/lbr_bringup/launch/move_group.launch.py b/lbr_bringup/launch/move_group.launch.py index 3d1f0bdd..8a966915 100644 --- a/lbr_bringup/launch/move_group.launch.py +++ b/lbr_bringup/launch/move_group.launch.py @@ -75,6 +75,10 @@ def hidden_setup(context: LaunchContext) -> List[LaunchDescriptionEntity]: "robot_description_semantic", PathJoinSubstitution([robot_name, "robot_description_semantic"]), ), + ( + "recognized_object_array", + PathJoinSubstitution([robot_name, "recognized_object_array"]), + ), ], condition=IfCondition(LaunchConfiguration("rviz")), ) diff --git a/lbr_bringup/lbr_bringup/gazebo.py b/lbr_bringup/lbr_bringup/gazebo.py index 145e052d..07e74c6c 100644 --- a/lbr_bringup/lbr_bringup/gazebo.py +++ b/lbr_bringup/lbr_bringup/gazebo.py @@ -14,17 +14,18 @@ def include_gazebo(**kwargs) -> IncludeLaunchDescription: PythonLaunchDescriptionSource( PathJoinSubstitution( [ - FindPackageShare("gazebo_ros"), + FindPackageShare("ros_gz_sim"), "launch", - "gazebo.launch.py", + "gz_sim.launch.py", ] - ) + ), ), + launch_arguments={"gz_args": "-r empty.sdf"}.items(), **kwargs, ) @staticmethod - def node_spawn_entity( + def node_create( robot_name: Optional[Union[LaunchConfiguration, str]] = LaunchConfiguration( "robot_name", default="lbr" ), @@ -34,16 +35,27 @@ def node_spawn_entity( label = ["-x", "-y", "-z", "-R", "-P", "-Y"] tf = [str(x) for x in tf] return Node( - package="gazebo_ros", - executable="spawn_entity.py", + package="ros_gz_sim", + executable="create", arguments=[ "-topic", "robot_description", - "-entity", + "-name", robot_name, + "-allow_renaming", ] + [item for pair in zip(label, tf) for item in pair], output="screen", namespace=robot_name, **kwargs, ) + + @staticmethod + def node_clock_bridge(**kwargs) -> Node: + return Node( + package="ros_gz_bridge", + executable="parameter_bridge", + arguments=["/clock@rosgraph_msgs/msg/Clock[gz.msgs.Clock"], + output="screen", + **kwargs, + ) diff --git a/lbr_bringup/package.xml b/lbr_bringup/package.xml index 342ef1ef..dba3730d 100644 --- a/lbr_bringup/package.xml +++ b/lbr_bringup/package.xml @@ -2,7 +2,7 @@ lbr_bringup - 2.1.0 + 2.1.1 LBR launch files. mhubii Apache License 2.0 @@ -10,18 +10,19 @@ ament_cmake ament_cmake_python - lbr_description - lbr_fri_ros2 - lbr_ros2_control controller_manager + ign_ros2_control joint_state_broadcaster joint_trajectory_controller - xacro + lbr_description + lbr_fri_ros2 + lbr_ros2_control + rclpy robot_state_publisher - gazebo_ros - gazebo_ros2_control + ros_gz_sim + ros_gz_bridge rviz2 - rclpy + xacro ament_cmake diff --git a/lbr_demos/lbr_demos_advanced_cpp/package.xml b/lbr_demos/lbr_demos_advanced_cpp/package.xml index 81e0b2e5..069d424a 100644 --- a/lbr_demos/lbr_demos_advanced_cpp/package.xml +++ b/lbr_demos/lbr_demos_advanced_cpp/package.xml @@ -2,7 +2,7 @@ lbr_demos_advanced_cpp - 2.1.0 + 2.1.1 Advanced C++ demos for the lbr_ros2_control. mhubii Apache License 2.0 diff --git a/lbr_demos/lbr_demos_advanced_py/package.xml b/lbr_demos/lbr_demos_advanced_py/package.xml index ade1df84..3a646a59 100644 --- a/lbr_demos/lbr_demos_advanced_py/package.xml +++ b/lbr_demos/lbr_demos_advanced_py/package.xml @@ -2,7 +2,7 @@ lbr_demos_advanced_py - 2.1.0 + 2.1.1 Advanced Python demos for the lbr_ros2_control. mhubii cmower diff --git a/lbr_demos/lbr_demos_advanced_py/setup.py b/lbr_demos/lbr_demos_advanced_py/setup.py index d3dcdd20..a3ab1449 100644 --- a/lbr_demos/lbr_demos_advanced_py/setup.py +++ b/lbr_demos/lbr_demos_advanced_py/setup.py @@ -6,7 +6,7 @@ setup( name=package_name, - version="2.1.0", + version="2.1.1", packages=[package_name], data_files=[ ("share/ament_index/resource_index/packages", ["resource/" + package_name]), diff --git a/lbr_demos/lbr_demos_cpp/package.xml b/lbr_demos/lbr_demos_cpp/package.xml index f3d80e96..7172ae22 100644 --- a/lbr_demos/lbr_demos_cpp/package.xml +++ b/lbr_demos/lbr_demos_cpp/package.xml @@ -2,7 +2,7 @@ lbr_demos_cpp - 2.1.0 + 2.1.1 C++ demos for lbr_ros2_control. mhubii Apache License 2.0 diff --git a/lbr_demos/lbr_demos_py/package.xml b/lbr_demos/lbr_demos_py/package.xml index 6829f32e..dadc747e 100644 --- a/lbr_demos/lbr_demos_py/package.xml +++ b/lbr_demos/lbr_demos_py/package.xml @@ -2,7 +2,7 @@ lbr_demos_py - 2.1.0 + 2.1.1 Python demos for lbr_ros2_control. mhubii Apache License 2.0 diff --git a/lbr_demos/lbr_demos_py/setup.py b/lbr_demos/lbr_demos_py/setup.py index c3af4e8a..a38dae9e 100644 --- a/lbr_demos/lbr_demos_py/setup.py +++ b/lbr_demos/lbr_demos_py/setup.py @@ -4,7 +4,7 @@ setup( name=package_name, - version="2.1.0", + version="2.1.1", packages=[package_name], data_files=[ ("share/ament_index/resource_index/packages", ["resource/" + package_name]), diff --git a/lbr_demos/lbr_moveit_cpp/package.xml b/lbr_demos/lbr_moveit_cpp/package.xml index dbda4e53..17bcf85c 100644 --- a/lbr_demos/lbr_moveit_cpp/package.xml +++ b/lbr_demos/lbr_moveit_cpp/package.xml @@ -2,7 +2,7 @@ lbr_moveit_cpp - 2.1.0 + 2.1.1 Demo for using MoveIt C++ API. mhubii Apache-2.0 diff --git a/lbr_description/gazebo/lbr_gazebo.xacro b/lbr_description/gazebo/lbr_gazebo.xacro index 49495d90..a828c0d5 100644 --- a/lbr_description/gazebo/lbr_gazebo.xacro +++ b/lbr_description/gazebo/lbr_gazebo.xacro @@ -4,12 +4,11 @@ - + $(find lbr_ros2_control)/config/lbr_controllers.yaml /${robot_name} - - ~/robot_description:=robot_description diff --git a/lbr_description/lbr_description.dsv b/lbr_description/lbr_description.dsv index cd4ca905..84de9292 100644 --- a/lbr_description/lbr_description.dsv +++ b/lbr_description/lbr_description.dsv @@ -1 +1 @@ -prepend-non-duplicate;GAZEBO_MODEL_PATH;share \ No newline at end of file +prepend-non-duplicate;GZ_SIM_RESOURCE_PATH;share \ No newline at end of file diff --git a/lbr_description/package.xml b/lbr_description/package.xml index 93829da1..a00fd055 100644 --- a/lbr_description/package.xml +++ b/lbr_description/package.xml @@ -2,7 +2,7 @@ lbr_description - 2.1.0 + 2.1.1 KUKA LBR description files mhubii Apache License 2.0 @@ -10,11 +10,11 @@ ament_cmake ament_cmake_pytest - gazebo_ros2_control + ign_ros2_control joint_state_publisher_gui - tf2_ros robot_state_publisher rviz2 + tf2_ros xacro python3-pytest diff --git a/lbr_fri_ros2/package.xml b/lbr_fri_ros2/package.xml index d5d2cc6c..58e5b7ce 100644 --- a/lbr_fri_ros2/package.xml +++ b/lbr_fri_ros2/package.xml @@ -2,7 +2,7 @@ lbr_fri_ros2 - 2.1.0 + 2.1.1 The lbr_fri_ros2 package provides the Fast Robot Interface (FRI) integration into ROS 2. Robot states can be extracted and commanded. mhubii diff --git a/lbr_fri_ros2_stack/package.xml b/lbr_fri_ros2_stack/package.xml index 8025516c..0f611574 100644 --- a/lbr_fri_ros2_stack/package.xml +++ b/lbr_fri_ros2_stack/package.xml @@ -2,7 +2,7 @@ lbr_fri_ros2_stack - 2.1.0 + 2.1.1 ROS 2 stack for KUKA LBRs. mhubii Apache License 2.0 diff --git a/lbr_ros2_control/config/lbr_system_interface.xacro b/lbr_ros2_control/config/lbr_system_interface.xacro index ab2e8664..23738b9a 100644 --- a/lbr_ros2_control/config/lbr_system_interface.xacro +++ b/lbr_ros2_control/config/lbr_system_interface.xacro @@ -15,7 +15,7 @@ - gazebo_ros2_control/GazeboSystem + ign_ros2_control/IgnitionSystem @@ -98,10 +98,14 @@ ${min_position} ${max_position} - - -${max_torque} - ${max_torque} - + + + + -${max_torque} + ${max_torque} + + diff --git a/lbr_ros2_control/package.xml b/lbr_ros2_control/package.xml index 08e32b2f..b1326dc5 100644 --- a/lbr_ros2_control/package.xml +++ b/lbr_ros2_control/package.xml @@ -2,7 +2,7 @@ lbr_ros2_control - 2.1.0 + 2.1.1 ROS 2 hardware hardware_interface for KUKA LBR through Fast Robot Interface (FRI). mhubii Apache License 2.0