11from launch import LaunchDescription
22from launch_ros .actions import Node
3+ from launch_ros .actions import LifecycleNode
34import launch_testing .actions
5+ from ament_index_python .packages import get_package_share_directory
6+ import os
7+
48
59def generate_launch_description ():
10+ controller_yaml = os .path .join (
11+ get_package_share_directory ('navigation' ),
12+ 'config' ,
13+ 'controller_server.yaml'
14+ )
15+ behavior_yaml = os .path .join (
16+ get_package_share_directory ('navigation' ),
17+ 'config' ,
18+ 'behavior_server.yaml'
19+ )
20+ map_yaml = os .path .join (
21+ get_package_share_directory ('navigation' ),
22+ 'maps' ,
23+ 'empty.yml'
24+ )
625 nodes = [
7- Node (
26+ LifecycleNode (
827 package = 'nav2_bt_navigator' ,
928 executable = 'bt_navigator' ,
1029 name = 'bt_navigator' ,
30+ namespace = '' ,
1131 parameters = [{'use_sim_time' : False }],
1232 ),
13- Node (
33+ LifecycleNode (
1434 package = 'nav2_planner' ,
1535 executable = 'planner_server' ,
1636 name = 'planner_server' ,
37+ namespace = '' ,
1738 parameters = [{'use_sim_time' : False }],
1839 ),
19- Node (
40+ LifecycleNode (
2041 package = 'nav2_controller' ,
2142 executable = 'controller_server' ,
2243 name = 'controller_server' ,
23- parameters = [{'use_sim_time' : False }],
44+ namespace = '' ,
45+ parameters = [controller_yaml ],
2446 ),
25- Node (
47+ LifecycleNode (
2648 package = 'nav2_map_server' ,
2749 executable = 'map_server' ,
2850 name = 'map_server' ,
51+ namespace = '' ,
2952 parameters = [{
30- 'yaml_filename' : '../maps/empty.yml' ,
53+ 'yaml_filename' : map_yaml ,
3154 'use_sim_time' : False
3255 }],
3356 ),
@@ -43,7 +66,44 @@ def generate_launch_description():
4366 name = 'navigation_node' ,
4467 output = 'screen' ,
4568 parameters = [{'use_sim_time' : False }]
46- )
69+ ),
70+ Node (
71+ package = 'tf2_ros' ,
72+ executable = 'static_transform_publisher' ,
73+ name = 'static_map_to_odom' ,
74+ arguments = ['0' , '0' , '0' , '0' , '0' , '0' , 'map' , 'odom' ]
75+ ),
76+ Node (
77+ package = 'tf2_ros' ,
78+ executable = 'static_transform_publisher' ,
79+ name = 'static_tf_map_to_base_link' ,
80+ arguments = ['0' , '0' , '0' , '0' , '0' , '0' , 'map' , 'base_link' ],
81+ output = 'screen'
82+ ),
83+ LifecycleNode (
84+ package = 'nav2_behaviors' ,
85+ executable = 'behavior_server' ,
86+ name = 'behavior_server' ,
87+ namespace = '' ,
88+ output = 'screen' ,
89+ parameters = [behavior_yaml ],
90+ ),
91+ Node (
92+ package = 'nav2_lifecycle_manager' ,
93+ executable = 'lifecycle_manager' ,
94+ name = 'lifecycle_manager_navigation' ,
95+ output = 'screen' ,
96+ parameters = [{
97+ 'autostart' : True ,
98+ 'node_names' : [
99+ 'map_server' ,
100+ 'controller_server' ,
101+ 'planner_server' ,
102+ 'behavior_server' ,
103+ 'bt_navigator' ,
104+ ]
105+ }]
106+ ),
47107 ]
48108
49109 return LaunchDescription (nodes + [
0 commit comments