From d92f923d70712e541de59bf76f23a494dd0c46b4 Mon Sep 17 00:00:00 2001 From: Adeeb Shihadeh Date: Sat, 21 Nov 2020 14:50:53 -0800 Subject: [PATCH] update frame drop filter (#2592) --- selfdrive/controls/controlsd.py | 2 +- selfdrive/modeld/modeld.cc | 4 ++-- selfdrive/modeld/models/driving.cc | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/selfdrive/controls/controlsd.py b/selfdrive/controls/controlsd.py index cc77b1d356..32266813f2 100755 --- a/selfdrive/controls/controlsd.py +++ b/selfdrive/controls/controlsd.py @@ -232,7 +232,7 @@ class Controls: self.events.add(EventName.relayMalfunction) if self.sm['plan'].fcw: self.events.add(EventName.fcw) - if self.sm['model'].frameDropPerc > 1 and not SIMULATION: + if self.sm['model'].frameDropPerc > 2 and not SIMULATION: self.events.add(EventName.modeldLagging) if not self.sm.alive['frontFrame'] and (self.sm.frame > 5 / DT_CTRL) and not SIMULATION: self.events.add(EventName.cameraMalfunction) diff --git a/selfdrive/modeld/modeld.cc b/selfdrive/modeld/modeld.cc index 9b956e8559..ffb3770d22 100644 --- a/selfdrive/modeld/modeld.cc +++ b/selfdrive/modeld/modeld.cc @@ -147,7 +147,7 @@ int main(int argc, char **argv) { // setup filter to track dropped frames const float dt = 1. / MODEL_FREQ; - const float ts = 5.0; // 5 s filter time constant + const float ts = 10.0; // filter time constant (s) const float frame_filter_k = (dt / ts) / (1. + dt / ts); float frames_dropped = 0; @@ -201,7 +201,7 @@ int main(int argc, char **argv) { // tracked dropped frames uint32_t vipc_dropped_frames = extra.frame_id - last_vipc_frame_id - 1; frames_dropped = (1. - frame_filter_k) * frames_dropped + frame_filter_k * (float)std::min(vipc_dropped_frames, 10U); - if (run_count < 10) frames_dropped = 0; // let frame drops warm up + if (run_count < 10) frames_dropped = 0; // let frame drops warm up float frame_drop_ratio = frames_dropped / (1 + frames_dropped); model_publish(pm, extra.frame_id, frame_id, vipc_dropped_frames, frame_drop_ratio, model_buf, extra.timestamp_eof, model_execution_time); diff --git a/selfdrive/modeld/models/driving.cc b/selfdrive/modeld/models/driving.cc index 418060ffe3..c55af9e062 100644 --- a/selfdrive/modeld/models/driving.cc +++ b/selfdrive/modeld/models/driving.cc @@ -368,7 +368,7 @@ void model_publish_v2(PubMaster &pm, uint32_t vipc_frame_id, uint32_t frame_id, // meta auto meta = framed.initMeta(); fill_meta_v2(meta, net_outputs.meta); - + // leads auto leads = framed.initLeads(LEAD_MHP_SELECTION); int mdn_max_idx = 0;