diff --git a/common/params.cc b/common/params.cc index b93235efe..2c796d531 100644 --- a/common/params.cc +++ b/common/params.cc @@ -223,6 +223,8 @@ std::unordered_map keys = { {"dp_toyota_zss", PERSISTENT}, {"dp_hkg_canfd_low_speed_turn_enhancer", PERSISTENT}, {"dp_long_low_speed_aggressive_mode", PERSISTENT}, + {"dp_long_alt_personality_mode", PERSISTENT}, + {"dp_long_alt_personality_speed", PERSISTENT}, }; } // namespace diff --git a/selfdrive/controls/lib/longitudinal_planner.py b/selfdrive/controls/lib/longitudinal_planner.py index 9ddb7c892..e4ba15bae 100755 --- a/selfdrive/controls/lib/longitudinal_planner.py +++ b/selfdrive/controls/lib/longitudinal_planner.py @@ -18,7 +18,7 @@ from openpilot.common.swaglog import cloudlog # dp from openpilot.common.params import Params from openpilot.dp_ext.selfdrive.controls.lib.dynamic_endtoend_controller import DynamicEndtoEndController -from cereal import log +from openpilot.dp_ext.selfdrive.controls.lib.alt_driving_personality_controller import AlternativeDrivingPersonalityController LON_MPC_STEP = 0.2 # first step is 0.2s A_CRUISE_MIN = -1.2 @@ -88,8 +88,7 @@ class LongitudinalPlanner: self.params = Params() self._frame = 0 self._dynamic_endtoend_controller = DynamicEndtoEndController() - self._dp_long_low_speed_aggressive_mode = self.params.get_bool("dp_long_low_speed_aggressive_mode") - self._dp_long_low_speed_aggressive_mode_active = False + self._adp_controller = AlternativeDrivingPersonalityController() @staticmethod def parse_model(model_msg, model_error): @@ -161,8 +160,8 @@ class LongitudinalPlanner: accel_limits_turns[1] = max(accel_limits_turns[1], self.a_desired - 0.05) # dp - self._dp_long_low_speed_aggressive_mode_active = self._dp_long_low_speed_aggressive_mode and v_ego < 10 - personality = log.LongitudinalPersonality.aggressive if self._dp_long_low_speed_aggressive_mode_active else sm['controlsState'].personality + self._adp_controller.update(v_ego) + personality = self._adp_controller.get_personality(sm['controlsState'].personality) self.mpc.set_weights(prev_accel_constraint, personality=personality) self.mpc.set_accel_limits(accel_limits_turns[0], accel_limits_turns[1]) @@ -225,7 +224,7 @@ class LongitudinalPlanner: # longitudinalPlanExt.visionTurnSpeed = float(self.vision_turn_controller.v_turn) longitudinalPlanExt.de2eIsBlended = self.mpc.mode == 'blended' longitudinalPlanExt.de2eIsEnabled = self._dynamic_endtoend_controller.is_enabled() - longitudinalPlanExt.altDrivingPersonalityIsActive = self._dp_long_low_speed_aggressive_mode_active + longitudinalPlanExt.altDrivingPersonalityIsActive = self._adp_controller.is_active() # longitudinalPlanExt.longitudinalPlanExtSource = self.mpc.source if self.mpc.source != 'cruise' else self.cruise_source pm.send('longitudinalPlanExt', plan_ext_send) diff --git a/system/manager/manager.py b/system/manager/manager.py index 7f1906eb6..aba402453 100755 --- a/system/manager/manager.py +++ b/system/manager/manager.py @@ -61,7 +61,8 @@ def manager_init() -> None: ("dp_device_disable_onroad_uploads", "0"), ("dp_toyota_zss", "0"), ("dp_hkg_canfd_low_speed_turn_enhancer", "0"), - ("dp_long_low_speed_aggressive_mode", "0"), + ("dp_long_alt_personality_mode", "0"), + ("dp_long_alt_personality_speed", "0"), ] if not PC: default_params.append(("LastUpdateTime", datetime.datetime.now(datetime.UTC).replace(tzinfo=None).isoformat().encode('utf8')))