Carma-platform v4.11.0
CARMA Platform is built on robot operating system (ROS) and utilizes open source software (OSS) that enables Cooperative Driving Automation (CDA) features to allow Automated Driving Systems to interact and cooperate with infrastructure and other vehicles through communication.
plugins Namespace Reference

Functions

def generate_launch_description ()
 

Function Documentation

◆ generate_launch_description()

def plugins.generate_launch_description ( )

Definition at line 36 of file plugins.launch.py.

37
38 route_file_folder = LaunchConfiguration('route_file_folder')
39 vehicle_calibration_dir = LaunchConfiguration('vehicle_calibration_dir')
40 vehicle_characteristics_param_file = LaunchConfiguration('vehicle_characteristics_param_file')
41 enable_guidance_plugin_validator = LaunchConfiguration('enable_guidance_plugin_validator')
42 strategic_plugins_to_validate = LaunchConfiguration('strategic_plugins_to_validate')
43 tactical_plugins_to_validate = LaunchConfiguration('tactical_plugins_to_validate')
44 control_plugins_to_validate = LaunchConfiguration('control_plugins_to_validate')
45
46 vehicle_config_param_file = LaunchConfiguration('vehicle_config_param_file')
47
48 vehicle_config_dir = LaunchConfiguration('vehicle_config_dir')
49 declare_vehicle_config_dir_arg = DeclareLaunchArgument(
50 name = 'vehicle_config_dir',
51 default_value = "/opt/carma/vehicle/config",
52 description = "Path to vehicle configuration directory populated by carma-config"
53 )
54
55 # Declare the global_params_override_file launch argument
56 # Parameters in this file will override any parameters loaded in their respective packages
57 global_params_override_file = LaunchConfiguration('global_params_override_file')
58 declare_global_params_override_file_arg = DeclareLaunchArgument(
59 name = 'global_params_override_file',
60 default_value = [vehicle_config_dir, "/GlobalParamsOverride.yaml"],
61 description = "Path to global file containing the parameters overwrite"
62 )
63
64 inlanecruising_plugin_file_path = os.path.join(
65 get_package_share_directory('inlanecruising_plugin'), 'config/parameters.yaml')
66
67 route_following_plugin_file_path = os.path.join(
68 get_package_share_directory('route_following_plugin'), 'config/parameters.yaml')
69
70 stop_and_wait_plugin_param_file = os.path.join(
71 get_package_share_directory('stop_and_wait_plugin'), 'config/parameters.yaml')
72
73 light_controlled_intersection_tactical_plugin_param_file = os.path.join(
74 get_package_share_directory('light_controlled_intersection_tactical_plugin'), 'config/parameters.yaml')
75
76 cooperative_lanechange_param_file = os.path.join(
77 get_package_share_directory('cooperative_lanechange'), 'config/parameters.yaml')
78
79 platooning_strategic_ihp_param_file = os.path.join(
80 get_package_share_directory('platooning_strategic_ihp'), 'config/parameters.yaml')
81
82 sci_strategic_plugin_file_path = os.path.join(
83 get_package_share_directory('sci_strategic_plugin'), 'config/parameters.yaml')
84
85 lci_strategic_plugin_file_path = os.path.join(
86 get_package_share_directory('lci_strategic_plugin'), 'config/parameters.yaml')
87
88 stop_and_dwell_strategic_plugin_container_file_path = os.path.join(
89 get_package_share_directory('stop_and_dwell_strategic_plugin'), 'config/parameters.yaml')
90
91 yield_plugin_file_path = os.path.join(
92 get_package_share_directory('yield_plugin'), 'config/parameters.yaml')
93
94 platoon_tactical_ihp_param_file = os.path.join(
95 get_package_share_directory('platooning_tactical_plugin'), 'config/parameters.yaml')
96
97 approaching_emergency_vehicle_plugin_param_file = os.path.join(
98 get_package_share_directory('approaching_emergency_vehicle_plugin'), 'config/parameters.yaml')
99
100 stop_controlled_intersection_tactical_plugin_file_path = os.path.join(
101 get_package_share_directory('stop_controlled_intersection_tactical_plugin'), 'config/parameters.yaml')
102
103 trajectory_follower_wrapper_param_file = os.path.join(
104 get_package_share_directory('trajectory_follower_wrapper'), 'config/parameters.yaml')
105
106 pure_pursuit_tuning_parameters = [vehicle_calibration_dir, "/pure_pursuit/calibration.yaml"]
107
108 unique_vehicle_calibration_params = [vehicle_calibration_dir, "/identifiers/UniqueVehicleParams.yaml"]
109
110 platooning_control_param_file = os.path.join(
111 get_package_share_directory('platooning_control'), 'config/parameters.yaml')
112
113 carma_inlanecruising_plugin_container = ComposableNodeContainer(
114 package='carma_ros2_utils',
115 name='carma_lainlanecruising_plugin_container',
116 executable='carma_component_container_mt',
117 namespace=GetCurrentNamespace(),
118 composable_node_descriptions=[
119 ComposableNode(
120 package='inlanecruising_plugin',
121 plugin='inlanecruising_plugin::InLaneCruisingPluginNode',
122 name='inlanecruising_plugin',
123 extra_arguments=[
124 {'use_intra_process_comms': True},
125 ],
126 remappings = [
127 ("semantic_map", [ EnvironmentVariable('CARMA_ENV_NS', default_value=''), "/semantic_map" ] ),
128 ("map_update", [ EnvironmentVariable('CARMA_ENV_NS', default_value=''), "/map_update" ] ),
129 ("roadway_objects", [ EnvironmentVariable('CARMA_ENV_NS', default_value=''), "/roadway_objects" ] ),
130 ("incoming_spat", [ EnvironmentVariable('CARMA_MSG_NS', default_value=''), "/incoming_spat" ] ),
131 ("plugin_discovery", [ EnvironmentVariable('CARMA_GUIDE_NS', default_value=''), "/plugin_discovery" ] ),
132 ("route", [ EnvironmentVariable('CARMA_GUIDE_NS', default_value=''), "/route" ] ),
133 ],
134 parameters=[
135 inlanecruising_plugin_file_path,
136 vehicle_config_param_file,
137 global_params_override_file
138 ]
139 ),
140 ]
141 )
142
143 carma_route_following_plugin_container = ComposableNodeContainer(
144 package='carma_ros2_utils',
145 name='carma_route_following_plugin_container',
146 executable='carma_component_container_mt',
147 namespace=GetCurrentNamespace(),
148 composable_node_descriptions=[
149
150 ComposableNode(
151 package='route_following_plugin',
152 plugin='route_following_plugin::RouteFollowingPlugin',
153 name='route_following_plugin',
154 extra_arguments=[
155 {'use_intra_process_comms': True},
156 ],
157 remappings = [
158 ("semantic_map", [ EnvironmentVariable('CARMA_ENV_NS', default_value=''), "/semantic_map" ] ),
159 ("map_update", [ EnvironmentVariable('CARMA_ENV_NS', default_value=''), "/map_update" ] ),
160 ("roadway_objects", [ EnvironmentVariable('CARMA_ENV_NS', default_value=''), "/roadway_objects" ] ),
161 ("incoming_spat", [ EnvironmentVariable('CARMA_MSG_NS', default_value=''), "/incoming_spat" ] ),
162 ("plugin_discovery", [ EnvironmentVariable('CARMA_GUIDE_NS', default_value=''), "/plugin_discovery" ] ),
163 ("route", [ EnvironmentVariable('CARMA_GUIDE_NS', default_value=''), "/route" ] ),
164 ("current_velocity", [ EnvironmentVariable('CARMA_INTR_NS', default_value=''), "/vehicle/twist" ] ),
165 ("maneuver_plan", [ EnvironmentVariable('CARMA_GUIDE_NS', default_value=''), "/final_maneuver_plan" ] ),
166 ],
167 parameters=[
168 route_following_plugin_file_path,
169 vehicle_config_param_file,
170 global_params_override_file
171 ]
172 ),
173 ]
174 )
175
176 carma_approaching_emergency_vehicle_plugin_container = ComposableNodeContainer(
177 package='carma_ros2_utils',
178 name='carma_approaching_emergency_vehicle_plugin_container',
179 executable='carma_component_container_mt',
180 namespace=GetCurrentNamespace(),
181 composable_node_descriptions=[
182
183 ComposableNode(
184 package='approaching_emergency_vehicle_plugin',
185 plugin='approaching_emergency_vehicle_plugin::ApproachingEmergencyVehiclePlugin',
186 name='approaching_emergency_vehicle_plugin',
187 extra_arguments=[
188 {'use_intra_process_comms': True},
189 ],
190 remappings = [
191 ("semantic_map", [ EnvironmentVariable('CARMA_ENV_NS', default_value=''), "/semantic_map" ] ),
192 ("map_update", [ EnvironmentVariable('CARMA_ENV_NS', default_value=''), "/map_update" ] ),
193 ("roadway_objects", [ EnvironmentVariable('CARMA_ENV_NS', default_value=''), "/roadway_objects" ] ),
194 ("incoming_spat", [ EnvironmentVariable('CARMA_MSG_NS', default_value=''), "/incoming_spat" ] ),
195 ("plugin_discovery", [ EnvironmentVariable('CARMA_GUIDE_NS', default_value=''), "/plugin_discovery" ] ),
196 ("route", [ EnvironmentVariable('CARMA_GUIDE_NS', default_value=''), "/route" ] ),
197 ("state", [ EnvironmentVariable('CARMA_GUIDE_NS', default_value=''), "/state" ] ),
198 ("approaching_erv_status", [ EnvironmentVariable('CARMA_GUIDE_NS', default_value=''), "/approaching_erv_status" ] ),
199 ("hazard_light_status", [ EnvironmentVariable('CARMA_INTR_NS', default_value=''), "/hazard_light_status" ] ),
200 ("current_velocity", [ EnvironmentVariable('CARMA_INTR_NS', default_value=''), "/vehicle/twist" ] ),
201 ("incoming_bsm", [ EnvironmentVariable('CARMA_MSG_NS', default_value=''), "/incoming_bsm" ] ),
202 ("georeference", [ EnvironmentVariable('CARMA_LOCZ_NS', default_value=''), "/map_param_loader/georeference" ] ),
203 ("route_state", [ EnvironmentVariable('CARMA_GUIDE_NS', default_value=''), "/route_state" ] ),
204 ("outgoing_emergency_vehicle_response", [ EnvironmentVariable('CARMA_MSG_NS', default_value=''), "/outgoing_emergency_vehicle_response" ] ),
205 ("incoming_emergency_vehicle_ack", [ EnvironmentVariable('CARMA_MSG_NS', default_value=''), "/incoming_emergency_vehicle_ack" ])
206 ],
207 parameters=[
208 approaching_emergency_vehicle_plugin_param_file,
209 vehicle_characteristics_param_file,
210 vehicle_config_param_file,
211 global_params_override_file
212 ]
213 ),
214 ]
215 )
216
217 carma_stop_and_wait_plugin_container = ComposableNodeContainer(
218 package='carma_ros2_utils',
219 name='carma_stop_and_wait_plugin_container',
220 executable='carma_component_container_mt',
221 namespace=GetCurrentNamespace(),
222 composable_node_descriptions=[
223
224 ComposableNode(
225 package='stop_and_wait_plugin',
226 plugin='stop_and_wait_plugin::StopandWaitNode',
227 name='stop_and_wait_plugin',
228 extra_arguments=[
229 {'use_intra_process_comms': True},
230 ],
231 remappings = [
232 ("semantic_map", [ EnvironmentVariable('CARMA_ENV_NS', default_value=''), "/semantic_map" ] ),
233 ("map_update", [ EnvironmentVariable('CARMA_ENV_NS', default_value=''), "/map_update" ] ),
234 ("roadway_objects", [ EnvironmentVariable('CARMA_ENV_NS', default_value=''), "/roadway_objects" ] ),
235 ("incoming_spat", [ EnvironmentVariable('CARMA_MSG_NS', default_value=''), "/incoming_spat" ] ),
236 ("plugin_discovery", [ EnvironmentVariable('CARMA_GUIDE_NS', default_value=''), "/plugin_discovery" ] ),
237 ("route", [ EnvironmentVariable('CARMA_GUIDE_NS', default_value=''), "/route" ] ),
238 ],
239 parameters=[
240 stop_and_wait_plugin_param_file,
241 vehicle_config_param_file,
242 global_params_override_file
243 ]
244 ),
245 ]
246 )
247
248 carma_sci_strategic_plugin_container = ComposableNodeContainer(
249 package='carma_ros2_utils',
250 name='carma_sci_strategic_plugin_container',
251 executable='carma_component_container_mt',
252 namespace=GetCurrentNamespace(),
253 composable_node_descriptions=[
254 ComposableNode(
255 package='sci_strategic_plugin',
256 plugin='sci_strategic_plugin::SCIStrategicPlugin',
257 name='sci_strategic_plugin',
258 extra_arguments=[
259 {'use_intra_process_comms': True},
260 ],
261 remappings = [
262 ("semantic_map", [ EnvironmentVariable('CARMA_ENV_NS', default_value=''), "/semantic_map" ] ),
263 ("map_update", [ EnvironmentVariable('CARMA_ENV_NS', default_value=''), "/map_update" ] ),
264 ("roadway_objects", [ EnvironmentVariable('CARMA_ENV_NS', default_value=''), "/roadway_objects" ] ),
265 ("incoming_spat", [ EnvironmentVariable('CARMA_MSG_NS', default_value=''), "/incoming_spat" ] ),
266 ("plugin_discovery", [ EnvironmentVariable('CARMA_GUIDE_NS', default_value=''), "/plugin_discovery" ] ),
267 ("route", [ EnvironmentVariable('CARMA_GUIDE_NS', default_value=''), "/route" ] ),
268 ("maneuver_plan", [ EnvironmentVariable('CARMA_GUIDE_NS', default_value=''), "/final_maneuver_plan" ] ),
269 ("outgoing_mobility_operation", [ EnvironmentVariable('CARMA_MSG_NS', default_value=''), "/outgoing_mobility_operation" ] ),
270 ("incoming_mobility_operation", [ EnvironmentVariable('CARMA_MSG_NS', default_value=''), "/incoming_mobility_operation" ] ),
271 ("bsm_outbound", [ EnvironmentVariable('CARMA_MSG_NS', default_value=''), "/bsm_outbound" ] ),
272 ("current_pose", [ EnvironmentVariable('CARMA_LOCZ_NS', default_value=''), "/current_pose" ] ),
273 ],
274 parameters=[
275 sci_strategic_plugin_file_path,
276 vehicle_config_param_file,
277 global_params_override_file
278 ]
279 ),
280 ]
281 )
282
283 carma_lci_strategic_plugin_container = ComposableNodeContainer(
284 package='carma_ros2_utils',
285 name='carma_lci_strategic_plugin_container',
286 executable='carma_component_container_mt',
287 namespace=GetCurrentNamespace(),
288 composable_node_descriptions=[
289 ComposableNode(
290 package='lci_strategic_plugin',
291 plugin='lci_strategic_plugin::LCIStrategicPlugin',
292 name='lci_strategic_plugin',
293 extra_arguments=[
294 {'use_intra_process_comms': True},
295 ],
296 remappings = [
297 ("semantic_map", [ EnvironmentVariable('CARMA_ENV_NS', default_value=''), "/semantic_map" ] ),
298 ("map_update", [ EnvironmentVariable('CARMA_ENV_NS', default_value=''), "/map_update" ] ),
299 ("roadway_objects", [ EnvironmentVariable('CARMA_ENV_NS', default_value=''), "/roadway_objects" ] ),
300 ("incoming_spat", [ EnvironmentVariable('CARMA_MSG_NS', default_value=''), "/incoming_spat" ] ),
301 ("plugin_discovery", [ EnvironmentVariable('CARMA_GUIDE_NS', default_value=''), "/plugin_discovery" ] ),
302 ("route", [ EnvironmentVariable('CARMA_GUIDE_NS', default_value=''), "/route" ] ),
303 ("maneuver_plan", [ EnvironmentVariable('CARMA_GUIDE_NS', default_value=''), "/final_maneuver_plan" ] ),
304 ("outgoing_mobility_operation", [ EnvironmentVariable('CARMA_MSG_NS', default_value=''), "/outgoing_mobility_operation" ] ),
305 ("incoming_mobility_operation", [ EnvironmentVariable('CARMA_MSG_NS', default_value=''), "/incoming_mobility_operation" ] ),
306 ("bsm_outbound", [ EnvironmentVariable('CARMA_MSG_NS', default_value=''), "/bsm_outbound" ] ),
307 ],
308 parameters=[
309 lci_strategic_plugin_file_path,
310 vehicle_config_param_file,
311 unique_vehicle_calibration_params,
312 global_params_override_file
313 ]
314 ),
315 ]
316 )
317
318 carma_stop_controlled_intersection_tactical_plugin_container = ComposableNodeContainer(
319 package='carma_ros2_utils',
320 name='carma_stop_controlled_intersection_tactical_plugin_container',
321 executable='carma_component_container_mt',
322 namespace=GetCurrentNamespace(),
323 composable_node_descriptions=[
324 ComposableNode(
325 package='stop_controlled_intersection_tactical_plugin',
326 plugin='stop_controlled_intersection_tactical_plugin::StopControlledIntersectionTacticalPlugin',
327 name='stop_controlled_intersection_tactical_plugin',
328 extra_arguments=[
329 {'use_intra_process_comms': True},
330 ],
331 remappings = [
332 ("semantic_map", [ EnvironmentVariable('CARMA_ENV_NS', default_value=''), "/semantic_map" ] ),
333 ("map_update", [ EnvironmentVariable('CARMA_ENV_NS', default_value=''), "/map_update" ] ),
334 ("roadway_objects", [ EnvironmentVariable('CARMA_ENV_NS', default_value=''), "/roadway_objects" ] ),
335 ("incoming_spat", [ EnvironmentVariable('CARMA_MSG_NS', default_value=''), "/incoming_spat" ] ),
336 ("plugin_discovery", [ EnvironmentVariable('CARMA_GUIDE_NS', default_value=''), "/plugin_discovery" ] ),
337 ("route", [ EnvironmentVariable('CARMA_GUIDE_NS', default_value=''), "/route" ] )
338 ],
339 parameters=[
340 stop_controlled_intersection_tactical_plugin_file_path,
341 vehicle_config_param_file,
342 global_params_override_file
343 ]
344 ),
345 ]
346 )
347
348 carma_cooperative_lanechange_plugins_container = ComposableNodeContainer(
349 package='carma_ros2_utils',
350 name='carma_cooperative_lanechange_plugins_container',
351 executable='carma_component_container_mt',
352 namespace=GetCurrentNamespace(),
353 composable_node_descriptions=[
354 ComposableNode(
355 package='cooperative_lanechange',
356 plugin='cooperative_lanechange::CooperativeLaneChangePlugin',
357 name='cooperative_lanechange',
358 extra_arguments=[
359 {'use_intra_process_comms': True},
360 ],
361 remappings = [
362 ("semantic_map", [ EnvironmentVariable('CARMA_ENV_NS', default_value=''), "/semantic_map" ] ),
363 ("map_update", [ EnvironmentVariable('CARMA_ENV_NS', default_value=''), "/map_update" ] ),
364 ("roadway_objects", [ EnvironmentVariable('CARMA_ENV_NS', default_value=''), "/roadway_objects" ] ),
365 ("incoming_spat", [ EnvironmentVariable('CARMA_MSG_NS', default_value=''), "/incoming_spat" ] ),
366 ("plugin_discovery", [ EnvironmentVariable('CARMA_GUIDE_NS', default_value=''), "/plugin_discovery" ] ),
367 ("route", [ EnvironmentVariable('CARMA_GUIDE_NS', default_value=''), "/route" ] ),
368 ("current_velocity", [ EnvironmentVariable('CARMA_INTR_NS', default_value=''), "/vehicle/twist" ] ),
369 ("cooperative_lane_change_status", [ EnvironmentVariable('CARMA_GUIDE_NS', default_value=''), "/cooperative_lane_change_status" ] ),
370 ("bsm_outbound", [ EnvironmentVariable('CARMA_MSG_NS', default_value=''), "/bsm_outbound" ] ),
371 ("outgoing_mobility_request", [ EnvironmentVariable('CARMA_MSG_NS', default_value=''), "/outgoing_mobility_request" ] ),
372 ("incoming_mobility_response", [ EnvironmentVariable('CARMA_MSG_NS', default_value=''), "/incoming_mobility_response" ] ),
373 ("georeference", [ EnvironmentVariable('CARMA_LOCZ_NS', default_value=''), "/map_param_loader/georeference" ] ),
374 ("current_pose", [ EnvironmentVariable('CARMA_LOCZ_NS', default_value=''), "/current_pose" ] )
375 ],
376 parameters=[
377 cooperative_lanechange_param_file,
378 vehicle_characteristics_param_file,
379 vehicle_config_param_file,
380 global_params_override_file
381 ]
382 ),
383 ]
384 )
385
386 carma_yield_plugin_container = ComposableNodeContainer(
387 package='carma_ros2_utils',
388 name='carma_yield_plugin_container',
389 executable='carma_component_container_mt',
390 namespace=GetCurrentNamespace(),
391 composable_node_descriptions=[
392 ComposableNode(
393 package='yield_plugin',
394 plugin='yield_plugin::YieldPluginNode',
395 name='yield_plugin',
396 extra_arguments=[
397 {'use_intra_process_comms': True},
398 ],
399 remappings = [
400 ("semantic_map", [ EnvironmentVariable('CARMA_ENV_NS', default_value=''), "/semantic_map" ] ),
401 ("map_update", [ EnvironmentVariable('CARMA_ENV_NS', default_value=''), "/map_update" ] ),
402 ("external_object_predictions", [ EnvironmentVariable('CARMA_ENV_NS', default_value=''), "/external_object_predictions" ] ),
403 ("incoming_spat", [ EnvironmentVariable('CARMA_MSG_NS', default_value=''), "/incoming_spat" ] ),
404 ("plugin_discovery", [ EnvironmentVariable('CARMA_GUIDE_NS', default_value=''), "/plugin_discovery" ] ),
405 ("route", [ EnvironmentVariable('CARMA_GUIDE_NS', default_value=''), "/route" ] ),
406 ("outgoing_mobility_response", [ EnvironmentVariable('CARMA_MSG_NS', default_value=''), "/outgoing_mobility_response" ] ),
407 ("incoming_mobility_request", [ EnvironmentVariable('CARMA_MSG_NS', default_value=''), "/incoming_mobility_request" ] ),
408 ("cooperative_lane_change_status", [ EnvironmentVariable('CARMA_GUIDE_NS', default_value=''), "/cooperative_lane_change_status" ] ),
409 ("georeference", [ EnvironmentVariable('CARMA_LOCZ_NS', default_value=''), "/map_param_loader/georeference"]),
410 ("bsm_outbound", [ EnvironmentVariable('CARMA_MSG_NS', default_value=''), "/bsm_outbound" ] ),
411 ],
412 parameters=[
413 yield_plugin_file_path,
414 vehicle_config_param_file,
415 global_params_override_file
416 ]
417 ),
418 ]
419 )
420
421 carma_light_controlled_intersection_plugins_container = ComposableNodeContainer(
422 package='carma_ros2_utils',
423 name='carma_light_controlled_intersection_plugins_container',
424 executable='carma_component_container_mt',
425 namespace=GetCurrentNamespace(),
426 composable_node_descriptions=[
427 ComposableNode(
428 package='light_controlled_intersection_tactical_plugin',
429 plugin='light_controlled_intersection_tactical_plugin::LightControlledIntersectionTransitPluginNode',
430 name='light_controlled_intersection_tactical_plugin',
431 extra_arguments=[
432 {'use_intra_process_comms': True},
433 ],
434 remappings = [
435 ("semantic_map", [ EnvironmentVariable('CARMA_ENV_NS', default_value=''), "/semantic_map" ] ),
436 ("map_update", [ EnvironmentVariable('CARMA_ENV_NS', default_value=''), "/map_update" ] ),
437 ("roadway_objects", [ EnvironmentVariable('CARMA_ENV_NS', default_value=''), "/roadway_objects" ] ),
438 ("incoming_spat", [ EnvironmentVariable('CARMA_MSG_NS', default_value=''), "/incoming_spat" ] ),
439 ("plugin_discovery", [ EnvironmentVariable('CARMA_GUIDE_NS', default_value=''), "/plugin_discovery" ] ),
440 ("route", [ EnvironmentVariable('CARMA_GUIDE_NS', default_value=''), "/route" ] )
441 ],
442 parameters=[
443 vehicle_config_param_file,
444 vehicle_characteristics_param_file,
445 light_controlled_intersection_tactical_plugin_param_file,
446 global_params_override_file
447 ]
448 ),
449 ]
450 )
451
452 carma_pure_pursuit_wrapper_container = ComposableNodeContainer(
453 package='carma_ros2_utils',
454 name='carma_pure_pursuit_wrapper_container',
455 executable='carma_component_container_mt',
456 namespace=GetCurrentNamespace(),
457 composable_node_descriptions=[
458 ComposableNode(
459 package='pure_pursuit_wrapper',
460 plugin='pure_pursuit_wrapper::PurePursuitWrapperNode',
461 name='pure_pursuit_wrapper',
462 extra_arguments=[
463 {'use_intra_process_comms': True},
464 ],
465 remappings = [
466 ("plugin_discovery", [ EnvironmentVariable('CARMA_GUIDE_NS', default_value=''), "/plugin_discovery" ] ),
467 ("ctrl_raw", [ EnvironmentVariable('CARMA_GUIDE_NS', default_value=''), "/ctrl_raw" ] ),
468 ("pure_pursuit_wrapper/plan_trajectory", [ EnvironmentVariable('CARMA_GUIDE_NS', default_value=''), "/plugins/pure_pursuit/plan_trajectory" ] ),
469 ("current_pose", [ EnvironmentVariable('CARMA_LOCZ_NS', default_value=''), "/current_pose" ] ),
470 ("vehicle/twist", [ EnvironmentVariable('CARMA_INTR_NS', default_value=''), "/vehicle/twist" ] ),
471 ],
472 parameters=[
473 vehicle_characteristics_param_file, #vehicle_response_lag
474 vehicle_config_param_file,
475 pure_pursuit_tuning_parameters,
476 global_params_override_file
477 ]
478 ),
479 ]
480 )
481
482 trajectory_follower_container = ComposableNodeContainer(
483 package='carma_ros2_utils',
484 name='trajectory_follower_container',
485 executable='carma_component_container_mt',
486 namespace=GetCurrentNamespace(),
487 composable_node_descriptions=[
488 ComposableNode(
489 package='trajectory_follower_nodes',
490 plugin='autoware::motion::control::trajectory_follower_nodes::LatLonMuxer',
491 name='latlon_muxer_node',
492 extra_arguments=[
493 {'use_intra_process_comms': False},
494 ],
495 remappings = [
496 ("input/lateral/control_cmd", "trajectory_follower/lateral/control_cmd"),
497 ("input/longitudinal/control_cmd", "trajectory_follower/longitudinal/control_cmd"),
498 ("output/control_cmd", "trajectory_follower/control_cmd")
499 ],
500 parameters=[
501 {'timeout_thr_sec':0.5},
502 global_params_override_file
503 ]
504 ),
505 ComposableNode(
506 package='trajectory_follower_nodes',
507 plugin='autoware::motion::control::trajectory_follower_nodes::LateralController',
508 name='lateral_controller_node',
509 extra_arguments=[
510 {'use_intra_process_comms': True},
511 ],
512 remappings = [
513 ("output/lateral/control_cmd", "trajectory_follower/lateral/control_cmd"),
514 ("input/current_kinematic_state", "trajectory_follower/current_kinematic_state"),
515 ("input/reference_trajectory","trajectory_follower/reference_trajectory" )
516 ],
517 parameters = [
518 [vehicle_calibration_dir,
519 "/trajectory_follower/lateral_controller_defaults.yaml"],
520 global_params_override_file
521 ]
522 ),
523 ComposableNode(
524 package='trajectory_follower_nodes',
525 plugin='autoware::motion::control::trajectory_follower_nodes::LongitudinalController',
526 name='longitudinal_controller_node',
527 extra_arguments=[
528 {'use_intra_process_comms': False},
529 ],
530 remappings = [
531 ("output/longitudinal/control_cmd", "trajectory_follower/longitudinal/control_cmd"),
532 ("input/current_trajectory", "trajectory_follower/reference_trajectory"),
533 ("input/current_state", "trajectory_follower/current_kinematic_state")
534 ],
535 parameters = [
536 [vehicle_calibration_dir,
537 "/trajectory_follower/longitudinal_controller_defaults.yaml"],
538 global_params_override_file
539 ]
540 )
541 ]
542 )
543 carma_trajectory_follower_wrapper_container = ComposableNodeContainer(
544 package='carma_ros2_utils',
545 name='carma_trajectory_follower_wrapper_container',
546 executable='carma_component_container_mt',
547 namespace=GetCurrentNamespace(),
548 composable_node_descriptions=[
549 ComposableNode(
550 package='trajectory_follower_wrapper',
551 plugin='trajectory_follower_wrapper::TrajectoryFollowerWrapperNode',
552 name='trajectory_follower_wrapper',
553 extra_arguments=[
554 {'use_intra_process_comms': True},
555 ],
556 remappings = [
557 ("plugin_discovery", [ EnvironmentVariable('CARMA_GUIDE_NS', default_value=''), "/plugin_discovery" ] ),
558 ("ctrl_raw", [ EnvironmentVariable('CARMA_GUIDE_NS', default_value=''), "/ctrl_raw" ] ),
559 ("trajectory_follower_wrapper/plan_trajectory", [ EnvironmentVariable('CARMA_GUIDE_NS', default_value=''), "/plugins/trajectory_follower_wrapper/plan_trajectory" ] ),
560 ("current_pose", [ EnvironmentVariable('CARMA_LOCZ_NS', default_value=''), "/current_pose" ] ),
561 ("vehicle/twist", [ EnvironmentVariable('CARMA_INTR_NS', default_value=''), "/vehicle/twist" ] ),
562 ],
563 parameters=[
564 vehicle_characteristics_param_file,
565 trajectory_follower_wrapper_param_file,
566 global_params_override_file
567 ]
568 ),
569 ]
570 )
571
572 platooning_strategic_plugin_container = ComposableNodeContainer(
573 package='carma_ros2_utils',
574 name='platooning_strategic_plugin_container',
575 executable='carma_component_container_mt',
576 namespace=GetCurrentNamespace(),
577 composable_node_descriptions=[
578 ComposableNode(
579 package='platooning_strategic_ihp',
580 plugin='platooning_strategic_ihp::Node',
581 name='platooning_strategic_ihp_node',
582 extra_arguments=[
583 {'use_intra_process_comms': True},
584 ],
585 remappings = [
586 ("semantic_map", [ EnvironmentVariable('CARMA_ENV_NS', default_value=''), "/semantic_map" ] ),
587 ("map_update", [ EnvironmentVariable('CARMA_ENV_NS', default_value=''), "/map_update" ] ),
588 ("roadway_objects", [ EnvironmentVariable('CARMA_ENV_NS', default_value=''), "/roadway_objects" ] ),
589 ("georeference", [ EnvironmentVariable('CARMA_LOCZ_NS', default_value=''), "/map_param_loader/georeference" ] ),
590 ("outgoing_mobility_response", [ EnvironmentVariable('CARMA_MSG_NS', default_value=''), "/outgoing_mobility_response" ] ),
591 ("outgoing_mobility_request", [ EnvironmentVariable('CARMA_MSG_NS', default_value=''), "/outgoing_mobility_request" ] ),
592 ("outgoing_mobility_operation", [ EnvironmentVariable('CARMA_MSG_NS', default_value=''), "/outgoing_mobility_operation" ] ),
593 ("incoming_mobility_request", [ EnvironmentVariable('CARMA_MSG_NS', default_value=''), "/incoming_mobility_request" ] ),
594 ("incoming_mobility_response", [ EnvironmentVariable('CARMA_MSG_NS', default_value=''), "/incoming_mobility_response" ] ),
595 ("incoming_mobility_operation", [ EnvironmentVariable('CARMA_MSG_NS', default_value=''), "/incoming_mobility_operation" ] ),
596 ("incoming_spat", [ EnvironmentVariable('CARMA_MSG_NS', default_value=''), "/incoming_spat" ] ),
597 ("twist_raw", [ EnvironmentVariable('CARMA_GUIDE_NS', default_value=''), "/twist_raw" ] ),
598 ("platoon_info", [ EnvironmentVariable('CARMA_GUIDE_NS', default_value=''), "/platoon_info" ] ),
599 ("plugin_discovery", [ EnvironmentVariable('CARMA_GUIDE_NS', default_value=''), "/plugin_discovery" ] ),
600 ("route", [ EnvironmentVariable('CARMA_GUIDE_NS', default_value=''), "/route" ] ),
601 ("current_velocity", [ EnvironmentVariable('CARMA_INTR_NS', default_value=''), "/vehicle/twist" ] ),
602 ("current_pose", [ EnvironmentVariable('CARMA_LOCZ_NS', default_value=''), "/current_pose" ] ),
603 ],
604 parameters=[
605 platooning_strategic_ihp_param_file,
606 vehicle_config_param_file,
607 global_params_override_file
608 ]
609 ),
610 ]
611 )
612
613 platooning_tactical_plugin_container = ComposableNodeContainer(
614 package='carma_ros2_utils',
615 name='platooning_tactical_plugin_container',
616 executable='carma_component_container_mt',
617 namespace=GetCurrentNamespace(),
618 composable_node_descriptions=[
619 ComposableNode(
620 package='platooning_tactical_plugin',
621 plugin='platooning_tactical_plugin::Node',
622 name='platooning_tactical_plugin_node',
623 extra_arguments=[
624 {'use_intra_process_comms': True},
625 ],
626 remappings = [
627 ("semantic_map", [ EnvironmentVariable('CARMA_ENV_NS', default_value=''), "/semantic_map" ] ),
628 ("map_update", [ EnvironmentVariable('CARMA_ENV_NS', default_value=''), "/map_update" ] ),
629 ("roadway_objects", [ EnvironmentVariable('CARMA_ENV_NS', default_value=''), "/roadway_objects" ] ),
630 ("georeference", [ EnvironmentVariable('CARMA_LOCZ_NS', default_value=''), "/map_param_loader/georeference" ] ),
631 ("incoming_spat", [ EnvironmentVariable('CARMA_MSG_NS', default_value=''), "/incoming_spat" ] ),
632 ("plugin_discovery", [ EnvironmentVariable('CARMA_GUIDE_NS', default_value=''), "/plugin_discovery" ] ),
633 ("route", [ EnvironmentVariable('CARMA_GUIDE_NS', default_value=''), "/route" ] ),
634 ],
635 parameters=[platoon_tactical_ihp_param_file,
636 vehicle_config_param_file,
637 global_params_override_file]
638 ),
639 ]
640 )
641
642 platooning_control_plugin_container = ComposableNodeContainer(
643 package='carma_ros2_utils',
644 name='platooning_control_container',
645 executable='carma_component_container_mt',
646 namespace=GetCurrentNamespace(),
647 composable_node_descriptions=[
648 ComposableNode(
649 package='platooning_control',
650 plugin='platooning_control::PlatooningControlPlugin',
651 name='platooning_control',
652 extra_arguments=[
653 {'use_intra_process_comms': True},
654 ],
655 remappings = [
656 ("plugin_discovery", [ EnvironmentVariable('CARMA_GUIDE_NS', default_value=''), "/plugin_discovery" ] ),
657 ("ctrl_raw", [ EnvironmentVariable('CARMA_GUIDE_NS', default_value=''), "/ctrl_raw" ] ),
658 ("twist_raw", [ EnvironmentVariable('CARMA_GUIDE_NS', default_value=''), "/twist_raw" ] ),
659 ("platooning_control/plan_trajectory", [ EnvironmentVariable('CARMA_GUIDE_NS', default_value=''), "/plugins/platooning_control/plan_trajectory" ] ),
660 ("current_pose", [ EnvironmentVariable('CARMA_LOCZ_NS', default_value=''), "/current_pose" ] ),
661 ("vehicle/twist", [ EnvironmentVariable('CARMA_INTR_NS', default_value=''), "/vehicle/twist" ] ),
662 ],
663 parameters=[ platooning_control_param_file,
664 vehicle_config_param_file,
665 unique_vehicle_calibration_params,
666 global_params_override_file]
667 )
668 ]
669 )
670
671 carma_stop_and_dwell_strategic_plugin_container = ComposableNodeContainer(
672 package='carma_ros2_utils',
673 name='carma_stop_and_dwell_strategic_plugin_container',
674 executable='carma_component_container_mt',
675 namespace=GetCurrentNamespace(),
676 composable_node_descriptions=[
677 ComposableNode(
678 package='stop_and_dwell_strategic_plugin',
679 plugin='stop_and_dwell_strategic_plugin::StopAndDwellStrategicPlugin',
680 name='stop_and_dwell_strategic_plugin',
681 extra_arguments=[
682 {'use_intra_process_comms': True},
683 ],
684 remappings = [
685 ("semantic_map", [ EnvironmentVariable('CARMA_ENV_NS', default_value=''), "/semantic_map" ] ),
686 ("map_update", [ EnvironmentVariable('CARMA_ENV_NS', default_value=''), "/map_update" ] ),
687 ("roadway_objects", [ EnvironmentVariable('CARMA_ENV_NS', default_value=''), "/roadway_objects" ] ),
688 ("incoming_spat", [ EnvironmentVariable('CARMA_MSG_NS', default_value=''), "/incoming_spat" ] ),
689 ("plugin_discovery", [ EnvironmentVariable('CARMA_GUIDE_NS', default_value=''), "/plugin_discovery" ] ),
690 ("route", [ EnvironmentVariable('CARMA_GUIDE_NS', default_value=''), "/route" ] ),
691 ("maneuver_plan", [ EnvironmentVariable('CARMA_GUIDE_NS', default_value=''), "/final_maneuver_plan" ] ),
692 ("state", [ EnvironmentVariable('CARMA_GUIDE_NS', default_value=''), "/state" ] ),
693 ("current_pose", [ EnvironmentVariable('CARMA_LOCZ_NS', default_value=''), "/current_pose" ] ),
694 ],
695 parameters=[
696 stop_and_dwell_strategic_plugin_container_file_path,
697 vehicle_config_param_file,
698 global_params_override_file
699 ]
700 ),
701 ]
702 )
703
704 intersection_transit_maneuvering_container = ComposableNodeContainer(
705 package='carma_ros2_utils',
706 name='intersection_transit_maneuvering_container',
707 executable='carma_component_container_mt',
708 namespace=GetCurrentNamespace(),
709 composable_node_descriptions=[
710 ComposableNode(
711 package='intersection_transit_maneuvering',
712 plugin='intersection_transit_maneuvering::IntersectionTransitManeuveringNode',
713 name='intersection_transit_maneuvering',
714 extra_arguments=[
715 {'use_intra_process_comms': True},
716 ],
717 remappings = [],
718 parameters=[
719 vehicle_config_param_file,
720 global_params_override_file
721 ]
722 ),
723 ]
724 )
725
726 return LaunchDescription([
727 declare_vehicle_config_dir_arg,
728 declare_global_params_override_file_arg,
729 carma_inlanecruising_plugin_container,
730 carma_route_following_plugin_container,
731 carma_approaching_emergency_vehicle_plugin_container,
732 carma_stop_and_wait_plugin_container,
733 carma_sci_strategic_plugin_container,
734 carma_stop_and_dwell_strategic_plugin_container,
735 carma_lci_strategic_plugin_container,
736 carma_stop_controlled_intersection_tactical_plugin_container,
737 carma_cooperative_lanechange_plugins_container,
738 carma_yield_plugin_container,
739 carma_light_controlled_intersection_plugins_container,
740 carma_pure_pursuit_wrapper_container,
741 carma_trajectory_follower_wrapper_container,
742 #platooning_strategic_plugin_container,
743 platooning_tactical_plugin_container,
744 platooning_control_plugin_container,
745 intersection_transit_maneuvering_container,
746 trajectory_follower_container
747
748 ])
def generate_launch_description()