From eb09b6a68f98212a235143fdb2b42482516f1eac Mon Sep 17 00:00:00 2001 From: JoaoCostaIFG Date: Mon, 28 Nov 2022 10:15:37 +0000 Subject: [PATCH 01/15] WIP: cmakelists for ros2 --- CMakeLists.txt | 20 ++++++-------------- 1 file changed, 6 insertions(+), 14 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 5313a42..2ccfe9b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.16) +cmake_minimum_required(VERSION 3.5) project(turtlebot_flatland) # Ensure we're using c++11 @@ -7,33 +7,25 @@ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") ## Find catkin macros and libraries ## if COMPONENTS list like find_package(catkin REQUIRED COMPONENTS xyz) ## is used, also find other catkin packages -find_package(catkin REQUIRED COMPONENTS -) - +find_package(ament_cmake REQUIRED) -catkin_package( -) ########### ## Build ## ########### -include_directories( - ${catkin_INCLUDE_DIRS} -) - install(DIRECTORY launch - DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION} + DESTINATION share/${PROJECT_NAME}/ ) install(DIRECTORY maps - DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION} + DESTINATION share/${PROJECT_NAME}/ ) install(DIRECTORY robot - DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION} + DESTINATION share/${PROJECT_NAME}/ ) install(DIRECTORY rviz - DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION} + DESTINATION share/${PROJECT_NAME}/ ) From d6b5eac12615acf26bd149174f5e7bea840d7f36 Mon Sep 17 00:00:00 2001 From: JoaoCostaIFG Date: Mon, 28 Nov 2022 10:22:58 +0000 Subject: [PATCH 02/15] Change buildtool to ament --- CMakeLists.txt | 3 --- package.xml | 2 +- 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 2ccfe9b..32a8390 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -4,9 +4,6 @@ project(turtlebot_flatland) # Ensure we're using c++11 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") -## Find catkin macros and libraries -## if COMPONENTS list like find_package(catkin REQUIRED COMPONENTS xyz) -## is used, also find other catkin packages find_package(ament_cmake REQUIRED) diff --git a/package.xml b/package.xml index 1c3ae22..58565eb 100644 --- a/package.xml +++ b/package.xml @@ -10,8 +10,8 @@ Joseph Duchesne BSD + ament_cmake - catkin flatland_msgs flatland_plugins navigation From 03687981bf0663c24963a487ad21fa9128f67947 Mon Sep 17 00:00:00 2001 From: The Zambi Date: Mon, 28 Nov 2022 13:30:23 +0000 Subject: [PATCH 03/15] WIP --- CMakeLists.txt | 2 + launch/turtlebot_in_flatland.launch | 86 ++++++++++++++--------------- package.xml | 2 + 3 files changed, 47 insertions(+), 43 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 32a8390..243de51 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -26,3 +26,5 @@ install(DIRECTORY robot install(DIRECTORY rviz DESTINATION share/${PROJECT_NAME}/ ) + +ament_package() diff --git a/launch/turtlebot_in_flatland.launch b/launch/turtlebot_in_flatland.launch index 7cd7f9b..26b3fd2 100644 --- a/launch/turtlebot_in_flatland.launch +++ b/launch/turtlebot_in_flatland.launch @@ -26,80 +26,80 @@ You can override these default values: roslaunch flatland_Server server.launch world_path:="/some/world.yaml" initial_rate:="30.0" --> - + - + - + - + - - - - - + + + + + - + + + + + + + - - - - - + + + + + - - + + - - - - - - + + + + + + - - - - + + + + - - + + - - - - - - + + + + + + - - + + diff --git a/package.xml b/package.xml index 58565eb..fd7d2f5 100644 --- a/package.xml +++ b/package.xml @@ -19,4 +19,6 @@ turtlebot_navigation yocs_virtual_sensor yocs_velocity_smoother + + ament_cmake From 1b6fd5ed61b59b9ea96e21dcd705b8d262e0cfd2 Mon Sep 17 00:00:00 2001 From: Ana InAas Oliveira de Barros Date: Mon, 28 Nov 2022 13:54:31 +0000 Subject: [PATCH 04/15] Rviz opens. --- launch/turtlebot_in_flatland.launch | 38 ++++++++++++++--------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/launch/turtlebot_in_flatland.launch b/launch/turtlebot_in_flatland.launch index 26b3fd2..d1f1e49 100644 --- a/launch/turtlebot_in_flatland.launch +++ b/launch/turtlebot_in_flatland.launch @@ -64,19 +64,19 @@ - + - - - - - - - + + + + + + + @@ -86,20 +86,20 @@ - - - - - - - - - - + + + + + + + + + + - + From 5e66ce6c93d72084b0e34ab64b521b3c4264c1af Mon Sep 17 00:00:00 2001 From: JoaoCostaIFG Date: Mon, 28 Nov 2022 19:10:11 +0000 Subject: [PATCH 05/15] Fix robot_navigation rviz. --- rviz/robot_navigation.rviz | 76 +++++++++++++++++++------------------- 1 file changed, 38 insertions(+), 38 deletions(-) diff --git a/rviz/robot_navigation.rviz b/rviz/robot_navigation.rviz index f6ff3ba..d652a11 100644 --- a/rviz/robot_navigation.rviz +++ b/rviz/robot_navigation.rviz @@ -1,5 +1,5 @@ Panels: - - Class: rviz/Displays + - Class: rviz_common/Displays Help Height: 78 Name: Displays Property Tree Widget: @@ -11,20 +11,20 @@ Panels: - /Global Planning1 Splitter Ratio: 0.5 Tree Height: 595 - - Class: rviz/Selection + - Class: rviz_common/Selection Name: Selection - - Class: rviz/Tool Properties + - Class: rviz_common/Tool Properties Expanded: - /2D Pose Estimate1 - /2D Nav Goal1 Name: Tool Properties Splitter Ratio: 0.588679016 - - Class: rviz/Views + - Class: rviz_common/Views Expanded: - /Current View1 Name: Views Splitter Ratio: 0.5 - - Class: rviz/Time + - Class: rviz_common/Time Experimental: false Name: Time SyncMode: 0 @@ -34,8 +34,8 @@ Visualization Manager: Displays: - Alpha: 0.5 Cell Size: 1 - Class: rviz/Grid - Color: 160; 160; 164 + Class: rviz_default_plugins/Grid + Color: 224; 224; 224 Enabled: true Line Style: Line Width: 0.0299999993 @@ -47,10 +47,10 @@ Visualization Manager: Y: 0 Z: 0 Plane: XY - Plane Cell Count: 10 + Plane Cell Count: 100 Reference Frame: Value: true - - Class: rviz/TF + - Class: rviz_default_plugins/TF Enabled: false Frame Timeout: 15 Frames: @@ -72,7 +72,7 @@ Visualization Manager: Value: true Axis: Z Channel Name: intensity - Class: rviz/LaserScan + Class: rviz_default_plugins/LaserScan Color: 255; 0; 0 Color Transformer: FlatColor Decay Time: 0 @@ -102,7 +102,7 @@ Visualization Manager: Value: true Axis: Z Channel Name: intensity - Class: rviz/LaserScan + Class: rviz_default_plugins/LaserScan Color: 255; 255; 255 Color Transformer: Intensity Decay Time: 0 @@ -125,7 +125,7 @@ Visualization Manager: Use rainbow: true Value: true - Alpha: 0.699999988 - Class: rviz/Map + Class: rviz_default_plugins/Map Color Scheme: map Draw Behind: false Enabled: false @@ -134,10 +134,10 @@ Visualization Manager: Unreliable: false Use Timestamp: false Value: false - - Class: rviz/Group + - Class: rviz_common/Group Displays: - Alpha: 0.699999988 - Class: rviz/Map + Class: rviz_default_plugins/Map Color Scheme: costmap Draw Behind: false Enabled: true @@ -148,7 +148,7 @@ Visualization Manager: Value: true - Alpha: 1 Buffer Length: 1 - Class: rviz/Path + Class: rviz_default_plugins/Path Color: 0; 12; 255 Enabled: true Head Diameter: 0.300000012 @@ -177,7 +177,7 @@ Visualization Manager: Value: true Axis: Z Channel Name: goal_cost - Class: rviz/PointCloud2 + Class: rviz_default_plugins/PointCloud2 Color: 255; 255; 255 Color Transformer: Intensity Decay Time: 0 @@ -207,7 +207,7 @@ Visualization Manager: Value: true Axis: Z Channel Name: total_cost - Class: rviz/PointCloud2 + Class: rviz_default_plugins/PointCloud2 Color: 255; 255; 255 Color Transformer: Intensity Decay Time: 0 @@ -231,10 +231,10 @@ Visualization Manager: Value: true Enabled: true Name: Local Planning - - Class: rviz/Group + - Class: rviz_common/Group Displays: - Alpha: 0.400000006 - Class: rviz/Map + Class: rviz_default_plugins/Map Color Scheme: costmap Draw Behind: true Enabled: true @@ -245,7 +245,7 @@ Visualization Manager: Value: true - Alpha: 1 Buffer Length: 1 - Class: rviz/Path + Class: rviz_default_plugins/Path Color: 255; 0; 0 Enabled: true Head Diameter: 0.300000012 @@ -271,7 +271,7 @@ Visualization Manager: - Alpha: 1 Axes Length: 1 Axes Radius: 0.100000001 - Class: rviz/Pose + Class: rviz_default_plugins/Pose Color: 255; 25; 0 Enabled: true Head Length: 0.200000003 @@ -287,7 +287,7 @@ Visualization Manager: Arrow Length: 0.200000003 Axes Length: 0.300000012 Axes Radius: 0.00999999978 - Class: rviz/PoseArray + Class: rviz_default_plugins/PoseArray Color: 0; 192; 0 Enabled: true Head Length: 0.0700000003 @@ -301,7 +301,7 @@ Visualization Manager: Value: true - Alpha: 1 Buffer Length: 1 - Class: rviz/Path + Class: rviz_default_plugins/Path Color: 25; 255; 0 Enabled: true Head Diameter: 0.300000012 @@ -323,7 +323,7 @@ Visualization Manager: Unreliable: false Value: true - Angle Tolerance: 0.100000001 - Class: rviz/Odometry + Class: rviz_default_plugins/Odometry Covariance: Orientation: Alpha: 0.5 @@ -356,7 +356,7 @@ Visualization Manager: Topic: /odom Unreliable: false Value: false - - Class: rviz/MarkerArray + - Class: rviz_default_plugins/MarkerArray Enabled: false Marker Topic: /move_base/EBandPlannerROS/eband_visualization_array Name: EBand boubles @@ -364,7 +364,7 @@ Visualization Manager: {} Queue Size: 100 Value: false - - Class: rviz/MarkerArray + - Class: rviz_default_plugins/MarkerArray Enabled: true Marker Topic: /flatland_server/debug/layer/2d Name: World @@ -372,7 +372,7 @@ Visualization Manager: "": true Queue Size: 100 Value: true - - Class: rviz/MarkerArray + - Class: rviz_default_plugins/MarkerArray Enabled: true Marker Topic: /flatland_server/debug/model/turtlebot0 Name: Turtlebot @@ -388,7 +388,7 @@ Visualization Manager: Value: true Axis: Z Channel Name: intensity - Class: rviz/LaserScan + Class: rviz_default_plugins/LaserScan Color: 255; 170; 0 Color Transformer: FlatColor Decay Time: 0 @@ -410,7 +410,7 @@ Visualization Manager: Use Fixed Frame: true Use rainbow: true Value: true - - Class: rviz/MarkerArray + - Class: rviz_default_plugins/MarkerArray Enabled: true Marker Topic: /flatland_server/debug/model/table0 Name: MarkerArray @@ -418,7 +418,7 @@ Visualization Manager: "": true Queue Size: 100 Value: true - - Class: rviz/MarkerArray + - Class: rviz_default_plugins/MarkerArray Enabled: true Marker Topic: /flatland_server/debug/model/door0 Name: MarkerArray @@ -426,7 +426,7 @@ Visualization Manager: "": true Queue Size: 100 Value: true - - Class: rviz/InteractiveMarkers + - Class: rviz_default_plugins/InteractiveMarkers Enable Transparency: true Enabled: true Name: InteractiveMarkers @@ -442,20 +442,20 @@ Visualization Manager: Frame Rate: 30 Name: root Tools: - - Class: rviz/MoveCamera - - Class: rviz/Interact + - Class: rviz_default_plugins/MoveCamera + - Class: rviz_default_plugins/Interact Hide Inactive Objects: true - - Class: rviz/Select - - Class: rviz/SetInitialPose + - Class: rviz_default_plugins/Select + - Class: rviz_default_plugins/SetInitialPose Topic: /initialpose - - Class: rviz/SetGoal + - Class: rviz_default_plugins/SetGoal Topic: /move_base_simple/goal - - Class: rviz/Measure + - Class: rviz_default_plugins/Measure Value: true Views: Current: Angle: 0 - Class: rviz/TopDownOrtho + Class: rviz_default_plugins/TopDownOrtho Enable Stereo Rendering: Stereo Eye Separation: 0.0599999987 Stereo Focal Distance: 1 From 1963f51c8bc138adddfa8027b75d727b23496649 Mon Sep 17 00:00:00 2001 From: JoaoCostaIFG Date: Mon, 28 Nov 2022 23:49:45 +0000 Subject: [PATCH 06/15] Rviz now shows the map. Nav2 now uses lifecycle nodes: add to include the panel for managing them --- launch/turtlebot_in_flatland.launch.py | 125 +++++++++++++++++++++++++ package.xml | 15 +-- rviz/robot_navigation.rviz | 6 +- 3 files changed, 137 insertions(+), 9 deletions(-) create mode 100644 launch/turtlebot_in_flatland.launch.py diff --git a/launch/turtlebot_in_flatland.launch.py b/launch/turtlebot_in_flatland.launch.py new file mode 100644 index 0000000..3d1fd38 --- /dev/null +++ b/launch/turtlebot_in_flatland.launch.py @@ -0,0 +1,125 @@ +from launch import LaunchDescription +from launch.actions import DeclareLaunchArgument, SetEnvironmentVariable, ExecuteProcess +from launch.substitutions import LaunchConfiguration, PathJoinSubstitution, FindExecutable +import launch.conditions as conditions +from launch_ros.substitutions import FindPackageShare +from launch_ros.actions import Node + + +def generate_launch_description(): + global_frame_id = LaunchConfiguration("global_frame_id") + min_obstacle_height = LaunchConfiguration("min_obstacle_height") + max_obstacle_height = LaunchConfiguration("max_obstacle_height") + + world_path = LaunchConfiguration("world_path") + update_rate = LaunchConfiguration("update_rate") + step_size = LaunchConfiguration("step_size") + show_viz = LaunchConfiguration("show_viz") + viz_pub_rate = LaunchConfiguration("viz_pub_rate") + + ld = LaunchDescription( + [ + DeclareLaunchArgument(name="laser_topic", default_value="scan"), # default laser topic in flatland + DeclareLaunchArgument(name="odom_topic", default_value="odom"), + DeclareLaunchArgument(name="odom_frame_id", default_value="odom"), + DeclareLaunchArgument(name="base_frame_id", default_value="base"), + DeclareLaunchArgument(name="global_frame_id", default_value="map"), + # Name of the map to use (without path nor extension) and initial position + DeclareLaunchArgument(name="initial_pose_x", default_value="3.0"), + DeclareLaunchArgument(name="initial_pose_y", default_value="7.0"), + DeclareLaunchArgument(name="initial_pose_a", default_value="0.0"), + DeclareLaunchArgument(name="min_obstacle_height", default_value="0.0"), + DeclareLaunchArgument(name="max_obstacle_height", default_value="5.0"), + + # ******************** flatland******************** + # You can override these default values: + # roslaunch flatland_Server server.launch world_path:="/some/world.yaml" initial_rate:="30.0" + DeclareLaunchArgument( + name="world_path", + default_value=PathJoinSubstitution( + [ + FindPackageShare("turtlebot_flatland"), + "maps/hospital_section.world.yaml", + ] + ), + ), + DeclareLaunchArgument(name="update_rate", default_value="100.0"), + DeclareLaunchArgument(name="step_size", default_value="0.01"), + DeclareLaunchArgument(name="show_viz", default_value="true"), + DeclareLaunchArgument(name="viz_pub_rate", default_value="30.0"), + + SetEnvironmentVariable(name="ROSCONSOLE_FORMAT", value="[${severity} ${time} ${logger}]: ${message}"), + + # launch flatland server + Node( + name="flatland_server", + package="flatland_server", + executable="flatland_server", + output="screen", + parameters=[ + # Use the arguments passed into the launchfile for this node + {"world_path": world_path}, + {"update_rate": update_rate}, + {"step_size": step_size}, + {"show_viz": show_viz}, + {"viz_pub_rate": viz_pub_rate}, + {"use_sim_time": True}, + ], + ), + + # ***************** Robot Model ***************** + #ExecuteProcess( + # cmd=[[ + # FindExecutable(name='ros2'), + # " service call ", + # "/spawn_model ", + # "example_msgs/srv/ExampleMsg ", + # '"{param_1: True, param_2: 0.0}"', + # ]], + #), + + # ****** Maps ***** + Node( + name="map_server", + package="nav2_map_server", + executable="map_server", + parameters=[ + {"yaml_filename": PathJoinSubstitution([FindPackageShare("turtlebot_flatland"), "maps/hospital_section.yaml"])}, + {"frame_id": global_frame_id}, + ], + ), + Node( + package='nav2_lifecycle_manager', + executable='lifecycle_manager', + name='lifecycle_manager_navigation', + output='screen', + parameters=[ + {'autostart': False}, + {'node_names': ["map_server"]}, + ], + ), + + # ***************** Manually setting some parameters ************************* + DeclareLaunchArgument(name="move_base/local_costmap/obstacle_layer/scan/min_obstacle_height", default_value=min_obstacle_height), + DeclareLaunchArgument(name="move_base/local_costmap/obstacle_layer/scan/max_obstacle_height", default_value=max_obstacle_height), + DeclareLaunchArgument(name="move_base/global_costmap/obstacle_layer/scan/min_obstacle_height", default_value=min_obstacle_height), + DeclareLaunchArgument(name="move_base/global_costmap/obstacle_layer/scan/max_obstacle_height", default_value=max_obstacle_height), + + # **************** Visualisation **************** + Node( + name="rviz", + package="rviz2", + executable="rviz2", + arguments=[ + "-d", + PathJoinSubstitution([FindPackageShare("turtlebot_flatland"), "rviz/robot_navigation.rviz"]) + ], + condition=conditions.IfCondition(show_viz), + ), + ] + ) + return ld + + +if __name__ == "__main__": + generate_launch_description() diff --git a/package.xml b/package.xml index fd7d2f5..bebf0b3 100644 --- a/package.xml +++ b/package.xml @@ -12,13 +12,14 @@ ament_cmake - flatland_msgs - flatland_plugins - navigation - turtlebot_bringup - turtlebot_navigation - yocs_virtual_sensor - yocs_velocity_smoother + + + nav2_map_server + nav2_rviz_plugins + turtlebot3_bringup + turtlebot3_navigation2 + + ament_cmake diff --git a/rviz/robot_navigation.rviz b/rviz/robot_navigation.rviz index d652a11..6f18eec 100644 --- a/rviz/robot_navigation.rviz +++ b/rviz/robot_navigation.rviz @@ -29,10 +29,12 @@ Panels: Name: Time SyncMode: 0 SyncSource: LaserScan (kinect) + - Class: nav2_rviz_plugins/Navigation 2 + Name: Navigation 2 Visualization Manager: Class: "" Displays: - - Alpha: 0.5 + - Alpha: 0.1 Cell Size: 1 Class: rviz_default_plugins/Grid Color: 224; 224; 224 @@ -128,7 +130,7 @@ Visualization Manager: Class: rviz_default_plugins/Map Color Scheme: map Draw Behind: false - Enabled: false + Enabled: true Name: Map Topic: /map Unreliable: false From 88338d3b11ffc6393908aff3b85572965ab547de Mon Sep 17 00:00:00 2001 From: JoaoCostaIFG Date: Tue, 29 Nov 2022 14:16:12 +0000 Subject: [PATCH 07/15] Add spawn_model node --- launch/turtlebot_in_flatland.launch.py | 33 +++++++++++++------------- 1 file changed, 16 insertions(+), 17 deletions(-) diff --git a/launch/turtlebot_in_flatland.launch.py b/launch/turtlebot_in_flatland.launch.py index 3d1fd38..e2685e5 100644 --- a/launch/turtlebot_in_flatland.launch.py +++ b/launch/turtlebot_in_flatland.launch.py @@ -7,6 +7,8 @@ def generate_launch_description(): + pkg_share = FindPackageShare("turtlebot_flatland") + global_frame_id = LaunchConfiguration("global_frame_id") min_obstacle_height = LaunchConfiguration("min_obstacle_height") max_obstacle_height = LaunchConfiguration("max_obstacle_height") @@ -36,12 +38,7 @@ def generate_launch_description(): # roslaunch flatland_Server server.launch world_path:="/some/world.yaml" initial_rate:="30.0" DeclareLaunchArgument( name="world_path", - default_value=PathJoinSubstitution( - [ - FindPackageShare("turtlebot_flatland"), - "maps/hospital_section.world.yaml", - ] - ), + default_value=PathJoinSubstitution([pkg_share, "maps/hospital_section.world.yaml"]), ), DeclareLaunchArgument(name="update_rate", default_value="100.0"), DeclareLaunchArgument(name="step_size", default_value="0.01"), @@ -68,15 +65,17 @@ def generate_launch_description(): ), # ***************** Robot Model ***************** - #ExecuteProcess( - # cmd=[[ - # FindExecutable(name='ros2'), - # " service call ", - # "/spawn_model ", - # "example_msgs/srv/ExampleMsg ", - # '"{param_1: True, param_2: 0.0}"', - # ]], - #), + ExecuteProcess( + cmd=[[ + FindExecutable(name='ros2'), + " service ", + "call ", + "/spawn_model ", + "flatland_msgs/srv/SpawnModel ", + "\"{yaml_path: '", PathJoinSubstitution([pkg_share, 'robot/turtlebot.model.yaml']), "', name: 'turtlebot0', ns: '', pose: {x: 3.0, y: 7.0, theta: 0.0}}\"", + ]], + shell=True, + ), # ****** Maps ***** Node( @@ -84,7 +83,7 @@ def generate_launch_description(): package="nav2_map_server", executable="map_server", parameters=[ - {"yaml_filename": PathJoinSubstitution([FindPackageShare("turtlebot_flatland"), "maps/hospital_section.yaml"])}, + {"yaml_filename": PathJoinSubstitution([pkg_share, "maps/hospital_section.yaml"])}, {"frame_id": global_frame_id}, ], ), @@ -112,7 +111,7 @@ def generate_launch_description(): executable="rviz2", arguments=[ "-d", - PathJoinSubstitution([FindPackageShare("turtlebot_flatland"), "rviz/robot_navigation.rviz"]) + PathJoinSubstitution([pkg_share, "rviz/robot_navigation.rviz"]) ], condition=conditions.IfCondition(show_viz), ), From 4675df0818c2ab23ca90efe1d80e1ae8c9dce59c Mon Sep 17 00:00:00 2001 From: JoaoCostaIFG Date: Tue, 29 Nov 2022 14:37:15 +0000 Subject: [PATCH 08/15] Add: tf2 transform publisher node. --- launch/turtlebot_in_flatland.launch.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/launch/turtlebot_in_flatland.launch.py b/launch/turtlebot_in_flatland.launch.py index e2685e5..28e4964 100644 --- a/launch/turtlebot_in_flatland.launch.py +++ b/launch/turtlebot_in_flatland.launch.py @@ -97,6 +97,12 @@ def generate_launch_description(): {'node_names': ["map_server"]}, ], ), + Node( + name="tf", + package="tf2_ros", + executable="static_transform_publisher", + arguments=["0", "0", "0", "0", "0", "0", "map", "odom"], + ), # ***************** Manually setting some parameters ************************* DeclareLaunchArgument(name="move_base/local_costmap/obstacle_layer/scan/min_obstacle_height", default_value=min_obstacle_height), From dcc300331c57075f42245f43b30329296074ab15 Mon Sep 17 00:00:00 2001 From: JoaoCostaIFG Date: Tue, 29 Nov 2022 14:55:48 +0000 Subject: [PATCH 09/15] Add output=screen to map server --- launch/turtlebot_in_flatland.launch.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/launch/turtlebot_in_flatland.launch.py b/launch/turtlebot_in_flatland.launch.py index 28e4964..09e2d00 100644 --- a/launch/turtlebot_in_flatland.launch.py +++ b/launch/turtlebot_in_flatland.launch.py @@ -82,15 +82,16 @@ def generate_launch_description(): name="map_server", package="nav2_map_server", executable="map_server", + output='screen', parameters=[ {"yaml_filename": PathJoinSubstitution([pkg_share, "maps/hospital_section.yaml"])}, {"frame_id": global_frame_id}, ], ), Node( + name='lifecycle_manager_navigation', package='nav2_lifecycle_manager', executable='lifecycle_manager', - name='lifecycle_manager_navigation', output='screen', parameters=[ {'autostart': False}, From fdaef2f51ebda852e3e7c4c75bdf6c90631bfd7f Mon Sep 17 00:00:00 2001 From: JoaoCostaIFG Date: Tue, 29 Nov 2022 16:25:21 +0000 Subject: [PATCH 10/15] Fix topic names for rviz --- rviz/robot_navigation.rviz | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/rviz/robot_navigation.rviz b/rviz/robot_navigation.rviz index 6f18eec..045a5c2 100644 --- a/rviz/robot_navigation.rviz +++ b/rviz/robot_navigation.rviz @@ -360,7 +360,8 @@ Visualization Manager: Value: false - Class: rviz_default_plugins/MarkerArray Enabled: false - Marker Topic: /move_base/EBandPlannerROS/eband_visualization_array + Topic: + Value: /move_base/EBandPlannerROS/eband_visualization_array Name: EBand boubles Namespaces: {} @@ -368,7 +369,8 @@ Visualization Manager: Value: false - Class: rviz_default_plugins/MarkerArray Enabled: true - Marker Topic: /flatland_server/debug/layer/2d + Topic: + Value: /layers/l_2d Name: World Namespaces: "": true @@ -376,7 +378,8 @@ Visualization Manager: Value: true - Class: rviz_default_plugins/MarkerArray Enabled: true - Marker Topic: /flatland_server/debug/model/turtlebot0 + Topic: + Value: /models/m_turtlebot0 Name: Turtlebot Namespaces: "": true @@ -414,16 +417,18 @@ Visualization Manager: Value: true - Class: rviz_default_plugins/MarkerArray Enabled: true - Marker Topic: /flatland_server/debug/model/table0 - Name: MarkerArray + Topic: + Value: /models/m_table0 + Name: Table Namespaces: "": true Queue Size: 100 Value: true - Class: rviz_default_plugins/MarkerArray Enabled: true - Marker Topic: /flatland_server/debug/model/door0 - Name: MarkerArray + Topic: + Value: /models/m_door0 + Name: Door Namespaces: "": true Queue Size: 100 @@ -431,11 +436,11 @@ Visualization Manager: - Class: rviz_default_plugins/InteractiveMarkers Enable Transparency: true Enabled: true + Interactive Markers Namespace: /interactive_model_markers Name: InteractiveMarkers Show Axes: false Show Descriptions: true Show Visual Aids: false - Update Topic: /interactive_model_markers/update Value: true Enabled: true Global Options: From 336d8f0775e418fa9eac76031e455550b8bac853 Mon Sep 17 00:00:00 2001 From: JoaoCostaIFG Date: Tue, 29 Nov 2022 20:28:17 +0000 Subject: [PATCH 11/15] Add use_sim_time launch param --- launch/turtlebot_in_flatland.launch.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/launch/turtlebot_in_flatland.launch.py b/launch/turtlebot_in_flatland.launch.py index 09e2d00..a605fd7 100644 --- a/launch/turtlebot_in_flatland.launch.py +++ b/launch/turtlebot_in_flatland.launch.py @@ -7,6 +7,7 @@ def generate_launch_description(): + #pkg_share = get_package_share_directory("turtlebot_flatland") pkg_share = FindPackageShare("turtlebot_flatland") global_frame_id = LaunchConfiguration("global_frame_id") @@ -18,6 +19,7 @@ def generate_launch_description(): step_size = LaunchConfiguration("step_size") show_viz = LaunchConfiguration("show_viz") viz_pub_rate = LaunchConfiguration("viz_pub_rate") + use_sim_time = LaunchConfiguration("use_sim_time") ld = LaunchDescription( [ @@ -44,6 +46,7 @@ def generate_launch_description(): DeclareLaunchArgument(name="step_size", default_value="0.01"), DeclareLaunchArgument(name="show_viz", default_value="true"), DeclareLaunchArgument(name="viz_pub_rate", default_value="30.0"), + DeclareLaunchArgument(name="use_sim_time", default_value="true"), SetEnvironmentVariable(name="ROSCONSOLE_FORMAT", value="[${severity} ${time} ${logger}]: ${message}"), @@ -60,7 +63,7 @@ def generate_launch_description(): {"step_size": step_size}, {"show_viz": show_viz}, {"viz_pub_rate": viz_pub_rate}, - {"use_sim_time": True}, + {"use_sim_time": use_sim_time}, ], ), @@ -116,10 +119,8 @@ def generate_launch_description(): name="rviz", package="rviz2", executable="rviz2", - arguments=[ - "-d", - PathJoinSubstitution([pkg_share, "rviz/robot_navigation.rviz"]) - ], + arguments=["-d", PathJoinSubstitution([pkg_share, "rviz/robot_navigation.rviz"])], + parameters=[{"use_sim_time": use_sim_time}], condition=conditions.IfCondition(show_viz), ), ] From 0222c6b27ef237a17cfa015960de1b768c63453b Mon Sep 17 00:00:00 2001 From: JoaoCostaIFG Date: Tue, 29 Nov 2022 23:13:49 +0000 Subject: [PATCH 12/15] Fix world layer not showing up. --- rviz/robot_navigation.rviz | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/rviz/robot_navigation.rviz b/rviz/robot_navigation.rviz index 045a5c2..062cc85 100644 --- a/rviz/robot_navigation.rviz +++ b/rviz/robot_navigation.rviz @@ -371,6 +371,10 @@ Visualization Manager: Enabled: true Topic: Value: /layers/l_2d + Depth: 1 + History Policy: Keep Last + Reliability Policy: Reliable + Durability Policy: Transient Local Name: World Namespaces: "": true From 60971549108a97dc445a385e84a9d928415bea28 Mon Sep 17 00:00:00 2001 From: JoaoCostaIFG Date: Tue, 29 Nov 2022 23:31:27 +0000 Subject: [PATCH 13/15] Make the initial pose on the turtlebot use the given pose params. --- launch/turtlebot_in_flatland.launch.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/launch/turtlebot_in_flatland.launch.py b/launch/turtlebot_in_flatland.launch.py index a605fd7..e149f7f 100644 --- a/launch/turtlebot_in_flatland.launch.py +++ b/launch/turtlebot_in_flatland.launch.py @@ -14,6 +14,10 @@ def generate_launch_description(): min_obstacle_height = LaunchConfiguration("min_obstacle_height") max_obstacle_height = LaunchConfiguration("max_obstacle_height") + initial_pose_x = LaunchConfiguration("initial_pose_x") + initial_pose_y = LaunchConfiguration("initial_pose_y") + initial_pose_a = LaunchConfiguration("initial_pose_a") + world_path = LaunchConfiguration("world_path") update_rate = LaunchConfiguration("update_rate") step_size = LaunchConfiguration("step_size") @@ -75,7 +79,9 @@ def generate_launch_description(): "call ", "/spawn_model ", "flatland_msgs/srv/SpawnModel ", - "\"{yaml_path: '", PathJoinSubstitution([pkg_share, 'robot/turtlebot.model.yaml']), "', name: 'turtlebot0', ns: '', pose: {x: 3.0, y: 7.0, theta: 0.0}}\"", + "\"{yaml_path: '", PathJoinSubstitution([pkg_share, 'robot/turtlebot.model.yaml']), + "', name: 'turtlebot0', ns: '', pose: ", + "{x: ", initial_pose_x, ", y: ", initial_pose_y, ", theta: ", initial_pose_a, "}}\"", ]], shell=True, ), From 2ffee82ea27a27d714b305e1f135334d36e400e0 Mon Sep 17 00:00:00 2001 From: JoaoCostaIFG Date: Wed, 30 Nov 2022 20:43:42 +0000 Subject: [PATCH 14/15] Use new flatland rviz plugins. --- rviz/robot_navigation.rviz | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/rviz/robot_navigation.rviz b/rviz/robot_navigation.rviz index 062cc85..91b8762 100644 --- a/rviz/robot_navigation.rviz +++ b/rviz/robot_navigation.rviz @@ -454,8 +454,10 @@ Visualization Manager: Name: root Tools: - Class: rviz_default_plugins/MoveCamera - - Class: rviz_default_plugins/Interact + - Class: flatland_rviz_plugins/Interact Hide Inactive Objects: true + - Class: flatland_rviz_plugins/TogglePause + - Class: flatland_rviz_plugins/SpawnModel - Class: rviz_default_plugins/Select - Class: rviz_default_plugins/SetInitialPose Topic: /initialpose From 67a6a1d71044493f38566d604ae75b360fb76475 Mon Sep 17 00:00:00 2001 From: JoaoCostaIFG Date: Mon, 12 Dec 2022 21:07:45 +0000 Subject: [PATCH 15/15] Add change rate tool to sample rviz file --- rviz/robot_navigation.rviz | 1 + 1 file changed, 1 insertion(+) diff --git a/rviz/robot_navigation.rviz b/rviz/robot_navigation.rviz index 91b8762..32b247a 100644 --- a/rviz/robot_navigation.rviz +++ b/rviz/robot_navigation.rviz @@ -458,6 +458,7 @@ Visualization Manager: Hide Inactive Objects: true - Class: flatland_rviz_plugins/TogglePause - Class: flatland_rviz_plugins/SpawnModel + - Class: flatland_rviz_plugins/ChangeRate - Class: rviz_default_plugins/Select - Class: rviz_default_plugins/SetInitialPose Topic: /initialpose