Skip to content

Commit ace7492

Browse files
committed
Deprecated sstudio mission start time.
1 parent 9f887e7 commit ace7492

File tree

16 files changed

+156
-71
lines changed

16 files changed

+156
-71
lines changed

scenarios/sumo/intersections/1_to_1lane_left_turn_c_agents_1/scenario.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -93,8 +93,8 @@
9393
ego_missions = [
9494
Mission(
9595
route=route,
96-
start_time=12, # Delayed start, to ensure road has prior traffic.
9796
entry_tactic=TrapEntryTactic(
97+
start_time=12, # Delayed start, to ensure road has prior traffic.
9898
wait_to_hijack_limit_s=1,
9999
zone=MapZone(
100100
start=(

scenarios/sumo/intersections/1_to_2lane_left_turn_c_agents_1/scenario.py

+12-2
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,15 @@
2323
from pathlib import Path
2424

2525
from smarts.sstudio import gen_scenario
26-
from smarts.sstudio.types import Flow, Mission, Route, Scenario, Traffic, TrafficActor
26+
from smarts.sstudio.types import (
27+
Flow,
28+
Mission,
29+
Route,
30+
Scenario,
31+
Traffic,
32+
TrafficActor,
33+
TrapEntryTactic,
34+
)
2735

2836
normal = TrafficActor(
2937
name="car",
@@ -86,7 +94,9 @@
8694
ego_missions = [
8795
Mission(
8896
route=route,
89-
start_time=4, # Delayed start, to ensure road has prior traffic.
97+
entry_tactic=TrapEntryTactic(
98+
start_time=4, wait_to_hijack_limit_s=0.1
99+
), # Delayed start, to ensure road has prior traffic.
90100
)
91101
]
92102

scenarios/sumo/intersections/1_to_2lane_left_turn_t_agents_1/scenario.py

+43-30
Original file line numberDiff line numberDiff line change
@@ -23,65 +23,78 @@
2323
from pathlib import Path
2424

2525
from smarts.sstudio import gen_scenario
26-
from smarts.sstudio.types import Flow, Mission, Route, Scenario, Traffic, TrafficActor
26+
from smarts.sstudio.types import (
27+
Flow,
28+
Mission,
29+
Route,
30+
Scenario,
31+
Traffic,
32+
TrafficActor,
33+
TrapEntryTactic,
34+
)
2735

2836
normal = TrafficActor(
2937
name="car",
3038
)
3139

32-
horizontal_routes = [
33-
("E4", 0, "E1", 0),
34-
("E4", 1, "E1", 1),
35-
("-E1", 0, "-E4", 0),
36-
("-E1", 1, "-E4", 1),
37-
]
38-
39-
turn_left_routes = [
40-
("E0", 0, "E1", 1),
41-
("E4", 1, "-E0", 0),
40+
# flow_name = (start_lane, end_lane)
41+
route_opt = [
42+
(0, 0),
43+
(1, 1),
44+
(2, 2),
4245
]
4346

44-
turn_right_routes = [
45-
("E0", 0, "-E4", 0),
46-
("-E1", 0, "-E0", 0),
47-
]
48-
49-
# Total route combinations = 8C1 + 8C2 + 8C3 + 8C4 + 8C5 = 218
50-
# Repeated route combinations = 218 * 2 = 436
51-
all_routes = horizontal_routes + turn_left_routes + turn_right_routes
47+
# Traffic combinations = 3C2 + 3C3 = 3 + 1 = 4
48+
# Repeated traffic combinations = 4 * 100 = 400
49+
min_flows = 2
50+
max_flows = 3
5251
route_comb = [
53-
com for elems in range(1, 6) for com in combinations(all_routes, elems)
54-
] * 2
52+
com
53+
for elems in range(min_flows, max_flows + 1)
54+
for com in combinations(route_opt, elems)
55+
] * 100
56+
5557
traffic = {}
5658
for name, routes in enumerate(route_comb):
5759
traffic[str(name)] = Traffic(
5860
flows=[
5961
Flow(
6062
route=Route(
61-
begin=(start_edge, start_lane, 0),
62-
end=(end_edge, end_lane, "max"),
63+
begin=("gneE3", start_lane, 0),
64+
end=("gneE4", end_lane, "max"),
6365
),
6466
# Random flow rate, between x and y vehicles per minute.
65-
rate=60 * random.uniform(5, 10),
67+
rate=60 * random.uniform(10, 20),
6668
# Random flow start time, between x and y seconds.
67-
begin=random.uniform(0, 3),
69+
begin=random.uniform(0, 5),
6870
# For an episode with maximum_episode_steps=3000 and step
6971
# time=0.1s, the maximum episode time=300s. Hence, traffic is
7072
# set to end at 900s, which is greater than maximum episode
7173
# time of 300s.
7274
end=60 * 15,
7375
actors={normal: 1},
76+
randomly_spaced=True,
7477
)
75-
for start_edge, start_lane, end_edge, end_lane in routes
78+
for start_lane, end_lane in routes
7679
]
7780
)
7881

79-
route = Route(begin=("E0", 0, 5), end=("E1", 0, "max"))
82+
8083
ego_missions = [
8184
Mission(
82-
route=route,
83-
start_time=4, # Delayed start, to ensure road has prior traffic.
84-
)
85+
Route(begin=("gneE6", 0, 10), end=("gneE4", 2, "max")),
86+
entry_tactic=TrapEntryTactic(
87+
entry_tactic=TrapEntryTactic(start_time=15, wait_to_hijack_limit_s=0.1),
88+
wait_to_hijack_limit_s=1,
89+
),
90+
),
91+
Mission(
92+
Route(begin=("gneE3", 0, 10), end=("gneE4", 0, "max")),
93+
entry_tactic=TrapEntryTactic(
94+
entry_tactic=TrapEntryTactic(start_time=15, wait_to_hijack_limit_s=0.1),
95+
wait_to_hijack_limit_s=1,
96+
),
97+
),
8598
]
8699

87100
gen_scenario(

scenarios/sumo/loop/scenario.py

+3-1
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,9 @@
5656
t.Mission(
5757
route=t.RandomRoute(),
5858
entry_tactic=t.IdEntryTactic(
59-
"other_interest", t.TimeWindowCondition(0.1, 20.0)
59+
start_time=0.1,
60+
actor_id="other_interest",
61+
condition=t.TimeWindowCondition(0.1, 20.0),
6062
),
6163
)
6264
],

scenarios/sumo/merge/3lane_agents_1/scenario.py

+17-5
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,15 @@
2323
from pathlib import Path
2424

2525
from smarts.sstudio import gen_scenario
26-
from smarts.sstudio.types import Flow, Mission, Route, Scenario, Traffic, TrafficActor
26+
from smarts.sstudio.types import (
27+
Flow,
28+
Mission,
29+
Route,
30+
Scenario,
31+
Traffic,
32+
TrafficActor,
33+
TrapEntryTactic,
34+
)
2735

2836
normal = TrafficActor(
2937
name="car",
@@ -71,12 +79,16 @@
7179
]
7280
)
7381

74-
route = Route(begin=("gneE6", 0, 10), end=("gneE4", 2, "max"))
82+
7583
ego_missions = [
7684
Mission(
77-
route=route,
78-
start_time=15, # Delayed start, to ensure road has prior traffic.
79-
)
85+
Route(begin=("gneE6", 0, 10), end=("gneE4", 2, "max")),
86+
entry_tactic=TrapEntryTactic(start_time=15, wait_to_hijack_limit_s=1),
87+
),
88+
Mission(
89+
Route(begin=("gneE3", 0, 10), end=("gneE4", 0, "max")),
90+
entry_tactic=TrapEntryTactic(start_time=15, wait_to_hijack_limit_s=1),
91+
),
8092
]
8193

8294
gen_scenario(

scenarios/sumo/merge/3lane_agents_2/scenario.py

+17-3
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,15 @@
2323
from pathlib import Path
2424

2525
from smarts.sstudio import gen_scenario
26-
from smarts.sstudio.types import Flow, Mission, Route, Scenario, Traffic, TrafficActor
26+
from smarts.sstudio.types import (
27+
Flow,
28+
Mission,
29+
Route,
30+
Scenario,
31+
Traffic,
32+
TrafficActor,
33+
TrapEntryTactic,
34+
)
2735

2836
normal = TrafficActor(
2937
name="car",
@@ -73,8 +81,14 @@
7381

7482

7583
ego_missions = [
76-
Mission(Route(begin=("gneE6", 0, 10), end=("gneE4", 2, "max")), start_time=15),
77-
Mission(Route(begin=("gneE3", 0, 10), end=("gneE4", 0, "max")), start_time=15),
84+
Mission(
85+
Route(begin=("gneE6", 0, 10), end=("gneE4", 2, "max")),
86+
entry_tactic=TrapEntryTactic(start_time=15, wait_to_hijack_limit_s=1),
87+
),
88+
Mission(
89+
Route(begin=("gneE3", 0, 10), end=("gneE4", 0, "max")),
90+
entry_tactic=TrapEntryTactic(start_time=15, wait_to_hijack_limit_s=1),
91+
),
7892
]
7993

8094
gen_scenario(

scenarios/sumo/platoon/merge_exit_sumo_t_agents_1/scenario.py

+3-2
Original file line numberDiff line numberDiff line change
@@ -95,8 +95,9 @@
9595
ego_missions = [
9696
EndlessMission(
9797
begin=("E0", 2, 5),
98-
start_time=20,
99-
entry_tactic=TrapEntryTactic(wait_to_hijack_limit_s=0, default_entry_speed=0),
98+
entry_tactic=TrapEntryTactic(
99+
start_time=20, wait_to_hijack_limit_s=0, default_entry_speed=0
100+
),
100101
) # Delayed start, to ensure road has prior traffic.
101102
]
102103

scenarios/sumo/straight/3lane_cruise_agents_1/scenario.py

+12-2
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,15 @@
2323
from pathlib import Path
2424

2525
from smarts.sstudio import gen_scenario
26-
from smarts.sstudio.types import Flow, Mission, Route, Scenario, Traffic, TrafficActor
26+
from smarts.sstudio.types import (
27+
Flow,
28+
Mission,
29+
Route,
30+
Scenario,
31+
Traffic,
32+
TrafficActor,
33+
TrapEntryTactic,
34+
)
2735

2836
normal = TrafficActor(
2937
name="car",
@@ -76,7 +84,9 @@
7684
ego_missions = [
7785
Mission(
7886
route=route,
79-
start_time=17, # Delayed start, to ensure road has prior traffic.
87+
entry_tactic=TrapEntryTactic(
88+
start_time=17, wait_to_hijack_limit_s=0.1
89+
), # Delayed start, to ensure road has prior traffic.
8090
)
8191
]
8292

scenarios/sumo/straight/3lane_cruise_agents_3/scenario.py

+21-4
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,15 @@
2323
from pathlib import Path
2424

2525
from smarts.sstudio import gen_scenario
26-
from smarts.sstudio.types import Flow, Mission, Route, Scenario, Traffic, TrafficActor
26+
from smarts.sstudio.types import (
27+
Flow,
28+
Mission,
29+
Route,
30+
Scenario,
31+
Traffic,
32+
TrafficActor,
33+
TrapEntryTactic,
34+
)
2735

2836
normal = TrafficActor(
2937
name="car",
@@ -72,9 +80,18 @@
7280
)
7381

7482
ego_missions = [
75-
Mission(Route(begin=("gneE3", 0, 10), end=("gneE3", 0, "max")), start_time=19),
76-
Mission(Route(begin=("gneE3", 1, 10), end=("gneE3", 1, "max")), start_time=21),
77-
Mission(Route(begin=("gneE3", 2, 10), end=("gneE3", 2, "max")), start_time=17),
83+
Mission(
84+
Route(begin=("gneE3", 0, 10), end=("gneE3", 0, "max")),
85+
entry_tactic=TrapEntryTactic(start_time=19, wait_to_hijack_limit_s=0.1),
86+
),
87+
Mission(
88+
Route(begin=("gneE3", 1, 10), end=("gneE3", 1, "max")),
89+
entry_tactic=TrapEntryTactic(start_time=21, wait_to_hijack_limit_s=0.1),
90+
),
91+
Mission(
92+
Route(begin=("gneE3", 2, 10), end=("gneE3", 2, "max")),
93+
entry_tactic=TrapEntryTactic(start_time=17, wait_to_hijack_limit_s=0.1),
94+
),
7895
]
7996

8097
gen_scenario(

scenarios/sumo/straight/3lane_cut_in_agents_1/scenario.py

+4-1
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
SmartsLaneChangingModel,
3535
Traffic,
3636
TrafficActor,
37+
TrapEntryTactic,
3738
)
3839

3940
normal = TrafficActor(
@@ -94,7 +95,9 @@
9495
ego_missions = [
9596
Mission(
9697
route=route,
97-
start_time=20, # Delayed start, to ensure road has prior traffic.
98+
entry_tactic=TrapEntryTactic(
99+
start_time=20, wait_to_hijack_limit_s=0.1
100+
), # Delayed start, to ensure road has prior traffic.
98101
)
99102
]
100103

scenarios/sumo/straight/3lane_overtake_agents_1/scenario.py

+4-1
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
Scenario,
3232
Traffic,
3333
TrafficActor,
34+
TrapEntryTactic,
3435
)
3536

3637
normal = TrafficActor(
@@ -83,7 +84,9 @@
8384
ego_missions = [
8485
Mission(
8586
route=route,
86-
start_time=17, # Delayed start, to ensure road has prior traffic.
87+
entry_tactic=TrapEntryTactic(
88+
start_time=17, wait_to_hijack_limit_s=0.1
89+
), # Delayed start, to ensure road has prior traffic.
8790
)
8891
]
8992

scenarios/sumo/zoo_intersection/scenario.py

+6-1
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,12 @@
9696
f"s-agent-{social_agent1.name}": (
9797
[social_agent1],
9898
[
99-
EndlessMission(begin=("edge-south-SN", 0, 10), start_time=0.7),
99+
EndlessMission(
100+
begin=("edge-south-SN", 0, 10),
101+
entry_tactic=TrapEntryTactic(
102+
start_time=0.7, wait_to_hijack_limit_s=0.1
103+
),
104+
),
100105
],
101106
),
102107
},

smarts/core/id_actor_capture_manager.py

+2
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ def step(self, sim):
6868
mission_start_time=mission.start_time,
6969
)
7070
if condition_result == ConditionState.EXPIRED:
71+
print(condition_result)
7172
self._log.warning(
7273
f"Actor aquisition skipped for `{agent_id}` scheduled to start between "
7374
+ f"`Condition `{entry_tactic.condition}` has expired with no vehicle."
@@ -77,6 +78,7 @@ def step(self, sim):
7778
continue
7879
if not condition_result:
7980
continue
81+
print(condition_result)
8082
vehicle: Optional[Vehicle] = self._take_existing_vehicle(
8183
sim,
8284
actor_id,

smarts/core/plan.py

+1
Original file line numberDiff line numberDiff line change
@@ -166,6 +166,7 @@ def _drove_off_map(self, veh_pos: Point, veh_heading: float) -> bool:
166166
def default_entry_tactic(default_entry_speed: Optional[float] = None) -> EntryTactic:
167167
"""The default tactic the simulation will use to acquire an actor for an agent."""
168168
return TrapEntryTactic(
169+
start_time=0,
169170
wait_to_hijack_limit_s=0,
170171
exclusion_prefixes=tuple(),
171172
zone=None,

0 commit comments

Comments
 (0)