43 void GpsCallback(
const std::shared_ptr<localization::Gps> &gps_msg);
45 const std::shared_ptr<drivers::gnss::InsStat> &status_msg);
46 void ImuCallback(
const std::shared_ptr<localization::CorrectedImu> &imu_msg);
53 void RunWatchDog(
double gps_timestamp);
65 bool FindMatchingIMU(
const double gps_timestamp_sec,
CorrectedImu *imu_msg);
69 T InterpolateXYZ(
const T &p1,
const T &p2,
const double frac1);
71 bool FindNearestGpsStatus(
const double gps_timestamp_sec,
75 std::string module_name_ =
"localization";
77 std::list<localization::CorrectedImu> imu_list_;
78 size_t imu_list_max_size_ = 50;
79 std::mutex imu_list_mutex_;
81 std::list<drivers::gnss::InsStat> gps_status_list_;
82 size_t gps_status_list_max_size_ = 10;
83 std::mutex gps_status_list_mutex_;
85 std::vector<double> map_offset_;
87 double gps_time_delay_tolerance_ = 1.0;
88 double gps_imu_time_diff_threshold_ = 0.02;
89 double gps_status_time_diff_threshold_ = 1.0;
91 double last_received_timestamp_sec_ = 0.0;
92 double last_reported_timestamp_sec_ = 0.0;
94 bool enable_watch_dog_ =
true;
95 bool service_started_ =
false;
96 double service_started_time = 0.0;
98 int64_t localization_seq_num_ = 0;
102 int localization_publish_freq_ = 100;
103 int report_threshold_err_num_ = 10;
104 int service_delay_threshold = 1;
107 FRIEND_TEST(RTKLocalizationTest, InterpolateIMU);
108 FRIEND_TEST(RTKLocalizationTest, ComposeLocalizationMsg);