Apollo 11.0
自动驾驶开放平台
apollo::perception::fusion::PbfGatekeeper类 参考

#include <pbf_gatekeeper.h>

类 apollo::perception::fusion::PbfGatekeeper 继承关系图:
apollo::perception::fusion::PbfGatekeeper 的协作图:

Public 成员函数

 PbfGatekeeper ()
 
 ~PbfGatekeeper ()
 
bool Init (const GatekeeperInitOptions &options) override
 Initialize
 
bool AbleToPublish (const TrackPtr &track) override
 whether able to publish
 
std::string Name () const override
 The name of BaseGatekeeper
 
- Public 成员函数 继承自 apollo::perception::fusion::BaseGatekeeper
 BaseGatekeeper ()=default
 
virtual ~BaseGatekeeper ()=default
 
 DISALLOW_COPY_AND_ASSIGN (BaseGatekeeper)
 

详细描述

在文件 pbf_gatekeeper.h 第 45 行定义.

构造及析构函数说明

◆ PbfGatekeeper()

apollo::perception::fusion::PbfGatekeeper::PbfGatekeeper ( )

在文件 pbf_gatekeeper.cc 第 33 行定义.

33{}

◆ ~PbfGatekeeper()

apollo::perception::fusion::PbfGatekeeper::~PbfGatekeeper ( )

在文件 pbf_gatekeeper.cc 第 35 行定义.

35{}

成员函数说明

◆ AbleToPublish()

bool apollo::perception::fusion::PbfGatekeeper::AbleToPublish ( const TrackPtr &  track)
overridevirtual

whether able to publish

参数
track
返回
true
false

实现了 apollo::perception::fusion::BaseGatekeeper.

在文件 pbf_gatekeeper.cc 第 63 行定义.

63 {
64 bool invisible_in_lidar = !(track->IsLidarVisible());
65 bool invisible_in_radar = !(track->IsRadarVisible());
66 bool invisible_in_camera = !(track->IsCameraVisible());
67 if (invisible_in_lidar && invisible_in_radar &&
68 (!params_.use_camera_3d || invisible_in_camera)) {
69 auto sensor_obj = track->GetFusedObject();
70 if (sensor_obj != nullptr && sensor_obj->GetBaseObject()->sub_type !=
72 return false;
73 }
74 }
75 time_t rawtime = static_cast<time_t>(track->GetFusedObject()->GetTimestamp());
76
77 // use thread-safe localtime_r instead of localtime
78 struct tm timeinfo;
79 localtime_r(&rawtime, &timeinfo);
80 bool is_night = (timeinfo.tm_hour >= 23);
81 if (!LidarAbleToPublish(track) && !RadarAbleToPublish(track, is_night) &&
82 !CameraAbleToPublish(track, is_night)) {
83 return false;
84 }
85
86 track->AddTrackedTimes();
87 if (params_.use_track_time_pub_strategy &&
88 track->GetTrackedTimes() <=
89 static_cast<size_t>(params_.pub_track_time_thresh)) {
90 return false;
91 }
92 return true;
93}

◆ Init()

bool apollo::perception::fusion::PbfGatekeeper::Init ( const GatekeeperInitOptions &  options)
overridevirtual

Initialize

参数
options
返回
true
false

实现了 apollo::perception::fusion::BaseGatekeeper.

在文件 pbf_gatekeeper.cc 第 37 行定义.

37 {
38 std::string config_file =
39 GetConfigFile(options.config_path, options.config_file);
40
41 PbfGatekeeperConfig params;
42 if (!cyber::common::GetProtoFromFile(config_file, &params)) {
43 AERROR << "Read config failed: " << config_file;
44 return false;
45 }
46
47 params_.publish_if_has_lidar = params.publish_if_has_lidar();
48 params_.publish_if_has_radar = params.publish_if_has_radar();
49 params_.publish_if_has_camera = params.publish_if_has_camera();
50 params_.use_camera_3d = params.use_camera_3d();
51 params_.min_radar_confident_distance = params.min_radar_confident_distance();
52 params_.max_radar_confident_angle = params.max_radar_confident_angle();
53 params_.min_camera_publish_distance = params.min_camera_publish_distance();
54 params_.invisible_period_threshold = params.invisible_period_threshold();
55 params_.existence_threshold = params.existence_threshold();
56 params_.radar_existence_threshold = params.radar_existence_threshold();
57 params_.toic_threshold = params.toic_threshold();
58 params_.use_track_time_pub_strategy = params.use_track_time_pub_strategy();
59 params_.pub_track_time_thresh = params.pub_track_time_thresh();
60 return true;
61}
#define AERROR
Definition log.h:44
bool GetProtoFromFile(const std::string &file_name, google::protobuf::Message *message)
Parses the content of the file specified by the file_name as a representation of protobufs,...
Definition file.cc:132
std::string GetConfigFile(const std::string &config_path, const std::string &config_file)
Definition util.cc:80

◆ Name()

std::string apollo::perception::fusion::PbfGatekeeper::Name ( ) const
inlineoverridevirtual

The name of BaseGatekeeper

返回
std::string

实现了 apollo::perception::fusion::BaseGatekeeper.

在文件 pbf_gatekeeper.h 第 68 行定义.

68{ return "PbfGatekeeper"; }

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