|
20 | 20 | from launch.actions import DeclareLaunchArgument, GroupAction, SetEnvironmentVariable |
21 | 21 | from launch.conditions import IfCondition |
22 | 22 | from launch.substitutions import LaunchConfiguration, PythonExpression |
23 | | -from launch_ros.actions import LoadComposableNodes |
| 23 | +from launch_ros.actions import LoadComposableNodes, SetParameter |
24 | 24 | from launch_ros.actions import Node |
25 | 25 | from launch_ros.descriptions import ComposableNode |
26 | 26 | from nav2_common.launch import RewrittenYaml |
@@ -58,14 +58,13 @@ def generate_launch_description(): |
58 | 58 |
|
59 | 59 | # Create our own temporary YAML files that include substitutions |
60 | 60 | param_substitutions = { |
61 | | - 'use_sim_time': use_sim_time, |
62 | 61 | 'autostart': autostart} |
63 | 62 |
|
64 | 63 | configured_params = RewrittenYaml( |
65 | | - source_file=params_file, |
66 | | - root_key=namespace, |
67 | | - param_rewrites=param_substitutions, |
68 | | - convert_types=True) |
| 64 | + source_file=params_file, |
| 65 | + root_key=namespace, |
| 66 | + param_rewrites=param_substitutions, |
| 67 | + convert_types=True) |
69 | 68 |
|
70 | 69 | stdout_linebuf_envvar = SetEnvironmentVariable( |
71 | 70 | 'RCUTILS_LOGGING_BUFFERED_STREAM', '1') |
@@ -108,6 +107,7 @@ def generate_launch_description(): |
108 | 107 | load_nodes = GroupAction( |
109 | 108 | condition=IfCondition(PythonExpression(['not ', use_composition])), |
110 | 109 | actions=[ |
| 110 | + SetParameter("use_sim_time", use_sim_time), |
111 | 111 | Node( |
112 | 112 | package='nav2_controller', |
113 | 113 | executable='controller_server', |
@@ -184,67 +184,70 @@ def generate_launch_description(): |
184 | 184 | name='lifecycle_manager_navigation', |
185 | 185 | output='screen', |
186 | 186 | arguments=['--ros-args', '--log-level', log_level], |
187 | | - parameters=[{'use_sim_time': use_sim_time}, |
188 | | - {'autostart': autostart}, |
| 187 | + parameters=[{'autostart': autostart}, |
189 | 188 | {'node_names': lifecycle_nodes}]), |
190 | 189 | ] |
191 | 190 | ) |
192 | 191 |
|
193 | | - load_composable_nodes = LoadComposableNodes( |
| 192 | + load_composable_nodes = GroupAction( |
194 | 193 | condition=IfCondition(use_composition), |
195 | | - target_container=container_name, |
196 | | - composable_node_descriptions=[ |
197 | | - ComposableNode( |
198 | | - package='nav2_controller', |
199 | | - plugin='nav2_controller::ControllerServer', |
200 | | - name='controller_server', |
201 | | - parameters=[configured_params], |
202 | | - remappings=remappings + [('cmd_vel', 'cmd_vel_nav')]), |
203 | | - ComposableNode( |
204 | | - package='nav2_smoother', |
205 | | - plugin='nav2_smoother::SmootherServer', |
206 | | - name='smoother_server', |
207 | | - parameters=[configured_params], |
208 | | - remappings=remappings), |
209 | | - ComposableNode( |
210 | | - package='nav2_planner', |
211 | | - plugin='nav2_planner::PlannerServer', |
212 | | - name='planner_server', |
213 | | - parameters=[configured_params], |
214 | | - remappings=remappings), |
215 | | - ComposableNode( |
216 | | - package='nav2_behaviors', |
217 | | - plugin='behavior_server::BehaviorServer', |
218 | | - name='behavior_server', |
219 | | - parameters=[configured_params], |
220 | | - remappings=remappings), |
221 | | - ComposableNode( |
222 | | - package='nav2_bt_navigator', |
223 | | - plugin='nav2_bt_navigator::BtNavigator', |
224 | | - name='bt_navigator', |
225 | | - parameters=[configured_params], |
226 | | - remappings=remappings), |
227 | | - ComposableNode( |
228 | | - package='nav2_waypoint_follower', |
229 | | - plugin='nav2_waypoint_follower::WaypointFollower', |
230 | | - name='waypoint_follower', |
231 | | - parameters=[configured_params], |
232 | | - remappings=remappings), |
233 | | - ComposableNode( |
234 | | - package='nav2_velocity_smoother', |
235 | | - plugin='nav2_velocity_smoother::VelocitySmoother', |
236 | | - name='velocity_smoother', |
237 | | - parameters=[configured_params], |
238 | | - remappings=remappings + |
239 | | - [('cmd_vel', 'cmd_vel_nav'), ('cmd_vel_smoothed', 'cmd_vel')]), |
240 | | - ComposableNode( |
241 | | - package='nav2_lifecycle_manager', |
242 | | - plugin='nav2_lifecycle_manager::LifecycleManager', |
243 | | - name='lifecycle_manager_navigation', |
244 | | - parameters=[{'use_sim_time': use_sim_time, |
245 | | - 'autostart': autostart, |
246 | | - 'node_names': lifecycle_nodes}]), |
247 | | - ], |
| 194 | + actions=[ |
| 195 | + SetParameter("use_sim_time", use_sim_time), |
| 196 | + LoadComposableNodes( |
| 197 | + target_container=container_name, |
| 198 | + composable_node_descriptions=[ |
| 199 | + ComposableNode( |
| 200 | + package='nav2_controller', |
| 201 | + plugin='nav2_controller::ControllerServer', |
| 202 | + name='controller_server', |
| 203 | + parameters=[configured_params], |
| 204 | + remappings=remappings + [('cmd_vel', 'cmd_vel_nav')]), |
| 205 | + ComposableNode( |
| 206 | + package='nav2_smoother', |
| 207 | + plugin='nav2_smoother::SmootherServer', |
| 208 | + name='smoother_server', |
| 209 | + parameters=[configured_params], |
| 210 | + remappings=remappings), |
| 211 | + ComposableNode( |
| 212 | + package='nav2_planner', |
| 213 | + plugin='nav2_planner::PlannerServer', |
| 214 | + name='planner_server', |
| 215 | + parameters=[configured_params], |
| 216 | + remappings=remappings), |
| 217 | + ComposableNode( |
| 218 | + package='nav2_behaviors', |
| 219 | + plugin='behavior_server::BehaviorServer', |
| 220 | + name='behavior_server', |
| 221 | + parameters=[configured_params], |
| 222 | + remappings=remappings), |
| 223 | + ComposableNode( |
| 224 | + package='nav2_bt_navigator', |
| 225 | + plugin='nav2_bt_navigator::BtNavigator', |
| 226 | + name='bt_navigator', |
| 227 | + parameters=[configured_params], |
| 228 | + remappings=remappings), |
| 229 | + ComposableNode( |
| 230 | + package='nav2_waypoint_follower', |
| 231 | + plugin='nav2_waypoint_follower::WaypointFollower', |
| 232 | + name='waypoint_follower', |
| 233 | + parameters=[configured_params], |
| 234 | + remappings=remappings), |
| 235 | + ComposableNode( |
| 236 | + package='nav2_velocity_smoother', |
| 237 | + plugin='nav2_velocity_smoother::VelocitySmoother', |
| 238 | + name='velocity_smoother', |
| 239 | + parameters=[configured_params], |
| 240 | + remappings=remappings + |
| 241 | + [('cmd_vel', 'cmd_vel_nav'), ('cmd_vel_smoothed', 'cmd_vel')]), |
| 242 | + ComposableNode( |
| 243 | + package='nav2_lifecycle_manager', |
| 244 | + plugin='nav2_lifecycle_manager::LifecycleManager', |
| 245 | + name='lifecycle_manager_navigation', |
| 246 | + parameters=[{'autostart': autostart, |
| 247 | + 'node_names': lifecycle_nodes}]), |
| 248 | + ], |
| 249 | + ) |
| 250 | + ] |
248 | 251 | ) |
249 | 252 |
|
250 | 253 | # Create the launch description and populate |
|
0 commit comments