-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcommonroad_run.py
More file actions
79 lines (69 loc) · 2.33 KB
/
Copy pathcommonroad_run.py
File metadata and controls
79 lines (69 loc) · 2.33 KB
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
74
75
76
77
78
79
"""
Standalone script to evaluate a folder containing CommonRoad scenarios.
"""
import os
from sandra.config import SanDRAConfiguration
from sandra.utility.road_network import RoadNetwork, EgoLaneNetwork
from sandra.commonroad.describer import CommonRoadDescriber
from sandra.commonroad.reach import ReachVerifier
from sandra.decider import Decider
import matplotlib
from sandra.utility.general import extract_scenario_and_planning_problem
print(matplotlib.get_backend())
matplotlib.use("TkAgg")
def main():
config = SanDRAConfiguration()
path_to_scenarios = os.path.dirname(os.path.abspath(__file__)) + "/scenarios/"
for filename in os.listdir(path_to_scenarios):
if not filename.endswith(".xml"):
continue
scenario, planning_problem = extract_scenario_and_planning_problem(
path_to_scenarios + filename
)
describer = CommonRoadDescriber(
scenario,
planning_problem,
0,
config,
role="Don't change the lanes too often. ",
scenario_type="highway",
)
road_network = RoadNetwork.from_lanelet_network_and_position(
scenario.lanelet_network,
planning_problem.initial_state.position,
consider_reversed=True,
consider_incoming=True,
)
ego_lane_network = EgoLaneNetwork.from_route_planner(
scenario.lanelet_network,
planning_problem,
road_network,
)
try:
verifier = ReachVerifier(
scenario,
planning_problem,
config,
ego_lane_network=ego_lane_network,
highenv=True,
scenario_folder=path_to_scenarios,
)
except FileNotFoundError:
scenario.scenario_id = filename[:-4]
verifier = ReachVerifier(
scenario,
planning_problem,
config,
ego_lane_network=ego_lane_network,
highenv=True,
scenario_folder=path_to_scenarios,
)
decider = Decider(
config,
describer,
verifier=verifier,
save_path=f"results-highD-{config.model_name}",
)
decider.decide()
if __name__ == "__main__":
main()