  void Localizer::handle_cam_odo(double current_time, const cereal::CameraOdometry::Reader& log) {
    VectorXd rot_device = this->device_from_calib * floatlist2vector(log.getRot());
    VectorXd trans_device = this->device_from_calib * floatlist2vector(log.getTrans());
  
    if ((rot_device.norm() > ROTATION_SANITY_CHECK) || (trans_device.norm() > TRANS_SANITY_CHECK)) {
      this->observation_values_invalid["cameraOdometry"] += 1.0;
      return;
 
</s>
  
  if (!this->is_timestamp_valid(current_time)) {
    this->observation_timings_invalid = true;
    return;
  }
  void Localizer::handle_cam_odo(double current_time, const cereal::CameraOdometry::Reader& log) {
    VectorXd rot_device = this->device_from_calib * floatlist2vector(log.getRot());
    VectorXd trans_device = this->device_from_calib * floatlist2vector(log.getTrans());
  
  if (!this->is_timestamp_valid(current_time)) {
    this->observation_timings_invalid = true;
    return;
  }
  
    if ((rot_device.norm() > ROTATION_SANITY_CHECK) || (trans_device.norm() > TRANS_SANITY_CHECK)) {
      this->observation_values_invalid["cameraOdometry"] += 1.0;
      return;
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