Skip to content

380. Unplanned Standing

The unplanned_standing_checker detects situations where the vehicle is standing still or driving at very low speeds without a valid reason. It flags situations where the vehicle hesitates, becomes stuck, or slows down unnecessarily, even though it is safe and appropriate to continue driving. This helps detect issues in autonomous driving systems, such as excessive caution or failure to proceed, which can disrupt traffic flow.

380.0.1 Start condition

An interval starts when all of the following conditions are met:

  1. The vehicle's speed falls below the configured max_speed_threshold which indicates it is standing still or near-standstill.
  2. The vehicle's speed has been below the max_speed_threshold for a minimum duration debounce_start_time to avoid flagging cases where the vehicle has slowed down or stopped normally.
  3. The vehicle's longitudinal acceleration is below the configured max_acceleration_threshold to avoid flagging cases where the vehicle slowed or stopped but is already starting to accelerate again.
  4. None of the justification conditions are met.

380.0.2 End condition

The interval ends when any of the following conditions occur:

  1. The vehicle's speed exceeds the max_speed_threshold plus a configurable tolerance speed_threshold_tolerance.
  2. The vehicle's longitudinal acceleration exceeds the max_acceleration_threshold, indicating it is starting to move.
  3. Any of the justification conditions are met.

380.1 Attributes

The following attributes define the behavior and characteristics of the evaluator.

Checker attribute Description
Parent object vehicle.unplanned_standing
Issue category sut or other
Issue kind unplanned_standing
Default severity warning
Trigger condition Based on unplanned_standing watcher
Operation modes unplanned_standing_checker

380.2 Configuration parameters

The following parameters can be configured to customize the evaluator's behavior.

Parameter Type Description Default Value
max_speed_threshold speed Very low velocity threshold below which the vehicle is considered standing 1.0kph
speed_threshold_tolerance speed Tolerance for speed threshold - interval ends when speed exceeds max_speed_threshold + speed_threshold_tolerance 0.5kph
debounce_start_time time Minimum duration the vehicle must be below the max_speed_threshold before starting an interval 0s
max_acceleration_threshold acceleration Maximum longitudinal acceleration threshold below which the vehicle is considered to be standing still 0.3mpsps
object_detection_range length Detection range for objects ahead 10.0m
blocking_object_speed_threshold speed Maximum speed threshold for objects; objects or vehicles below this threshold are considered blocking 1.0kph
pedestrian_detection_range length Detection range for pedestrians crossing or about to cross the vehicle's path 10.0m
intersection_detection_range length Detection range for an intersection or roundabout 10.0m
traffic_control_detection_range length Detection range for traffic control devices (traffic lights, signs) 10.0m

380.3 Metrics

The following metrics are recorded and tracked by the evaluator.

Metric item Unit / Type Description
acceleration_at_start mpsps Longitudinal acceleration at the unplanned standing interval start
interval_duration s Duration of the unplanned standing interval
end_reason enum (no_justification, traffic_blocking, pedestrian_present, traffic_control_device, intersection_navigation, turn_indicator_enabled) Reason why standing was justified (if applicable)
min_speed kph Minimum speed during standing
max_speed kph Maximum speed during standing
avg_speed kph Average speed during standing
min_lon_acceleration mpsps Minimum longitudinal acceleration during standing
max_lon_acceleration mpsps Maximum longitudinal acceleration during standing

380.4 Log and Error Messages

Output Condition Description Default Severity
After the interval ends, a warning is issued. Vehicle was slower than << ftlx_global_eval_config.ego_unplanned_standing_checker_config.max_speed_threshold >> for longer than << ftlx_global_eval_config.ego_unplanned_standing_checker_config.debounce_start_time >> Warning

380.5 Additional information

Justification conditions

  • Traffic Blocking: An object ahead within object_detection_range is stopped or moving slower than blocking_object_speed_threshold.
  • Pedestrians: A person is detected ahead near the path within pedestrian_detection_range.
  • Control Devices: Presence of a stop sign, yield sign, or red light within traffic_control_detection_range.
  • Intersections/Roundabouts: Vehicle is navigating or yielding at junctions or roundabouts within intersection_detection_range.
  • Turn Indicators: Any turn signal state other than off is active.
Figure 1: Vehicle standing justification conditions

When the vehicle stands still without any valid justification, an interval is triggered and an issue is reported.

Figure 2: Vehicle standing still without justification conditions

Implementation notes:

  • Object and pedestrian detection uses vehicle.global_distance(object, closest_compound, closest_compound) to calculate distances, followed by vehicle.local_distance(object, closest_compound, closest_compound, lon) to determine if objects are ahead of the vehicle (positive local distance indicates ahead).
  • Intersection detection uses map.get_route_elements_ahead_of_type(from_pos, intersection_detection_range, path, element_type) to query for internal roads and roundabout elements within the detection range.
  • Traffic control device detection uses map.get_signals_on_route(vehicle.state.msp_pos.road_position, vehicle.planned_path, traffic_control_detection_range) to identify stop signs, yield signs, and traffic lights along the planned route.