From daf0aff3983d649018ed80ae80af30264d0b24de Mon Sep 17 00:00:00 2001 From: chan-1207 Date: Wed, 28 May 2025 12:24:58 +0900 Subject: [PATCH 1/7] Removed the TurtleBot3 manipulation Gazebo simulation --- turtlebot3_manipulation/CHANGELOG.rst | 5 + turtlebot3_manipulation/package.xml | 2 +- turtlebot3_manipulation_bringup/CHANGELOG.rst | 5 + .../launch/fake.launch.py | 79 --- .../launch/gazebo.launch.py | 158 ----- turtlebot3_manipulation_bringup/package.xml | 5 +- .../worlds/empty_world.model | 46 -- .../worlds/turtlebot3_world.model | 53 -- .../turtlebot3_world/meshes/hexagon.dae | 76 --- .../worlds/turtlebot3_world/meshes/wall.dae | 76 --- .../worlds/turtlebot3_world/model-1_4.sdf | 549 ------------------ .../worlds/turtlebot3_world/model.config | 17 - .../worlds/turtlebot3_world/model.sdf | 549 ------------------ .../CHANGELOG.rst | 4 + .../package.xml | 2 +- .../CHANGELOG.rst | 5 + .../gazebo/materials.xacro | 48 -- .../gazebo/open_manipulator_x.gazebo.xacro | 58 -- .../gazebo/turtlebot3_waffle_pi.gazebo.xacro | 165 ------ .../package.xml | 2 +- .../CHANGELOG.rst | 4 + turtlebot3_manipulation_hardware/package.xml | 2 +- .../CHANGELOG.rst | 4 + .../package.xml | 2 +- .../CHANGELOG.rst | 4 + .../package.xml | 2 +- turtlebot3_manipulation_teleop/CHANGELOG.rst | 4 + turtlebot3_manipulation_teleop/package.xml | 2 +- 28 files changed, 44 insertions(+), 1884 deletions(-) delete mode 100644 turtlebot3_manipulation_bringup/launch/fake.launch.py delete mode 100644 turtlebot3_manipulation_bringup/launch/gazebo.launch.py delete mode 100644 turtlebot3_manipulation_bringup/worlds/empty_world.model delete mode 100644 turtlebot3_manipulation_bringup/worlds/turtlebot3_world.model delete mode 100644 turtlebot3_manipulation_bringup/worlds/turtlebot3_world/meshes/hexagon.dae delete mode 100644 turtlebot3_manipulation_bringup/worlds/turtlebot3_world/meshes/wall.dae delete mode 100644 turtlebot3_manipulation_bringup/worlds/turtlebot3_world/model-1_4.sdf delete mode 100644 turtlebot3_manipulation_bringup/worlds/turtlebot3_world/model.config delete mode 100644 turtlebot3_manipulation_bringup/worlds/turtlebot3_world/model.sdf delete mode 100644 turtlebot3_manipulation_description/gazebo/materials.xacro delete mode 100644 turtlebot3_manipulation_description/gazebo/open_manipulator_x.gazebo.xacro delete mode 100644 turtlebot3_manipulation_description/gazebo/turtlebot3_waffle_pi.gazebo.xacro diff --git a/turtlebot3_manipulation/CHANGELOG.rst b/turtlebot3_manipulation/CHANGELOG.rst index c9ad652..3bf22c9 100644 --- a/turtlebot3_manipulation/CHANGELOG.rst +++ b/turtlebot3_manipulation/CHANGELOG.rst @@ -2,6 +2,11 @@ Changelog for package turtlebot3_manipulation ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +2.2.1 (2025-05-28) +------------------ +* Removed the TurtleBot3 Manipulation Gazebo simulation +* Contributors: ChanHyeong Lee + 2.2.0 (2025-04-01) ------------------ * Added gripper control in teleoperation. diff --git a/turtlebot3_manipulation/package.xml b/turtlebot3_manipulation/package.xml index a074bf6..589e1ee 100644 --- a/turtlebot3_manipulation/package.xml +++ b/turtlebot3_manipulation/package.xml @@ -2,7 +2,7 @@ turtlebot3_manipulation - 2.2.0 + 2.2.1 ROS 2 package for turtlebot3_manipulation diff --git a/turtlebot3_manipulation_bringup/CHANGELOG.rst b/turtlebot3_manipulation_bringup/CHANGELOG.rst index 28851ce..77ea080 100644 --- a/turtlebot3_manipulation_bringup/CHANGELOG.rst +++ b/turtlebot3_manipulation_bringup/CHANGELOG.rst @@ -2,6 +2,11 @@ Changelog for package turtlebot3_manipulation_bringup ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +2.2.1 (2025-05-28) +------------------ +* Removed the TurtleBot3 Manipulation Gazebo simulation +* Contributors: ChanHyeong Lee + 2.2.0 (2025-04-01) ------------------ * Updated maintainer information diff --git a/turtlebot3_manipulation_bringup/launch/fake.launch.py b/turtlebot3_manipulation_bringup/launch/fake.launch.py deleted file mode 100644 index 6e9f9e9..0000000 --- a/turtlebot3_manipulation_bringup/launch/fake.launch.py +++ /dev/null @@ -1,79 +0,0 @@ -#!/usr/bin/env python3 -# -# Copyright 2022 ROBOTIS CO., LTD. -# -# 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: Darby Lim - -import os - -from launch import LaunchDescription -from launch.actions import DeclareLaunchArgument -from launch.actions import IncludeLaunchDescription -from launch.launch_description_sources import PythonLaunchDescriptionSource -from launch.substitutions import LaunchConfiguration -from launch.substitutions import ThisLaunchFileDir - - -def is_valid_to_launch(): - # Path includes model name of Raspberry Pi series - path = '/sys/firmware/devicetree/base/model' - if os.path.exists(path): - return False - else: - return True - - -def generate_launch_description(): - if not is_valid_to_launch(): - print('Can not launch fake robot in Raspberry Pi') - return LaunchDescription([]) - - start_rviz = LaunchConfiguration('start_rviz') - prefix = LaunchConfiguration('prefix') - use_fake_hardware = LaunchConfiguration('use_fake_hardware') - fake_sensor_commands = LaunchConfiguration('fake_sensor_commands') - - return LaunchDescription([ - DeclareLaunchArgument( - 'start_rviz', - default_value='true', - description='Whether execute rviz2'), - - DeclareLaunchArgument( - 'prefix', - default_value='""', - description='Prefix of the joint and link names'), - - DeclareLaunchArgument( - 'use_fake_hardware', - default_value='true', - description='Start robot with fake hardware mirroring command to its states.'), - - DeclareLaunchArgument( - 'fake_sensor_commands', - default_value='true', - description='Enable fake command interfaces for sensors used for simple simulations. \ - Used only if "use_fake_hardware" parameter is true.'), - - IncludeLaunchDescription( - PythonLaunchDescriptionSource([ThisLaunchFileDir(), '/base.launch.py']), - launch_arguments={ - 'start_rviz': start_rviz, - 'prefix': prefix, - 'use_fake_hardware': use_fake_hardware, - 'fake_sensor_commands': fake_sensor_commands, - }.items(), - ) - ]) diff --git a/turtlebot3_manipulation_bringup/launch/gazebo.launch.py b/turtlebot3_manipulation_bringup/launch/gazebo.launch.py deleted file mode 100644 index 35ff154..0000000 --- a/turtlebot3_manipulation_bringup/launch/gazebo.launch.py +++ /dev/null @@ -1,158 +0,0 @@ -#!/usr/bin/env python3 -# -# Copyright 2022 ROBOTIS CO., LTD. -# -# 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: Darby Lim - -import os - -from launch import LaunchDescription -from launch.actions import DeclareLaunchArgument -from launch.actions import IncludeLaunchDescription -from launch.launch_description_sources import PythonLaunchDescriptionSource -from launch.substitutions import LaunchConfiguration -from launch.substitutions import PathJoinSubstitution -from launch.substitutions import ThisLaunchFileDir - -from launch_ros.actions import Node -from launch_ros.substitutions import FindPackageShare - - -def is_valid_to_launch(): - # Path includes model name of Raspberry Pi series - path = '/sys/firmware/devicetree/base/model' - if os.path.exists(path): - return False - else: - return True - - -def generate_launch_description(): - if not is_valid_to_launch(): - print('Can not launch fake robot in Raspberry Pi') - return LaunchDescription([]) - - start_rviz = LaunchConfiguration('start_rviz') - prefix = LaunchConfiguration('prefix') - use_sim = LaunchConfiguration('use_sim') - - world = LaunchConfiguration( - 'world', - default=PathJoinSubstitution( - [ - FindPackageShare('turtlebot3_manipulation_bringup'), - 'worlds', - 'turtlebot3_world.model' - ] - ) - ) - - pose = {'x': LaunchConfiguration('x_pose', default='-2.00'), - 'y': LaunchConfiguration('y_pose', default='-0.50'), - 'z': LaunchConfiguration('z_pose', default='0.01'), - 'R': LaunchConfiguration('roll', default='0.00'), - 'P': LaunchConfiguration('pitch', default='0.00'), - 'Y': LaunchConfiguration('yaw', default='0.00')} - - return LaunchDescription([ - DeclareLaunchArgument( - 'start_rviz', - default_value='false', - description='Whether execute rviz2'), - - DeclareLaunchArgument( - 'prefix', - default_value='""', - description='Prefix of the joint and link names'), - - DeclareLaunchArgument( - 'use_sim', - default_value='true', - description='Start robot in Gazebo simulation.'), - - DeclareLaunchArgument( - 'world', - default_value=world, - description='Directory of gazebo world file'), - - DeclareLaunchArgument( - 'x_pose', - default_value=pose['x'], - description='position of turtlebot3'), - - DeclareLaunchArgument( - 'y_pose', - default_value=pose['y'], - description='position of turtlebot3'), - - DeclareLaunchArgument( - 'z_pose', - default_value=pose['z'], - description='position of turtlebot3'), - - DeclareLaunchArgument( - 'roll', - default_value=pose['R'], - description='orientation of turtlebot3'), - - DeclareLaunchArgument( - 'pitch', - default_value=pose['P'], - description='orientation of turtlebot3'), - - DeclareLaunchArgument( - 'yaw', - default_value=pose['Y'], - description='orientation of turtlebot3'), - - IncludeLaunchDescription( - PythonLaunchDescriptionSource([ThisLaunchFileDir(), '/base.launch.py']), - launch_arguments={ - 'start_rviz': start_rviz, - 'prefix': prefix, - 'use_sim': use_sim, - }.items(), - ), - - IncludeLaunchDescription( - PythonLaunchDescriptionSource( - [ - PathJoinSubstitution( - [ - FindPackageShare('gazebo_ros'), - 'launch', - 'gazebo.launch.py' - ] - ) - ] - ), - launch_arguments={ - 'verbose': 'false', - 'world': world, - }.items(), - ), - - Node( - package='gazebo_ros', - executable='spawn_entity.py', - arguments=[ - '-topic', 'robot_description', - '-entity', 'turtlebot3_manipulation_system', - '-x', pose['x'], '-y', pose['y'], '-z', pose['z'], - '-R', pose['R'], '-P', pose['P'], '-Y', pose['Y'], - ], - output='screen', - ), - ]) diff --git a/turtlebot3_manipulation_bringup/package.xml b/turtlebot3_manipulation_bringup/package.xml index bc7a968..d596282 100644 --- a/turtlebot3_manipulation_bringup/package.xml +++ b/turtlebot3_manipulation_bringup/package.xml @@ -2,7 +2,7 @@ turtlebot3_manipulation_bringup - 2.2.0 + 2.2.1 ROS 2 package for turtlebot3_manipulation @@ -14,11 +14,10 @@ Darby Lim Hye-jong KIM ament_cmake - gazebo_ros + gripper_controllers robot_state_publisher ros2_control ros2_controllers - gripper_controllers rviz2 turtlebot3_manipulation_description xacro diff --git a/turtlebot3_manipulation_bringup/worlds/empty_world.model b/turtlebot3_manipulation_bringup/worlds/empty_world.model deleted file mode 100644 index 64e9476..0000000 --- a/turtlebot3_manipulation_bringup/worlds/empty_world.model +++ /dev/null @@ -1,46 +0,0 @@ - - - - - - model://ground_plane - - - - model://sun - - - - false - - - - - 1.226730 -1.270682 1.172346 0 0.545800 2.301601 - orbit - perspective - - - - - 1000.0 - 0.001 - 1 - - - quick - 150 - 0 - 1.400000 - 1 - - - 0.00001 - 0.2 - 2000.000000 - 0.01000 - - - - - diff --git a/turtlebot3_manipulation_bringup/worlds/turtlebot3_world.model b/turtlebot3_manipulation_bringup/worlds/turtlebot3_world.model deleted file mode 100644 index 11bfcc2..0000000 --- a/turtlebot3_manipulation_bringup/worlds/turtlebot3_world.model +++ /dev/null @@ -1,53 +0,0 @@ - - - - - - model://ground_plane - - - - model://sun - - - - false - - - - - 0.319654 -0.235002 9.29441 0 1.5138 0.009599 - orbit - perspective - - - - - 1000.0 - 0.001 - 1 - - - quick - 150 - 0 - 1.400000 - 1 - - - 0.00001 - 0.2 - 2000.000000 - 0.01000 - - - - - - 1 - - model://turtlebot3_world - - - - diff --git a/turtlebot3_manipulation_bringup/worlds/turtlebot3_world/meshes/hexagon.dae b/turtlebot3_manipulation_bringup/worlds/turtlebot3_world/meshes/hexagon.dae deleted file mode 100644 index c548e5f..0000000 --- a/turtlebot3_manipulation_bringup/worlds/turtlebot3_world/meshes/hexagon.dae +++ /dev/null @@ -1,76 +0,0 @@ - - - 2017-03-30T01:06:40 - 2017-03-30T01:06:40 - - Y_UP - - - - - - - - - - - - - - - - - - - -28.8675 50 100 -57.735 9.66338e-13 0 -57.735 1.13687e-12 100 -28.8675 50 0 -57.735 1.13687e-12 100 -28.8675 -50 0 -28.8675 -50 100 -57.735 9.66338e-13 0 -28.8675 -50 100 28.8675 -50 0 28.8675 -50 100 -28.8675 -50 0 28.8675 -50 100 57.735 1.7053e-12 0 57.735 1.36424e-12 100 28.8675 -50 0 57.735 1.36424e-12 100 28.8675 50 2.498e-13 28.8675 50 100 57.735 1.7053e-12 0 28.8675 50 100 -28.8675 50 0 -28.8675 50 100 28.8675 50 2.498e-13 -57.735 1.13687e-12 100 57.735 1.36424e-12 100 -28.8675 50 100 -28.8675 -50 100 28.8675 -50 100 28.8675 50 100 -57.735 9.66338e-13 0 28.8675 -50 0 -28.8675 -50 0 57.735 1.7053e-12 0 -28.8675 50 0 28.8675 50 2.498e-13 - - - - - - - - - - -0.866025 0.5 0 -0.866025 0.5 0 -0.866025 0.5 0 -0.866025 0.5 0 -0.866025 -0.5 0 -0.866025 -0.5 0 -0.866025 -0.5 0 -0.866025 -0.5 0 5.51091e-16 -1 0 5.51091e-16 -1 0 5.51091e-16 -1 0 5.51091e-16 -1 0 0.866025 -0.5 0 0.866025 -0.5 0 0.866025 -0.5 0 0.866025 -0.5 0 0.866025 0.5 0 0.866025 0.5 0 0.866025 0.5 0 0.866025 0.5 0 -4.28626e-16 1 0 -4.28626e-16 1 0 -4.28626e-16 1 0 -4.28626e-16 1 0 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 -0 -0 -1 -0 -0 -1 -0 -0 -1 -0 -0 -1 -0 -0 -1 -0 -0 -1 - - - - - - - - - - - - - - -

0 1 2 1 0 3 4 5 6 5 4 7 8 9 10 9 8 11 12 13 14 13 12 15 16 17 18 17 16 19 20 21 22 21 20 23 24 25 26 24 27 28 28 25 24 26 25 29 30 31 32 31 30 33 33 34 35 33 30 34

-
-
-
-
- - - - - - - - - - - - 0.392157 0.976471 0.121569 1 - - - - - - - - - -
diff --git a/turtlebot3_manipulation_bringup/worlds/turtlebot3_world/meshes/wall.dae b/turtlebot3_manipulation_bringup/worlds/turtlebot3_world/meshes/wall.dae deleted file mode 100644 index aa738ce..0000000 --- a/turtlebot3_manipulation_bringup/worlds/turtlebot3_world/meshes/wall.dae +++ /dev/null @@ -1,76 +0,0 @@ - - - 2017-03-30T02:35:53 - 2017-03-30T02:35:53 - - Y_UP - - - - - - - - - - - - - - - - - - - -400 230.94 0 -400 230.94 200 4.54747e-13 461.88 200 6.25278e-13 461.88 0 6.25278e-13 461.88 0 4.54747e-13 461.88 200 400 230.94 200 400 230.94 0 400 230.94 0 400 230.94 200 400 -230.94 200 400 -230.94 0 400 -230.94 0 400 -230.94 200 -1.7053e-13 -461.88 200 2.27374e-13 -461.88 0 2.27374e-13 -461.88 0 -1.7053e-13 -461.88 200 -400 -230.94 200 -400 -230.94 0 450 259.808 200 -3.69482e-13 519.615 200 -2.27374e-13 519.615 0 450 259.808 0 -3.69482e-13 519.615 200 -450 259.808 200 -450 259.808 0 -2.27374e-13 519.615 0 -450 259.808 200 -450 -259.808 200 -450 -259.808 0 -450 259.808 0 -450 -259.808 200 -1.13687e-13 -519.615 200 -2.27374e-13 -519.615 0 -450 -259.808 0 -1.13687e-13 -519.615 200 450 -259.808 200 450 -259.808 0 -2.27374e-13 -519.615 0 450 -259.808 0 450 259.808 200 450 259.808 0 450 -259.808 200 -400 -230.94 0 -400 -230.94 200 -400 230.94 200 -400 230.94 0 -1.7053e-13 -461.88 200 -1.13687e-13 -519.615 200 -400 -230.94 200 -450 -259.808 200 -450 259.808 200 450 -259.808 200 400 -230.94 200 400 230.94 200 4.54747e-13 461.88 200 -3.69482e-13 519.615 200 -400 230.94 200 450 259.808 200 -2.27374e-13 -519.615 0 400 -230.94 0 2.27374e-13 -461.88 0 400 230.94 0 -2.27374e-13 519.615 0 6.25278e-13 461.88 0 450 -259.808 0 450 259.808 0 -400 230.94 0 -450 259.808 0 -400 -230.94 0 -450 -259.808 0 - - - - - - - - - - 0.5 -0.866025 0 0.5 -0.866025 0 0.5 -0.866025 0 0.5 -0.866025 0 -0.5 -0.866025 -0 -0.5 -0.866025 -0 -0.5 -0.866025 -0 -0.5 -0.866025 -0 -1 -6.12323e-17 -0 -1 -6.12323e-17 -0 -1 -6.12323e-17 -0 -1 -6.12323e-17 -0 -0.5 0.866025 0 -0.5 0.866025 0 -0.5 0.866025 0 -0.5 0.866025 0 0.5 0.866025 0 0.5 0.866025 0 0.5 0.866025 0 0.5 0.866025 0 0.5 0.866025 0 0.5 0.866025 0 0.5 0.866025 0 0.5 0.866025 0 -0.5 0.866025 0 -0.5 0.866025 0 -0.5 0.866025 0 -0.5 0.866025 0 -1 -5.21642e-16 0 -1 -5.21642e-16 0 -1 -5.21642e-16 0 -1 -5.21642e-16 0 -0.5 -0.866025 0 -0.5 -0.866025 0 -0.5 -0.866025 0 -0.5 -0.866025 0 0.5 -0.866025 0 0.5 -0.866025 0 0.5 -0.866025 0 0.5 -0.866025 0 1 0 0 1 0 0 1 0 0 1 0 0 1 1.83697e-16 0 1 1.83697e-16 0 1 1.83697e-16 0 1 1.83697e-16 0 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 -0 -0 -1 -0 -0 -1 -0 -0 -1 -0 -0 -1 -0 -0 -1 -0 -0 -1 -0 -0 -1 -0 -0 -1 -0 -0 -1 -0 -0 -1 -0 -0 -1 -0 -0 -1 - - - - - - - - - - - - - - -

