Skip to content

Vehicle interface#

This page describes the interface of the vehicle interface component. See the vehicle interface design for the concepts and the data flow.

The Control component sends vehicle commands to the vehicle interface component and gets vehicle statuses back. Inside the component, an optional vehicle command adapter converts the commands into the vehicle format. The vehicle interface talks to the vehicle with the vehicle-specific protocol.Control componentVehicle commandsVehicle statusesVehicle interface componentVehicle command adapterOptionalVehicle commands(vehicle format)Vehicle statuses(vehicle format)Vehicle interfaceVehicle commands(vehicle format and protocol)Vehicle statuses(vehicle format and protocol)Vehicle
The vehicle interface component sits between the Control component and the vehicle.

The vehicle interface component receives the vehicle commands from Autoware and publishes the vehicle statuses. It communicates with the vehicle by the vehicle-specific protocol.

The optional vehicle command adapter converts the generalized control command (target steering angle, steering rate, velocity, and acceleration) into vehicle-specific control values, for example steering torque, wheel torque, voltage, brake pressure, or accelerator pedal position.

Communication with the vehicle#

The interface to communicate with the vehicle varies between brands and models. For example, a vehicle can use CAN (Controller Area Network) with a ROS 2 driver, such as pacmod3. In addition, an Autoware-specific interface is often necessary, such as pacmod_interface.

Vehicle adapter#

The basic control command of Autoware gives the target motion of the vehicle as speed, acceleration, steering angle, and steering rate. This does not suit all vehicles. As a result, there are two types of vehicles:

  • Type 1: A vehicle that takes a subset of speed, acceleration, steering angle, and steering rate directly.
  • Type 2: A vehicle that uses custom commands, for example motor torque, voltage, or pedal pressure.

For vehicles of type 2, a vehicle adapter is necessary to convert the Autoware control command into the vehicle specific commands. For an example, see the autoware_raw_vehicle_cmd_converter. It converts the target acceleration and the target steering into accelerator, brake, and steering inputs, and publishes them as /control/command/actuation_cmd. It uses an acceleration map and a brake map, which give the pedal value for each velocity and acceleration. If its parameters ask for it, it uses /vehicle/status/actuation_status as feedback, for example for the variable gear ratio of the steering.

The autoware_vehicle_msgs package of autoware_msgs 1.13.0 also defines ActuationCommandStamped and ActuationReportStamped. In Autoware 2.0.0, autoware_raw_vehicle_cmd_converter and the autoware_component_interface_specs_universe package still use the tier4_vehicle_msgs types in the tables below.

Inputs from Autoware#

NameTopicTypeDescription
Control command/control/command/control_cmdautoware_control_msgs/msg/ControlTarget controls of the vehicle, for example the steering angle and the velocity
Control mode command/control/control_mode_request (service)autoware_vehicle_msgs/srv/ControlModeCommandRequest to switch between manual and autonomous driving
Gear command/control/command/gear_cmdautoware_vehicle_msgs/msg/GearCommandTarget gear of the vehicle
Hazard lights command/control/command/hazard_lights_cmdautoware_vehicle_msgs/msg/HazardLightsCommandTarget values of the hazard lights
Turn indicator command/control/command/turn_indicators_cmdautoware_vehicle_msgs/msg/TurnIndicatorsCommandTarget values of the turn signals
Actuation command/control/command/actuation_cmdtier4_vehicle_msgs/msg/ActuationCommandStampedTarget accelerator, brake, and steering values. Only for a vehicle of type 2 that uses autoware_raw_vehicle_cmd_converter.
Door command/vehicle/doors/command (service)autoware_adapi_v1_msgs/srv/SetDoorCommandRequest to open or close the doors. Only for a vehicle with doors that Autoware controls. The AD API calls this service.
Door layout/vehicle/doors/layout (service)autoware_adapi_v1_msgs/srv/GetDoorLayoutRequest for the door layout of the vehicle. Only for a vehicle with doors that Autoware controls. The AD API calls this service.

Outputs to Autoware#

NameTopicTypeOptionalDescription
Actuation status/vehicle/status/actuation_statustier4_vehicle_msgs/msg/ActuationStatusStampedYes (vehicle with mechanical inputs)Current acceleration, brake, and steer values reported by the vehicle
Battery charge/vehicle/status/battery_chargetier4_vehicle_msgs/msg/BatteryStatusYesCurrent energy level of the vehicle. The AD API reports it as a vehicle metric.
Control mode/vehicle/status/control_modeautoware_vehicle_msgs/msg/ControlModeReportCurrent control mode, for example manual or autonomous
Door status/vehicle/doors/statusautoware_adapi_v1_msgs/msg/DoorStatusArrayYesCurrent door status
Gear report/vehicle/status/gear_statusautoware_vehicle_msgs/msg/GearReportCurrent gear of the vehicle
Hazard light status/vehicle/status/hazard_lights_statusautoware_vehicle_msgs/msg/HazardLightsReportCurrent hazard lights status
Steering status/vehicle/status/steering_statusautoware_vehicle_msgs/msg/SteeringReportCurrent steering angle of the steering tire
Turn indicators status/vehicle/status/turn_indicators_statusautoware_vehicle_msgs/msg/TurnIndicatorsReportCurrent state of the left and right turn indicators
Velocity status/vehicle/status/velocity_statusautoware_vehicle_msgs/msg/VelocityReportCurrent velocities of the vehicle (longitudinal, lateral, heading rate)

The Component interfaces page lists the QoS of these topics. The commands and the statuses of the vehicle interface also have detailed specifications: