Apollo 10.0
自动驾驶开放平台
apollo::localization::RTKLocalization类 参考

#include <rtk_localization.h>

apollo::localization::RTKLocalization 的协作图:

Public 成员函数

 RTKLocalization ()
 
 ~RTKLocalization ()=default
 
void InitConfig (const rtk_config::Config &config)
 
void GpsCallback (const std::shared_ptr< localization::Gps > &gps_msg)
 
void GpsStatusCallback (const std::shared_ptr< drivers::gnss::InsStat > &status_msg)
 
void ImuCallback (const std::shared_ptr< localization::CorrectedImu > &imu_msg)
 
bool IsServiceStarted ()
 
void GetLocalization (LocalizationEstimate *localization)
 
void GetLocalizationStatus (LocalizationStatus *localization_status)
 

详细描述

在文件 rtk_localization.h36 行定义.

构造及析构函数说明

◆ RTKLocalization()

apollo::localization::RTKLocalization::RTKLocalization ( )

在文件 rtk_localization.cc33 行定义.

◆ ~RTKLocalization()

apollo::localization::RTKLocalization::~RTKLocalization ( )
default

成员函数说明

◆ GetLocalization()

void apollo::localization::RTKLocalization::GetLocalization ( LocalizationEstimate localization)

在文件 rtk_localization.cc119 行定义.

119 {
120 *localization = last_localization_result_;
121}

◆ GetLocalizationStatus()

void apollo::localization::RTKLocalization::GetLocalizationStatus ( LocalizationStatus localization_status)

在文件 rtk_localization.cc123 行定义.

124 {
125 *localization_status = last_localization_status_result_;
126}

◆ GpsCallback()

void apollo::localization::RTKLocalization::GpsCallback ( const std::shared_ptr< localization::Gps > &  gps_msg)

在文件 rtk_localization.cc46 行定义.

47 {
48 double time_delay = last_received_timestamp_sec_
49 ? Clock::NowInSeconds() - last_received_timestamp_sec_
50 : last_received_timestamp_sec_;
51 if (time_delay > gps_time_delay_tolerance_) {
52 std::stringstream ss;
53 ss << "GPS message time interval: " << time_delay;
54 monitor_logger_.WARN(ss.str());
55 }
56
57 {
58 std::unique_lock<std::mutex> lock(imu_list_mutex_);
59
60 if (imu_list_.empty()) {
61 AERROR << "IMU message buffer is empty.";
62 if (service_started_) {
63 monitor_logger_.ERROR("IMU message buffer is empty.");
64 }
65 return;
66 }
67 }
68
69 {
70 std::unique_lock<std::mutex> lock(gps_status_list_mutex_);
71
72 if (gps_status_list_.empty()) {
73 AERROR << "Gps status message buffer is empty.";
74 if (service_started_) {
75 monitor_logger_.ERROR("Gps status message buffer is empty.");
76 }
77 return;
78 }
79 }
80
81 // publish localization messages
82 PrepareLocalizationMsg(*gps_msg, &last_localization_result_,
83 &last_localization_status_result_);
84 service_started_ = true;
85 if (service_started_time == 0.0) {
86 service_started_time = Clock::NowInSeconds();
87 }
88
89 // watch dog
90 RunWatchDog(gps_msg->header().timestamp_sec());
91
92 last_received_timestamp_sec_ = Clock::NowInSeconds();
93}
static double NowInSeconds()
gets the current time in second.
Definition clock.cc:56
#define AERROR
Definition log.h:44

◆ GpsStatusCallback()

void apollo::localization::RTKLocalization::GpsStatusCallback ( const std::shared_ptr< drivers::gnss::InsStat > &  status_msg)

在文件 rtk_localization.cc95 行定义.

96 {
97 std::unique_lock<std::mutex> lock(gps_status_list_mutex_);
98 if (gps_status_list_.size() < gps_status_list_max_size_) {
99 gps_status_list_.push_back(*status_msg);
100 } else {
101 gps_status_list_.pop_front();
102 gps_status_list_.push_back(*status_msg);
103 }
104}

◆ ImuCallback()

void apollo::localization::RTKLocalization::ImuCallback ( const std::shared_ptr< localization::CorrectedImu > &  imu_msg)

在文件 rtk_localization.cc106 行定义.

107 {
108 std::unique_lock<std::mutex> lock(imu_list_mutex_);
109 if (imu_list_.size() < imu_list_max_size_) {
110 imu_list_.push_back(*imu_msg);
111 } else {
112 imu_list_.pop_front();
113 imu_list_.push_back(*imu_msg);
114 }
115}

◆ InitConfig()

void apollo::localization::RTKLocalization::InitConfig ( const rtk_config::Config config)

在文件 rtk_localization.cc38 行定义.

38 {
39 imu_list_max_size_ = config.imu_list_max_size();
40 gps_imu_time_diff_threshold_ = config.gps_imu_time_diff_threshold();
41 map_offset_[0] = config.map_offset_x();
42 map_offset_[1] = config.map_offset_y();
43 map_offset_[2] = config.map_offset_z();
44}

◆ IsServiceStarted()

bool apollo::localization::RTKLocalization::IsServiceStarted ( )

在文件 rtk_localization.cc117 行定义.

117{ return service_started_; }

该类的文档由以下文件生成: