@@ -108,22 +108,47 @@ def applyTo(self, obj, sim):
108108
109109
110110class 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
129154class SetVehicleLightStateAction (VehicleAction ):
0 commit comments