diff --git a/examples/BlockedManual.osn b/examples/BlockedManual.osn new file mode 100644 index 0000000..9806703 --- /dev/null +++ b/examples/BlockedManual.osn @@ -0,0 +1,29 @@ +// Blocked Take Over Request Scenario + +Scenario BlockedTOR: + + Act AccidentTOR: + + @init: + CreateVehicle(Ego,EgoProto,xyz=0m|0m|0m,speed=130km/h) + CreateVehicle(Blocker,BlockerProto,xyz=0m|Ego.y-1000m|0m,speed=180km/h,model=ASAMStupidDriver(...)) + CreateVehicle(BlockerRear,BlockerRearProto,xyz=0m|Blocker.y-50m|0m,speed=150km/h) + CreateVehicle(Accident,AccidentProto,xyz=0m|Ego.y+2000m|0m,speed=0km/h,model=ADACAccidentDriver(...)) + + @Distance(Ego,Accident) <= 1000m % OnceOnly: + LaneChange(Blocker,lane=+1,model=Sinusoidal(time=5s)) + SpeedChange(Blocker,SpeedToReach(Blocker,Ego,Accident.y-180m)) + + + @Distance(Blocker,Ego) <= 10m % OnceOnly: + SpeedChange(Blocker,Ego.velocity.y + 10km/h) + + Prototypes: + EgoProto: Vehicle(geometry="mycar.obj",color="blue") + BlockerProto: Vehicle(geometry="traffic.obj",color="yellow",maxaccel=10km/h/10s,maxbrake=10m/s/s) + BlockerRearProto: Vehicle(geometry="traffic.obj",color="green") + AccidentProto: Vehicle(geometry="traffic.obj",color="red") + + Resources: + Map: OpenDrive("OpenDriveMap.xodr") + ADACAccidentDriver: ExternalModel("") diff --git a/examples/BlockedTOR.osn b/examples/BlockedTOR.osn new file mode 100644 index 0000000..27c6c15 --- /dev/null +++ b/examples/BlockedTOR.osn @@ -0,0 +1,27 @@ +// Blocked Take Over Request Scenario + +Scenario BlockedTOR: + + Act AccidentTOR: + + @init: + CreateVehicle(Ego,EgoProto,xyz=0m|0m|0m,speed=130km/h) + CreateVehicle(Blocker,BlockerProto,xyz=0m|Ego.y-1000m|0m,speed=180km/h) + CreateVehicle(BlockerRear,BlockerRearProto,xyz=0m|Blocker.y-50m|0m,speed=150km/h) + CreateVehicle(Accident,AccidentProto,xyz=0m|Ego.y+2000m|0m,speed=0km/h) + + @Distance(Ego,Accident) <= 1000m % OnceOnly: + LaneChange(Blocker,lane=+1,model=Sinusoidal(time=5s)) + SpeedChange(Blocker,SpeedToReach(Blocker,Ego,Accident.y-180m)) + + @Distance(Blocker,Ego) <= 10m % OnceOnly: + SpeedChange(Blocker,Ego.velocity.y + 10km/h) + + Prototypes: + EgoProto: Vehicle(geometry="mycar.obj",color="blue") + BlockerProto: Vehicle(geometry="traffic.obj",color="yellow",maxaccel=10km/h/10s,maxbrake=10m/s/s) + BlockerRearProto: Vehicle(geometry="traffic.obj",color="green") + AccidentProto: Vehicle(geometry="traffic.obj",color="red") + + Resources: + Map: OpenDrive("OpenDriveMap.xodr") diff --git a/examples/QueueSwitcher.osn b/examples/QueueSwitcher.osn new file mode 100644 index 0000000..4ced8f6 --- /dev/null +++ b/examples/QueueSwitcher.osn @@ -0,0 +1,30 @@ +// Blocked Take Over Request Scenario + +Scenario QueueSwitcher: + + Act QueueSwitcher(rightcount=30,rightspeed=10km/h,latpos=0.3,latpostime=1s,blinktime=-2s): + + @init: + CreateVehicle(Ego,EgoProto,xyz=0m|0m|0m,speed=30km/h) + CreateVehicle(Front,FrontProto,xyz=0m|Ego.y+100m|0m,speed=30km/h) + repeat n in [1:$rightcount] by 1: + CreateVehicle(RightQueue$n,RightQueueProto,xyz=5m|Ego.y+$n*15m|0m,speed=$rightspeed) + + @Headway(Ego,Front) >= 2s % OnceOnly: + select next_queue in RightQueue* with DistanceBeforePassing(next_queue,Ego)>15m minimize Distance(next_queue,Ego): + @Distance($next_queue,Ego) < 10m: + LateralChange($next_queue,x=-$latpos,t=$latpostime) + Delay(2s) + SetLight($next_queue,LeftTurnIndicator) + Delay($blinktime) + LangeChange($next_queue,lane=+1,model=...) + LaneChange(Blocker,lane=+1,model=Sinusoidal(time=5s)) + SpeedChange(Blocker,SpeedToReach(Blocker,Ego,Accident.y-180m)) + + Prototypes: + EgoProto: Vehicle(geometry="mycar.obj",color="blue") + FrontProto: Vehicle(geometry="traffic.obj",color="yellow",maxaccel=10km/h/10s,maxbrake=10m/s/s) + RightQueueProto: Vehicle(geometry="traffic.obj",color="green") + + Resources: + Map: OpenDrive("OpenDriveMap.xodr") diff --git a/examples/SimpleOvertaker.osn b/examples/SimpleOvertaker.osn index 441b3df..b6a44de 100644 --- a/examples/SimpleOvertaker.osn +++ b/examples/SimpleOvertaker.osn @@ -6,7 +6,7 @@ Scenario SimpleOvertaker: @init: CreateVehicle(Ego,EgoProto,xyz=0m|0m|0m,speed=80km/h) - CreateVehicle(Overtaker,OvertakerProto,xyz=0m|Ego.y-30m|0m,speed=100km/h) + CreateVehicle(Overtaker,OvertakerProto,xyz=0m|Ego.y-100m|0m,speed=100km/h) @Distance(Ego,Overtaker) <= 30m % OnceOnly: LaneChange(Overtaker,lane=-1,model=Sinusoidal(time=5s))