From 3563852b623d9cebfdd5cf44a7142cfbaa33ef2c Mon Sep 17 00:00:00 2001 From: rav4kumar Date: Mon, 5 May 2025 20:35:06 -0700 Subject: [PATCH] Remove unused dynamic personality parameter handling from stock longitudinal planner; add dynamic personality parameter refresh in sunnypilot longitudinal planner --- selfdrive/controls/lib/longitudinal_planner.py | 15 --------------- .../dynamic_personality_controller.py | 1 - .../controls/lib/longitudinal_planner.py | 15 +++++++++++++++ 3 files changed, 15 insertions(+), 16 deletions(-) diff --git a/selfdrive/controls/lib/longitudinal_planner.py b/selfdrive/controls/lib/longitudinal_planner.py index 78825a41ef..9572e6b444 100755 --- a/selfdrive/controls/lib/longitudinal_planner.py +++ b/selfdrive/controls/lib/longitudinal_planner.py @@ -1,7 +1,6 @@ #!/usr/bin/env python3 import math import numpy as np -from openpilot.common.params import Params import cereal.messaging as messaging from opendbc.car.interfaces import ACCEL_MIN, ACCEL_MAX from openpilot.common.conversions import Conversions as CV @@ -72,20 +71,6 @@ class LongitudinalPlanner(LongitudinalPlannerSP): self.j_desired_trajectory = np.zeros(CONTROL_N) self.solverExecutionTime = 0.0 - self.params = Params() - self.param_read_counter = 0 - self.read_param() - - self.dynamic_personality = False - - - def read_param(self): - try: - self.dynamic_personality = self.params.get_bool("DynamicPersonality") - except AttributeError: - pass - - @staticmethod def parse_model(model_msg, model_error): if (len(model_msg.position.x) == ModelConstants.IDX_N and diff --git a/sunnypilot/selfdrive/controls/lib/dynamic_personality/dynamic_personality_controller.py b/sunnypilot/selfdrive/controls/lib/dynamic_personality/dynamic_personality_controller.py index 42b4110956..911624ab46 100644 --- a/sunnypilot/selfdrive/controls/lib/dynamic_personality/dynamic_personality_controller.py +++ b/sunnypilot/selfdrive/controls/lib/dynamic_personality/dynamic_personality_controller.py @@ -1,4 +1,3 @@ -#!/usr/bin/env python3 from cereal import log import numpy as np diff --git a/sunnypilot/selfdrive/controls/lib/longitudinal_planner.py b/sunnypilot/selfdrive/controls/lib/longitudinal_planner.py index 9f0c503fb4..c77c0cdc79 100644 --- a/sunnypilot/selfdrive/controls/lib/longitudinal_planner.py +++ b/sunnypilot/selfdrive/controls/lib/longitudinal_planner.py @@ -9,6 +9,7 @@ from cereal import messaging, custom from opendbc.car import structs from openpilot.sunnypilot.models.helpers import get_active_model_runner from openpilot.sunnypilot.selfdrive.controls.lib.dec.dec import DynamicExperimentalController +from openpilot.common.params import Params DecState = custom.LongitudinalPlanSP.DynamicExperimentalControl.DynamicExperimentalControlState @@ -18,6 +19,17 @@ class LongitudinalPlannerSP: self.dec = DynamicExperimentalController(CP, mpc) self.is_stock = get_active_model_runner() == custom.ModelManagerSP.Runner.stock + self.params = Params() + self.param_read_counter = 0 + self.dynamic_personality = False + self.read_param() + + def read_param(self): + try: + self.dynamic_personality = self.params.get_bool("DynamicPersonality") + except AttributeError: + pass + def get_mpc_mode(self) -> str | None: if not self.dec.active(): return None @@ -25,6 +37,9 @@ class LongitudinalPlannerSP: return self.dec.mode() def update(self, sm: messaging.SubMaster) -> None: + self.param_read_counter += 1 + if self.param_read_counter % 50 == 0: + self.read_param() self.dec.update(sm) def publish_longitudinal_plan_sp(self, sm: messaging.SubMaster, pm: messaging.PubMaster) -> None: