Random Events

This commit is contained in:
FrogAi
2024-01-12 22:39:30 -07:00
parent f71e0b629f
commit deb2b8d247
18 changed files with 56 additions and 5 deletions

View File

@@ -82,8 +82,11 @@ class Controls:
fire_the_babysitter = self.params.get_bool("FireTheBabysitter")
mute_dm = fire_the_babysitter and self.params.get_bool("MuteDM")
self.random_event_triggered = False
self.stopped_for_light_previously = False
self.random_event_timer = 0
ignore = self.sensor_packets + ['testJoystick']
if SIMULATION:
ignore += ['driverCameraState', 'managerState']
@@ -629,6 +632,14 @@ class Controls:
long_plan = self.sm['longitudinalPlan']
frogpilot_long_plan = self.sm['frogpilotLongitudinalPlan']
# Reset the Random Event flag
if self.random_event_triggered:
self.random_event_timer += 1
if self.random_event_timer >= 400:
self.random_event_triggered = False
self.random_event_timer = 0
self.params_memory.remove("CurrentRandomEvent")
CC = car.CarControl.new_message()
CC.enabled = self.enabled
@@ -730,8 +741,13 @@ class Controls:
turning = abs(lac_log.desiredLateralAccel) > 1.0
good_speed = CS.vEgo > 5
max_torque = abs(self.last_actuators.steer) > 0.99
if undershooting and turning and good_speed and max_torque:
lac_log.active and self.events.add(FrogPilotEventName.frogSteerSaturated if self.goat_scream else EventName.steerSaturated)
if undershooting and turning and good_speed and max_torque and not self.random_event_triggered:
if self.sm.frame % 10000 == 0:
lac_log.active and self.events.add(FrogPilotEventName.firefoxSteerSaturated)
self.params_memory.put_int("CurrentRandomEvent", 1)
self.random_event_triggered = True
else:
lac_log.active and self.events.add(FrogPilotEventName.frogSteerSaturated if self.goat_scream else EventName.steerSaturated)
elif lac_log.saturated:
dpath_points = lat_plan.dPathPoints
if len(dpath_points):
@@ -1004,6 +1020,8 @@ class Controls:
self.reverse_cruise_increase = self.params.get_bool("ReverseCruise") and quality_of_life
self.set_speed_offset = self.params.get_int("SetSpeedOffset") * (1 if self.is_metric else CV.MPH_TO_KPH) if quality_of_life else 0
self.random_events = self.params.get_bool("RandomEvents")
def main():
controls = Controls()
controls.controlsd_thread()