Skip to content

System launch files#

Overview#

The Autoware system stack starts with autoware.launch.xml, as the Launch Autoware page explains. If launch_system is true, autoware.launch.xml includes tier4_system_component.launch.xml of the autoware_launch package. This file includes system.launch.xml of the tier4_system_launch package. The following diagram shows the system launch flow in the autoware_launch repository.

autoware.launch.xml includes tier4_system_component.launch.xml, which includes system.launch.xml of tier4_system_launch and logging.launch.xml of autoware_diagnostic_graph_utils. system.launch.xml always launches seven packages, and it launches the other packages when their launch arguments allow it.autoware.launch.xmlautoware_launchtier4_system_component.launch.xmlautoware_launchsystem.launch.xmltier4_system_launchMost nodes run in the /system namespace.Parameter files: autoware_launch/config/system/Gray boxes are off by default.logging.launch.xmlautoware_diagnostic_graph_utilsLogs the errors of thediagnostic graphAlways launchedduplicated_node_checker.launch.xmlautoware_duplicated_node_checkerprocessing_time_checker.launch.xmlautoware_processing_time_checkerpipeline_latency_monitor.launch.xmlautoware_pipeline_latency_monitorcomponent_state_monitor.launch.pyautoware_component_state_monitormrm_emergency_stop_operator.launch.pyautoware_mrm_emergency_stop_operatoraggregator.launch.xmlautoware_diagnostic_graph_aggregatorhazard_status_converter.launch.xmlautoware_hazard_status_converterlaunch_system_monitor:=truesystem_monitor.launch.xmlautoware_system_monitorDefault: truelaunch_dummy_diag_publisher:=truedummy_diag_publisher.launch.xmlautoware_dummy_diag_publisherDefault: falseuse_control_command_gate:=false (the default)mrm_comfortable_stop_operator.launch.pyautoware_mrm_comfortable_stop_operatormrm_handler.launch.xmlautoware_mrm_handleruse_control_command_gate:=trueswitcher.launch.xmlautoware_command_mode_switcherdecider.launch.xmlautoware_command_mode_deciderlaunch_system:=true
tier4_system_component.launch.xml includes system.launch.xml, which launches the system packages that its launch arguments enable.

Note

The Autoware project is a large project. Therefore, as we manage the Autoware project, we utilize specific arguments in the launch files. ROS 2 offers an argument-overriding feature for these launch files. Please refer to the official ROS 2 launch documentation for further information. For instance, if we define an argument at the top-level launch, it will override the value on lower-level launches.

As the flow diagram shows, system.launch.xml of tier4_system_launch always launches these packages:

It launches these packages when their launch arguments allow it:

tier4_system_component.launch.xml also includes logging.launch.xml of diagnostic_graph_utils. It logs the errors of the diagnostic graph in the terminal.

autoware.launch.xml has these system arguments:

ArgumentDefault valueDescription
system_run_modeonlineThe run mode of the system. The options are online, logging_simulation, planning_simulation.
launch_system_monitortrueLaunch the system monitor.
launch_dummy_diag_publisherfalseLaunch the dummy diagnostic publisher.
diagnostic_graph_aggregator_graph_path$(find-pkg-share autoware_launch)/config/system/diagnostics/autoware-main.yamlThe graph file of the diagnostic graph aggregator.

For example, to use your own diagnostic graph, launch Autoware with this command-line argument:

ros2 launch autoware_launch autoware.launch.xml ... diagnostic_graph_aggregator_graph_path:=<YOUR-DIAGNOSTIC-GRAPH-PATH> ...

The parameter files of the system packages are in the config/system/ directory of the autoware_launch package. tier4_system_component.launch.xml gives their paths to system.launch.xml as fixed values, so a command-line argument cannot change them. To use another parameter file, change the path in your tier4_system_component.launch.xml. For example, for the parameter file of mrm_handler:

- <arg name="mrm_handler_param_path" value="$(find-pkg-share autoware_launch)/config/system/mrm_handler/mrm_handler.param.yaml"/>
+ <arg name="mrm_handler_param_path" value="<YOUR-MRM-HANDLER-PARAM-PATH>"/>