28 const uint64_t& current_send_tf_time, uint64_t* measurement_time) {
35 uint64_t compensated_delta;
36 if (last_valid_gnss_time_ != 0 && last_send_tf_time_ != 0) {
38 compensated_delta = current_send_tf_time - last_send_tf_time_;
42 if (compensated_delta >=
43 static_cast<uint64_t
>(FLAGS_gps_imu_compensate_ns_tolerance) &&
44 *measurement_time <= last_valid_gnss_time_) {
47 last_compensated_gnss_time_ =
48 last_compensated_gnss_time_+ compensated_delta;
49 AINFO <<
"enter compensator: " <<
"last valid gnss time: " <<
50 last_valid_gnss_time_ <<
", " <<
"measurement time: " <<
51 *measurement_time <<
", " <<
"measurement time after compensated: " <<
52 last_compensated_gnss_time_;
54 if (FLAGS_enable_gps_imu_compensate)
55 *measurement_time = last_compensated_gnss_time_;
58 last_valid_gnss_time_ = *measurement_time;
59 last_compensated_gnss_time_ = *measurement_time;
63 last_valid_gnss_time_ = *measurement_time;
64 last_compensated_gnss_time_ = *measurement_time;
66 last_send_tf_time_ = current_send_tf_time;