modelrevert: boot fixes + strip remaining variable-rate cruft
controlsd: - stop writing the removed 'no_lat_lane_change' persistent param (key isn't in the whitelist anymore). Write to frogpilot_variables.no_lat_lane_change instead so the carcontroller read still works and the lane-change-disengage feature is preserved. - initialize self.driving_gear = False in __init__; it's set at the end of step() in update_frogpilot_variables but clearpilot_state_control reads it on the first iteration before that's run. modeld: - remove the remaining CLEARPILOT variable-rate / standby code path that was baked into the initial-import commit (the one our first commit captured). Constant 20fps, no ModelStandby/ModelStandbyTs writes, no params_memory reads for 'no_lat_lane_change' (which isn't registered anymore). - drop now-unused locals (model_standby, last_standby_ts_write, params_memory). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -85,6 +85,7 @@ class Controls:
|
|||||||
self.speed_state = SpeedState()
|
self.speed_state = SpeedState()
|
||||||
self.speed_state_frame = 0
|
self.speed_state_frame = 0
|
||||||
self.was_driving_gear = False
|
self.was_driving_gear = False
|
||||||
|
self.driving_gear = False
|
||||||
|
|
||||||
self.radarless_model = self.params.get("Model", encoding='utf-8') in RADARLESS_MODELS
|
self.radarless_model = self.params.get("Model", encoding='utf-8') in RADARLESS_MODELS
|
||||||
|
|
||||||
@@ -700,9 +701,9 @@ class Controls:
|
|||||||
|
|
||||||
if model_v2.meta.laneChangeState == LaneChangeState.laneChangeStarting and clearpilot_disable_lat_on_lane_change:
|
if model_v2.meta.laneChangeState == LaneChangeState.laneChangeStarting and clearpilot_disable_lat_on_lane_change:
|
||||||
CC.latActive = False
|
CC.latActive = False
|
||||||
self.params_memory.put_bool("no_lat_lane_change", True)
|
self.frogpilot_variables.no_lat_lane_change = True
|
||||||
else:
|
else:
|
||||||
self.params_memory.put_bool("no_lat_lane_change", False)
|
self.frogpilot_variables.no_lat_lane_change = False
|
||||||
|
|
||||||
if CS.leftBlinker or CS.rightBlinker:
|
if CS.leftBlinker or CS.rightBlinker:
|
||||||
self.last_blinker_frame = self.sm.frame
|
self.last_blinker_frame = self.sm.frame
|
||||||
|
|||||||
@@ -183,9 +183,6 @@ def main(demo=False):
|
|||||||
model_transform_main = np.zeros((3, 3), dtype=np.float32)
|
model_transform_main = np.zeros((3, 3), dtype=np.float32)
|
||||||
model_transform_extra = np.zeros((3, 3), dtype=np.float32)
|
model_transform_extra = np.zeros((3, 3), dtype=np.float32)
|
||||||
live_calib_seen = False
|
live_calib_seen = False
|
||||||
model_standby = False
|
|
||||||
last_standby_ts_write = 0
|
|
||||||
params_memory = Params("/dev/shm/params")
|
|
||||||
nav_features = np.zeros(ModelConstants.NAV_FEATURE_LEN, dtype=np.float32)
|
nav_features = np.zeros(ModelConstants.NAV_FEATURE_LEN, dtype=np.float32)
|
||||||
nav_instructions = np.zeros(ModelConstants.NAV_INSTRUCTION_LEN, dtype=np.float32)
|
nav_instructions = np.zeros(ModelConstants.NAV_INSTRUCTION_LEN, dtype=np.float32)
|
||||||
buf_main, buf_extra = None, None
|
buf_main, buf_extra = None, None
|
||||||
@@ -241,47 +238,10 @@ def main(demo=False):
|
|||||||
|
|
||||||
sm.update(0)
|
sm.update(0)
|
||||||
|
|
||||||
# CLEARPILOT: power saving — three modes based on driving state
|
# CLEARPILOT: constant 20fps. Variable-rate + standby logic removed — the
|
||||||
# Full 20fps: lat active or lane changing
|
# variable-rate path caused freq_ok cascades in downstream consumers
|
||||||
# Reduced 4fps: not lat active, not standstill (driving without cruise)
|
# (calibrationd/locationd/paramsd). Running at the camera's native rate is
|
||||||
# Standby 0fps: standstill
|
# simpler and keeps the full-stack localization chain happy.
|
||||||
lat_active = sm['carControl'].latActive
|
|
||||||
lane_changing = params_memory.get_bool("no_lat_lane_change")
|
|
||||||
standstill = sm['carState'].standstill
|
|
||||||
full_rate = lat_active or lane_changing
|
|
||||||
|
|
||||||
# Standby transitions (standstill only)
|
|
||||||
should_standby = standstill and not full_rate
|
|
||||||
if should_standby and not model_standby:
|
|
||||||
params_memory.put_bool("ModelStandby", True)
|
|
||||||
model_standby = True
|
|
||||||
cloudlog.warning("modeld: standby ON (standstill)")
|
|
||||||
elif not should_standby and model_standby:
|
|
||||||
params_memory.put_bool("ModelStandby", False)
|
|
||||||
model_standby = False
|
|
||||||
run_count = 0
|
|
||||||
frame_dropped_filter.x = 0.
|
|
||||||
cloudlog.warning("modeld: standby OFF")
|
|
||||||
if model_standby:
|
|
||||||
now = _time.monotonic()
|
|
||||||
if now - last_standby_ts_write > 1.0:
|
|
||||||
params_memory.put("ModelStandbyTs", str(now))
|
|
||||||
last_standby_ts_write = now
|
|
||||||
last_vipc_frame_id = meta_main.frame_id
|
|
||||||
continue
|
|
||||||
|
|
||||||
# Reduced framerate: 4fps when not lat active and not standstill
|
|
||||||
# Skip 4 out of every 5 frames (20fps -> 4fps)
|
|
||||||
# Write standby timestamp so controlsd suppresses transient errors
|
|
||||||
if not full_rate:
|
|
||||||
now = _time.monotonic()
|
|
||||||
if now - last_standby_ts_write > 1.0:
|
|
||||||
params_memory.put("ModelStandbyTs", str(now))
|
|
||||||
last_standby_ts_write = now
|
|
||||||
if run_count % 5 != 0:
|
|
||||||
last_vipc_frame_id = meta_main.frame_id
|
|
||||||
run_count += 1
|
|
||||||
continue
|
|
||||||
|
|
||||||
desire = DH.desire
|
desire = DH.desire
|
||||||
is_rhd = sm["driverMonitoringState"].isRHD
|
is_rhd = sm["driverMonitoringState"].isRHD
|
||||||
|
|||||||
Reference in New Issue
Block a user