Skip to content

Defining temporal performance metrics on components#

Motivation to defining temporal performance metrics#

Objective of the page#

This page introduces policies to define metrics to evaluate temporal performance on components of Autoware. The term "temporal performance" is often used throughout the page in order to distinguish between functional performance, which referred to as accuracy as well, and time-related performance.

It is expected that most algorithms employed for Autoware are executed with as high frequency and short response time as possible. In order to achieve safe autonomous driving, one of the desired outcomes is no time gap between perceived and actual situation. The time gap is commonly referred to as delay. If the delay is significant, the system may determine trajectory and maneuver based on outdated situation. Consequently, if the actual situation differs from the perceived one due to the delay, the system may make unexpected decisions.

As mentioned above, this page presents the policies to define metrics. Besides, the page contains lists of sample metrics that are crucial for the main functionalities of Autoware: Localization, Perception, Planning, and Control.

Note

Other functionalities, such as system components for diagnosis, are excluded currently. However they will be taken into account in the near future.

Contribution of the temporal performance metrics#

Temporal performance metrics are important for evaluating Autoware. These metrics are particularly useful for assessing delays caused by new algorithms and logic. They can be employed when comparing the temporal performance of software on a desktop computer with that on a vehicle during the vehicle integration phase.

In addition, these metrics are useful for designers and evaluators of middleware, operating systems, and computers. They are selected based on user and product requirements. One of these requirements is to provide sufficient temporal performance for executing Autoware. "Sufficient temporal performance" is defined as a temporal performance requirement, but it can be challenging to define the requirement because it varies depending on the product type, Operational Design Domain (ODD), and other factors. Then, this page specifically focuses on temporal performance metrics rather than requirements.

Temporal performance metrics are important for evaluating the reliability of Autoware. However, ensuring the reliability of Autoware requires consideration of not only temporal performance metrics but also other metrics.

Tools for evaluating the metrics#

There are several tools available for evaluating Autoware according to the metrics listed in the page. For example, both CARET and ros2_tracing are recommended options when evaluating Autoware on Linux and ROS 2. If you want to measure the metrics with either of these tools, refer to the corresponding user guide for instructions. It's important to note that if you import Autoware to a platform other than Linux and ROS 2, you will need to choose a supported tool for evaluation.

Note

TIER IV published a sample CARET report that measures Autoware 2022.12 in the rosbag replay simulation. The report does not include all of the metrics on this page.

The page does not aim to provide instructions on how to use these tools or measure the metrics. Its primary focus is on the metrics themselves, as they are more important than the specific tools used. These metrics retain their relevance regardless of the employed platform.

Policies to define temporal performance metrics#

As mentioned above, the configuration of Autoware varies by the product type, ODD, and other factors. The variety of configurations makes it difficult to define the uniform metrics for evaluating Autoware.
However, the policies used to define them are basically reused even when the configuration changes. Each of temporal performance metrics is categorized into two types: execution frequency and response time. Although there are many types of metrics, such as communication latency, the only two types are considered for simplicity.
Execution frequency is observed using rate of Inter-Process Communication (IPC) messages. You will find an enormous number of messages in Autoware, but you don't have to take care of all. Some messages might be critical to functionality and they should be chosen for evaluation.
Response time is duration elapsed through a series of processing. A series of processing is referred to as a path. Response time is calculated from timestamps of start and end of a path. Although many paths can be defined in Autoware, you have to choose significant paths.

As a hint, here are some characteristics of message and path in order to choose metrics.

  1. Messages and paths on boundaries where observed values from sensors are consumed
  2. Messages and paths on boundaries of functions, e.g., a boundary of perception and planning
  3. Messages and paths on boundaries where timer-based frequency is switched
  4. Messages and paths on boundaries where two different messages are synchronized and merged
  5. Messages that must be transmitted at expected frequency, e.g., vehicle command messages

Those hints would be helpful for most configurations but there may be exclusions. Defining metrics precisely requires an understanding of configuration.

In addition, it is recommended that metrics be determined incrementally from the architectural level to the detailed design and implementation level. Mixing metrics at different levels of granularity can be confusing.

List of sample metrics#

This section demonstrates how to define metrics according to the policies explained and has lists of the metrics for Autoware launched according to the tutorial. The section is divided into multiple subsections, each containing a model diagram and an accompanying list that explains the important temporal performance metrics. Each model is equipped with checkpoints that serve as indicators for these metrics.

The first subsection presents the top-level temporal performance metrics, which are depicted in the abstract structure of Autoware as a whole. The detailed metrics are not included in the model as they would add complexity to it. Instead, the subsequent section introduces the detailed metrics. The detailed metrics are subject to more frequent updates compared to the top-level ones, which is another reason for categorizing them separately.

