Skip to content

Control#

This page describes the interface of the Control component. See the Control component design for the concepts.

The Control component follows the trajectory from Planning. It sends the commands to the vehicle interface. The default implementation is in autoware_launch.

The Control component takes the trajectory and the vehicle signal commands from Planning, the kinematic state from Localization, and the status of the vehicle. Its vehicle command gate sends the control, gear, turn indicator, and hazard light commands to the vehicle interface.PlanningLocalizationAD APIControlTrajectory followerMPC and PID controllersShift deciderOperation mode transition managerPublishes the operation modeVehicle command gate/planning/trajectoryturn_indicators_cmdhazard_lights_cmd/localization/kinematic_statechange_operation_mode(service)control_cmdgear_cmd/system/operation_mode/stateVehicle interface/control/command/control_cmd, gear_cmd,turn_indicators_cmd, hazard_lights_cmd/control/control_mode_request(service)/vehicle/status/steering_statusgear_statuscontrol_mode
The main nodes and topics of the Control component.

Inputs#

NameTopicTypeDescription
Trajectory/planning/trajectoryautoware_planning_msgs/msg/TrajectoryThe trajectory to follow. See the outputs of Planning.
Turn indicators command/planning/turn_indicators_cmdautoware_vehicle_msgs/msg/TurnIndicatorsCommandThe turn indicators that Planning requests.
Hazard lights command/planning/hazard_lights_cmdautoware_vehicle_msgs/msg/HazardLightsCommandThe hazard lights that Planning requests.
Vehicle kinematic state/localization/kinematic_statenav_msgs/msg/OdometryThe current pose and velocity of the vehicle. See the outputs of Localization.
Vehicle acceleration/localization/accelerationgeometry_msgs/msg/AccelWithCovarianceStampedThe current acceleration of the vehicle.
Steering status/vehicle/status/steering_statusautoware_vehicle_msgs/msg/SteeringReportThe current steering tire angle. See the outputs of the vehicle interface.
Gear status/vehicle/status/gear_statusautoware_vehicle_msgs/msg/GearReportThe current gear. The shift decider uses it.
Control mode/vehicle/status/control_modeautoware_vehicle_msgs/msg/ControlModeReportThe current control mode of the vehicle, for example manual or autonomous.
Operation mode change/system/operation_mode/change_operation_mode (service)autoware_system_msgs/srv/ChangeOperationModeA request from the AD API to change the operation mode.

The control checkers, for example the autonomous emergency braking, also use /perception/object_recognition/objects and /perception/obstacle_segmentation/pointcloud. The lane departure checker uses /map/vector_map and /planning/mission_planning/route.

Outputs#

NameTopicTypeDescription
Control command/control/command/control_cmdautoware_control_msgs/msg/ControlThe target lateral and longitudinal motion. See the specification.
Gear command/control/command/gear_cmdautoware_vehicle_msgs/msg/GearCommandThe target gear. See the specification.
Turn indicators command/control/command/turn_indicators_cmdautoware_vehicle_msgs/msg/TurnIndicatorsCommandThe target turn indicators. See the specification.
Hazard lights command/control/command/hazard_lights_cmdautoware_vehicle_msgs/msg/HazardLightsCommandThe target hazard lights. See the specification.
Control mode request/control/control_mode_request (service)autoware_vehicle_msgs/srv/ControlModeCommandA request to the vehicle to change the control mode. See the specification.
Operation mode state/system/operation_mode/stateautoware_adapi_v1_msgs/msg/OperationModeStateThe current operation mode. In the default setup, the operation mode transition manager publishes it.
Predicted trajectory/control/trajectory_follower/lateral/predicted_trajectoryautoware_planning_msgs/msg/TrajectoryThe path that the lateral controller predicts for the vehicle.

Control command message#

The autoware_control_msgs/msg/Control message has these fields. See the README of autoware_control_msgs for their meaning.

  • builtin_interfaces/Time stamp
  • builtin_interfaces/Time control_time
  • autoware_control_msgs/msg/Lateral lateral
    • builtin_interfaces/Time stamp
    • builtin_interfaces/Time control_time
    • float32 steering_tire_angle
    • float32 steering_tire_rotation_rate
    • bool is_defined_steering_tire_rotation_rate
  • autoware_control_msgs/msg/Longitudinal longitudinal
    • builtin_interfaces/Time stamp
    • builtin_interfaces/Time control_time
    • float32 velocity
    • float32 acceleration
    • float32 jerk
    • bool is_defined_acceleration
    • bool is_defined_jerk

For a vehicle that takes pedal or torque commands, the autoware_raw_vehicle_cmd_converter converts this command into actuation commands. If its parameters ask for it, it also uses the actuation status of the vehicle (/vehicle/status/actuation_status). See Vehicle interface.