only check frame age for model validity

old-commit-hash: 587bdf5937
commatwo_master
Adeeb Shihadeh 5 years ago
parent 4e25a5862c
commit c8a9fb9321
  1. 4
      selfdrive/modeld/modeld.cc
  2. 6
      selfdrive/modeld/models/driving.cc
  3. 4
      selfdrive/modeld/models/driving.h

@ -217,8 +217,8 @@ int main(int argc, char **argv) {
model_transform, NULL, vec_desire); model_transform, NULL, vec_desire);
mt2 = millis_since_boot(); mt2 = millis_since_boot();
model_publish(pm, extra.frame_id, frame_id, sm.allAliveAndValid(), model_buf, extra.timestamp_eof); model_publish(pm, extra.frame_id, frame_id, model_buf, extra.timestamp_eof);
posenet_publish(pm, extra.frame_id, frame_id, sm.allAliveAndValid(), model_buf, extra.timestamp_eof); posenet_publish(pm, extra.frame_id, frame_id, model_buf, extra.timestamp_eof);
LOGD("model process: %.2fms, from last %.2fms, vipc_frame_id %zu, frame_id, %zu", mt2-mt1, mt1-last, extra.frame_id, frame_id); LOGD("model process: %.2fms, from last %.2fms, vipc_frame_id %zu, frame_id, %zu", mt2-mt1, mt1-last, extra.frame_id, frame_id);
last = mt1; last = mt1;

@ -245,7 +245,7 @@ void fill_longi(cereal::ModelData::LongitudinalData::Builder longi, const float
longi.setAccelerations(accel); longi.setAccelerations(accel);
} }
void model_publish(PubMaster &pm, uint32_t vipc_frame_id, uint32_t frame_id, bool sm_alive_valid, void model_publish(PubMaster &pm, uint32_t vipc_frame_id, uint32_t frame_id,
const ModelDataRaw &net_outputs, uint64_t timestamp_eof) { const ModelDataRaw &net_outputs, uint64_t timestamp_eof) {
// make msg // make msg
capnp::MallocMessageBuilder msg; capnp::MallocMessageBuilder msg;
@ -293,12 +293,12 @@ void model_publish(PubMaster &pm, uint32_t vipc_frame_id, uint32_t frame_id, boo
auto meta = framed.initMeta(); auto meta = framed.initMeta();
fill_meta(meta, net_outputs.meta); fill_meta(meta, net_outputs.meta);
event.setValid((frame_age < MAX_FRAME_AGE) && sm_alive_valid); event.setValid(frame_age < MAX_FRAME_AGE);
pm.send("model", msg); pm.send("model", msg);
} }
void posenet_publish(PubMaster &pm, uint32_t vipc_frame_id, uint32_t frame_id, bool sm_alive_valid, void posenet_publish(PubMaster &pm, uint32_t vipc_frame_id, uint32_t frame_id,
const ModelDataRaw &net_outputs, uint64_t timestamp_eof) { const ModelDataRaw &net_outputs, uint64_t timestamp_eof) {
capnp::MallocMessageBuilder msg; capnp::MallocMessageBuilder msg;
cereal::Event::Builder event = msg.initRoot<cereal::Event>(); cereal::Event::Builder event = msg.initRoot<cereal::Event>();

@ -73,8 +73,8 @@ ModelDataRaw model_eval_frame(ModelState* s, cl_command_queue q,
void model_free(ModelState* s); void model_free(ModelState* s);
void poly_fit(float *in_pts, float *in_stds, float *out); void poly_fit(float *in_pts, float *in_stds, float *out);
void model_publish(PubMaster &pm, uint32_t vipc_frame_id, uint32_t frame_id, bool sm_alive_valid, void model_publish(PubMaster &pm, uint32_t vipc_frame_id, uint32_t frame_id,
const ModelDataRaw &data, uint64_t timestamp_eof); const ModelDataRaw &data, uint64_t timestamp_eof);
void posenet_publish(PubMaster &pm, uint32_t vipc_frame_id, uint32_t frame_id, bool sm_alive_valid, void posenet_publish(PubMaster &pm, uint32_t vipc_frame_id, uint32_t frame_id,
const ModelDataRaw &data, uint64_t timestamp_eof); const ModelDataRaw &data, uint64_t timestamp_eof);
#endif #endif

Loading…
Cancel
Save