22 #include "Eigen/Geometry" 23 #include "modules/drivers/gnss/proto/ins.pb.h" 24 #include "modules/drivers/proto/pointcloud.pb.h" 27 #include "modules/localization/proto/gps.pb.h" 28 #include "modules/localization/proto/localization.pb.h" 32 namespace localization {
42 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
43 double timestamp = 0.0;
49 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
57 void OdometryCallback(
const std::shared_ptr<localization::Gps>& odometry_msg);
59 void LidarCallback(
const std::shared_ptr<drivers::PointCloud>& lidar_msg);
61 void OdometryStatusCallback(
62 const std::shared_ptr<drivers::gnss::InsStat>& status_msg);
64 bool IsServiceStarted();
66 void GetLocalization(LocalizationEstimate* localization)
const;
68 void GetLidarLocalization(LocalizationEstimate* lidar_localization)
const;
70 void GetLocalizationStatus(LocalizationStatus* localization_status)
const;
78 void LidarMsgTransfer(
const std::shared_ptr<drivers::PointCloud>& message,
81 bool LoadLidarExtrinsic(
const std::string& file_path,
86 bool LoadZoneIdFromFolder(
const std::string& folder_path,
int* zone_id);
95 void FillLocalizationMsgHeader(LocalizationEstimate* localization);
97 void ComposeLocalizationEstimate(
99 const std::shared_ptr<localization::Gps>& odometry_msg,
100 LocalizationEstimate* localization);
101 void ComposeLidarResult(
double time_stamp,
const Eigen::Affine3d& pose,
102 LocalizationEstimate* localization);
104 void ComposeLocalizationStatus(
const drivers::gnss::InsStat& status,
105 LocalizationStatus* localization_status);
107 bool FindNearestOdometryStatus(
const double odometry_timestamp,
108 drivers::gnss::InsStat* status);
111 std::string module_name_ =
"ndt_localization";
115 std::string tf_target_frame_id_ =
"";
116 std::string tf_source_frame_id_ =
"";
120 double max_height_ = 100.0;
121 int localization_seq_num_ = 0;
122 unsigned int resolution_id_ = 0;
123 double online_resolution_ = 2.0;
124 std::string map_path_ =
"";
128 LocalizationEstimate lidar_localization_result_;
129 double ndt_score_ = 0;
130 unsigned int bad_score_count_ = 0;
131 unsigned int bad_score_count_threshold_ = 10;
132 double warnning_ndt_score_ = 1.0;
133 double error_ndt_score_ = 2.0;
134 bool is_service_started_ =
false;
136 std::list<TimeStampPose> odometry_buffer_;
137 std::mutex odometry_buffer_mutex_;
138 unsigned int odometry_buffer_size_ = 0;
139 const unsigned int max_odometry_buffer_size_ = 100;
141 LocalizationEstimate localization_result_;
142 LocalizationStatus localization_status_;
144 std::list<drivers::gnss::InsStat> odometry_status_list_;
145 size_t odometry_status_list_max_size_ = 10;
146 std::mutex odometry_status_list_mutex_;
147 double odometry_status_time_diff_threshold_ = 1.0;
149 bool ndt_debug_log_flag_ =
false;
double GetOnlineResolution() const
get online resolution for ndt localization
Definition: ndt_localization.h:74
PlanningContext is the runtime context in planning. It is persistent across multiple frames...
Definition: atomic_hash_map.h:25
double height
Definition: ndt_localization.h:37
int GetZoneId() const
get zone id
Definition: ndt_localization.h:72
Definition: ndt_localization.h:47
Definition: lidar_locator_ndt.h:83
Definition: ndt_localization.h:41
Definition: ndt_localization.h:35
bool Init(const char *binary_name)
double height_var
Definition: ndt_localization.h:38
Eigen::Affine3d pose
Definition: ndt_localization.h:44
Definition: localization_pose_buffer.h:35
~NDTLocalization()
Definition: ndt_localization.h:53
NDTLocalization()
Definition: ndt_localization.h:52
Eigen::Affine3d Affine3d
Definition: base_map_fwd.h:34
LidarHeight()
Definition: ndt_localization.h:36
Definition: lidar_locator_ndt.h:74