      auto v = log.getGyroUncalibrated().getV();
      auto meas = Vector3d(-v[2], -v[1], -v[0]);
      if (meas.norm() < ROTATION_SANITY_CHECK) {
        this->kf->predict_and_observe(sensor_time, OBSERVATION_PHONE_GYRO, { meas });
      }
    }
  
    // Accelerometer
 
</s>
      this->observation_values_invalid["gyroscope"] *= DECAY;
    }
    else{
      this->observation_values_invalid["gyroscope"] += 1.0;
      auto v = log.getGyroUncalibrated().getV();
      auto meas = Vector3d(-v[2], -v[1], -v[0]);
      if (meas.norm() < ROTATION_SANITY_CHECK) {
        this->kf->predict_and_observe(sensor_time, OBSERVATION_PHONE_GYRO, { meas });
      this->observation_values_invalid["gyroscope"] *= DECAY;
    }
    else{
      this->observation_values_invalid["gyroscope"] += 1.0;
      }
    }
  
    // Accelerometer
keep keep keep add keep keep keep keep
 [locationd] Add input checks (#26460)

* add input checks with same decay as reset_tracker

* add observation timings check

* typo

* bugfix

* improve offline locationd visibility

* sbugfix offline lld

Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>
selfdrive/locationd/locationd.cc