Each list includes a column for the reference value. The reference value represents the observed value of each metric when Autoware is running according to the tutorial. It is important to note that the reference value is not a required value, meaning that Autoware does not necessarily fail in the tutorial execution if certain metrics do not fulfill the reference value.

Note

The reference values come from the version of Autoware that was current when this page was written in 2023. This page does not give values measured on Autoware 2.0.0. Measure the metrics on your own system before you compare them.

Top-level temporal performance metrics for Autoware#

The diagram below introduces the model for top-level temporal performance metrics.

Model for the top-level temporal performance metrics: data flows from the LiDARs through sensing, perception, and localization to planning, control, the vehicle interface, and the vehicle ECU, and numbered checkpoints (CPA) mark where messages are sent and consumed.PerceptionSensor(LiDARs)SensingDetectionTrackingsubscription callbacktimer callbackPredictionLocalizationNDT scan matchersubscription callbacksubscription callbackEKF localizersubscription callbacktimer callbackStopfilterPlanningsubscription callbacksubscription callbackchain of callbacksdriven by a timerControlsubscription callbackchain of callbacksdriven by a timerVehicleinterfaceVehicleECU01234567891011121314151617181920212223242526Key componentCallbacknCPA #n: checkpoint for Autoware overviewInter-component communicationIntra-component communicationA callback marks the time when the input message is consumed, not the time when it is received.
The top-level model: data flows from the LiDARs to the vehicle, and the numbered badges are the checkpoints (CPA).

The following three policies assist in selecting the top-level performance metrics:

  • Splitting Autoware based on components that consume observed values, such as sensor data, and considering the processing frequency and response time around these components
  • Dividing Autoware based on the entry point of Planning and Control and considering the processing frequency and response time around these components
  • Showing the minimum metrics for the Vehicle Interface, as they may vary depending on the target vehicle

Additionally, it is assumed that algorithms are implemented as multiple nodes and function as a pipeline processing system.

IDRepresentation in the modelMetric meaningRelated functionalityReference valueReason to choose it as a metricNote
AWOV-001Message rate from CPA #9 to CPA #18Update rate of result from Prediction to Planning.Perception10 HzPlanning relies on fresh and up-to-date perceived data from Perception for creating accurate trajectory.
AWOV-002Response time from CPA #0 to CPA #20 via CPA #18Response time in main body of Perception.PerceptionN/APlanning relies on fresh and up-to-date perceived data from Perception for creating accurate trajectory.The metric is used if delay compensation is disabled in Tracking.
AWOV-003Response time from CPA #7 to CPA #20Response time from Tracking output of Tracking to its data consumption in Planning.PerceptionN/APlanning relies on fresh and up-to-date perceived data from Perception for creating accurate trajectory.The metric is used if delay compensation is enabled in Tracking.
AWOV-004Response time from CPA #0 to CPA #6Duration to process pointcloud data in Sensing and Detection.PerceptionN/ATracking relies on detection to provide real-time and up-to-date sensed data for accurate tracking.The metric is used if delay compensation is enabled in Tracking.
AWOV-005Message rate from CPA #4 to CPA #5Update rate of Detection result received by Tracking.Perception10 HzTracking relies on detection to provide real-time and up-to-date sensed data for accurate tracking.
AWOV-006Response time from CPA #0 to CPA #14Response time from output of observed data from LiDARs to its consumption in EKF Localizer via NDT Scan Matcher.LocalizationN/AEKF Localizer relies on fresh and up-to-date observed data from sensors for accurate estimation of self pose.
AWOV-007Message rate from CPA #11 to CPA #13Update rate of pose estimated by NDT Scan Matcher.Localization10 HzEKF Localizer relies on fresh and up-to-date observed data from sensors for accurate estimation of self pose.
AWOV-008Message rate from CPA #15 to CPA #12Update rate of feed backed pose estimated by EKF Localizer.Localization50 HzNDT Scan Matcher relies on receiving estimated pose from EKF Localizer smoothly for linear interpolation.
AWOV-009Message rate from CPA #17 to CPA #19Update rate of Localization result received by Planning.Localization50 HzPlanning relies on Localization to update the estimated pose frequently.
AWOV-010Response time from CPA #20 to CPA #23Processing time from beginning of Planning to consumption of Trajectory message in Control.PlanningN/AA vehicle relies on Planning to update trajectory within a short time frame to achieve safe driving behavior.
AWOV-011Message rate from CPA #21 to CPA #22Update rate of Trajectory message from Planning.Planning10 HzA vehicle relies on Planning to update trajectory frequently to achieve safe driving behavior.
AWOV-012Message rate from CPA #24 to CPA #25Update rate of Control command.Control33 HzControl stability and comfort relies on sampling frequency of Control.
AWOV-013Message rate between CPA #26 and VehicleCommunication rate between Autoware and Vehicle.Vehicle InterfaceN/AA vehicle requires Autoware to communicate with each other at predetermined frequency.Temporal performance requirement varies depending on vehicle type.

