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.
Inputs#
| Name | Topic | Type | Description |
|---|---|---|---|
| Trajectory | /planning/trajectory | autoware_planning_msgs/msg/Trajectory | The trajectory to follow. See the outputs of Planning. |
| Turn indicators command | /planning/turn_indicators_cmd | autoware_vehicle_msgs/msg/TurnIndicatorsCommand | The turn indicators that Planning requests. |
| Hazard lights command | /planning/hazard_lights_cmd | autoware_vehicle_msgs/msg/HazardLightsCommand | The hazard lights that Planning requests. |
| Vehicle kinematic state | /localization/kinematic_state | nav_msgs/msg/Odometry | The current pose and velocity of the vehicle. See the outputs of Localization. |
| Vehicle acceleration | /localization/acceleration | geometry_msgs/msg/AccelWithCovarianceStamped | The current acceleration of the vehicle. |
| Steering status | /vehicle/status/steering_status | autoware_vehicle_msgs/msg/SteeringReport | The current steering tire angle. See the outputs of the vehicle interface. |
| Gear status | /vehicle/status/gear_status | autoware_vehicle_msgs/msg/GearReport | The current gear. The shift decider uses it. |
| Control mode | /vehicle/status/control_mode | autoware_vehicle_msgs/msg/ControlModeReport | The 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/ChangeOperationMode | A 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#
| Name | Topic | Type | Description |
|---|---|---|---|
| Control command | /control/command/control_cmd | autoware_control_msgs/msg/Control | The target lateral and longitudinal motion. See the specification. |
| Gear command | /control/command/gear_cmd | autoware_vehicle_msgs/msg/GearCommand | The target gear. See the specification. |
| Turn indicators command | /control/command/turn_indicators_cmd | autoware_vehicle_msgs/msg/TurnIndicatorsCommand | The target turn indicators. See the specification. |
| Hazard lights command | /control/command/hazard_lights_cmd | autoware_vehicle_msgs/msg/HazardLightsCommand | The target hazard lights. See the specification. |
| Control mode request | /control/control_mode_request (service) | autoware_vehicle_msgs/srv/ControlModeCommand | A request to the vehicle to change the control mode. See the specification. |
| Operation mode state | /system/operation_mode/state | autoware_adapi_v1_msgs/msg/OperationModeState | The current operation mode. In the default setup, the operation mode transition manager publishes it. |
| Predicted trajectory | /control/trajectory_follower/lateral/predicted_trajectory | autoware_planning_msgs/msg/Trajectory | The 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.