21 #include "modules/map/tools/map_datachecker/proto/collection_error_code.pb.h" 36 explicit Alignment(std::shared_ptr<JsonConf> sp_conf)
37 : return_state_(ErrorCode::SUCCESS),
43 virtual ErrorCode Process(
const std::vector<FramePose>& poses) = 0;
44 virtual void Reset() = 0;
53 UpdatePoseInfo(pose, sp_bad_pose_info_);
59 UpdatePoseInfo(pose, sp_good_pose_info_);
64 virtual bool IsGoodPose(
const std::vector<FramePose>& poses,
int pose_index) {
65 if (pose_index <= 0 || pose_index >= static_cast<int>(poses.size())) {
66 AINFO <<
"params error. poses size:" << poses.size()
67 <<
",pose_index:" << pose_index;
71 unsigned int position_type = poses[pose_index].position_type;
72 float diff_age = poses[pose_index].diff_age;
73 double local_std = poses[pose_index].local_std;
75 if (sp_conf_->position_type_range.find(position_type) !=
76 sp_conf_->position_type_range.end() &&
77 diff_age >= sp_conf_->diff_age_range.first &&
78 diff_age <= sp_conf_->diff_age_range.second &&
79 local_std <= sp_conf_->local_std_upper_limit) {
89 std::shared_ptr<BadOrGoodPoseInfo> sp_pose_info) {
90 if (sp_pose_info ==
nullptr) {
91 AERROR <<
"sp_pose_info is nullptr";
109 if (sp_pose_info ==
nullptr) {
110 AERROR <<
"sp_pose_info is nullptr";
119 int TimeToIndex(
const std::vector<FramePose>& poses,
double time) {
120 size_t size = poses.size();
121 if (size == 0 || time <= 0) {
125 for (
size_t i = 0; i < size; ++i) {
126 if (poses[i].time_stamp >= time) {
127 return static_cast<int>(i);
130 return static_cast<int>(size);
141 std::shared_ptr<JsonConf> sp_conf_ =
nullptr;
143 std::shared_ptr<BadOrGoodPoseInfo> sp_good_pose_info_ =
nullptr;
144 std::shared_ptr<BadOrGoodPoseInfo> sp_bad_pose_info_ =
nullptr;
double end_time
Definition: alignment.h:30
virtual void UpdateBadPoseInfo(const FramePose &pose)
Definition: alignment.h:52
Definition: alignment.h:27
int pose_count
Definition: alignment.h:31
PlanningContext is the runtime context in planning. It is persistent across multiple frames...
Definition: atomic_hash_map.h:25
double time_stamp
Definition: common.h:43
double end_time_
Definition: alignment.h:137
double end_index_
Definition: alignment.h:139
virtual void UpdateGoodPoseInfo(const FramePose &pose)
Definition: alignment.h:58
virtual bool IsGoodPose(const std::vector< FramePose > &poses, int pose_index)
Definition: alignment.h:64
int TimeToIndex(const std::vector< FramePose > &poses, double time)
Definition: alignment.h:119
int start_index_
Definition: alignment.h:138
BadOrGoodPoseInfo()
Definition: alignment.h:28
virtual double GetProgress() const
Definition: alignment.h:46
virtual void ClearGoodPoseInfo()
Definition: alignment.h:62
void ClearPoseInfo(std::shared_ptr< BadOrGoodPoseInfo > sp_pose_info)
Definition: alignment.h:108
virtual void SetStartTime(double start_time)
Definition: alignment.h:48
ErrorCode return_state_
Definition: alignment.h:140
double last_progress_
Definition: alignment.h:135
Definition: client_alignment.h:35
double progress_
Definition: alignment.h:134
virtual ~Alignment()
Definition: alignment.h:42
void UpdatePoseInfo(const FramePose &pose, std::shared_ptr< BadOrGoodPoseInfo > sp_pose_info)
Definition: alignment.h:88
virtual void ClearBadPoseInfo()
Definition: alignment.h:56
virtual void SetEndTime(double end_time)
Definition: alignment.h:50
#define AERROR
Definition: log.h:44
Alignment(std::shared_ptr< JsonConf > sp_conf)
Definition: alignment.h:36
ErrorCode GetReturnState() const
Definition: alignment.h:85
double start_time
Definition: alignment.h:29
double start_time_
Definition: alignment.h:136
#define AINFO
Definition: log.h:42