27 #include "Eigen/Geometry" 30 #include "localization_msf/pose_forcast.h" 31 #include "localization_msf/sins_struct.h" 35 #include "modules/localization/proto/localization.pb.h" 36 #include "modules/localization/proto/localization_status.pb.h" 37 #include "modules/localization/proto/measure.pb.h" 38 #include "modules/localization/proto/sins_pva.pb.h" 45 namespace localization {
82 void PcdProcess(
const LidarFrame &lidar_frame);
83 void GetResult(
int *lidar_status, TransformD *location,
84 Matrix3D *covariance)
const;
85 int GetResult(LocalizationEstimate *lidar_local_msg);
87 void IntegPvaProcess(
const InsPva &sins_pva_msg);
89 void RawImuProcess(
const ImuData &imu_msg);
93 bool GetPredictPose(
const double lidar_time, TransformD *inspva_pose,
96 bool CheckDelta(
const LidarFrame &frame,
const TransformD &inspva_pose);
97 void UpdateState(
const int ret,
const double time);
100 bool LoadLidarExtrinsic(
const std::string &file_path,
101 TransformD *lidar_extrinsic);
103 bool LoadLidarHeight(
const std::string &file_path,
LidarHeight *height);
105 double ComputeDeltaYawLimit(
const int64_t index_cur,
106 const int64_t index_stable,
107 const double limit_min,
const double limit_max);
112 PoseForcast *pose_forecastor_;
114 std::string map_path_;
115 std::string lidar_extrinsic_file_;
116 std::string lidar_height_file_;
117 int localization_mode_ = 2;
118 int yaw_align_mode_ = 2;
119 int lidar_filter_size_ = 17;
120 double delta_yaw_limit_ = 0.00436;
121 double init_delta_yaw_limit_ = 0.02618;
122 double compensate_pitch_roll_limit_ = 0.035;
123 int utm_zone_id_ = 50;
124 double map_coverage_theshold_ = 0.8;
125 TransformD lidar_extrinsic_;
128 bool is_get_first_lidar_msg_ =
false;
129 TransformD cur_predict_location_;
130 TransformD pre_predict_location_;
132 TransformD pre_location_;
133 TransformD location_;
134 double pre_location_time_ = 0;
137 Matrix3D location_covariance_;
140 LocalLidarStatus local_lidar_status_ =
141 LocalLidarStatus::MSF_LOCAL_LIDAR_UNDEFINED_STATUS;
142 LocalLidarQuality local_lidar_quality_ =
143 LocalLidarQuality::MSF_LOCAL_LIDAR_BAD;
145 bool reinit_flag_ =
false;
148 bool if_use_avx_ =
false;
151 double imu_lidar_max_delay_time_ = 0.4;
153 bool is_unstable_reset_ =
false;
154 int unstable_count_ = 0;
155 double unstable_threshold_ = 0.3;
157 int out_map_count_ = 0;
161 int64_t forecast_timer_ = 0;
163 static constexpr
double DEG_TO_RAD = 0.017453292519943;
164 static constexpr
double DEG_TO_RAD2 = DEG_TO_RAD * DEG_TO_RAD;
167 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
ForecastState
Definition: localization_lidar_process.h:48
PlanningContext is the runtime context in planning. It is persistent across multiple frames...
Definition: atomic_hash_map.h:25
double height_var
Definition: localization_lidar_process.h:62
Eigen::Vector3d Vector3d
Definition: frame_transform.h:27
Definition: localization_lidar.h:71
LidarState
Definition: localization_lidar_process.h:50
double height
Definition: localization_lidar_process.h:61
process lidar msg for localization
Definition: localization_lidar_process.h:70
Eigen::Affine3d TransformD
Definition: localization_lidar_process.h:72
PredictLocationState
Definition: localization_lidar_process.h:52
The class of LocalizationIntegParam.
bool Init(const char *binary_name)
Eigen::Matrix3d Matrix3D
Definition: localization_lidar_process.h:74
Definition: localization_lidar_process.h:59
Definition: localization_params.h:60
A general class to denote the return status of an API call. It can either be an OK status for success...
Definition: status.h:43
LidarHeight()
Definition: localization_lidar_process.h:60
Eigen::Affine3d Affine3d
Definition: base_map_fwd.h:34
Definition: localization_lidar.h:36
Eigen::Matrix3d Matrix3d
Definition: base_map_fwd.h:33
Eigen::Vector3d Vector3D
Definition: localization_lidar_process.h:73