From ae90bc6d4113688c90626274fc9793d4f606b502 Mon Sep 17 00:00:00 2001 From: "IQ.Lvbs CI [bot]" Date: Thu, 23 Jul 2026 22:12:53 -0500 Subject: [PATCH] IQ.Pilot Release Commit @ aade6af --- common/params_keys.h | 6 +++--- iqpilot/common/steer_delay.py | 10 +++++----- iqpilot/ui/layouts/settings/iq_panels.py | 10 +++++----- selfdrive/ui/mici/layouts/settings/models.py | 6 +++--- system/manager/helpers.py | 3 +++ tools/iqpilot/mici_preview.py | 2 +- 6 files changed, 20 insertions(+), 17 deletions(-) diff --git a/common/params_keys.h b/common/params_keys.h index 1f06b02e9..7b773df97 100644 --- a/common/params_keys.h +++ b/common/params_keys.h @@ -284,9 +284,9 @@ inline static std::unordered_map keys = { // iqpilot model params {"CameraOffset", {PERSISTENT, FLOAT, "0.0"}}, - {"LagdToggle", {PERSISTENT, BOOL, "1"}}, - {"LagdToggleDelay", {PERSISTENT, FLOAT, "0.2"}}, - {"LagdValueCache", {PERSISTENT, FLOAT, "0.2"}}, + {"IQLiveSteerDelay", {PERSISTENT, BOOL, "1"}}, + {"IQSoftwareSteerDelay", {PERSISTENT, FLOAT, "0.2"}}, + {"IQSteerDelayCache", {PERSISTENT, FLOAT, "0.2"}}, {"LaneChangeBsd", {PERSISTENT, INT, "0"}}, // -1 ignore BSD, 0 default, 1 block lane change on BSD {"LaneChangeContinuous", {PERSISTENT, BOOL, "0"}}, // 0 one-shot per blinker, 1 chain on held blinker (torque-gated) {"LaneChangeDelay", {PERSISTENT, FLOAT, "0.0"}}, // tenths of a second; scaled by 0.1 in desire_helper diff --git a/iqpilot/common/steer_delay.py b/iqpilot/common/steer_delay.py index 258f3d10d..ff50d5434 100644 --- a/iqpilot/common/steer_delay.py +++ b/iqpilot/common/steer_delay.py @@ -3,14 +3,14 @@ Copyright © IQ.Lvbs, apart of Project Teal Lvbs, All Rights Reserved, licensed Chooses which steer-actuator delay the lateral controllers run with: the value the live estimator learned, or the driver's fixed software delay — gated by the -"LagdToggle" param. The pick is mirrored into "LagdValueCache" so consumers that do +"IQLiveSteerDelay" param. The pick is mirrored into "IQSteerDelayCache" so consumers that do not subscribe to liveDelay can still read the current value. """ from openpilot.common.params import Params -_ENABLE_KEY = "LagdToggle" -_FIXED_KEY = "LagdToggleDelay" -_CACHE_KEY = "LagdValueCache" +_ENABLE_KEY = "IQLiveSteerDelay" +_FIXED_KEY = "IQSoftwareSteerDelay" +_CACHE_KEY = "IQSteerDelayCache" def resolve_steer_delay(params, stock_delay): @@ -27,7 +27,7 @@ def cached_steer_delay(): class SteerDelayPublisher: - """Refreshes LagdValueCache every lag message: the learned live delay when the + """Refreshes IQSteerDelayCache every lag message: the learned live delay when the toggle is on, else the actuator delay plus the driver's fixed software offset.""" def __init__(self, car_params): diff --git a/iqpilot/ui/layouts/settings/iq_panels.py b/iqpilot/ui/layouts/settings/iq_panels.py index 6234ee770..fc6dfcbfc 100644 --- a/iqpilot/ui/layouts/settings/iq_panels.py +++ b/iqpilot/ui/layouts/settings/iq_panels.py @@ -829,7 +829,7 @@ class SteeringLayout(Widget): items = self._initialize_items() self._scroller = Scroller(items, line_separator=False, spacing=0) - for ctrl, key in [(self._lane_turn_value_control, "IQLaneTurnValue"), (self._delay_control, "LagdToggleDelay")]: + for ctrl, key in [(self._lane_turn_value_control, "IQLaneTurnValue"), (self._delay_control, "IQSoftwareSteerDelay")]: ctrl.action_item.set_value(int(float(ui_state.params.get(key, return_default=True)) * 100)) def _initialize_items(self): @@ -872,9 +872,9 @@ class SteeringLayout(Widget): lambda v: f"{int(round(v * (CV.MPH_TO_KPH if ui_state.is_metric else 1)))}" f" {'km/h' if ui_state.is_metric else 'mph'}" ) - self._lagd_toggle = toggle_item(tr("Live Learning Steer Delay"), "", param="LagdToggle") + self._lagd_toggle = toggle_item(tr("Live Learning Steer Delay"), "", param="IQLiveSteerDelay") self._delay_control = option_item( - tr("Adjust Software Delay"), "LagdToggleDelay", 5, 50, + tr("Adjust Software Delay"), "IQSoftwareSteerDelay", 5, 50, tr("Adjust the fixed software delay added to steer actuator delay when Live Learning Steer Delay is turned off. The default software delay value is 0.2 s."), 1, None, True, "", style.BUTTON_ACTION_WIDTH, None, True, lambda v: f"{float(v):.2f}s" ) @@ -919,7 +919,7 @@ class SteeringLayout(Widget): self._nnff_toggle.action_item.set_enabled(ui_state.is_offroad() and steering_supported) turn_desire = ui_state.params.get_bool("IQLaneTurnDesire") - live_delay = ui_state.params.get_bool("LagdToggle") + live_delay = ui_state.params.get_bool("IQLiveSteerDelay") self._lane_turn_desire_toggle.action_item.set_state(turn_desire) self._lane_turn_value_control.set_visible(turn_desire) self._lagd_toggle.action_item.set_state(live_delay) @@ -931,7 +931,7 @@ class SteeringLayout(Widget): if live_delay: lagd_desc += f"
{tr('Live Steer Delay:')} {ui_state.sm['liveDelay'].lateralDelay:.3f} s" elif ui_state.CP: - sw = float(ui_state.params.get("LagdToggleDelay", "0.2")) + sw = float(ui_state.params.get("IQSoftwareSteerDelay", "0.2")) cp = ui_state.CP.steerActuatorDelay lagd_desc += f"
{tr('Actuator Delay:')} {cp:.2f} s + {tr('Software Delay:')} {sw:.2f} s = {tr('Total Delay:')} {cp + sw:.2f} s" self._lagd_toggle.set_description(lagd_desc) diff --git a/selfdrive/ui/mici/layouts/settings/models.py b/selfdrive/ui/mici/layouts/settings/models.py index 772696951..a85a6f7f6 100644 --- a/selfdrive/ui/mici/layouts/settings/models.py +++ b/selfdrive/ui/mici/layouts/settings/models.py @@ -121,8 +121,8 @@ class ModelsLayoutMici(NavScroller): self._clear.set_click_callback(self._confirm_clear_cache) self._clear.set_enabled(lambda: ui_state.is_offroad()) - self._lagd = BigParamControl("live learning steer delay", "LagdToggle") - self._sw_delay = MappedParamToggle("software delay", "LagdToggleDelay", _DELAY_OPTIONS, _DELAY_VALUES) + self._lagd = BigParamControl("live learning steer delay", "IQLiveSteerDelay") + self._sw_delay = MappedParamToggle("software delay", "IQSoftwareSteerDelay", _DELAY_OPTIONS, _DELAY_VALUES) self._sw_delay.set_visible(lambda: not self._lagd._checked) self._lane_turn = BigParamControl("use lane turn desires", "IQLaneTurnDesire") @@ -453,7 +453,7 @@ class ModelsLayoutMici(NavScroller): self._lagd.set_value("") return try: - sw = float(ui_state.params.get("LagdToggleDelay", return_default=True)) + sw = float(ui_state.params.get("IQSoftwareSteerDelay", return_default=True)) except (TypeError, ValueError): sw = 0.2 if ui_state.CP is not None: diff --git a/system/manager/helpers.py b/system/manager/helpers.py index 857e5e307..43c0f23e1 100644 --- a/system/manager/helpers.py +++ b/system/manager/helpers.py @@ -125,6 +125,9 @@ _RENAMED_PARAMS = { "OffroadMode": "IQAlwaysOffroad", "AutoLaneChangeTimer": "IQLaneChangeTimer", "AutoLaneChangeBsmDelay": "IQLaneChangeBsmDelay", + "LagdToggle": "IQLiveSteerDelay", + "LagdToggleDelay": "IQSoftwareSteerDelay", + "LagdValueCache": "IQSteerDelayCache", } diff --git a/tools/iqpilot/mici_preview.py b/tools/iqpilot/mici_preview.py index a648739d7..d77fbf49b 100755 --- a/tools/iqpilot/mici_preview.py +++ b/tools/iqpilot/mici_preview.py @@ -165,7 +165,7 @@ def _patch_mock_state(): mp.put("Version", "IQ.Pilot 0.9.5-mici") # ── Models ──────────────────────────────────────────────────────────────── - mp.put("LagdToggle", False) + mp.put("IQLiveSteerDelay", False) mp.put("IQLaneTurnDesire", False) mp.put("IQLaneTurnValue", "19.0")