406. AEB Simple Functional Checkers
With scenarios, we would like to cover the full spectrum of situations that lead to situations where the ego function (e.g. AEB) should engage and where it should not engage. With corresponding checks, we want to determine whether the ego function (e.g. AEB) engaged correctly or incorrectly. The checks primarily need to be able to identify the False-Negative and the False-Positive cases. The opposite cases (where the function works perfectly fine) result automatically, so typically the existing checks trigger when the condition of the check is met and the scenario aborts with an Error. If the scenario triggers no error the assumption is the test is passed. However, this assumption has the flaw that you can not test what you did not check. So basically, the results still just give insights regarding the specific checks that were executed and the situation/maneuver that was concretely observed. It tells nothing about the unknowns.
406.1 Simplified checks based on longitudinal and lateral distances to ego/ego
Two measures are continuously taken for any other actor in the scenario:
-
lateral distance (ideally closest points via bounding box), measured in global coordinates
-
longitudinal distance (ideally closest points or front to back via bounding box), measured in global coordinates and divided by ego speed to give a time gap
406.1.1 There are three thresholds defined:
-
lateral_threshold (e.g
0.5m) -
longitudinal_threshold_warning (
1.3s) -
longitudinal_threshold_error (
1s)
406.1.2 The FN (False-Negative) checks are:
IF ((lateral_distance < lateral_threshold) AND (lon_time_gap < longitudinal_threshold_warning) AND (AEB NOT engaged)) → WARNING
IF ((lateral_distance < lateral_threshold) AND (lon_time_gap < longitudinal_threshold_error) AND (AEB NOT engaged)) → ERROR
406.1.3 The FP (False-Positive) checks are
IF (AEB engaged) AND ((lateral_distance > lateral_threshold) OR (lon_time_gap > longitudinal_threshold_error)) → ERROR
406.1.4 Steps to use AEB simple functional checkers
Call the aeb_oedr() either from the main template file or from the scenario implementation file as shown in the below example.
extend top.main:
on @top.clk:
call aeb_oedr()
406.1.5 Implementation path
$FTX_PACKAGES/adas/AEB/common/cpp/external_imp.cpp/ - aeb_oedr()
Note: The generic AEB checks are implemented for straight roads as of now. Further updates will support curved roads and junctions.