Skip to content

Vehicle Interface#

This page describes the Vehicle Interface Component. Please refer to the Vehicle Interface design document for high-level concepts and data flow.

Vehicle interface diagram

The Vehicle Interface Component receives Vehicle commands and publishes Vehicle statuses. It communicates with the vehicle by the vehicle-specific protocol.

The optional Vehicle command adapter converts generalized control command (target steering, steering rate, velocity, acceleration) into vehicle-specific control values (steering-torque, wheel-torque, voltage, pressure, acceleration pedal position, etc).

Communication with the vehicle#

The interface to communicate with the vehicle varies between brands and models. For example a vehicle specific message protocol like CAN (Controller Area Network) with a ROS 2 interface (e.g., pacmod). In addition, an Autoware specific interface is often necessary (e.g., pacmod_interface).

Vehicle adapter#

Autoware's basic control command express the target motion of the vehicle in terms of speed, acceleration, steering angle, and steering rate. This may not be suitable for all vehicles and we thus distinguish between two types of vehicles.

  • Type 1: vehicle that is directly controlled by a subset of speed, acceleration, steering angle, and steering rate.
  • Type 2: vehicle that uses custom commands (motor torque, voltage, pedal pressure, etc).

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 raw_vehicle_cmd_converter which converts the target speed and steering angle to acceleration, steering, and brake mechanical inputs.

Inputs from Autoware#

NameTopicTypeDescription
Control command/control/command/control_cmdautoware_control_msgs/msg/ControlTarget controls of the vehicle (steering angle, velocity, ...)
Control mode command/control/control_mode_requestautoware_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

Outputs to Autoware#

NameTopicTypeOptional ?Description
Actuation status/vehicle/status/actuation_statustier4_vehicle_msgs/msg/ActuationStatusStampedYes (vehicle with mechanical inputs)Current acceleration, brake, and steer values reported by the vehicle
Control mode/vehicle/status/control_modeautoware_vehicle_msgs/msg/ControlModeReportCurrent control mode (manual, autonomous, ...)
Door status/vehicle/doors/statusautoware_adapi_msgs/msg/DoorStatusYesCurrent 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)