Apollo 10.0
自动驾驶开放平台
apollo::hdmap::Alignment< REQUEST_TYPE, RESPONSE_TYPE > 模板类 参考abstract

#include <client_alignment.h>

类 apollo::hdmap::Alignment< REQUEST_TYPE, RESPONSE_TYPE > 继承关系图:
apollo::hdmap::Alignment< REQUEST_TYPE, RESPONSE_TYPE > 的协作图:

Public 成员函数

 Alignment ()
 
int SyncStart ()
 
int SyncStop ()
 
int PeriodicCheck ()
 
int GrpcStub (REQUEST_TYPE *request, RESPONSE_TYPE *response)
 
 Alignment (std::shared_ptr< JsonConf > sp_conf)
 
virtual ~Alignment ()
 
virtual ErrorCode Process (const std::vector< FramePose > &poses)=0
 
virtual void Reset ()=0
 
virtual double GetProgress () const
 
virtual void SetStartTime (double start_time)
 
virtual void SetEndTime (double end_time)
 
virtual void UpdateBadPoseInfo (const FramePose &pose)
 
virtual void ClearBadPoseInfo ()
 
virtual void UpdateGoodPoseInfo (const FramePose &pose)
 
virtual void ClearGoodPoseInfo ()
 
virtual bool IsGoodPose (const std::vector< FramePose > &poses, int pose_index)
 
ErrorCode GetReturnState () const
 

Protected 成员函数

virtual grpc::Status GrpcAlignmentStub (REQUEST_TYPE *request, RESPONSE_TYPE *response)=0
 
void UpdatePoseInfo (const FramePose &pose, std::shared_ptr< BadOrGoodPoseInfo > sp_pose_info)
 
void ClearPoseInfo (std::shared_ptr< BadOrGoodPoseInfo > sp_pose_info)
 
int TimeToIndex (const std::vector< FramePose > &poses, double time)
 

Protected 属性

std::unique_ptr< CollectionCheckerService::Stub > service_stub_
 
double progress_
 
double last_progress_
 
double start_time_
 
double end_time_
 
int start_index_
 
double end_index_
 
ErrorCode return_state_
 
std::shared_ptr< JsonConfsp_conf_ = nullptr
 
std::shared_ptr< BadOrGoodPoseInfosp_good_pose_info_ = nullptr
 
std::shared_ptr< BadOrGoodPoseInfosp_bad_pose_info_ = nullptr
 

详细描述

template<typename REQUEST_TYPE, typename RESPONSE_TYPE>
class apollo::hdmap::Alignment< REQUEST_TYPE, RESPONSE_TYPE >

在文件 client_alignment.h35 行定义.

构造及析构函数说明

◆ Alignment() [1/2]

template<typename REQUEST_TYPE , typename RESPONSE_TYPE >
apollo::hdmap::Alignment< REQUEST_TYPE, RESPONSE_TYPE >::Alignment ( )
inline

在文件 client_alignment.h37 行定义.

37 {
38 YAML::Node node = YAML::LoadFile(FLAGS_client_conf_yaml);
39 std::string server_addr =
40 node["grpc_host_port"]["grpc_host"].as<std::string>() + ":" +
41 node["grpc_host_port"]["grpc_port"].as<std::string>();
42 check_period_ = node["alignment"]["check_period"].as<int>();
43 service_stub_ = CollectionCheckerService::NewStub(
44 grpc::CreateChannel(server_addr, grpc::InsecureChannelCredentials()));
45 }
std::unique_ptr< CollectionCheckerService::Stub > service_stub_

◆ Alignment() [2/2]

template<typename REQUEST_TYPE , typename RESPONSE_TYPE >
apollo::hdmap::Alignment< REQUEST_TYPE, RESPONSE_TYPE >::Alignment ( std::shared_ptr< JsonConf sp_conf)
inlineexplicit

在文件 alignment.h36 行定义.

38 sp_conf_(sp_conf),
39 sp_good_pose_info_(std::make_shared<BadOrGoodPoseInfo>()),
40 sp_bad_pose_info_(std::make_shared<BadOrGoodPoseInfo>()) {}
std::shared_ptr< JsonConf > sp_conf_
Definition alignment.h:141
std::shared_ptr< BadOrGoodPoseInfo > sp_good_pose_info_
Definition alignment.h:143
std::shared_ptr< BadOrGoodPoseInfo > sp_bad_pose_info_
Definition alignment.h:144

◆ ~Alignment()

template<typename REQUEST_TYPE , typename RESPONSE_TYPE >
virtual apollo::hdmap::Alignment< REQUEST_TYPE, RESPONSE_TYPE >::~Alignment ( )
inlinevirtual

在文件 alignment.h42 行定义.

42{}

成员函数说明

◆ ClearBadPoseInfo()

template<typename REQUEST_TYPE , typename RESPONSE_TYPE >
virtual void apollo::hdmap::Alignment< REQUEST_TYPE, RESPONSE_TYPE >::ClearBadPoseInfo ( )
inlinevirtual

在文件 alignment.h56 行定义.

void ClearPoseInfo(std::shared_ptr< BadOrGoodPoseInfo > sp_pose_info)
Definition alignment.h:108

◆ ClearGoodPoseInfo()

template<typename REQUEST_TYPE , typename RESPONSE_TYPE >
virtual void apollo::hdmap::Alignment< REQUEST_TYPE, RESPONSE_TYPE >::ClearGoodPoseInfo ( )
inlinevirtual

在文件 alignment.h62 行定义.

◆ ClearPoseInfo()

template<typename REQUEST_TYPE , typename RESPONSE_TYPE >
void apollo::hdmap::Alignment< REQUEST_TYPE, RESPONSE_TYPE >::ClearPoseInfo ( std::shared_ptr< BadOrGoodPoseInfo sp_pose_info)
inlineprotected

在文件 alignment.h108 行定义.

108 {
109 if (sp_pose_info == nullptr) {
110 AERROR << "sp_pose_info is nullptr";
111 return;
112 }
113 BadOrGoodPoseInfo& pose_info = *sp_pose_info;
114 pose_info.start_time = -1.0;
115 pose_info.end_time = -1.0;
116 pose_info.pose_count = 0;
117 }
#define AERROR
Definition log.h:44
struct apollo::hdmap::BadOrGoodPoseInfo BadOrGoodPoseInfo

◆ GetProgress()

template<typename REQUEST_TYPE , typename RESPONSE_TYPE >
virtual double apollo::hdmap::Alignment< REQUEST_TYPE, RESPONSE_TYPE >::GetProgress ( ) const
inlinevirtual

apollo::hdmap::EightRoute 重载.

在文件 alignment.h46 行定义.

46{ return progress_; }

◆ GetReturnState()

template<typename REQUEST_TYPE , typename RESPONSE_TYPE >
ErrorCode apollo::hdmap::Alignment< REQUEST_TYPE, RESPONSE_TYPE >::GetReturnState ( ) const
inline

在文件 alignment.h85 行定义.

85{ return return_state_; }

◆ GrpcAlignmentStub()

template<typename REQUEST_TYPE , typename RESPONSE_TYPE >
virtual grpc::Status apollo::hdmap::Alignment< REQUEST_TYPE, RESPONSE_TYPE >::GrpcAlignmentStub ( REQUEST_TYPE *  request,
RESPONSE_TYPE *  response 
)
protectedpure virtual

◆ GrpcStub()

template<typename REQUEST_TYPE , typename RESPONSE_TYPE >
int apollo::hdmap::Alignment< REQUEST_TYPE, RESPONSE_TYPE >::GrpcStub ( REQUEST_TYPE *  request,
RESPONSE_TYPE *  response 
)
inline

在文件 client_alignment.h89 行定义.

89 {
90 grpc::Status status = GrpcAlignmentStub(request, response);
91 if (status.error_code() == grpc::StatusCode::UNAVAILABLE) {
92 AERROR << "FATAL Error. Map grpc service is UNAVAILABLE.";
93 fprintf(USER_STREAM, "You should start server first\n");
94 return -1;
95 }
96 AINFO << "response error code: " << response->code();
97 if (response->code() != ErrorCode::SUCCESS) {
98 return ExceptionHandler::ExceptionHandlerFun(response->code());
99 }
100 return 0;
101 }
virtual grpc::Status GrpcAlignmentStub(REQUEST_TYPE *request, RESPONSE_TYPE *response)=0
static int ExceptionHandlerFun(ErrorCode error_code)
#define USER_STREAM
#define AINFO
Definition log.h:42

◆ IsGoodPose()

template<typename REQUEST_TYPE , typename RESPONSE_TYPE >
virtual bool apollo::hdmap::Alignment< REQUEST_TYPE, RESPONSE_TYPE >::IsGoodPose ( const std::vector< FramePose > &  poses,
int  pose_index 
)
inlinevirtual

在文件 alignment.h64 行定义.

64 {
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;
68 return false;
69 }
70
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;
74
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) {
80 return true;
81 }
82 return false;
83 }

◆ PeriodicCheck()

template<typename REQUEST_TYPE , typename RESPONSE_TYPE >
int apollo::hdmap::Alignment< REQUEST_TYPE, RESPONSE_TYPE >::PeriodicCheck ( )
inline

在文件 client_alignment.h61 行定义.

61 {
62 int ret = 0;
63 while (true) {
64 double progress = 0.0;
65 ret = Check(&progress);
66 if (ret != 0) {
67 AERROR << "alignment check failed";
68 break;
69 }
70 AINFO << "alignment check progress: [" << progress << "]";
71 fprintf(USER_STREAM, "alignment progress: %.2lf%%\n", progress * 100);
72 if (fabs(progress - 1.0) < 1e-8) {
73 AINFO << "diff " << fabs(progress - 1.0);
74 break;
75 }
76 std::this_thread::sleep_for(std::chrono::seconds(check_period_));
77 }
78 if (ret != 0) {
79 return -1;
80 }
81 ret = Stop();
82 if (ret != 0) {
83 AERROR << "alignment stop failed";
84 return -1;
85 }
86 return 0;
87 }

◆ Process()

template<typename REQUEST_TYPE , typename RESPONSE_TYPE >
virtual ErrorCode apollo::hdmap::Alignment< REQUEST_TYPE, RESPONSE_TYPE >::Process ( const std::vector< FramePose > &  poses)
pure virtual

◆ Reset()

template<typename REQUEST_TYPE , typename RESPONSE_TYPE >
virtual void apollo::hdmap::Alignment< REQUEST_TYPE, RESPONSE_TYPE >::Reset ( )
pure virtual

◆ SetEndTime()

template<typename REQUEST_TYPE , typename RESPONSE_TYPE >
virtual void apollo::hdmap::Alignment< REQUEST_TYPE, RESPONSE_TYPE >::SetEndTime ( double  end_time)
inlinevirtual

在文件 alignment.h50 行定义.

50{ end_time_ = end_time; }

◆ SetStartTime()

template<typename REQUEST_TYPE , typename RESPONSE_TYPE >
virtual void apollo::hdmap::Alignment< REQUEST_TYPE, RESPONSE_TYPE >::SetStartTime ( double  start_time)
inlinevirtual

在文件 alignment.h48 行定义.

48{ start_time_ = start_time; }

◆ SyncStart()

template<typename REQUEST_TYPE , typename RESPONSE_TYPE >
int apollo::hdmap::Alignment< REQUEST_TYPE, RESPONSE_TYPE >::SyncStart ( )
inline

在文件 client_alignment.h47 行定义.

47 {
48 int ret = Start();
49 if (ret != 0) {
50 AERROR << "start alignment failed";
51 return -1;
52 }
53 return PeriodicCheck();
54 }

◆ SyncStop()

template<typename REQUEST_TYPE , typename RESPONSE_TYPE >
int apollo::hdmap::Alignment< REQUEST_TYPE, RESPONSE_TYPE >::SyncStop ( )
inline

在文件 client_alignment.h56 行定义.

56 {
57 // stop server
58 return Stop();
59 }

◆ TimeToIndex()

template<typename REQUEST_TYPE , typename RESPONSE_TYPE >
int apollo::hdmap::Alignment< REQUEST_TYPE, RESPONSE_TYPE >::TimeToIndex ( const std::vector< FramePose > &  poses,
double  time 
)
inlineprotected

在文件 alignment.h119 行定义.

119 {
120 size_t size = poses.size();
121 if (size == 0 || time <= 0) {
122 return -1;
123 }
124
125 for (size_t i = 0; i < size; ++i) {
126 if (poses[i].time_stamp >= time) {
127 return static_cast<int>(i);
128 }
129 }
130 return static_cast<int>(size);
131 }

◆ UpdateBadPoseInfo()

template<typename REQUEST_TYPE , typename RESPONSE_TYPE >
virtual void apollo::hdmap::Alignment< REQUEST_TYPE, RESPONSE_TYPE >::UpdateBadPoseInfo ( const FramePose pose)
inlinevirtual

在文件 alignment.h52 行定义.

52 {
54 }
void UpdatePoseInfo(const FramePose &pose, std::shared_ptr< BadOrGoodPoseInfo > sp_pose_info)
Definition alignment.h:88

◆ UpdateGoodPoseInfo()

