Skip to content

Commit 4558340

Browse files
author
Shreedhar Govil
committed
add autopilot changes
1 parent b27fd87 commit 4558340

2 files changed

Lines changed: 34 additions & 9 deletions

File tree

src/scenic/simulators/carla/actions.py

Lines changed: 32 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -108,22 +108,47 @@ def applyTo(self, obj, sim):
108108

109109

110110
class SetAutopilotAction(VehicleAction):
111-
def __init__(self, enabled, speed=None):
112-
":param speed: speed of car in m/s"
111+
def __init__(self, enabled, **kwargs):
112+
"""
113+
:param enabled: Enable or disable autopilot (bool)
114+
:param kwargs: Additional autopilot options such as:
115+
- speed: Speed of the car in m/s (default: None)
116+
- path: Route for the vehicle to follow (default: None)
117+
- ignore_signs_percentage: Percentage of ignored traffic signs (default: 0)
118+
- ignore_lights_percentage: Percentage of ignored traffic lights (default: 0)
119+
- ignore_walkers_percentage: Percentage of ignored pedestrians (default: 0)
120+
- auto_lane_change: Whether to allow automatic lane changes (default: False)
121+
"""
113122
if not isinstance(enabled, bool):
114123
raise RuntimeError("Enabled must be a boolean.")
124+
115125
self.enabled = enabled
116-
self.speed = speed
126+
127+
# Default values for optional parameters
128+
self.speed = kwargs.get("speed", None)
129+
self.path = kwargs.get("path", None)
130+
self.ignore_signs_percentage = kwargs.get("ignore_signs_percentage", 0)
131+
self.ignore_lights_percentage = kwargs.get("ignore_lights_percentage", 0)
132+
self.ignore_walkers_percentage = kwargs.get("ignore_walkers_percentage", 0)
133+
self.auto_lane_change = kwargs.get("auto_lane_change", False) # Default: False
117134

118135
def applyTo(self, obj, sim):
119136
vehicle = obj.carlaActor
120137
vehicle.set_autopilot(self.enabled, sim.tm.get_port())
121-
sim.tm.auto_lane_change(vehicle, False)
138+
139+
# Apply auto lane change setting
140+
sim.tm.auto_lane_change(vehicle, self.auto_lane_change)
141+
142+
if self.path:
143+
sim.tm.set_route(vehicle, self.path)
122144
if self.speed:
123-
sim.tm.set_desired_speed(vehicle, 3.6*self.speed)
145+
sim.tm.set_desired_speed(vehicle, 3.6 * self.speed)
146+
147+
# Apply traffic management settings
124148
sim.tm.update_vehicle_lights(vehicle, True)
125-
sim.tm.random_left_lanechange_percentage(vehicle, 0)
126-
sim.tm.random_right_lanechange_percentage(vehicle, 0)
149+
sim.tm.ignore_signs_percentage(vehicle, self.ignore_signs_percentage)
150+
sim.tm.ignore_lights_percentage(vehicle, self.ignore_lights_percentage)
151+
sim.tm.ignore_walkers_percentage(vehicle, self.ignore_walkers_percentage)
127152

128153

129154
class SetVehicleLightStateAction(VehicleAction):

src/scenic/simulators/carla/behaviors.scenic

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@ try:
77
except ModuleNotFoundError:
88
pass # ignore; error will be caught later if user attempts to run a simulation
99

10-
behavior AutopilotBehavior(speed=None):
10+
behavior AutopilotBehavior(enabled = True, **kwargs):
1111
"""Behavior causing a vehicle to use CARLA's built-in autopilot."""
12-
take SetAutopilotAction(True, speed)
12+
take SetAutopilotAction(enabled=enabled, **kwargs)
1313

1414
behavior WalkForwardBehavior(speed=0.5):
1515
take SetWalkingDirectionAction(self.heading), SetWalkingSpeedAction(speed)

0 commit comments

Comments
 (0)