Skip to content

Metrics examples

Example: Configure the check to expect the vehicle to stop at least 1m ahead of the signal

OSC2 code: Configure the check to expect the vehicle to stop at least 1m ahead of the signal
import "$FTX/env/basic/exe_platforms/model_ssp/config/model_sumo_config.osc"

extend test_config:
    set map = "$FTX_PACKAGES/maps/M77_FTX_highway_straight_long_road.xodr"

extend top.main:
    do sut.car.drive(duration: [5..10]s)


extend top.main:
    keep(sut.car.junction_checkers.checker_approach_junction.expected_stop_distance_lb == 1m)

Example: Freeze the modifier at runtime

OSC2 code: Freeze the modifier at runtime
import "$FTX/env/basic/exe_platforms/model_ssp/config/model_sumo_config.osc"

extend test_config:
    set map = "$FTX_PACKAGES/maps/M77_FTX_highway_straight_long_road.xodr"

extend top.main:
    do sut.car.drive(duration: [5..10]s)


extend sut_vehicle.junction_checkers:
    on @start:
        override(checker_approach_junction, run_mode: freeze)

Example: Disabling the Crash checker globally

OSC2 code: Disabling the crash checker globally
import "$FTX/env/basic/msp/open_drive.osc"
import "$FTX/env/basic/exe_platforms/model_ssp/config/model_dummy_config.osc"

extend test_config:
    set map = "$FTX_PACKAGES/maps/M77_FTX_highway_straight_long_road.xodr"

extend vehicle:
    keep(ftx_driver.collision_avoidance_behavior.enabling_policy == always_disabled)
    keep(ftx_driver.bypass_behavior.enable == false)


extend physical_object.global_checkers:
    on @start:
        override(crash, run_mode: freeze)


    on @end:
        logger.log_info("Crash checker was disabled globally - no collision issues raised")

extend top.main:
    npc1: vehicle with:
        keep(it.vehicle_category == sedan)

    do parallel(overlap: equal):
        sut_behavior: sut.car.drive() with:
            speed(100kph)
            duration(5second)
            avoid_collisions(false)
        npc1_behavior: npc1.drive() with:
            speed(10mps)
            position(time: 2second, ahead_of: sut.car, measure_by: nearest, at: start)
            avoid_collisions(false)
            lane(same_as: sut.car, at: start)  

Example: Disabling the Crash checker for NPC vehicles

OSC2 code: Disabling crash checker for NPC vehicles
import "$FTX/env/basic/msp/open_drive.osc"
import "$FTX/env/basic/exe_platforms/model_ssp/config/model_dummy_config.osc"

extend test_config:
    set map = "$FTX_PACKAGES/maps/M77_FTX_highway_straight_long_road.xodr"

extend vehicle:
    keep(ftx_driver.collision_avoidance_behavior.enabling_policy == always_disabled)
    keep(ftx_driver.bypass_behavior.enable == false)

extend physical_object.global_checkers:
    on @crash.i_start:
        call logger.log_info("$(actor): crash active")


extend npc_vehicle.global_checkers:
    on @start:
        override(crash, run_mode: freeze)


extend top.main:
    npc1: vehicle with:
        keep(it.vehicle_category == sedan)

    do parallel(overlap: equal):
        sut_behavior: sut.car.drive() with:
            speed(100kph)
            duration(5second)
            avoid_collisions(false)
        npc1_behavior: npc1.drive() with:
            speed(10mps)
            position(time: 2second, ahead_of: sut.car, measure_by: nearest, at: start)
            avoid_collisions(false)
            lane(same_as: sut.car, at: start)  

Example: Downgrading Crash checker issues

OSC2 code: Downgrading crash checker issues
import "$FTX/env/basic/msp/open_drive.osc"
import "$FTX/env/basic/exe_platforms/model_ssp/config/model_dummy_config.osc"

extend test_config:
    set map = "$FTX_PACKAGES/maps/M77_FTX_highway_straight_long_road.xodr"

extend vehicle:
    keep(ftx_driver.collision_avoidance_behavior.enabling_policy == always_disabled)
    keep(ftx_driver.bypass_behavior.enable == false)


extend physical_object.global_checkers:
    set_issue(target_checker: crash, severity: warning)


extend top.main:
    npc1: vehicle with:
        keep(it.vehicle_category == sedan)

    do parallel(overlap: equal):
        sut_behavior: sut.car.drive() with:
            speed(100kph)
            duration(5second)
            avoid_collisions(false)
        npc1_behavior: npc1.drive() with:
            speed(10mps)
            position(time: 2second, ahead_of: sut.car, measure_by: nearest, at: start)
            avoid_collisions(false)
            lane(same_as: sut.car, at: start)  

Example: Conditional downgrading of collision issues

OSC2 code: Conditional downgrading of collision issues
import "$FTX/env/basic/msp/open_drive.osc"
import "$FTX/env/basic/exe_platforms/model_ssp/config/model_dummy_config.osc"

extend test_config:
    set map = "$FTX_PACKAGES/maps/M77_FTX_highway_straight_long_road.xodr"

extend vehicle:
    keep(ftx_driver.collision_avoidance_behavior.enabling_policy == always_disabled)
    keep(ftx_driver.bypass_behavior.enable == false)


extend physical_object.global_checkers:
    set_issue(target_checker: crash, severity: warning,
        # In the context of set_issue(), 'it' refers to the 'data' object of the checker
        condition: it.this_object.is(sut_vehicle) and it.other_object.is(npc_vehicle))


extend top.main:
    npc1: vehicle with:
        keep(it.vehicle_category == sedan)

    do parallel(overlap: equal):
        sut_behavior: sut.car.drive() with:
            speed(100kph)
            duration(5second)
            avoid_collisions(false)
        npc1_behavior: npc1.drive() with:
            speed(10mps)
            position(time: 2second, ahead_of: sut.car, measure_by: nearest, at: start)
            avoid_collisions(false)
            lane(same_as: sut.car, at: start)