Note

There is an assumption that each of sensors, such as LiDARs and cameras, outputs a set of pointcloud with a timestamp. CPA #0 is observed with the timestamp. If the sensors are not configured to output the timestamp, the time when Autoware receives the pointcloud is used instead. That is represented by CPA #1 in the model. The detailed metrics employs the idea as well.

Detailed temporal performance metrics for Perception#

The diagram below introduces the model for temporal performance metrics for Perception.

Model for the temporal performance metrics of perception: camera and LiDAR data go through traffic light recognition and object recognition to the behavior path planner, and numbered checkpoints (CPP) mark where messages are sent and consumed.TLRcamerasORcamerasLiDARsTraffic lightrecognitioncamera-basedObjectrecognitioncamera-basedSensingpreprocessing andconcatenationClusteringincludingoccupancy grid mapobstacle segmentationDNN-based objectrecognition(CenterPoint)Sensor fusionDetectionby trackerValidatorAssociationmergerTrackingsubscription callbacktimer callbackPredictionPlanningBehavior path plannersubscription callbacksubscription callbacktimer callback(10 Hz)012345678910111213141516171819202122232425262728293031Key componentCallbacknCPP #n: checkpoint for perception componentsDNN-based componentInter-component communicationIntra-component communicationA callback marks the time when the input message is consumed, not the time when it is received.
The Perception model: camera and LiDAR data flow to the behavior path planner, and the numbered badges are the checkpoints (CPP).

The following two policies assist in selecting the performance metrics:

  • Regarding the frequency and response time at which Recognition results from Object Recognition and Traffic Light Recognition are consumed in Planning
  • Splitting Perception component on merging points of data from multiple processing paths and considering the frequency and response time around that point

The following list shows the temporal performance metrics for Perception.

IDRepresentation in the modelMetric meaningRelated functionalityReference valueReason to choose it as a metricNote
APER-001Message rate from CPP #2 to CPP #26Update rate of Traffic Light Recognition.Traffic Light Recognition10 HzPlanning relies on fresh and up-to-date perceived data from Traffic Light Recognition for making precise decisions.
APER-002Response time from CPP #0 to CPP #30Response time from camera input to consumption of the result in Planning.Traffic Light RecognitionN/APlanning relies on fresh and up-to-date perceived data from Traffic Light Recognition for making precise decisions.
APER-003Message rate from CPP #25 to CPP #28Update rate of result from Prediction (Object Recognition) to Planning.Object Recognition10 HzPlanning relies on fresh and up-to-date perceived data from Perception for creating accurate trajectory.The metric is same as AWOV-001.
APER-004Response time from CPP #6 to CPP #30Response time in main body of Perception.Object RecognitionN/APlanning relies on fresh and up-to-date perceived data from Perception for creating accurate trajectory.The metric is same as AWOV-002 and used if delay compensation is disabled in Tracking.
APER-005Response time from CPP #23 to CPP #30Response time from Tracking output of Tracking to its data consumption in Planning.Object RecognitionN/APlanning relies on fresh and up-to-date perceived data from Perception for creating accurate trajectory.The metric is same as AWOV-003 and used if delay compensation is enabled in Tracking.
APER-006Response time from CPP #6 to CPP #21Duration to process pointcloud data in Sensing and Detection.Object RecognitionN/ATracking relies on Detection to provide real-time and up-to-date perceived data.The metric is same as AWOV-004 and used if delay compensation is enabled in Tracking.
APER-007Message rate from CPP #20 to CPP #21Update rate of Detection result received by Tracking.Object Recognition10 HzTracking relies on detection to provide real-time and up-to-date sensed data for accurate tracking.The metric is same as AWOV-005
APER-008Message rate from CPP #14 to CPP #19Update rate of data sent from Sensor Fusion.Object Recognition10 HzAssociation Merger relies on the data to be updated at expected frequency for data synchronization.
APER-009Message rate from CPP #16 to CPP #19Update rate of data sent from Detection by Tracker.Object Recognition10 HzAssociation Merger relies on the data to be updated at expected frequency for data synchronization.
APER-010Message rate from CPP #18 to CPP #19Update rate of data sent from Validation.Object Recognition10 HzAssociation Merger relies on the data to be updated at expected frequency for data synchronization.
APER-011Response time from CPP #6 to CPP #19 via CPP #14Response time to consume data sent from Sensor Fusion after LiDARs output pointcloud.Object RecognitionN/AAssociation Merger relies on fresh and up-to-date data for data synchronization.
APER-012Response time from CPP #6 to CPP #19 via CPP #16Response time to consume data sent from Detection by Tracker after LiDARs output pointcloud.Object RecognitionN/AAssociation Merger relies on fresh and up-to-date data for data synchronization.
APER-013Response time from CPP #6 to CPP #19 via CPP #18Response time to consume data sent from Validator after LiDARs output pointcloud.Object RecognitionN/AAssociation Merger relies on fresh and up-to-date data for data synchronization.
APER-014Message rate from CPP #10 to CPP #13Update rate of data sent from Clustering.Object Recognition10 HzSensor Fusion relies on the data to be updated at expected frequency for data synchronization.
APER-015Message rate from CPP #5 to CPP #13Update rate of data sent from Camera-based Object detection.Object Recognition10 HzSensor Fusion relies on the data to be updated at expected frequency for data synchronization.
APER-016Response time from CPP #6 to CPP #13Response time to consume data sent from Clustering after LiDARs output pointcloud.Object RecognitionN/ASensor Fusion relies on fresh and up-to-date data for data synchronization.
APER-017Response time from CPP #3 to CPP #13Response time to consume data sent from Camera-based Object detection after Cameras output images.Object RecognitionN/ASensor Fusion relies on fresh and up-to-date data for data synchronization.
APER-018Message rate from CPP #10 to CPP #17Update rate of data sent from Clustering.Object Recognition10 HzValidator relies on the data to be updated at expected frequency for data synchronization.It seems similar to APER-014, but the topic message is different.
APER-019Message rate from CPP #12 to CPP #17Update rate of data sent from DNN-based Object Recognition.Object Recognition10 HzValidator relies on the data to be updated at expected frequency for data synchronization.
APER-020Response time from CPP #6 to CPP #17 via CPP #10Response time to consume data sent from Clustering after LiDARs output pointcloud.Object RecognitionN/AValidator relies on fresh and up-to-date data for data synchronization.It seems similar to APER-016, but the topic message is different.
APER-021Response time from CPP #6 to CPP #17 via CPP #12Response time to consume data sent from DNN-based Object Recognition after LiDARs output pointcloud.Object RecognitionN/AValidator relies on fresh and up-to-date data for data synchronization.

