From dbe15596a11d01acb6ebed1021d51dc15e58071b Mon Sep 17 00:00:00 2001 From: FrogAi <91348155+FrogAi@users.noreply.github.com> Date: Sun, 12 May 2024 20:27:18 -0700 Subject: [PATCH] Controls - Longitudinal Tuning - Traffic Mode Enable the ability to activate 'Traffic Mode' by holding down the 'distance' button for 2.5 seconds. When 'Traffic Mode' is active the onroad UI will turn red and openpilot will drive catered towards stop and go traffic. --- selfdrive/car/interfaces.py | 9 ++++++- selfdrive/controls/controlsd.py | 2 ++ .../lib/longitudinal_mpc_lib/long_mpc.py | 4 +-- .../controls/lib/longitudinal_planner.py | 2 +- .../frogpilot/assets/other_images/traffic.png | Bin 0 -> 58032 bytes .../assets/other_images/traffic_kaofui.png | Bin 0 -> 12801 bytes .../frogpilot/controls/frogpilot_planner.py | 23 ++++++++++++------ selfdrive/ui/qt/onroad.cc | 8 +++++- selfdrive/ui/qt/onroad.h | 1 + selfdrive/ui/ui.cc | 3 +++ selfdrive/ui/ui.h | 4 +++ 11 files changed, 43 insertions(+), 13 deletions(-) create mode 100644 selfdrive/frogpilot/assets/other_images/traffic.png create mode 100644 selfdrive/frogpilot/assets/other_images/traffic_kaofui.png diff --git a/selfdrive/car/interfaces.py b/selfdrive/car/interfaces.py index 4825500..91c816e 100644 --- a/selfdrive/car/interfaces.py +++ b/selfdrive/car/interfaces.py @@ -222,6 +222,7 @@ class CarInterfaceBase(ABC): self.disable_resumeRequired = False self.prev_distance_button = False self.resumeRequired_shown = False + self.traffic_mode_changed = False self.gap_counter = 0 @@ -491,7 +492,7 @@ class CarInterfaceBase(ABC): elif not prev_distance_button: self.gap_counter = 0 - if self.gap_counter == CRUISE_LONG_PRESS * 1.5 and frogpilot_variables.experimental_mode_via_distance: + if self.gap_counter == CRUISE_LONG_PRESS * 1.5 and frogpilot_variables.experimental_mode_via_distance or self.traffic_mode_changed: if frogpilot_variables.conditional_experimental_mode: conditional_status = self.params_memory.get_int("CEStatus") override_value = 0 if conditional_status in {1, 2, 3, 4, 5, 6} else 1 if conditional_status >= 7 else 2 @@ -499,6 +500,12 @@ class CarInterfaceBase(ABC): else: experimental_mode = self.params.get_bool("ExperimentalMode") self.params.put_bool("ExperimentalMode", not experimental_mode) + self.traffic_mode_changed = False + + if self.gap_counter == CRUISE_LONG_PRESS * 5 and frogpilot_variables.traffic_mode: + traffic_mode = self.params_memory.get_bool("TrafficModeActive") + self.params_memory.put_bool("TrafficModeActive", not traffic_mode) + self.traffic_mode_changed = frogpilot_variables.experimental_mode_via_distance return self.gap_counter >= CRUISE_LONG_PRESS diff --git a/selfdrive/controls/controlsd.py b/selfdrive/controls/controlsd.py index 4b5b0ec..651c026 100644 --- a/selfdrive/controls/controlsd.py +++ b/selfdrive/controls/controlsd.py @@ -974,6 +974,8 @@ class Controls: else: self.params.put_bool_nonblocking("ExperimentalMode", not self.experimental_mode) + self.FPCC.trafficModeActive = self.frogpilot_toggles.traffic_mode and self.params_memory.get_bool("TrafficModeActive") + fpcc_send = messaging.new_message('frogpilotCarControl') fpcc_send.valid = CS.canValid fpcc_send.frogpilotCarControl = self.FPCC diff --git a/selfdrive/controls/lib/longitudinal_mpc_lib/long_mpc.py b/selfdrive/controls/lib/longitudinal_mpc_lib/long_mpc.py index 9c0b63a..39ae82b 100644 --- a/selfdrive/controls/lib/longitudinal_mpc_lib/long_mpc.py +++ b/selfdrive/controls/lib/longitudinal_mpc_lib/long_mpc.py @@ -352,10 +352,10 @@ class LongitudinalMpc: self.cruise_min_a = min_a self.max_a = max_a - def update(self, radarstate, v_cruise, x, v, a, j, t_follow, frogpilot_toggles, personality=log.LongitudinalPersonality.standard): + def update(self, radarstate, v_cruise, x, v, a, j, t_follow, trafficModeActive, frogpilot_toggles, personality=log.LongitudinalPersonality.standard): v_ego = self.x0[1] self.status = radarstate.leadOne.status or radarstate.leadTwo.status - increased_distance = frogpilot_toggles.increased_stopping_distance + min(CITY_SPEED_LIMIT - v_ego, 0) + increased_distance = frogpilot_toggles.increased_stopping_distance + min(CITY_SPEED_LIMIT - v_ego, 0) if not trafficModeActive else 0 lead_xv_0 = self.process_lead(radarstate.leadOne, increased_distance) lead_xv_1 = self.process_lead(radarstate.leadTwo) diff --git a/selfdrive/controls/lib/longitudinal_planner.py b/selfdrive/controls/lib/longitudinal_planner.py index 0e277b8..ab61b0b 100755 --- a/selfdrive/controls/lib/longitudinal_planner.py +++ b/selfdrive/controls/lib/longitudinal_planner.py @@ -126,7 +126,7 @@ class LongitudinalPlanner: self.mpc.set_cur_state(self.v_desired_filter.x, self.a_desired) x, v, a, j = self.parse_model(sm['modelV2'], self.v_model_error, v_ego, frogpilot_toggles.taco_tune) self.mpc.update(sm['radarState'], sm['frogpilotPlan'].vCruise, x, v, a, j, sm['frogpilotPlan'].tFollow, - frogpilot_toggles, personality=sm['controlsState'].personality) + sm['frogpilotCarControl'].trafficModeActive, frogpilot_toggles, personality=sm['controlsState'].personality) self.v_desired_trajectory_full = np.interp(ModelConstants.T_IDXS, T_IDXS_MPC, self.mpc.v_solution) self.a_desired_trajectory_full = np.interp(ModelConstants.T_IDXS, T_IDXS_MPC, self.mpc.a_solution) diff --git a/selfdrive/frogpilot/assets/other_images/traffic.png b/selfdrive/frogpilot/assets/other_images/traffic.png new file mode 100644 index 0000000000000000000000000000000000000000..b59f7bc65f14f3d44b253725bd7e5082a49bfc83 GIT binary patch literal 58032 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 Z{9iLJD>IQikb?jK002ovPDHLkV1nR)*;N1l literal 0 HcmV?d00001 diff --git a/selfdrive/frogpilot/assets/other_images/traffic_kaofui.png b/selfdrive/frogpilot/assets/other_images/traffic_kaofui.png new file mode 100644 index 0000000000000000000000000000000000000000..9930ea8bd5cc7b41e73bf8a62287551c4b63ae5a GIT binary patch literal 12801 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 alert_colors = { @@ -197,6 +199,8 @@ typedef struct UIScene { bool show_aol_status_bar; bool show_cem_status_bar; bool tethering_enabled; + bool traffic_mode; + bool traffic_mode_active; bool use_kaofui_icons; int alert_size;