  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());
  
    VectorXd rot_calib_std = floatlist2vector(log.getRotStd());
    VectorXd trans_calib_std = floatlist2vector(log.getTransStd());
  
    this->posenet_stds.pop_front();
    this->posenet_stds.push_back(trans_calib_std[0]);
  
    // Multiply by 10 to avoid to high certainty in kalman filter because of temporally correlated noise
 
</s> remove   this->posenet_stds.pop_front();
  this->posenet_stds.push_back(trans_calib_std[0]);
 </s> add     VectorXd trans_device = this->device_from_calib * floatlist2vector(log.getTrans());
    VectorXd trans_device_std = this->device_from_calib * floatlist2vector(log.getTransStd()); </s> remove   VectorXd rot_device = this->device_from_calib * floatlist2vector(log.getRot());
  VectorXd trans_device = this->device_from_calib * floatlist2vector(log.getTrans());
 </s> add   this->cam_counter++; </s> remove   // Multiply by 10 to avoid to high certainty in kalman filter because of temporally correlated noise
  trans_calib_std *= 10.0;
  rot_calib_std *= 10.0;
  VectorXd rot_device_std = rotate_std(this->device_from_calib, rot_calib_std);
  VectorXd trans_device_std = rotate_std(this->device_from_calib, trans_calib_std);
 </s> add     this->posenet_stds.pop_front();
    this->posenet_stds.push_back(trans_device_std[0]); </s> remove   this->kf->predict_and_observe(current_time, OBSERVATION_ODOMETRIC_SPEED, { (VectorXd(1) << log.getVEgoRaw()).finished() });
  this->car_speed = std::abs(log.getVEgo());
  if (this->car_speed < 1e-3) {
    this->kf->predict_and_observe(current_time, OBSERVATION_NO_ROT, { Vector3d(0.0, 0.0, 0.0) });
 </s> add   this->speed_counter++;

  if (this->speed_counter % SENSOR_DECIMATION == 0) {
    this->kf->predict_and_observe(current_time, OBSERVATION_ODOMETRIC_SPEED, { (VectorXd(1) << log.getVEgoRaw()).finished() });
    this->car_speed = std::abs(log.getVEgo());
    if (this->car_speed < 1e-3) {
      this->kf->predict_and_observe(current_time, OBSERVATION_NO_ROT, { Vector3d(0.0, 0.0, 0.0) });
    } </s> remove   this->kf->predict_and_observe(current_time, OBSERVATION_CAMERA_ODO_ROTATION,
    { (VectorXd(rot_device.rows() + rot_device_std.rows()) << rot_device, rot_device_std).finished() });
  this->kf->predict_and_observe(current_time, OBSERVATION_CAMERA_ODO_TRANSLATION,
    { (VectorXd(trans_device.rows() + trans_device_std.rows()) << trans_device, trans_device_std).finished() });
 </s> add     trans_device_std *= 10.0;
    this->kf->predict_and_observe(current_time, OBSERVATION_CAMERA_ODO_TRANSLATION,
      { (VectorXd(trans_device.rows() + trans_device_std.rows()) << trans_device, trans_device_std).finished() });
  }
  if (this->cam_counter % VISION_DECIMATION == 0) {
    VectorXd rot_device = this->device_from_calib * floatlist2vector(log.getRot());
    VectorXd rot_device_std = (this->device_from_calib * floatlist2vector(log.getRotStd())) * 10.0;
    this->kf->predict_and_observe(current_time, OBSERVATION_CAMERA_ODO_ROTATION,
      { (VectorXd(rot_device.rows() + rot_device_std.rows()) << rot_device, rot_device_std).finished() });
  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->cam_counter % VISION_DECIMATION == 0) {
    VectorXd rot_device = this->device_from_calib * floatlist2vector(log.getRot());
    VectorXd rot_device_std = (this->device_from_calib * floatlist2vector(log.getRotStd())) * 10.0;
    this->kf->predict_and_observe(current_time, OBSERVATION_CAMERA_ODO_ROTATION,
      { (VectorXd(rot_device.rows() + rot_device_std.rows()) << rot_device, rot_device_std).finished() });
  if (this->cam_counter % VISION_DECIMATION == 0) {
    VectorXd rot_device = this->device_from_calib * floatlist2vector(log.getRot());
    VectorXd rot_device_std = (this->device_from_calib * floatlist2vector(log.getRotStd())) * 10.0;
    this->kf->predict_and_observe(current_time, OBSERVATION_CAMERA_ODO_ROTATION,
      { (VectorXd(rot_device.rows() + rot_device_std.rows()) << rot_device, rot_device_std).finished() });
  
    this->posenet_stds.pop_front();
    this->posenet_stds.push_back(trans_calib_std[0]);
  
    // Multiply by 10 to avoid to high certainty in kalman filter because of temporally correlated noise
keep keep keep keep replace replace keep keep keep keep keep
 Revert "Locationd 100hz (#20759)" (#20797)

* Revert "Locationd 100hz (#20759)"

This reverts commit 333313cf0e6819767d8dcc4a55bea70f0354579f.

* new ref 
selfdrive/locationd/locationd.cc