Detailed temporal performance metrics for paths between obstacle segmentation and planning#

Obstacle segmentation, which is a crucial part of Perception, transmits data to Planning. The figure below illustrates the model that takes into account performance metrics related to Obstacle segmentation and Planning.

Model for the temporal performance metrics between obstacle segmentation and planning: LiDAR data goes through sensing, obstacle segmentation, and the occupancy grid map to the behavior velocity planner and the behavior path planner, and numbered checkpoints (CPS) mark where messages are sent and consumed.LiDARsSensingpreprocessing andconcatenationObstaclesegmentationOccupancygrid mapPlanningBehavior velocity plannersubscription callbacksubscription callbackPlanningBehavior path plannersubscription callbacktimer callbackRaw pointcloudObstacle pointcloudPathPath tomotion planning01234567891011121314Key componentCallbacknCPS #n: checkpoint for segmentation and planning componentsInter-component communicationIntra-component communicationA callback marks the time when the input message is consumed, not the time when it is received.
The obstacle segmentation model: LiDAR data flows to the behavior velocity planner and the behavior path planner, and the numbered badges are the checkpoints (CPS).

In Autoware 2.0.0, the occupancy grid map uses the output of obstacle segmentation and the raw pointcloud from Sensing. The model shows this order. The checkpoint numbers stay the same as in the tables.

Note

Both the Obstacle grid map and Obstacle segmentation transmit data to multiple sub-components of Planning. However, not all of these sub-components are described in the model. This is because our primary focus is on the paths from LiDAR to Planning via Obstacle segmentation.

The following list shows the temporal performance metrics around Obstacle segmentation and Planning.

IDRepresentation in the modelMetric meaningRelated functionalityReference valueReason to choose it as a metricNote
OSEG-001Message rate from CPS #4 to CPS #7Update rate of Occupancy grid map received by Planning (behavior_path_planner)Obstacle segmentation10 HzPlanning relies on Occupancy grid map to be updated frequently and smoothly for creating accurate trajectory.
OSEG-002Response time from CPS #0 to CPS #9 via CPS #7Response time to consume Occupancy grid map after LiDARs output sensing data.Obstacle segmentationN/APlanning relies on fresh and up-to-date perceived data from Occupancy grid map for creating accurate trajectory.
OSEG-003Message rate from CPS #6 to CPS #11Update rate of obstacle segmentation received by Planning (behavior_velocity_planner).Obstacle segmentation10 HzPlanning relies on Obstacle segmentation to be updated frequently and smoothly for creating accurate trajectory.
OSEG-004Response time from CPS #0 to CPS #13 via CPS #11Response time to consume Obstacle segmentation after LiDARs output sensing data.Obstacle segmentationN/APlanning relies on fresh and up-to-date perceived data from Obstacle segmentation for creating accurate trajectory.