template<typename REQUEST_TYPE , typename RESPONSE_TYPE >
virtual void apollo::hdmap::Alignment< REQUEST_TYPE, RESPONSE_TYPE >::UpdateGoodPoseInfo ( const FramePose pose)
inlinevirtual

在文件 alignment.h58 行定义.

58 {
60 }

◆ UpdatePoseInfo()

template<typename REQUEST_TYPE , typename RESPONSE_TYPE >
void apollo::hdmap::Alignment< REQUEST_TYPE, RESPONSE_TYPE >::UpdatePoseInfo ( const FramePose pose,
std::shared_ptr< BadOrGoodPoseInfo sp_pose_info 
)
inlineprotected

在文件 alignment.h88 行定义.

89 {
90 if (sp_pose_info == nullptr) {
91 AERROR << "sp_pose_info is nullptr";
92 return;
93 }
94 BadOrGoodPoseInfo& pose_info = *sp_pose_info;
95 if (pose_info.pose_count == 0) {
96 pose_info.start_time = pose.time_stamp;
97 ++pose_info.pose_count;
98 AINFO << "update start time: " << pose_info.start_time
99 << ",pose count: " << pose_info.pose_count;
100 } else {
101 pose_info.end_time = pose.time_stamp;
102 ++pose_info.pose_count;
103 AINFO << "update start time: " << pose_info.start_time
104 << ",pose count: " << pose_info.pose_count;
105 }
106 }

类成员变量说明

◆ end_index_

template<typename REQUEST_TYPE , typename RESPONSE_TYPE >
double apollo::hdmap::Alignment< REQUEST_TYPE, RESPONSE_TYPE >::end_index_
protected

在文件 alignment.h139 行定义.

◆ end_time_

template<typename REQUEST_TYPE , typename RESPONSE_TYPE >
double apollo::hdmap::Alignment< REQUEST_TYPE, RESPONSE_TYPE >::end_time_
protected

在文件 alignment.h137 行定义.

◆ last_progress_

template<typename REQUEST_TYPE , typename RESPONSE_TYPE >
double apollo::hdmap::Alignment< REQUEST_TYPE, RESPONSE_TYPE >::last_progress_
protected

在文件 alignment.h135 行定义.

◆ progress_

template<typename REQUEST_TYPE , typename RESPONSE_TYPE >
double apollo::hdmap::Alignment< REQUEST_TYPE, RESPONSE_TYPE >::progress_
protected

在文件 alignment.h134 行定义.

◆ return_state_

template<typename REQUEST_TYPE , typename RESPONSE_TYPE >
ErrorCode apollo::hdmap::Alignment< REQUEST_TYPE, RESPONSE_TYPE >::return_state_
protected

在文件 alignment.h140 行定义.

◆ service_stub_

template<typename REQUEST_TYPE , typename RESPONSE_TYPE >
std::unique_ptr<CollectionCheckerService::Stub> apollo::hdmap::Alignment< REQUEST_TYPE, RESPONSE_TYPE >::service_stub_
protected

在文件 client_alignment.h137 行定义.

◆ sp_bad_pose_info_

template<typename REQUEST_TYPE , typename RESPONSE_TYPE >
std::shared_ptr<BadOrGoodPoseInfo> apollo::hdmap::Alignment< REQUEST_TYPE, RESPONSE_TYPE >::sp_bad_pose_info_ = nullptr
protected

在文件 alignment.h144 行定义.

◆ sp_conf_

template<typename REQUEST_TYPE , typename RESPONSE_TYPE >
std::shared_ptr<JsonConf> apollo::hdmap::Alignment< REQUEST_TYPE, RESPONSE_TYPE >::sp_conf_ = nullptr
protected

在文件 alignment.h141 行定义.

◆ sp_good_pose_info_

template<typename REQUEST_TYPE , typename RESPONSE_TYPE >
std::shared_ptr<BadOrGoodPoseInfo> apollo::hdmap::Alignment< REQUEST_TYPE, RESPONSE_TYPE >::sp_good_pose_info_ = nullptr
protected

在文件 alignment.h143 行定义.

◆ start_index_

template<typename REQUEST_TYPE , typename RESPONSE_TYPE >
int apollo::hdmap::Alignment< REQUEST_TYPE, RESPONSE_TYPE >::start_index_
protected

在文件 alignment.h138 行定义.

◆ start_time_

template<typename REQUEST_TYPE , typename RESPONSE_TYPE >
double apollo::hdmap::Alignment< REQUEST_TYPE, RESPONSE_TYPE >::start_time_
protected

在文件 alignment.h136 行定义.


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