-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path1_GridMapNoLights.py
73 lines (59 loc) · 2.54 KB
/
1_GridMapNoLights.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
# the scenario name
from copy import deepcopy
from FlowMas.utils.parameters import Params
from flow.controllers import IDMController, GridRouter
from flow.core.experiment import Experiment
from flow.core.params import VehicleParams, NetParams, InitialConfig, TrafficLightParams, SumoParams, EnvParams
from flow.envs import TestEnv
from flow.envs.traffic_light_grid import ADDITIONAL_ENV_PARAMS
from flow.networks.traffic_light_grid import ADDITIONAL_NET_PARAMS
from flow.scenarios import TrafficLightGridScenario
##############################
# Vehicle Params
##############################
# vehicle params to take care of all the vehicles
vehicles = VehicleParams()
# number of human drivers
human_num = 200
# add human drivers with premade controllers/routers
vehicles.add("human",
acceleration_controller=(IDMController, {}),
routing_controller=(GridRouter, {}),
num_vehicles=human_num)
##############################
# NET Params
##############################
# Setting grid measures
additional_net_params = deepcopy(ADDITIONAL_NET_PARAMS)
additional_net_params['grid_array']['col_num'] = 10
additional_net_params['grid_array']['row_num'] = 10
additional_net_params['grid_array']['inner_length'] = 200
additional_net_params['grid_array']['long_length'] = 1000
additional_net_params['grid_array']['short_length'] = 1000
additional_net_params['traffic_lights'] = False
# standard stuff, check it out in the tutorial
net_params = NetParams(additional_params=additional_net_params)
##############################
# Other Params
##############################
initial_config = InitialConfig(spacing="custom", perturbation=1)
sumo_params = SumoParams(sim_step=0.1, render=True, emission_path=Params.DATA_DIR)
additional_env_params = deepcopy(ADDITIONAL_ENV_PARAMS)
env_params = EnvParams(additional_params=additional_env_params)
##############################
# Scenario Initialization
##############################
scenario = TrafficLightGridScenario(name="grid_tutorial",
vehicles=vehicles,
net_params=net_params,
initial_config=initial_config,
traffic_lights=TrafficLightParams())
##############################
# Env/Exp creation
##############################
# create the environment object
env = TestEnv(env_params, sumo_params, scenario)
# create the experiment object
exp = Experiment(env)
# run the experiment for a set number of rollouts / time steps
_ = exp.run(1, 3000)