0 2 1 0 3 2 4 6 5 4 7 6 8 10 9 8 11 10 12 14 13 12 15 14 16 18 17 16 19 18 20 22 21 22 20 23 24 26 25 26 24 27 28 30 29 30 28 31 32 34 33 34 32 35 36 38 37 38 36 39 40 42 41 40 41 43 44 46 45 44 47 46 48 50 49 50 52 51 53 54 49 55 57 56 48 49 54 57 52 58 58 56 57 53 59 55 57 55 59 53 55 54 49 50 51 52 50 58 60 62 61 63 65 64 63 67 66 68 69 64 66 61 63 64 67 63 60 61 66 60 70 62 69 70 71 60 71 70 64 65 68 69 68 70

-
-
-
-
- - - - - - - - - - - - 0.603922 0.647059 0.686275 1 - - - - - - - - - -
diff --git a/turtlebot3_manipulation_bringup/worlds/turtlebot3_world/model-1_4.sdf b/turtlebot3_manipulation_bringup/worlds/turtlebot3_world/model-1_4.sdf deleted file mode 100644 index 330bd32..0000000 --- a/turtlebot3_manipulation_bringup/worlds/turtlebot3_world/model-1_4.sdf +++ /dev/null @@ -1,549 +0,0 @@ - - - - 1 - - - -1.1 -1.1 0.25 0 0 0 - - - 0.15 - 0.5 - - - 10 - - - - - - - - - - - - - -1.1 -1.1 0.25 0 0 0 - - - 0.15 - 0.5 - - - - - - - - - -1.1 0 0.25 0 0 0 - - - 0.15 - 0.5 - - - 10 - - - - - - - - - - - - - -1.1 0 0.25 0 0 0 - - - 0.15 - 0.5 - - - - - - - - - -1.1 1.1 0.25 0 0 0 - - - 0.15 - 0.5 - - - 10 - - - - - - - - - - - - - -1.1 1.1 0.25 0 0 0 - - - 0.15 - 0.5 - - - - - - - - - 0 -1.1 0.25 0 0 0 - - - 0.15 - 0.5 - - - 10 - - - - - - - - - - - - - 0 -1.1 0.25 0 0 0 - - - 0.15 - 0.5 - - - - - - - - - 0 0 0.25 0 0 0 - - - 0.15 - 0.5 - - - 10 - - - - - - - - - - - - - 0 0 0.25 0 0 0 - - - 0.15 - 0.5 - - - - - - - - - 0 1.1 0.25 0 0 0 - - - 0.15 - 0.5 - - - 10 - - - - - - - - - - - - - 0 1.1 0.25 0 0 0 - - - 0.15 - 0.5 - - - - - - - - - 1.1 -1.1 0.25 0 0 0 - - - 0.15 - 0.5 - - - 10 - - - - - - - - - - - - - 1.1 -1.1 0.25 0 0 0 - - - 0.15 - 0.5 - - - - - - - - - 1.1 0 0.25 0 0 0 - - - 0.15 - 0.5 - - - 10 - - - - - - - - - - - - - 1.1 0 0.25 0 0 0 - - - 0.15 - 0.5 - - - - - - - - - 1.1 1.1 0.25 0 0 0 - - - 0.15 - 0.5 - - - 10 - - - - - - - - - - - - - 1.1 1.1 0.25 0 0 0 - - - 0.15 - 0.5 - - - - - - - - - - 3.5 0 -0.5 0 0 0 - - - model://turtlebot3_world/meshes/hexagon.dae - 0.8 0.8 0.8 - - - 10 - - - - - - - - - - - - - 3.5 0 -0.5 0 0 0 - - - model://turtlebot3_world/meshes/hexagon.dae - 0.8 0.8 0.8 - - - - - - - - - 1.8 2.7 0 0 0 0 - - - model://turtlebot3_world/meshes/hexagon.dae - 0.55 0.55 0.55 - - - 10 - - - - - - - - - - - - - 1.8 2.7 0 0 0 0 - - - model://turtlebot3_world/meshes/hexagon.dae - 0.55 0.55 0.55 - - - - - - - - - 1.8 -2.7 0 0 0 0 - - - model://turtlebot3_world/meshes/hexagon.dae - 0.55 0.55 0.55 - - - 10 - - - - - - - - - - - - - 1.8 -2.7 0 0 0 0 - - - model://turtlebot3_world/meshes/hexagon.dae - 0.55 0.55 0.55 - - - - - - - - - -1.8 2.7 0 0 0 0 - - - model://turtlebot3_world/meshes/hexagon.dae - 0.55 0.55 0.55 - - - 10 - - - - - - - - - - - - - -1.8 2.7 0 0 0 0 - - - model://turtlebot3_world/meshes/hexagon.dae - 0.55 0.55 0.55 - - - - - - - - - -1.8 -2.7 0 0 0 0 - - - model://turtlebot3_world/meshes/hexagon.dae - 0.55 0.55 0.55 - - - 10 - - - - - - - - - - - - - -1.8 -2.7 0 0 0 0 - - - model://turtlebot3_world/meshes/hexagon.dae - 0.55 0.55 0.55 - - - - - - - - - - 0 0 -0.3 0 0 -1.5708 - - - model://turtlebot3_world/meshes/wall.dae - 0.25 0.25 0.25 - - - 10 - - - - - - - - - - - - - 0 0 -0.3 0 0 -1.5708 - - - model://turtlebot3_world/meshes/wall.dae - 0.25 0.25 0.25 - - - - - - - - - diff --git a/turtlebot3_manipulation_bringup/worlds/turtlebot3_world/model.config b/turtlebot3_manipulation_bringup/worlds/turtlebot3_world/model.config deleted file mode 100644 index bc6a666..0000000 --- a/turtlebot3_manipulation_bringup/worlds/turtlebot3_world/model.config +++ /dev/null @@ -1,17 +0,0 @@ - - - - TurtleBot3 World - 1.0 - model-1_4.sdf - model.sdf - - - Taehun Lim(Darby) - thlim@robotis.com - - - - World of TurtleBot3 with ROS symbol - - diff --git a/turtlebot3_manipulation_bringup/worlds/turtlebot3_world/model.sdf b/turtlebot3_manipulation_bringup/worlds/turtlebot3_world/model.sdf deleted file mode 100644 index d733d00..0000000 --- a/turtlebot3_manipulation_bringup/worlds/turtlebot3_world/model.sdf +++ /dev/null @@ -1,549 +0,0 @@ - - - - 1 - - - -1.1 -1.1 0.25 0 0 0 - - - 0.15 - 0.5 - - - 10 - - - - - - - - - - - - - -1.1 -1.1 0.25 0 0 0 - - - 0.15 - 0.5 - - - - - - - - - -1.1 0 0.25 0 0 0 - - - 0.15 - 0.5 - - - 10 - - - - - - - - - - - - - -1.1 0 0.25 0 0 0 - - - 0.15 - 0.5 - - - - - - - - - -1.1 1.1 0.25 0 0 0 - - - 0.15 - 0.5 - - - 10 - - - - - - - - - - - - - -1.1 1.1 0.25 0 0 0 - - - 0.15 - 0.5 - - - - - - - - - 0 -1.1 0.25 0 0 0 - - - 0.15 - 0.5 - - - 10 - - - - - - - - - - - - - 0 -1.1 0.25 0 0 0 - - - 0.15 - 0.5 - - - - - - - - - 0 0 0.25 0 0 0 - - - 0.15 - 0.5 - - - 10 - - - - - - - - - - - - - 0 0 0.25 0 0 0 - - - 0.15 - 0.5 - - - - - - - - - 0 1.1 0.25 0 0 0 - - - 0.15 - 0.5 - - - 10 - - - - - - - - - - - - - 0 1.1 0.25 0 0 0 - - - 0.15 - 0.5 - - - - - - - - - 1.1 -1.1 0.25 0 0 0 - - - 0.15 - 0.5 - - - 10 - - - - - - - - - - - - - 1.1 -1.1 0.25 0 0 0 - - - 0.15 - 0.5 - - - - - - - - - 1.1 0 0.25 0 0 0 - - - 0.15 - 0.5 - - - 10 - - - - - - - - - - - - - 1.1 0 0.25 0 0 0 - - - 0.15 - 0.5 - - - - - - - - - 1.1 1.1 0.25 0 0 0 - - - 0.15 - 0.5 - - - 10 - - - - - - - - - - - - - 1.1 1.1 0.25 0 0 0 - - - 0.15 - 0.5 - - - - - - - - - - 3.5 0 -0.5 0 0 0 - - - model://turtlebot3_world/meshes/hexagon.dae - 0.8 0.8 0.8 - - - 10 - - - - - - - - - - - - - 3.5 0 -0.5 0 0 0 - - - model://turtlebot3_world/meshes/hexagon.dae - 0.8 0.8 0.8 - - - - - - - - - 1.8 2.7 0 0 0 0 - - - model://turtlebot3_world/meshes/hexagon.dae - 0.55 0.55 0.55 - - - 10 - - - - - - - - - - - - - 1.8 2.7 0 0 0 0 - - - model://turtlebot3_world/meshes/hexagon.dae - 0.55 0.55 0.55 - - - - - - - - - 1.8 -2.7 0 0 0 0 - - - model://turtlebot3_world/meshes/hexagon.dae - 0.55 0.55 0.55 - - - 10 - - - - - - - - - - - - - 1.8 -2.7 0 0 0 0 - - - model://turtlebot3_world/meshes/hexagon.dae - 0.55 0.55 0.55 - - - - - - - - - -1.8 2.7 0 0 0 0 - - - model://turtlebot3_world/meshes/hexagon.dae - 0.55 0.55 0.55 - - - 10 - - - - - - - - - - - - - -1.8 2.7 0 0 0 0 - - - model://turtlebot3_world/meshes/hexagon.dae - 0.55 0.55 0.55 - - - - - - - - - -1.8 -2.7 0 0 0 0 - - - model://turtlebot3_world/meshes/hexagon.dae - 0.55 0.55 0.55 - - - 10 - - - - - - - - - - - - - -1.8 -2.7 0 0 0 0 - - - model://turtlebot3_world/meshes/hexagon.dae - 0.55 0.55 0.55 - - - - - - - - - - 0 0 -0.3 0 0 -1.5708 - - - model://turtlebot3_world/meshes/wall.dae - 0.25 0.25 0.25 - - - 10 - - - - - - - - - - - - - 0 0 -0.3 0 0 -1.5708 - - - model://turtlebot3_world/meshes/wall.dae - 0.25 0.25 0.25 - - - - - - - - - diff --git a/turtlebot3_manipulation_cartographer/CHANGELOG.rst b/turtlebot3_manipulation_cartographer/CHANGELOG.rst index 0568785..cdab038 100644 --- a/turtlebot3_manipulation_cartographer/CHANGELOG.rst +++ b/turtlebot3_manipulation_cartographer/CHANGELOG.rst @@ -2,6 +2,10 @@ Changelog for package turtlebot3_manipulation_cartographer ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +2.2.1 (2025-05-28) +------------------ +* None + 2.2.0 (2025-04-01) ------------------ * Updated maintainer information diff --git a/turtlebot3_manipulation_cartographer/package.xml b/turtlebot3_manipulation_cartographer/package.xml index d07627f..f9eb3a0 100644 --- a/turtlebot3_manipulation_cartographer/package.xml +++ b/turtlebot3_manipulation_cartographer/package.xml @@ -2,7 +2,7 @@ turtlebot3_manipulation_cartographer - 2.2.0 + 2.2.1 ROS 2 launch scripts for cartographer diff --git a/turtlebot3_manipulation_description/CHANGELOG.rst b/turtlebot3_manipulation_description/CHANGELOG.rst index fe1f580..0e1a971 100644 --- a/turtlebot3_manipulation_description/CHANGELOG.rst +++ b/turtlebot3_manipulation_description/CHANGELOG.rst @@ -2,6 +2,11 @@ Changelog for package turtlebot3_manipulation_description ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +2.2.1 (2025-05-28) +------------------ +* Removed the TurtleBot3 Manipulation Gazebo simulation +* Contributors: ChanHyeong Lee + 2.2.0 (2025-04-01) ------------------ * Fixed the intermittent issue of Gazebo not launching diff --git a/turtlebot3_manipulation_description/gazebo/materials.xacro b/turtlebot3_manipulation_description/gazebo/materials.xacro deleted file mode 100644 index 5ce0e02..0000000 --- a/turtlebot3_manipulation_description/gazebo/materials.xacro +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/turtlebot3_manipulation_description/gazebo/open_manipulator_x.gazebo.xacro b/turtlebot3_manipulation_description/gazebo/open_manipulator_x.gazebo.xacro deleted file mode 100644 index 9dac610..0000000 --- a/turtlebot3_manipulation_description/gazebo/open_manipulator_x.gazebo.xacro +++ /dev/null @@ -1,58 +0,0 @@ - - - - - - - - - transmission_interface/SimpleTransmission - - PositionJointInterface - - - 1 - PositionJointInterface - - - - - - - 1000000.0 - 100.0 - 30.0 - 30.0 - 1.0 - 0.001 - Gazebo/DarkGrey - - - - - - - - - - - - - - Gazebo/Red - - - - - - - - - - - - - diff --git a/turtlebot3_manipulation_description/gazebo/turtlebot3_waffle_pi.gazebo.xacro b/turtlebot3_manipulation_description/gazebo/turtlebot3_waffle_pi.gazebo.xacro deleted file mode 100644 index 82e7273..0000000 --- a/turtlebot3_manipulation_description/gazebo/turtlebot3_waffle_pi.gazebo.xacro +++ /dev/null @@ -1,165 +0,0 @@ - - - - - - - - - - - - Gazebo/DarkGrey - - - - 10000 - 10000 - 500000.0 - 10.0 - 0.001 - 0.1 - 1 0 0 - Gazebo/FlatBlack - - - - 10000 - 10000 - 500000.0 - 10.0 - 0.001 - 0.1 - 1 0 0 - Gazebo/FlatBlack - - - - 0.1 - 0.1 - 1000000.0 - 100.0 - 0.001 - 1.0 - Gazebo/FlatBlack - - - - 0.1 - 0.1 - 1000000.0 - 100.0 - 0.001 - 1.0 - Gazebo/FlatBlack - - - - Gazebo/Grey - - true - 100.0 - ${imu_visual} - - - - - - - - cmd_vel:=cmd_vel - odom:=odom - - - wheel_left_joint - wheel_right_joint - 0.287 - 0.066 - 20 - 1.0 - true - true - false - odom - base_footprint - - - - - Gazebo/FlatBlack - - 0 0 0 0 0 0 - true - 5.0 - ${laser_visual} - - - - 360 - 1 - 0.0 - 6.28319 - - - - 0.120 - 3.5 - 0.015 - - - gaussian - 0.0 - 0.01 - - - - - - ~/out:=scan - - sensor_msgs/LaserScan - - - - - - - 30 - true - ${camera_visual} - - 1.085595 - - 640 - 480 - R8G8B8 - - - 0.03 - 100 - - - gaussian - - 0.0 - 0.007 - - - - - - image_raw:=image_raw - camera_info:=camera_info - - - - - - - - diff --git a/turtlebot3_manipulation_description/package.xml b/turtlebot3_manipulation_description/package.xml index e56b4bb..46c4673 100644 --- a/turtlebot3_manipulation_description/package.xml +++ b/turtlebot3_manipulation_description/package.xml @@ -2,7 +2,7 @@ turtlebot3_manipulation_description - 2.2.0 + 2.2.1 ROS 2 package for turtlebot3_manipulation_description diff --git a/turtlebot3_manipulation_hardware/CHANGELOG.rst b/turtlebot3_manipulation_hardware/CHANGELOG.rst index 711ccbc..496ef96 100644 --- a/turtlebot3_manipulation_hardware/CHANGELOG.rst +++ b/turtlebot3_manipulation_hardware/CHANGELOG.rst @@ -2,6 +2,10 @@ Changelog for package turtlebot3_manipulation_hardware ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +2.2.1 (2025-05-28) +------------------ +* None + 2.2.0 (2025-04-01) ------------------ * Resolved the issue where teleoperation was not functioning on the actual robot diff --git a/turtlebot3_manipulation_hardware/package.xml b/turtlebot3_manipulation_hardware/package.xml index 0aee74e..7f7993d 100644 --- a/turtlebot3_manipulation_hardware/package.xml +++ b/turtlebot3_manipulation_hardware/package.xml @@ -2,7 +2,7 @@ turtlebot3_manipulation_hardware - 2.2.0 + 2.2.1 ROS 2 package for turtlebot3_manipulation_hardware diff --git a/turtlebot3_manipulation_moveit_config/CHANGELOG.rst b/turtlebot3_manipulation_moveit_config/CHANGELOG.rst index 6661025..90cd705 100644 --- a/turtlebot3_manipulation_moveit_config/CHANGELOG.rst +++ b/turtlebot3_manipulation_moveit_config/CHANGELOG.rst @@ -2,6 +2,10 @@ Changelog for package turtlebot3_manipulation_moveit_config ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +2.2.1 (2025-05-28) +------------------ +* None + 2.2.0 (2025-04-01) ------------------ * Resolved the issue where teleoperation was not functioning on the actual robot diff --git a/turtlebot3_manipulation_moveit_config/package.xml b/turtlebot3_manipulation_moveit_config/package.xml index f647622..5e92849 100644 --- a/turtlebot3_manipulation_moveit_config/package.xml +++ b/turtlebot3_manipulation_moveit_config/package.xml @@ -2,7 +2,7 @@ turtlebot3_manipulation_moveit_config - 2.2.0 + 2.2.1 An automatically generated package with all the configuration and launch files for using the turtlebot3_manipulation with the MoveIt Motion Planning Framework diff --git a/turtlebot3_manipulation_navigation2/CHANGELOG.rst b/turtlebot3_manipulation_navigation2/CHANGELOG.rst index 255774a..52ba808 100644 --- a/turtlebot3_manipulation_navigation2/CHANGELOG.rst +++ b/turtlebot3_manipulation_navigation2/CHANGELOG.rst @@ -2,6 +2,10 @@ Changelog for package turtlebot3_manipulation_navigation2 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +2.2.1 (2025-05-28) +------------------ +* None + 2.2.0 (2025-04-01) ------------------ * Updated maintainer information diff --git a/turtlebot3_manipulation_navigation2/package.xml b/turtlebot3_manipulation_navigation2/package.xml index fee99bf..951354d 100644 --- a/turtlebot3_manipulation_navigation2/package.xml +++ b/turtlebot3_manipulation_navigation2/package.xml @@ -2,7 +2,7 @@ turtlebot3_manipulation_navigation2 - 2.2.0 + 2.2.1 ROS 2 launch scripts for navigation2 diff --git a/turtlebot3_manipulation_teleop/CHANGELOG.rst b/turtlebot3_manipulation_teleop/CHANGELOG.rst index 70cb82b..7305922 100644 --- a/turtlebot3_manipulation_teleop/CHANGELOG.rst +++ b/turtlebot3_manipulation_teleop/CHANGELOG.rst @@ -2,6 +2,10 @@ Changelog for package turtlebot3_manipulation_teleop ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +2.2.1 (2025-05-28) +------------------ +* None + 2.2.0 (2025-04-01) ------------------ * Added gripper control in teleoperation diff --git a/turtlebot3_manipulation_teleop/package.xml b/turtlebot3_manipulation_teleop/package.xml index eb7bda8..396150e 100644 --- a/turtlebot3_manipulation_teleop/package.xml +++ b/turtlebot3_manipulation_teleop/package.xml @@ -2,7 +2,7 @@ turtlebot3_manipulation_teleop - 2.2.0 + 2.2.1 Ros2 Package of the turtlebot3_manipulation_teleop Pyo Apache 2.0 From 2ee3b3a0428b218e335c43aeedb321162e95718c Mon Sep 17 00:00:00 2001 From: chan-1207 Date: Mon, 2 Jun 2025 14:51:38 +0900 Subject: [PATCH 2/7] Fix CmakLists --- turtlebot3_manipulation_bringup/CMakeLists.txt | 2 +- turtlebot3_manipulation_description/CMakeLists.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/turtlebot3_manipulation_bringup/CMakeLists.txt b/turtlebot3_manipulation_bringup/CMakeLists.txt index 4554833..aec130d 100644 --- a/turtlebot3_manipulation_bringup/CMakeLists.txt +++ b/turtlebot3_manipulation_bringup/CMakeLists.txt @@ -13,7 +13,7 @@ find_package(ament_cmake REQUIRED) # Install ################################################################################ install( - DIRECTORY launch config rviz worlds + DIRECTORY launch config rviz DESTINATION share/${PROJECT_NAME} ) diff --git a/turtlebot3_manipulation_description/CMakeLists.txt b/turtlebot3_manipulation_description/CMakeLists.txt index 903f0f4..fd8b96e 100644 --- a/turtlebot3_manipulation_description/CMakeLists.txt +++ b/turtlebot3_manipulation_description/CMakeLists.txt @@ -12,7 +12,7 @@ find_package(ament_cmake REQUIRED) ################################################################################ # Install ################################################################################ -install(DIRECTORY launch rviz urdf gazebo meshes ros2_control +install(DIRECTORY launch rviz urdf meshes ros2_control DESTINATION share/${PROJECT_NAME} ) From c7fedc3cc0bb8d78a65f90a485f98e525d0eab80 Mon Sep 17 00:00:00 2001 From: chan-1207 Date: Wed, 4 Jun 2025 11:06:59 +0900 Subject: [PATCH 3/7] Remove warehouse-ros-mongo depend --- .../config/moveit.rviz | 4 +- .../launch/warehouse_db.launch.py | 56 ------------------- .../package.xml | 1 - 3 files changed, 2 insertions(+), 59 deletions(-) delete mode 100644 turtlebot3_manipulation_moveit_config/launch/warehouse_db.launch.py diff --git a/turtlebot3_manipulation_moveit_config/config/moveit.rviz b/turtlebot3_manipulation_moveit_config/config/moveit.rviz index 898b1b1..ec21702 100644 --- a/turtlebot3_manipulation_moveit_config/config/moveit.rviz +++ b/turtlebot3_manipulation_moveit_config/config/moveit.rviz @@ -288,8 +288,8 @@ Visualization Manager: MoveIt_Planning_Time: 10 MoveIt_Use_Cartesian_Path: false MoveIt_Use_Constraint_Aware_IK: true - MoveIt_Warehouse_Host: 127.0.0.1 - MoveIt_Warehouse_Port: 33829 + # MoveIt_Warehouse_Host: 127.0.0.1 + # MoveIt_Warehouse_Port: 33829 MoveIt_Workspace: Center: X: 0 diff --git a/turtlebot3_manipulation_moveit_config/launch/warehouse_db.launch.py b/turtlebot3_manipulation_moveit_config/launch/warehouse_db.launch.py deleted file mode 100644 index 7f225a1..0000000 --- a/turtlebot3_manipulation_moveit_config/launch/warehouse_db.launch.py +++ /dev/null @@ -1,56 +0,0 @@ -#!/usr/bin/env python3 -# -# Copyright 2020 ROBOTIS CO., LTD. -# -# 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. -# -# Authors: Hye-jong KIM - -from launch import LaunchDescription -from launch.actions import DeclareLaunchArgument -from launch.substitutions import LaunchConfiguration -from launch_ros.actions import Node - - -def generate_launch_description(): - - ld = LaunchDescription() - - # The default DB port for moveit (not default MongoDB port to avoid potential conflicts) - ld.add_action(DeclareLaunchArgument("moveit_warehouse_port", default_value="33829")) - - # The default DB host for moveit - ld.add_action( - DeclareLaunchArgument("moveit_warehouse_host", default_value="localhost") - ) - - # Load warehouse parameters - db_parameters = [ - { - "overwrite": False, - "warehouse_port": LaunchConfiguration("moveit_warehouse_port"), - "warehouse_host": LaunchConfiguration("moveit_warehouse_host"), - "warehouse_exec": "mongod", - "warehouse_plugin": "warehouse_ros_mongo::MongoDatabaseConnection", - }, - ] - - # Run the DB server - db_node = Node( - package="warehouse_ros_mongo", - executable="mongo_wrapper_ros.py", - parameters=db_parameters, - ) - ld.add_action(db_node) - - return ld diff --git a/turtlebot3_manipulation_moveit_config/package.xml b/turtlebot3_manipulation_moveit_config/package.xml index 5e92849..9a3c927 100644 --- a/turtlebot3_manipulation_moveit_config/package.xml +++ b/turtlebot3_manipulation_moveit_config/package.xml @@ -30,7 +30,6 @@ rviz_default_plugins tf2_ros turtlebot3_manipulation_description - warehouse_ros_mongo srdfdom xacro From 6550b0672ee809ddab0883b8fb8cbe27fbb86ac0 Mon Sep 17 00:00:00 2001 From: chan-1207 Date: Wed, 4 Jun 2025 12:02:39 +0900 Subject: [PATCH 4/7] Add missing files --- .../CMakeLists.txt | 2 +- .../gazebo/materials.xacro | 48 +++++ .../gazebo/open_manipulator_x.gazebo.xacro | 58 ++++++ .../gazebo/turtlebot3_waffle_pi.gazebo.xacro | 165 ++++++++++++++++++ 4 files changed, 272 insertions(+), 1 deletion(-) create mode 100644 turtlebot3_manipulation_description/gazebo/materials.xacro create mode 100644 turtlebot3_manipulation_description/gazebo/open_manipulator_x.gazebo.xacro create mode 100644 turtlebot3_manipulation_description/gazebo/turtlebot3_waffle_pi.gazebo.xacro diff --git a/turtlebot3_manipulation_description/CMakeLists.txt b/turtlebot3_manipulation_description/CMakeLists.txt index fd8b96e..196202e 100644 --- a/turtlebot3_manipulation_description/CMakeLists.txt +++ b/turtlebot3_manipulation_description/CMakeLists.txt @@ -12,7 +12,7 @@ find_package(ament_cmake REQUIRED) ################################################################################ # Install ################################################################################ -install(DIRECTORY launch rviz urdf meshes ros2_control +install(DIRECTORY launch rviz urdf meshes ros2_control gazebo DESTINATION share/${PROJECT_NAME} ) diff --git a/turtlebot3_manipulation_description/gazebo/materials.xacro b/turtlebot3_manipulation_description/gazebo/materials.xacro new file mode 100644 index 0000000..5ce0e02 --- /dev/null +++ b/turtlebot3_manipulation_description/gazebo/materials.xacro @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/turtlebot3_manipulation_description/gazebo/open_manipulator_x.gazebo.xacro b/turtlebot3_manipulation_description/gazebo/open_manipulator_x.gazebo.xacro new file mode 100644 index 0000000..9dac610 --- /dev/null +++ b/turtlebot3_manipulation_description/gazebo/open_manipulator_x.gazebo.xacro @@ -0,0 +1,58 @@ + + + + + + + + + transmission_interface/SimpleTransmission + + PositionJointInterface + + + 1 + PositionJointInterface + + + + + + + 1000000.0 + 100.0 + 30.0 + 30.0 + 1.0 + 0.001 + Gazebo/DarkGrey + + + + + + + + + + + + + + Gazebo/Red + + + + + + + + + + + + + diff --git a/turtlebot3_manipulation_description/gazebo/turtlebot3_waffle_pi.gazebo.xacro b/turtlebot3_manipulation_description/gazebo/turtlebot3_waffle_pi.gazebo.xacro new file mode 100644 index 0000000..82e7273 --- /dev/null +++ b/turtlebot3_manipulation_description/gazebo/turtlebot3_waffle_pi.gazebo.xacro @@ -0,0 +1,165 @@ + + + + + + + + + + + + Gazebo/DarkGrey + + + + 10000 + 10000 + 500000.0 + 10.0 + 0.001 + 0.1 + 1 0 0 + Gazebo/FlatBlack + + + + 10000 + 10000 + 500000.0 + 10.0 + 0.001 + 0.1 + 1 0 0 + Gazebo/FlatBlack + + + + 0.1 + 0.1 + 1000000.0 + 100.0 + 0.001 + 1.0 + Gazebo/FlatBlack + + + + 0.1 + 0.1 + 1000000.0 + 100.0 + 0.001 + 1.0 + Gazebo/FlatBlack + + + + Gazebo/Grey + + true + 100.0 + ${imu_visual} + + + + + + + + cmd_vel:=cmd_vel + odom:=odom + + + wheel_left_joint + wheel_right_joint + 0.287 + 0.066 + 20 + 1.0 + true + true + false + odom + base_footprint + + + + + Gazebo/FlatBlack + + 0 0 0 0 0 0 + true + 5.0 + ${laser_visual} + + + + 360 + 1 + 0.0 + 6.28319 + + + + 0.120 + 3.5 + 0.015 + + + gaussian + 0.0 + 0.01 + + + + + + ~/out:=scan + + sensor_msgs/LaserScan + + + + + + + 30 + true + ${camera_visual} + + 1.085595 + + 640 + 480 + R8G8B8 + + + 0.03 + 100 + + + gaussian + + 0.0 + 0.007 + + + + + + image_raw:=image_raw + camera_info:=camera_info + + + + + + + + From 6af501091b389825243ac8e8fd178f573af554c8 Mon Sep 17 00:00:00 2001 From: chan-1207 Date: Mon, 9 Jun 2025 09:06:48 +0900 Subject: [PATCH 5/7] Remove unnecessary dependency --- turtlebot3_manipulation_bringup/package.xml | 1 - 1 file changed, 1 deletion(-) diff --git a/turtlebot3_manipulation_bringup/package.xml b/turtlebot3_manipulation_bringup/package.xml index d596282..e4e662f 100644 --- a/turtlebot3_manipulation_bringup/package.xml +++ b/turtlebot3_manipulation_bringup/package.xml @@ -14,7 +14,6 @@ Darby Lim Hye-jong KIM ament_cmake - gripper_controllers robot_state_publisher ros2_control ros2_controllers From 05115ab54566d91ffc15cd7f4fde2413c4d5fb19 Mon Sep 17 00:00:00 2001 From: ChanHyeong Lee Date: Mon, 9 Jun 2025 10:41:28 +0900 Subject: [PATCH 6/7] Add lint workflow --- .github/workflows/ros-lint.yml | 32 ++++++ .../launch/base.launch.py | 2 +- .../launch/hardware.launch.py | 3 +- .../launch/cartographer.launch.py | 3 - .../launch/model.launch.py | 4 +- .../launch/move_group.launch.py | 100 +++++++++--------- .../launch/moveit_core.launch.py | 2 +- .../launch/moveit_fake.launch.py | 2 +- .../launch/moveit_gazebo.launch.py | 4 +- .../launch/moveit_rviz.launch.py | 74 ++++++------- .../launch/rsp.launch.py | 22 ++-- .../launch/servo.launch.py | 49 ++++----- .../launch/setup_assistant.launch.py | 5 +- .../launch/spawn_controllers.launch.py | 10 +- .../launch/static_virtual_joint_tfs.launch.py | 10 +- .../turtlebot3_manipulation_teleop.hpp | 39 +++++-- .../src/turtlebot3_manipulation_teleop.cpp | 19 ++-- 17 files changed, 217 insertions(+), 163 deletions(-) create mode 100644 .github/workflows/ros-lint.yml diff --git a/.github/workflows/ros-lint.yml b/.github/workflows/ros-lint.yml new file mode 100644 index 0000000..ccbb438 --- /dev/null +++ b/.github/workflows/ros-lint.yml @@ -0,0 +1,32 @@ +# The name of the workflow +name: Lint + +# Specifies the events that trigger the workflow +on: + pull_request: + +# Defines a set of jobs to be run as part of the workflow +jobs: + ament_lint: + runs-on: ubuntu-latest + container: + image: rostooling/setup-ros-docker:ubuntu-noble-ros-rolling-ros-base-latest + strategy: + fail-fast: false + matrix: + linter: [flake8, pep257, xmllint, copyright] + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Setup ROS environment + uses: ros-tooling/setup-ros@v0.7 + + - name: Run Linter + env: + AMENT_CPPCHECK_ALLOW_SLOW_VERSIONS: 1 + uses: ros-tooling/action-ros-lint@master + with: + linter: ${{ matrix.linter }} + distribution: rolling + package-name: "*" diff --git a/turtlebot3_manipulation_bringup/launch/base.launch.py b/turtlebot3_manipulation_bringup/launch/base.launch.py index e527381..3ba32d0 100644 --- a/turtlebot3_manipulation_bringup/launch/base.launch.py +++ b/turtlebot3_manipulation_bringup/launch/base.launch.py @@ -133,7 +133,7 @@ def generate_launch_description(): ('~/cmd_vel_unstamped', 'cmd_vel'), ('~/odom', 'odom') ], - output="both", + output='both', condition=UnlessCondition(use_sim)) robot_state_pub_node = Node( diff --git a/turtlebot3_manipulation_bringup/launch/hardware.launch.py b/turtlebot3_manipulation_bringup/launch/hardware.launch.py index cb81806..ec03fd5 100644 --- a/turtlebot3_manipulation_bringup/launch/hardware.launch.py +++ b/turtlebot3_manipulation_bringup/launch/hardware.launch.py @@ -22,10 +22,9 @@ from launch.actions import DeclareLaunchArgument from launch.actions import IncludeLaunchDescription from launch.launch_description_sources import PythonLaunchDescriptionSource -from launch.substitutions import PathJoinSubstitution from launch.substitutions import LaunchConfiguration +from launch.substitutions import PathJoinSubstitution from launch.substitutions import ThisLaunchFileDir - from launch_ros.substitutions import FindPackageShare diff --git a/turtlebot3_manipulation_cartographer/launch/cartographer.launch.py b/turtlebot3_manipulation_cartographer/launch/cartographer.launch.py index 3424de9..c801f46 100644 --- a/turtlebot3_manipulation_cartographer/launch/cartographer.launch.py +++ b/turtlebot3_manipulation_cartographer/launch/cartographer.launch.py @@ -21,9 +21,6 @@ from launch.conditions import IfCondition from launch.substitutions import LaunchConfiguration from launch.substitutions import PathJoinSubstitution -from launch.substitutions import ThisLaunchFileDir -from launch.actions import IncludeLaunchDescription -from launch.launch_description_sources import PythonLaunchDescriptionSource from launch_ros.actions import Node from launch_ros.substitutions import FindPackageShare diff --git a/turtlebot3_manipulation_description/launch/model.launch.py b/turtlebot3_manipulation_description/launch/model.launch.py index 73abd85..4baa1da 100644 --- a/turtlebot3_manipulation_description/launch/model.launch.py +++ b/turtlebot3_manipulation_description/launch/model.launch.py @@ -99,7 +99,7 @@ def generate_launch_description(): output='screen'), Node( - package="joint_state_publisher_gui", - executable="joint_state_publisher_gui", + package='joint_state_publisher_gui', + executable='joint_state_publisher_gui', condition=IfCondition(use_gui)), ]) diff --git a/turtlebot3_manipulation_moveit_config/launch/move_group.launch.py b/turtlebot3_manipulation_moveit_config/launch/move_group.launch.py index a945983..cde31aa 100644 --- a/turtlebot3_manipulation_moveit_config/launch/move_group.launch.py +++ b/turtlebot3_manipulation_moveit_config/launch/move_group.launch.py @@ -26,102 +26,104 @@ import os -import yaml -import xacro +from ament_index_python.packages import get_package_share_directory from launch import LaunchDescription from launch.actions import DeclareLaunchArgument from launch.substitutions import LaunchConfiguration from launch_ros.actions import Node -from ament_index_python.packages import get_package_share_directory +import xacro +import yaml def generate_launch_description(): # Robot description robot_description_config = xacro.process_file( os.path.join( - get_package_share_directory("turtlebot3_manipulation_description"), - "urdf", - "turtlebot3_manipulation.urdf.xacro", + get_package_share_directory('turtlebot3_manipulation_description'), + 'urdf', + 'turtlebot3_manipulation.urdf.xacro', ) ) - robot_description = {"robot_description": robot_description_config.toxml()} + robot_description = {'robot_description': robot_description_config.toxml()} # Robot description Semantic config robot_description_semantic_path = os.path.join( - get_package_share_directory("turtlebot3_manipulation_moveit_config"), - "config", - "turtlebot3_manipulation.srdf", + get_package_share_directory('turtlebot3_manipulation_moveit_config'), + 'config', + 'turtlebot3_manipulation.srdf', ) - with open(robot_description_semantic_path, "r") as file: + with open(robot_description_semantic_path, 'r') as file: robot_description_semantic_config = file.read() robot_description_semantic = { - "robot_description_semantic": robot_description_semantic_config + 'robot_description_semantic': robot_description_semantic_config } # kinematics yaml kinematics_yaml_path = os.path.join( - get_package_share_directory("turtlebot3_manipulation_moveit_config"), - "config", - "kinematics.yaml", + get_package_share_directory('turtlebot3_manipulation_moveit_config'), + 'config', + 'kinematics.yaml', ) - with open(kinematics_yaml_path, "r") as file: + with open(kinematics_yaml_path, 'r') as file: kinematics_yaml = yaml.safe_load(file) # Planning Functionality # Planning Functionality ompl_planning_pipeline_config = { - "move_group": { - "planning_plugin": "ompl_interface/OMPLPlanner", - "request_adapters": """default_planner_request_adapters/AddTimeOptimalParameterization \ - default_planner_request_adapters/FixWorkspaceBounds \ - default_planner_request_adapters/FixStartStateBounds \ - default_planner_request_adapters/FixStartStateCollision \ - default_planner_request_adapters/FixStartStatePathConstraints""", - "start_state_max_bounds_error": 0.1, + 'move_group': { + 'planning_plugin': 'ompl_interface/OMPLPlanner', + 'request_adapters': ( + 'default_planner_request_adapters/AddTimeOptimalParameterization ' + 'default_planner_request_adapters/FixWorkspaceBounds ' + 'default_planner_request_adapters/FixStartStateBounds ' + 'default_planner_request_adapters/FixStartStateCollision ' + 'default_planner_request_adapters/FixStartStatePathConstraints' + ), + 'start_state_max_bounds_error': 0.1, } } ompl_planning_yaml_path = os.path.join( - get_package_share_directory("turtlebot3_manipulation_moveit_config"), - "config", - "ompl_planning.yaml", + get_package_share_directory('turtlebot3_manipulation_moveit_config'), + 'config', + 'ompl_planning.yaml', ) - with open(ompl_planning_yaml_path, "r") as file: + with open(ompl_planning_yaml_path, 'r') as file: ompl_planning_yaml = yaml.safe_load(file) - ompl_planning_pipeline_config["move_group"].update(ompl_planning_yaml) + ompl_planning_pipeline_config['move_group'].update(ompl_planning_yaml) # Trajectory Execution trajectory_execution = { - "moveit_manage_controllers": True, - "trajectory_execution.allowed_execution_duration_scaling": 1.2, - "trajectory_execution.allowed_goal_duration_margin": 0.5, - "trajectory_execution.allowed_start_tolerance": 0.05, + 'moveit_manage_controllers': True, + 'trajectory_execution.allowed_execution_duration_scaling': 1.2, + 'trajectory_execution.allowed_goal_duration_margin': 0.5, + 'trajectory_execution.allowed_start_tolerance': 0.05, } # Moveit Controllers moveit_simple_controllers_yaml_path = os.path.join( - get_package_share_directory("turtlebot3_manipulation_moveit_config"), - "config", - "moveit_controllers.yaml", + get_package_share_directory('turtlebot3_manipulation_moveit_config'), + 'config', + 'moveit_controllers.yaml', ) - with open(moveit_simple_controllers_yaml_path, "r") as file: + with open(moveit_simple_controllers_yaml_path, 'r') as file: moveit_simple_controllers_yaml = yaml.safe_load(file) moveit_controllers = { - "moveit_simple_controller_manager": moveit_simple_controllers_yaml, - "moveit_controller_manager": - "moveit_simple_controller_manager/MoveItSimpleControllerManager", + 'moveit_simple_controller_manager': moveit_simple_controllers_yaml, + 'moveit_controller_manager': + 'moveit_simple_controller_manager/MoveItSimpleControllerManager', } # Planning Scene Monitor Parameters planning_scene_monitor_parameters = { - "publish_planning_scene": True, - "publish_geometry_updates": True, - "publish_state_updates": True, - "publish_transforms_updates": True, - "publish_robot_description": True, - "publish_robot_description_semantic": True + 'publish_planning_scene': True, + 'publish_geometry_updates': True, + 'publish_state_updates': True, + 'publish_transforms_updates': True, + 'publish_robot_description': True, + 'publish_robot_description_semantic': True } ld = LaunchDescription() @@ -133,9 +135,9 @@ def generate_launch_description(): ld.add_action(declare_use_sim) move_group_node = Node( - package="moveit_ros_move_group", - executable="move_group", - output="screen", + package='moveit_ros_move_group', + executable='move_group', + output='screen', parameters=[ robot_description, robot_description_semantic, diff --git a/turtlebot3_manipulation_moveit_config/launch/moveit_core.launch.py b/turtlebot3_manipulation_moveit_config/launch/moveit_core.launch.py index d55deb9..e057ffc 100644 --- a/turtlebot3_manipulation_moveit_config/launch/moveit_core.launch.py +++ b/turtlebot3_manipulation_moveit_config/launch/moveit_core.launch.py @@ -18,10 +18,10 @@ import os +from ament_index_python.packages import get_package_share_directory from launch import LaunchDescription from launch.actions import IncludeLaunchDescription from launch.launch_description_sources import PythonLaunchDescriptionSource -from ament_index_python.packages import get_package_share_directory def generate_launch_description(): diff --git a/turtlebot3_manipulation_moveit_config/launch/moveit_fake.launch.py b/turtlebot3_manipulation_moveit_config/launch/moveit_fake.launch.py index b3f5694..6d8dfed 100644 --- a/turtlebot3_manipulation_moveit_config/launch/moveit_fake.launch.py +++ b/turtlebot3_manipulation_moveit_config/launch/moveit_fake.launch.py @@ -18,11 +18,11 @@ import os +from ament_index_python.packages import get_package_share_directory from launch import LaunchDescription from launch.actions import DeclareLaunchArgument from launch.actions import IncludeLaunchDescription from launch.launch_description_sources import PythonLaunchDescriptionSource -from ament_index_python.packages import get_package_share_directory def generate_launch_description(): diff --git a/turtlebot3_manipulation_moveit_config/launch/moveit_gazebo.launch.py b/turtlebot3_manipulation_moveit_config/launch/moveit_gazebo.launch.py index 2f9ba24..3bdda3e 100644 --- a/turtlebot3_manipulation_moveit_config/launch/moveit_gazebo.launch.py +++ b/turtlebot3_manipulation_moveit_config/launch/moveit_gazebo.launch.py @@ -18,13 +18,13 @@ import os +from ament_index_python.packages import get_package_share_directory from launch import LaunchDescription from launch.actions import DeclareLaunchArgument from launch.actions import IncludeLaunchDescription -from launch.substitutions import PathJoinSubstitution from launch.launch_description_sources import PythonLaunchDescriptionSource +from launch.substitutions import PathJoinSubstitution from launch_ros.substitutions import FindPackageShare -from ament_index_python.packages import get_package_share_directory def generate_launch_description(): diff --git a/turtlebot3_manipulation_moveit_config/launch/moveit_rviz.launch.py b/turtlebot3_manipulation_moveit_config/launch/moveit_rviz.launch.py index 1b47377..4b81623 100644 --- a/turtlebot3_manipulation_moveit_config/launch/moveit_rviz.launch.py +++ b/turtlebot3_manipulation_moveit_config/launch/moveit_rviz.launch.py @@ -17,84 +17,86 @@ # Authors: Hye-jong KIM import os -import xacro -import yaml from ament_index_python.packages import get_package_share_directory from launch import LaunchDescription from launch_ros.actions import Node +import xacro +import yaml def generate_launch_description(): # Rviz config save file rviz_config = os.path.join( - get_package_share_directory("turtlebot3_manipulation_moveit_config"), - "config", - "moveit.rviz" + get_package_share_directory('turtlebot3_manipulation_moveit_config'), + 'config', + 'moveit.rviz' ) # Robot description robot_description_config = xacro.process_file( os.path.join( - get_package_share_directory("turtlebot3_manipulation_description"), - "urdf", - "turtlebot3_manipulation.urdf.xacro", + get_package_share_directory('turtlebot3_manipulation_description'), + 'urdf', + 'turtlebot3_manipulation.urdf.xacro', ) ) - robot_description = {"robot_description": robot_description_config.toxml()} + robot_description = {'robot_description': robot_description_config.toxml()} # Robot description Semantic config robot_description_semantic_path = os.path.join( - get_package_share_directory("turtlebot3_manipulation_moveit_config"), - "config", - "turtlebot3_manipulation.srdf", + get_package_share_directory('turtlebot3_manipulation_moveit_config'), + 'config', + 'turtlebot3_manipulation.srdf', ) - with open(robot_description_semantic_path, "r") as file: + with open(robot_description_semantic_path, 'r') as file: robot_description_semantic_config = file.read() robot_description_semantic = { - "robot_description_semantic": robot_description_semantic_config + 'robot_description_semantic': robot_description_semantic_config } # Planning Functionality ompl_planning_pipeline_config = { - "move_group": { - "planning_plugin": "ompl_interface/OMPLPlanner", - "request_adapters": """default_planner_request_adapters/AddTimeOptimalParameterization \ - default_planner_request_adapters/FixWorkspaceBounds \ - default_planner_request_adapters/FixStartStateBounds \ - default_planner_request_adapters/FixStartStateCollision \ - default_planner_request_adapters/FixStartStatePathConstraints""", - "start_state_max_bounds_error": 0.1, + 'move_group': { + 'planning_plugin': 'ompl_interface/OMPLPlanner', + 'request_adapters': ( + 'default_planner_request_adapters/AddTimeOptimalParameterization ' + 'default_planner_request_adapters/FixWorkspaceBounds ' + 'default_planner_request_adapters/FixStartStateBounds ' + 'default_planner_request_adapters/FixStartStateCollision ' + 'default_planner_request_adapters/FixStartStatePathConstraints' + ), + 'start_state_max_bounds_error': 0.1, } } ompl_planning_yaml_path = os.path.join( - get_package_share_directory("turtlebot3_manipulation_moveit_config"), - "config", - "ompl_planning.yaml", + get_package_share_directory('turtlebot3_manipulation_moveit_config'), + 'config', + 'ompl_planning.yaml', ) - with open(ompl_planning_yaml_path, "r") as file: + with open(ompl_planning_yaml_path, 'r') as file: ompl_planning_yaml = yaml.safe_load(file) - ompl_planning_pipeline_config["move_group"].update(ompl_planning_yaml) + ompl_planning_pipeline_config['move_group'].update(ompl_planning_yaml) # kinematics yaml kinematics_yaml_path = os.path.join( - get_package_share_directory("turtlebot3_manipulation_moveit_config"), - "config", - "kinematics.yaml", + get_package_share_directory('turtlebot3_manipulation_moveit_config'), + 'config', + 'kinematics.yaml', ) - with open(kinematics_yaml_path, "r") as file: + with open(kinematics_yaml_path, 'r') as file: kinematics_yaml = yaml.safe_load(file) ld = LaunchDescription() rviz_node = Node( - package="rviz2", - executable="rviz2", - name="rviz2", - output="log", - arguments=["-d", rviz_config], + package='rviz2', + executable='rviz2', + name='rviz2', + output='log', + arguments=['-d', rviz_config], parameters=[ robot_description, robot_description_semantic, diff --git a/turtlebot3_manipulation_moveit_config/launch/rsp.launch.py b/turtlebot3_manipulation_moveit_config/launch/rsp.launch.py index 5ea566c..fb3b979 100644 --- a/turtlebot3_manipulation_moveit_config/launch/rsp.launch.py +++ b/turtlebot3_manipulation_moveit_config/launch/rsp.launch.py @@ -17,38 +17,38 @@ # Authors: Hye-jong KIM import os -import xacro from ament_index_python.packages import get_package_share_directory from launch import LaunchDescription from launch.actions import DeclareLaunchArgument from launch.substitutions import LaunchConfiguration from launch_ros.actions import Node +import xacro def generate_launch_description(): ld = LaunchDescription() - publish_frequency = LaunchConfiguration("publish_frequency") - ld.add_action(DeclareLaunchArgument("publish_frequency", default_value="15.0")) + publish_frequency = LaunchConfiguration('publish_frequency') + ld.add_action(DeclareLaunchArgument('publish_frequency', default_value='15.0')) # Robot description robot_description_config = xacro.process_file( os.path.join( - get_package_share_directory("turtlebot3_manipulation_description"), - "urdf", - "turtlebot3_manipulation.urdf.xacro", + get_package_share_directory('turtlebot3_manipulation_description'), + 'urdf', + 'turtlebot3_manipulation.urdf.xacro', ) ) - robot_description = {"robot_description": robot_description_config.toxml()} + robot_description = {'robot_description': robot_description_config.toxml()} # Given the published joint states, publish tf for the robot links and the robot description rsp_node = Node( - package="robot_state_publisher", - executable="robot_state_publisher", + package='robot_state_publisher', + executable='robot_state_publisher', respawn=True, - output="screen", - parameters=[{"publish_frequency": publish_frequency}, robot_description] + output='screen', + parameters=[{'publish_frequency': publish_frequency}, robot_description] ) ld.add_action(rsp_node) diff --git a/turtlebot3_manipulation_moveit_config/launch/servo.launch.py b/turtlebot3_manipulation_moveit_config/launch/servo.launch.py index 7487b4e..1f5631f 100644 --- a/turtlebot3_manipulation_moveit_config/launch/servo.launch.py +++ b/turtlebot3_manipulation_moveit_config/launch/servo.launch.py @@ -17,13 +17,14 @@ # Authors: Hye-jong KIM import os -import yaml + +from ament_index_python.packages import get_package_share_directory from launch import LaunchDescription from launch.actions import DeclareLaunchArgument from launch.substitutions import LaunchConfiguration from launch_ros.actions import Node -from ament_index_python.packages import get_package_share_directory import xacro +import yaml def generate_launch_description(): @@ -40,56 +41,56 @@ def generate_launch_description(): # Robot description robot_description_config = xacro.process_file( os.path.join( - get_package_share_directory("turtlebot3_manipulation_description"), - "urdf", - "turtlebot3_manipulation.urdf.xacro", + get_package_share_directory('turtlebot3_manipulation_description'), + 'urdf', + 'turtlebot3_manipulation.urdf.xacro', ) ) - robot_description = {"robot_description": robot_description_config.toxml()} + robot_description = {'robot_description': robot_description_config.toxml()} # Robot description Semantic config robot_description_semantic_path = os.path.join( - get_package_share_directory("turtlebot3_manipulation_moveit_config"), - "config", - "turtlebot3_manipulation.srdf", + get_package_share_directory('turtlebot3_manipulation_moveit_config'), + 'config', + 'turtlebot3_manipulation.srdf', ) try: - with open(robot_description_semantic_path, "r") as file: + with open(robot_description_semantic_path, 'r') as file: robot_description_semantic_config = file.read() except EnvironmentError: # parent of IOError, OSError *and* WindowsError where available return None robot_description_semantic = { - "robot_description_semantic": robot_description_semantic_config + 'robot_description_semantic': robot_description_semantic_config } - # kinematics yaml + # Kinematics yaml kinematics_yaml_path = os.path.join( - get_package_share_directory("turtlebot3_manipulation_moveit_config"), - "config", - "kinematics.yaml", + get_package_share_directory('turtlebot3_manipulation_moveit_config'), + 'config', + 'kinematics.yaml', ) - with open(kinematics_yaml_path, "r") as file: + with open(kinematics_yaml_path, 'r') as file: kinematics_yaml = yaml.safe_load(file) # Get parameters for the Servo node servo_yaml_path = os.path.join( - get_package_share_directory("turtlebot3_manipulation_moveit_config"), - "config", - "moveit_servo.yaml", + get_package_share_directory('turtlebot3_manipulation_moveit_config'), + 'config', + 'moveit_servo.yaml', ) try: - with open(servo_yaml_path, "r") as file: - servo_params = {"moveit_servo": yaml.safe_load(file)} + with open(servo_yaml_path, 'r') as file: + servo_params = {'moveit_servo': yaml.safe_load(file)} except EnvironmentError: # parent of IOError, OSError *and* WindowsError where available return None # Launch as much as possible in components servo_node = Node( - package="moveit_servo", - executable="servo_node_main", + package='moveit_servo', + executable='servo_node_main', parameters=[ - {'use_gazebo':use_sim}, + {'use_gazebo': use_sim}, servo_params, robot_description, robot_description_semantic, diff --git a/turtlebot3_manipulation_moveit_config/launch/setup_assistant.launch.py b/turtlebot3_manipulation_moveit_config/launch/setup_assistant.launch.py index fd169ea..ace8d83 100644 --- a/turtlebot3_manipulation_moveit_config/launch/setup_assistant.launch.py +++ b/turtlebot3_manipulation_moveit_config/launch/setup_assistant.launch.py @@ -21,6 +21,7 @@ def generate_launch_description(): - moveit_config = MoveItConfigsBuilder("turtlebot3_manipulation", - package_name="turtlebot3_manipulation_moveit_config").to_moveit_configs() + moveit_config = MoveItConfigsBuilder( + 'turtlebot3_manipulation', + package_name='turtlebot3_manipulation_moveit_config').to_moveit_configs() return generate_setup_assistant_launch(moveit_config) diff --git a/turtlebot3_manipulation_moveit_config/launch/spawn_controllers.launch.py b/turtlebot3_manipulation_moveit_config/launch/spawn_controllers.launch.py index 71e9d0e..4e5f290 100644 --- a/turtlebot3_manipulation_moveit_config/launch/spawn_controllers.launch.py +++ b/turtlebot3_manipulation_moveit_config/launch/spawn_controllers.launch.py @@ -26,15 +26,15 @@ def generate_launch_description(): # Load controllers load_controllers = [] for controller in [ - "arm_controller", - "gripper_controller", - "joint_state_broadcaster", + 'arm_controller', + 'gripper_controller', + 'joint_state_broadcaster', ]: load_controllers += [ ExecuteProcess( - cmd=["ros2 run controller_manager spawner.py {}".format(controller)], + cmd=['ros2 run controller_manager spawner.py {}'.format(controller)], shell=True, - output="screen", + output='screen', ) ] ld.add_action(load_controllers) diff --git a/turtlebot3_manipulation_moveit_config/launch/static_virtual_joint_tfs.launch.py b/turtlebot3_manipulation_moveit_config/launch/static_virtual_joint_tfs.launch.py index 0900f2d..faca02d 100644 --- a/turtlebot3_manipulation_moveit_config/launch/static_virtual_joint_tfs.launch.py +++ b/turtlebot3_manipulation_moveit_config/launch/static_virtual_joint_tfs.launch.py @@ -26,11 +26,11 @@ def generate_launch_description(): # Static TF static_tf = Node( - package="tf2_ros", - executable="static_transform_publisher", - name="static_transform_publisher", - output="log", - arguments=["0.0", "0.0", "0.0", "0.0", "0.0", "0.0", "odom", "base_footprint"], + package='tf2_ros', + executable='static_transform_publisher', + name='static_transform_publisher', + output='log', + arguments=['0.0', '0.0', '0.0', '0.0', '0.0', '0.0', 'odom', 'base_footprint'], ) ld.add_action(static_tf) diff --git a/turtlebot3_manipulation_teleop/include/turtlebot3_manipulation_teleop/turtlebot3_manipulation_teleop.hpp b/turtlebot3_manipulation_teleop/include/turtlebot3_manipulation_teleop/turtlebot3_manipulation_teleop.hpp index 1669c4c..c10bdcc 100644 --- a/turtlebot3_manipulation_teleop/include/turtlebot3_manipulation_teleop/turtlebot3_manipulation_teleop.hpp +++ b/turtlebot3_manipulation_teleop/include/turtlebot3_manipulation_teleop/turtlebot3_manipulation_teleop.hpp @@ -1,21 +1,36 @@ +// Copyright 2022 ROBOTIS CO., LTD. +// +// 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. + #ifndef TURTLEBOT3_MANIPULATION_TELEOP__TURTLEBOT3_MANIPULATION_TELEOP_HPP_ #define TURTLEBOT3_MANIPULATION_TELEOP__TURTLEBOT3_MANIPULATION_TELEOP_HPP_ -#include -#include -#include -#include -#include -#include -#include - #include #include #include #include + #include #include +#include +#include +#include +#include +#include +#include +#include + // Define used keys #define KEYCODE_1 0x31 #define KEYCODE_2 0x32 @@ -76,6 +91,7 @@ class KeyboardServo void start_moveit_servo(); void stop_moveit_servo(); void send_goal(float position); + private: rclcpp_action::Client::SharedPtr client_; @@ -95,10 +111,11 @@ class KeyboardServo bool publish_joint_; - void goal_result_callback(const rclcpp_action::ClientGoalHandle::WrappedResult& result) + void goal_result_callback( + const rclcpp_action::ClientGoalHandle< + control_msgs::action::GripperCommand>::WrappedResult & result) { - switch (result.code) - { + switch (result.code) { case rclcpp_action::ResultCode::SUCCEEDED: break; case rclcpp_action::ResultCode::ABORTED: diff --git a/turtlebot3_manipulation_teleop/src/turtlebot3_manipulation_teleop.cpp b/turtlebot3_manipulation_teleop/src/turtlebot3_manipulation_teleop.cpp index 2c814db..26559f4 100644 --- a/turtlebot3_manipulation_teleop/src/turtlebot3_manipulation_teleop.cpp +++ b/turtlebot3_manipulation_teleop/src/turtlebot3_manipulation_teleop.cpp @@ -61,7 +61,8 @@ KeyboardServo::KeyboardServo() base_twist_pub_ = nh_->create_publisher(BASE_TWIST_TOPIC, ROS_QUEUE_SIZE); joint_pub_ = nh_->create_publisher(ARM_JOINT_TOPIC, ROS_QUEUE_SIZE); - client_ = rclcpp_action::create_client(nh_, "gripper_controller/gripper_cmd"); + client_ = rclcpp_action::create_client( + nh_, "gripper_controller/gripper_cmd"); cmd_vel_ = geometry_msgs::msg::Twist(); } @@ -223,15 +224,17 @@ int KeyboardServo::keyLoop() void KeyboardServo::send_goal(float position) { - auto goal_msg = control_msgs::action::GripperCommand::Goal(); - goal_msg.command.position = position; // Set position - goal_msg.command.max_effort = -1.0; // Set max effort + auto goal_msg = control_msgs::action::GripperCommand::Goal(); + goal_msg.command.position = position; // Set position + goal_msg.command.max_effort = -1.0; // Set max effort - auto send_goal_options = rclcpp_action::Client::SendGoalOptions(); - send_goal_options.result_callback = std::bind(&KeyboardServo::goal_result_callback, this, std::placeholders::_1); + auto send_goal_options = rclcpp_action::Client< + control_msgs::action::GripperCommand>::SendGoalOptions(); + send_goal_options.result_callback = std::bind( + &KeyboardServo::goal_result_callback, this, std::placeholders::_1); - RCLCPP_INFO(nh_->get_logger(), "Sending goal"); - client_->async_send_goal(goal_msg, send_goal_options); + RCLCPP_INFO(nh_->get_logger(), "Sending goal"); + client_->async_send_goal(goal_msg, send_goal_options); } void KeyboardServo::connect_moveit_servo() From bc854f7d50ef6bfad8c696d1873fa59769be4847 Mon Sep 17 00:00:00 2001 From: ChanHyeong Lee Date: Mon, 9 Jun 2025 14:23:57 +0900 Subject: [PATCH 7/7] Fix lint workflow --- .github/workflows/ros-lint.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ros-lint.yml b/.github/workflows/ros-lint.yml index ccbb438..c6eb5be 100644 --- a/.github/workflows/ros-lint.yml +++ b/.github/workflows/ros-lint.yml @@ -14,7 +14,7 @@ jobs: strategy: fail-fast: false matrix: - linter: [flake8, pep257, xmllint, copyright] + linter: [cppcheck, cpplint, uncrustify, flake8, pep257, lint_cmake, xmllint, copyright] steps: - name: Checkout code uses: actions/checkout@v4