def traffic() -> Traffic: car1 = TrafficActor( name="car", speed=Distribution(sigma=0.2, mean=1.0), ) car2 = TrafficActor( name="car", speed=Distribution(sigma=0.2, mean=0.8), lane_changing_model=LaneChangingModel(impatience=1, cooperative=0.25), junction_model=JunctionModel(drive_after_yellow_time=1.0, impatience=0.5), ) return Traffic( flows=[ Flow( route=Route( begin=(f"edge-{r[0]}", 0, 30), end=(f"edge-{r[1]}", 0, -30) ), rate=1.0, actors={ car1: 0.5, car2: 0.5, }, ) for r in [("west-WE", "east-WE"), ("east-EW", "west-EW")] ] )
t.Route( begin=("edge1", 0, 10), via=("edge0",), end=("edge1", (0, 1, 2), 10) ), num_laps=1, ), ], overwrite=True, ) print(f"generate lap mission finished") # generate social agent routes impatient_car = TrafficActor( name="car", speed=Distribution(sigma=0.2, mean=0.5), lane_changing_model=LaneChangingModel(impatience=1, cooperative=0.25), junction_model=JunctionModel( drive_after_red_time=1.5, drive_after_yellow_time=1.0, impatience=1.0 ), ) patient_car = TrafficActor( name="car", speed=Distribution(sigma=0.2, mean=0.5), lane_changing_model=LaneChangingModel(impatience=0, cooperative=0.5), junction_model=JunctionModel(drive_after_yellow_time=1.0, impatience=0.5), ) car_type = patient_car car_name = "patient_car"
from smarts.sstudio import gen_traffic from smarts.sstudio.types import ( Distribution, Flow, JunctionModel, LaneChangingModel, Route, Traffic, TrafficActor, ) scenario = os.path.dirname(os.path.realpath(__file__)) impatient_car = TrafficActor( name="car", speed=Distribution(sigma=0.2, mean=1.0), lane_changing_model=LaneChangingModel(impatience=1, cooperative=0.25), junction_model=JunctionModel(drive_after_red_time=1.5, drive_after_yellow_time=1.0, impatience=1.0), ) patient_car = TrafficActor( name="car", speed=Distribution(sigma=0.2, mean=0.8), lane_changing_model=LaneChangingModel(impatience=0, cooperative=0.5), junction_model=JunctionModel(drive_after_yellow_time=1.0, impatience=0.5), ) vertical_routes = [ ("north-NS", "south-NS"),
# Mission(Route(begin=("edge-east", 0, 0), end=("edge-east", 0, -5))), ], overwrite=True, ) print("generate ego agent missions finished") ######################################### # generate social vehicles ######################################### sv_nums = [60, 60, 60, 60] seed = 45 traffic_actor = TrafficActor(name="car", speed=Distribution(sigma=0.1, mean=0.3),) for scenario_path, sv_num in zip(scenario_paths, sv_nums): traffic = Traffic( flows=[ Flow( route=RandomRoute(), begin=0, end=1 * 60 * 60, # make sure end time is larger than the time of one episode rate=60, actors={traffic_actor: 1}, ) for i in range(sv_num) ]
"blocker": (102, 0, 255), # "bus": (255, 255, 0), # "crusher": (255, 0, 0), "stopwatcher": (255, 158, 251), } depart_speed = "max" # sets to max social_vehicles = { "default": TrafficActor( name="default", accel=3.0, decel=7.5, tau=1.0, depart_speed=depart_speed, min_gap=Distribution(mean=2.5, sigma=0.05), speed=Distribution(mean=1.0, sigma=0.05), imperfection=Distribution(mean=0.5, sigma=0.05), vehicle_type="passenger", lane_changing_model=LaneChangingModel(), junction_model=JunctionModel(), ), "aggressive": TrafficActor( name="aggressive", accel=10.0, decel=10.0, tau=0.5, depart_speed=depart_speed, min_gap=Distribution(mean=1.0, sigma=0.1), speed=Distribution(mean=1.5, sigma=0.1),
Scenario, Traffic, TrafficActor, ) social_vehicle_num = 100 ego_missions = [ Mission( route=Route(begin=("edge-south-SN", 1, 10), end=("edge-north-SN", 1, 8)), ), ] stright_traffic_actor = TrafficActor( name="car", speed=Distribution(sigma=0.2, mean=1), lane_changing_model=LaneChangingModel(impatience=0), junction_model=JunctionModel( drive_after_red_time=1.5, drive_after_yellow_time=1.0, impatience=0.5 ), ) scenario = Scenario( traffic={ "basic": Traffic( flows=[ Flow( route=RandomRoute(), rate=1, actors={stright_traffic_actor: 1.0}, ) for i in range(social_vehicle_num)
TrafficActor, Distribution, ) scenario_dir = (Path(__file__).parent / "f1_public").resolve() scenario_names = ["shanghai", "silverstone", "monte", "interlagos"] scenario_paths = [scenario_dir / name for name in scenario_names] print(scenario_paths) sv_nums = [60, 60, 60, 60] seed = 45 traffic_actor = TrafficActor( name="car", speed=Distribution(sigma=0.1, mean=0.3), ) for scenario_path, sv_num in zip(scenario_paths, sv_nums): traffic = Traffic(flows=[ Flow( route=RandomRoute(), begin=0, end=1 * 60 * 60, # make sure end time is larger than the time of one episode rate=60, actors={traffic_actor: 1}, ) for i in range(sv_num) ]) print(