Skip to content

Movement scenarios examples

Example: vehicle.drive() example 1

OSC2 code: vehicle.drive() example 1
import "$FTX_BASIC/exe_platforms/sumo_ssp/config/sumo_config.osc"

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

extend top.main:
    car1: vehicle
    h: highway


    do serial:
        car1.drive() with:
            along(h)
            speed([30..70]kph)

Example: vehicle.drive() example 2

OSC2 code: vehicle.drive() example 2
import "$FTX_BASIC/exe_platforms/sumo_ssp/config/sumo_config.osc"

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

extend top.main:
    car1: vehicle
    car2: vehicle
    hwy1: highway


    do parallel(overlap:equal):
        sut.car.drive() with:
            along(hwy1)
        car1.drive() with:
            speed(speed: [30..200]kph)
            position(distance: [5..100]meter, behind: sut.car, at: start)
            along(hwy1)

Example: random_traffic.light_highway_traffic()

OSC2 code: random_traffic.light_highway_traffic()
import "$FTX/config/sim/sumo_default.osc"
import "$FTX/env/basic/behavioral_models/sumo/builtin/sumo_builtin_bme.osc"
import "$FTX/env/basic/behavioral_models/sumo/common/sumo_demo_profiles.osc"

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

extend top.main:
    random_traffic: random_traffic_car_group with(origin_actor: sut.car)

    dm: sumo_idm_normal_driver
    for car in random_traffic.cars:
        keep(car.initial_bm == dm)

    do parallel(overlap:equal):
        dut_drive: sut.car.drive(duration: 10second) with:
            speed(20kph)
        random_traffic.light_highway_traffic()

Example: common_route_car_group.group_drive()

OSC2 code: common_route_car_group.group_drive()
import "$FTX/config/sim/sumo_default.osc"
import "$FTX/env/basic/behavioral_models/sumo/builtin/sumo_builtin_bme.osc"
import "$FTX/env/basic/behavioral_models/sumo/common/sumo_demo_profiles.osc"

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

extend top.main:
    lead_vehicle: vehicle
    sut_cruise_speed: speed with:
      keep(default it == 90kph)
    hwy: highway
    car_group: single_lane_car_group with(reference_car: lead_vehicle):
        keep(it.cars.size() == 6)

    dm: sumo_idm_aggressive_driver
    for car in car_group.cars:
        keep(car.initial_bm == dm)

    do parallel(overlap:equal):
            lead_vehicle.drive() with:
                lane(side_of: sut.car)
                position(time: [2s..4.5s], ahead_of: sut.car, at: start)
                speed(speed: [-sut_cruise_speed+10kph..-sut_cruise_speed+20kph], 
                            faster_than: sut.car, track: projected, at: end)
                along(hwy)
            sut.car.drive() with:
                speed(speed: sut_cruise_speed)
                along(hwy)
            car_group_start: car_group.group_drive()
    with:
        duration([10..10]second)