Skip to content

128. Ego bypassing object checker and stopper

Checker location: $FTX_PACKAGES/base_scenarios/common/metrics_checks/ego_bypassing_object_check.osc

Stopper location: $FTX_PACKAGES/base_scenarios/common/metrics_checks/object_scenario_stopper.osc

128.1 Ego bypassing object checker

This checker module checks whether the Ego has successfully bypassed:

  • A single stationary object, or
  • A group of stationary objects

It raises an issue if the Ego fails to bypass within a specified distance threshold.

128.1.1 Issue kinds

issue_kind: [ego_did_not_bypass_object, ego_did_not_bypass_object_group]
  • ego_did_not_bypass_object: Triggered when the Ego fails to bypass a single object.

  • ego_did_not_bypass_object_group: Triggered when the Ego fails to bypass a group of objects.

The parameters you can constrain for this checker are as follows:

Parameter Description Range
ego_bypassing_object_distance The minimum required distance to consider an object as bypassed. 1m
ego_bypassing_object_check_severity The severity level to report when a bypass check fails. warning
---

128.2 Ego bypassing object & object group scenario stoppers

This module defines scenario stoppers that automatically terminate a simulation scenario when the Ego:

  • Bypasses a stationary object or a group of objects by a specified distance, or
  • Remains stopped below a speed threshold for longer than a specified duration.

These stoppers are commonly used in simulation phases to control scenario flow based on the Ego’s motion behavior near obstacles.

128.3 object_scenario_stopper

Monitors a single stationary object and ends the scenario if the Ego:

  • Bypasses it by a configured distance, or
  • Remains stopped for longer than a specified duration.

The parameters you can constrain for this checker are as follows:

Parameter Type Default Description
object_position msp_position - Position of the single object
ego_bypassing_object_end_distance length 10m Distance beyond which object is considered bypassed
time_delay time 10s Time Ego must remain below speed threshold to trigger stop
standstill_threshold speed 1kph Speed under which Ego is considered stopped
---

128.3.0.1 Events

  • ego_bypassed: Triggers when the Ego crosses the object by ego_bypassing_object_end_distance.
  • ego_stopped: Detects transition from motion to stop.
  • ego_stopped_for_time: Confirms Ego remained stopped for time_delay.
  • ego_stops_and_moves: Resets the stop tracking when the Ego starts to move.

128.4 object_group_scenario_stopper

The object_group_scenario_stopper scenario module is designed to terminate a scenario when the Ego:

  • Bypasses the last object in a group of static objects by a specified distance, or
  • Remains stopped below a speed threshold for longer than a specified duration.

This is useful for verifying bypass behavior around multiple obstacles and detecting stalls or deadlocks during complex navigation.

This stopper is typically used in scenarios involving multiple static obstacles like parked vehicles, roadblocks, or traffic barriers. It is integrated into test phases to stop the simulation once the test objective is met or fails.

The parameters you can constrain for this stopper are as follows:

Parameter Type Default Description
object_group plain_object_group - Group of stationary objects to monitor
ego_bypassing_object_end_distance length 10m Distance beyond which the Ego is considered to have bypassed the last object
max_time_ego_stops time 10s Maximum duration the Ego can remain below the standstill threshold
standstill_threshold speed 3kph Speed under which the Ego is considered "stopped"
scenario_stoppers_enabled bool true Flag to toggle stopper logic dynamically

128.4.1 Events

  • clock
    Samples position and object states each tick, ensuring events trigger only when valid states are available.

  • ego_bypassed
    Triggers when Ego's distance to the last object in the group is less than -ego_bypassing_object_end_distance.

  • standstill_watcher
    Tracks how long the Ego remains under the standstill speed threshold.

  • ego_stops_for_max_time
    Triggered when standstill duration exceeds max_time_ego_stops.

128.4.1.1 Design Constraints

  • The last object in the group is used as the bypass reference.

  • Conditions are gated with scenario_stoppers_enabled, enabling user to turn off the logic dynamically.

  • Uses ego_standstill_watcher.osc to avoid manual timing code and ensure robustness.