Created
September 26, 2025 15:28
-
-
Save mitsudome-r/8525fdf8a9dac7ee901178d8ee571619 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| <launch> | |
| <!-- controller --> | |
| <arg name="trajectory_follower_mode" default="trajectory_follower_node"/> | |
| <arg name="lateral_controller_mode"/> | |
| <arg name="longitudinal_controller_mode"/> | |
| <arg name="check_external_emergency_heartbeat"/> | |
| <!-- external cmd selector and converter --> | |
| <arg name="launch_external_cmd_selector" default="true"/> | |
| <arg name="launch_external_cmd_converter" default="true"/> | |
| <!-- control-check modules, optional --> | |
| <arg name="launch_lane_departure_checker" default="true"/> | |
| <arg name="launch_control_validator" default="true"/> | |
| <arg name="launch_autonomous_emergency_braking" default="true"/> | |
| <arg name="launch_collision_detector" default="true"/> | |
| <arg name="launch_obstacle_collision_checker" default="false"/> | |
| <arg name="launch_predicted_path_checker" default="false"/> | |
| <arg name="launch_control_evaluator" default="true"/> | |
| <arg name="use_aeb_autoware_state_check"/> | |
| <!-- common param path --> | |
| <arg name="vehicle_param_file"/> | |
| <arg name="nearest_search_param_path"/> | |
| <!-- package param path --> | |
| <arg name="trajectory_follower_node_param_path"/> | |
| <arg name="lat_controller_param_path"/> | |
| <arg name="lon_controller_param_path"/> | |
| <arg name="vehicle_cmd_gate_param_path"/> | |
| <arg name="lane_departure_checker_param_path"/> | |
| <arg name="control_validator_param_path"/> | |
| <arg name="operation_mode_transition_manager_param_path"/> | |
| <arg name="shift_decider_param_path"/> | |
| <arg name="obstacle_collision_checker_param_path"/> | |
| <arg name="external_cmd_selector_param_path"/> | |
| <arg name="aeb_param_path"/> | |
| <arg name="predicted_path_checker_param_path"/> | |
| <arg name="collision_detector_param_path"/> | |
| <!-- component --> | |
| <arg name="use_intra_process" default="false" description="use ROS 2 component container communication"/> | |
| <arg name="use_multithread" default="true" description="use multithread"/> | |
| <let name="container_executable" value="component_container" unless="$(var use_multithread)"/> | |
| <let name="container_executable" value="component_container_mt" if="$(var use_multithread)"/> | |
| <group> | |
| <push-ros-namespace namespace="control"/> | |
| <group> | |
| <!-- set a control container to run all required components in the same process --> | |
| <node_container pkg="rclcpp_components" exec="$(var container_executable)" name="control_container" namespace=""> | |
| <composable_node pkg="autoware_glog_component" plugin="autoware::glog_component::GlogComponent" name="glog_control_container_component"/> | |
| <!-- shift decider --> | |
| <composable_node pkg="autoware_shift_decider" plugin="autoware::shift_decider::ShiftDecider" name="autoware_shift_decider"> | |
| <remap from="input/control_cmd" to="/control/trajectory_follower/control_cmd"/> | |
| <remap from="input/state" to="/autoware/state"/> | |
| <remap from="input/current_gear" to="/vehicle/status/gear_status"/> | |
| <remap from="output/gear_cmd" to="/control/shift_decider/gear_cmd"/> | |
| <param from="$(var shift_decider_param_path)"/> | |
| <extra_arg name="use_intra_process_comms" value="$(var use_intra_process)"/> | |
| </composable_node> | |
| <!-- vehicle cmd gate --> | |
| <composable_node pkg="autoware_vehicle_cmd_gate" plugin="autoware::vehicle_cmd_gate::VehicleCmdGate" name="vehicle_cmd_gate"> | |
| <remap from="input/steering" to="/vehicle/status/steering_status"/> | |
| <remap from="input/operation_mode" to="/system/operation_mode/state"/> | |
| <remap from="input/auto/control_cmd" to="/control/trajectory_follower/control_cmd"/> | |
| <remap from="input/auto/turn_indicators_cmd" to="/planning/turn_indicators_cmd"/> | |
| <remap from="input/auto/hazard_lights_cmd" to="/planning/hazard_lights_cmd"/> | |
| <remap from="input/auto/gear_cmd" to="/control/shift_decider/gear_cmd"/> | |
| <remap from="input/external/control_cmd" to="/external/selected/control_cmd"/> | |
| <remap from="input/external/turn_indicators_cmd" to="/external/selected/turn_indicators_cmd"/> | |
| <remap from="input/external/hazard_lights_cmd" to="/external/selected/hazard_lights_cmd"/> | |
| <remap from="input/external/gear_cmd" to="/external/selected/gear_cmd"/> | |
| <remap from="input/external_emergency_stop_heartbeat" to="/external/selected/heartbeat"/> | |
| <remap from="input/gate_mode" to="/control/gate_mode_cmd"/> | |
| <remap from="input/emergency/control_cmd" to="/system/emergency/control_cmd"/> | |
| <remap from="input/emergency/turn_indicators_cmd" to="/system/emergency/turn_indicators_cmd"/> | |
| <remap from="input/emergency/hazard_lights_cmd" to="/system/emergency/hazard_lights_cmd"/> | |
| <remap from="input/emergency/gear_cmd" to="/system/emergency/gear_cmd"/> | |
| <remap from="input/mrm_state" to="/system/fail_safe/mrm_state"/> | |
| <remap from="input/kinematics" to="/localization/kinematic_state"/> | |
| <remap from="input/acceleration" to="/localization/acceleration"/> | |
| <remap from="output/vehicle_cmd_emergency" to="/control/command/emergency_cmd"/> | |
| <remap from="output/control_cmd" to="/control/command/control_cmd"/> | |
| <remap from="output/gear_cmd" to="/control/command/gear_cmd"/> | |
| <remap from="output/turn_indicators_cmd" to="/control/command/turn_indicators_cmd"/> | |
| <remap from="output/hazard_lights_cmd" to="/control/command/hazard_lights_cmd"/> | |
| <remap from="output/gate_mode" to="/control/current_gate_mode"/> | |
| <remap from="output/engage" to="/api/autoware/get/engage"/> | |
| <remap from="output/external_emergency" to="/api/autoware/get/emergency"/> | |
| <remap from="output/operation_mode" to="/control/vehicle_cmd_gate/operation_mode"/> | |
| <remap from="~/service/engage" to="/api/autoware/set/engage"/> | |
| <remap from="~/service/external_emergency" to="/api/autoware/set/emergency"/> | |
| <!-- TODO(Takagi, Isamu): deprecated --> | |
| <remap from="input/engage" to="/autoware/engage"/> | |
| <remap from="~/service/external_emergency_stop" to="~/external_emergency_stop"/> | |
| <remap from="~/service/clear_external_emergency_stop" to="~/clear_external_emergency_stop"/> | |
| <param from="$(var vehicle_cmd_gate_param_path)"/> | |
| <param from="$(var vehicle_param_file)"/> | |
| <param name="check_external_emergency_heartbeat" value="$(var check_external_emergency_heartbeat)"/> | |
| <extra_arg name="use_intra_process_comms" value="$(var use_intra_process)"/> | |
| </composable_node> | |
| <!-- operation mode transition manager --> | |
| <composable_node | |
| pkg="autoware_operation_mode_transition_manager" | |
| plugin="autoware::operation_mode_transition_manager::OperationModeTransitionManager" | |
| name="autoware_operation_mode_transition_manager" | |
| > | |
| <!-- input --> | |
| <remap from="kinematics" to="/localization/kinematic_state"/> | |
| <remap from="steering" to="/vehicle/status/steering_status"/> | |
| <remap from="trajectory" to="/planning/scenario_planning/trajectory"/> | |
| <remap from="control_cmd" to="/control/command/control_cmd"/> | |
| <remap from="trajectory_follower_control_cmd" to="/control/trajectory_follower/control_cmd"/> | |
| <remap from="control_mode_report" to="/vehicle/status/control_mode"/> | |
| <remap from="gate_operation_mode" to="/control/vehicle_cmd_gate/operation_mode"/> | |
| <!-- output --> | |
| <remap from="is_autonomous_available" to="/control/is_autonomous_available"/> | |
| <remap from="control_mode_request" to="/control/control_mode_request"/> | |
| <param from="$(var nearest_search_param_path)"/> | |
| <param from="$(var operation_mode_transition_manager_param_path)"/> | |
| <param from="$(var vehicle_param_file)"/> | |
| <extra_arg name="use_intra_process_comms" value="$(var use_intra_process)"/> | |
| </composable_node> | |
| </node_container> | |
| <!-- trajectory_follower_node --> | |
| <group if="$(eval "'$(var trajectory_follower_mode)' == 'trajectory_follower_node'")"> | |
| <load_composable_node target="/control/control_container"> | |
| <composable_node pkg="autoware_trajectory_follower_node" plugin="autoware::motion::control::trajectory_follower_node::Controller" name="controller_node_exe" namespace="trajectory_follower"> | |
| <remap from="~/input/reference_trajectory" to="/planning/scenario_planning/trajectory_no_publish"/> | |
| <remap from="~/input/current_odometry" to="/localization/kinematic_state_no_publish"/> | |
| <remap from="~/input/current_steering" to="/vehicle/status/steering_status_no_publish"/> | |
| <remap from="~/input/current_accel" to="/localization/acceleration_no_publish"/> | |
| <remap from="~/input/current_operation_mode" to="/system/operation_mode/state_no_publish"/> | |
| <remap from="~/output/predicted_trajectory" to="lateral/predicted_trajectory_no_publish"/> | |
| <remap from="~/output/lateral_diagnostic" to="lateral/diagnostic_no_publish"/> | |
| <remap from="~/output/slope_angle" to="longitudinal/slope_angle_no_publish"/> | |
| <remap from="~/output/longitudinal_diagnostic" to="longitudinal/diagnostic_no_publish"/> | |
| <remap from="~/output/stop_reason" to="longitudinal/stop_reason_no_publish"/> | |
| <remap from="~/output/control_cmd" to="control_cmd_no_publish"/> | |
| <param name="lateral_controller_mode" value="$(var lateral_controller_mode)"/> | |
| <param name="longitudinal_controller_mode" value="$(var longitudinal_controller_mode)"/> | |
| <param from="$(var nearest_search_param_path)"/> | |
| <param from="$(var trajectory_follower_node_param_path)"/> | |
| <param from="$(var lon_controller_param_path)"/> | |
| <param from="$(var lat_controller_param_path)"/> | |
| <param from="$(var vehicle_param_file)"/> | |
| <extra_arg name="use_intra_process_comms" value="$(var use_intra_process)"/> | |
| </composable_node> | |
| </load_composable_node> | |
| </group> | |
| <!-- smart_mpc, under development --> | |
| <group if="$(eval "'$(var trajectory_follower_mode)' == 'smart_mpc_trajectory_follower'")"> | |
| <node pkg="autoware_smart_mpc_trajectory_follower" exec="pympc_trajectory_follower.py" name="controller_node_exe"/> | |
| </group> | |
| <!-- external cmd selector --> | |
| <group if="$(var launch_external_cmd_selector)"> | |
| <include file="$(find-pkg-share autoware_external_cmd_selector)/launch/external_cmd_selector.launch.py"> | |
| <arg name="use_intra_process" value="$(var use_intra_process)"/> | |
| <arg name="target_container" value="/control/control_container"/> | |
| <arg name="external_cmd_selector_param_path" value="$(var external_cmd_selector_param_path)"/> | |
| </include> | |
| </group> | |
| <!-- external cmd converter --> | |
| <group if="$(var launch_external_cmd_converter)"> | |
| <include file="$(find-pkg-share autoware_external_cmd_converter)/launch/external_cmd_converter.launch.py"> | |
| <arg name="use_intra_process" value="$(var use_intra_process)"/> | |
| <arg name="target_container" value="/control/control_container"/> | |
| </include> | |
| </group> | |
| </group> | |
| <group> | |
| <!-- set a control check container to run all control checker components in the same process --> | |
| <node_container pkg="rclcpp_components" exec="$(var container_executable)" name="control_check_container" namespace=""> | |
| <composable_node pkg="autoware_glog_component" plugin="autoware::glog_component::GlogComponent" name="glog_control_check_container_component"/> | |
| </node_container> | |
| <!-- lane departure checker --> | |
| <group if="$(var launch_lane_departure_checker)"> | |
| <load_composable_node target="/control/control_check_container"> | |
| <composable_node pkg="autoware_lane_departure_checker" plugin="autoware::lane_departure_checker::LaneDepartureCheckerNode" name="lane_departure_checker_node" namespace="trajectory_follower"> | |
| <remap from="~/input/odometry" to="/localization/kinematic_state"/> | |
| <remap from="~/input/lanelet_map_bin" to="/map/vector_map"/> | |
| <remap from="~/input/route" to="/planning/mission_planning/route"/> | |
| <remap from="~/input/reference_trajectory" to="/planning/scenario_planning/trajectory"/> | |
| <remap from="~/input/predicted_trajectory" to="/control/trajectory_follower/lateral/predicted_trajectory"/> | |
| <param from="$(var nearest_search_param_path)"/> | |
| <param from="$(var lane_departure_checker_param_path)"/> | |
| <param from="$(var vehicle_param_file)"/> | |
| <extra_arg name="use_intra_process_comms" value="$(var use_intra_process)"/> | |
| </composable_node> | |
| </load_composable_node> | |
| </group> | |
| <!-- control validator checker --> | |
| <group if="$(var launch_control_validator)"> | |
| <load_composable_node target="/control/control_check_container"> | |
| <composable_node pkg="autoware_control_validator" plugin="autoware::control_validator::ControlValidator" name="control_validator"> | |
| <remap from="~/input/control_cmd" to="/control/command/control_cmd"/> | |
| <remap from="~/input/kinematics" to="/localization/kinematic_state"/> | |
| <remap from="~/input/measured_acceleration" to="/localization/acceleration"/> | |
| <remap from="~/input/reference_trajectory" to="/planning/scenario_planning/trajectory"/> | |
| <remap from="~/input/predicted_trajectory" to="/control/trajectory_follower/lateral/predicted_trajectory"/> | |
| <remap from="~/output/validation_status" to="~/validation_status"/> | |
| <param from="$(var control_validator_param_path)"/> | |
| </composable_node> | |
| </load_composable_node> | |
| </group> | |
| <!-- autonomous emergency braking --> | |
| <group if="$(var launch_autonomous_emergency_braking)"> | |
| <load_composable_node target="/control/control_check_container"> | |
| <composable_node pkg="autoware_autonomous_emergency_braking" plugin="autoware::motion::control::autonomous_emergency_braking::AEB" name="autonomous_emergency_braking"> | |
| <remap from="~/input/pointcloud" to="/perception/obstacle_segmentation/pointcloud"/> | |
| <remap from="~/input/velocity" to="/vehicle/status/velocity_status"/> | |
| <remap from="~/input/imu" to="/sensing/imu/imu_data"/> | |
| <remap from="~/input/objects" to="/perception/object_recognition/objects"/> | |
| <remap from="~/input/predicted_trajectory" to="/control/trajectory_follower/lateral/predicted_trajectory"/> | |
| <param from="$(var aeb_param_path)"/> | |
| <param name="check_autoware_state" value="$(var use_aeb_autoware_state_check)"/> | |
| <extra_arg name="use_intra_process_comms" value="$(var use_intra_process)"/> | |
| </composable_node> | |
| </load_composable_node> | |
| </group> | |
| <!-- collision detector--> | |
| <group if="$(var launch_collision_detector)"> | |
| <load_composable_node target="/control/control_check_container"> | |
| <composable_node pkg="autoware_collision_detector" plugin="autoware::collision_detector::CollisionDetectorNode" name="collision_detector"> | |
| <remap from="~/input/odometry" to="/localization/kinematic_state"/> | |
| <remap from="~/input/pointcloud" to="/perception/obstacle_segmentation/pointcloud"/> | |
| <remap from="~/input/objects" to="/perception/object_recognition/objects"/> | |
| <param from="$(var collision_detector_param_path)"/> | |
| </composable_node> | |
| </load_composable_node> | |
| </group> | |
| <!-- obstacle collision checker --> | |
| <group if="$(var launch_obstacle_collision_checker)"> | |
| <load_composable_node target="/control/control_check_container"> | |
| <composable_node pkg="autoware_obstacle_collision_checker" plugin="autoware::obstacle_collision_checker::ObstacleCollisionCheckerNode" name="obstacle_collision_checker"> | |
| <remap from="input/lanelet_map_bin" to="/map/vector_map"/> | |
| <remap from="input/obstacle_pointcloud" to="/perception/obstacle_segmentation/pointcloud"/> | |
| <remap from="input/reference_trajectory" to="/planning/scenario_planning/trajectory"/> | |
| <remap from="input/predicted_trajectory" to="/control/trajectory_follower/lateral/predicted_trajectory"/> | |
| <remap from="input/odometry" to="/localization/kinematic_state"/> | |
| <param from="$(var obstacle_collision_checker_param_path)"/> | |
| <param from="$(var vehicle_param_file)"/> | |
| <extra_arg name="use_intra_process_comms" value="$(var use_intra_process)"/> | |
| </composable_node> | |
| </load_composable_node> | |
| </group> | |
| <!-- predicted path checker --> | |
| <group if="$(var launch_predicted_path_checker)"> | |
| <load_composable_node target="/control/control_check_container"> | |
| <composable_node pkg="autoware_predicted_path_checker" plugin="autoware::predicted_path_checker::PredictedPathCheckerNode" name="predicted_path_checker"> | |
| <remap from="~/input/objects" to="/perception/object_recognition/objects"/> | |
| <remap from="~/input/reference_trajectory" to="/planning/scenario_planning/trajectory"/> | |
| <remap from="~/input/current_accel" to="/localization/acceleration"/> | |
| <remap from="~/input/odometry" to="/localization/kinematic_state"/> | |
| <remap from="~/input/predicted_trajectory" to="/control/trajectory_follower/lateral/predicted_trajectory"/> | |
| <param from="$(var vehicle_param_file)"/> | |
| <param from="$(var predicted_path_checker_param_path)"/> | |
| <extra_arg name="use_intra_process_comms" value="$(var use_intra_process)"/> | |
| </composable_node> | |
| </load_composable_node> | |
| </group> | |
| </group> | |
| <!-- control evaluator --> | |
| <group if="$(var launch_control_evaluator)"> | |
| <include file="$(find-pkg-share autoware_control_evaluator)/launch/control_evaluator.launch.xml"/> | |
| </group> | |
| </group> | |
| </launch> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment