IQ.Pilot Release Commit @ aade6af
This commit is contained in:
@@ -284,9 +284,9 @@ inline static std::unordered_map<std::string, ParamKeyAttributes> 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
|
||||
|
||||
@@ -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):
|
||||
|
||||
@@ -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"<br>{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"<br>{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)
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -125,6 +125,9 @@ _RENAMED_PARAMS = {
|
||||
"OffroadMode": "IQAlwaysOffroad",
|
||||
"AutoLaneChangeTimer": "IQLaneChangeTimer",
|
||||
"AutoLaneChangeBsmDelay": "IQLaneChangeBsmDelay",
|
||||
"LagdToggle": "IQLiveSteerDelay",
|
||||
"LagdToggleDelay": "IQSoftwareSteerDelay",
|
||||
"LagdValueCache": "IQSteerDelayCache",
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -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")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user