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

#include <mrf_tracker.h>

apollo::perception::radar4d::MrfTracker 的协作图:

Public 成员函数

 MrfTracker ()=default
 
 ~MrfTracker ()
 
bool Init (const MrfTrackerInitOptions options=MrfTrackerInitOptions())
 Init mrf tracker
 
void InitializeTrack (MrfTrackDataPtr new_track_data, TrackedObjectPtr new_object)
 Initialize new track data and push new object to cache
 
void UpdateTrackDataWithObject (MrfTrackDataPtr track_data, TrackedObjectPtr new_object)
 Update track data with object
 
void UpdateTrackDataWithoutObject (double timestamp, MrfTrackDataPtr track_data)
 Update track data without object
 
std::string Name () const
 Get class name
 

Protected 成员函数

int GetNextTrackId ()
 Get next track id
 

Protected 属性

std::vector< MrfBaseFilter * > filters_
 
int global_track_id_counter_ = 0
 
MrfFilterOptions filter_options_
 

详细描述

在文件 mrf_tracker.h 第 37 行定义.

构造及析构函数说明

◆ MrfTracker()

apollo::perception::radar4d::MrfTracker::MrfTracker ( )
default

◆ ~MrfTracker()

apollo::perception::radar4d::MrfTracker::~MrfTracker ( )
inline

在文件 mrf_tracker.h 第 40 行定义.

40 {
41 for (auto& filter : filters_) {
42 delete filter;
43 }
44 }
std::vector< MrfBaseFilter * > filters_

成员函数说明

◆ GetNextTrackId()

int apollo::perception::radar4d::MrfTracker::GetNextTrackId ( )
inlineprotected

Get next track id

返回
int track id

在文件 mrf_tracker.h 第 94 行定义.

94 {
95 if (global_track_id_counter_ == std::numeric_limits<int>::max()) {
97 }
99 }

◆ Init()

bool apollo::perception::radar4d::MrfTracker::Init ( const MrfTrackerInitOptions  options = MrfTrackerInitOptions())

Init mrf tracker

参数
options
返回
true
false

在文件 mrf_tracker.cc 第 26 行定义.

26 {
27 std::string config_file = "mrf_tracker.pb.txt";
28 if (!options.config_file.empty()) {
29 config_file = options.config_file;
30 }
31 config_file = GetConfigFile(options.config_path, config_file);
32 MrfTrackerConfig config;
33 ACHECK(cyber::common::GetProtoFromFile(config_file, &config));
34
35 for (int i = 0; i < config.filter_name_size(); ++i) {
36 const auto& name = config.filter_name(i);
37 MrfBaseFilter* filter = MrfBaseFilterRegisterer::GetInstanceByName(name);
38 ACHECK(filter);
39 MrfFilterInitOptions filter_init_options;
40 filter_init_options.config_path = options.config_path;
41 ACHECK(filter->Init(filter_init_options));
42 filters_.push_back(filter);
43 AINFO << "MrfTracker add filter: " << filter->Name();
44 }
45
46 return true;
47}
#define ACHECK(cond)
Definition log.h:80
#define AINFO
Definition log.h:42
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

◆ InitializeTrack()

void apollo::perception::radar4d::MrfTracker::InitializeTrack ( MrfTrackDataPtr  new_track_data,
TrackedObjectPtr  new_object 
)

Initialize new track data and push new object to cache

参数
new_track_datanew track data
new_objectnew object

在文件 mrf_tracker.cc 第 49 行定义.

50 {
51 new_track_data->Reset(new_object, GetNextTrackId());
52 new_track_data->is_current_state_predicted_ = false;
53}
int GetNextTrackId()
Get next track id
Definition mrf_tracker.h:94

◆ Name()

std::string apollo::perception::radar4d::MrfTracker::Name ( ) const
inline

Get class name

返回
std::string

在文件 mrf_tracker.h 第 86 行定义.

86{ return "MrfTracker"; }

◆ UpdateTrackDataWithObject()

void apollo::perception::radar4d::MrfTracker::UpdateTrackDataWithObject ( MrfTrackDataPtr  track_data,
TrackedObjectPtr  new_object 
)

Update track data with object

参数
track_datahistory track data
new_objectnew object

在文件 mrf_tracker.cc 第 55 行定义.

56 {
57 // 1. state filter and store belief in new_object
58 for (auto& filter : filters_) {
59 filter->UpdateWithObject(filter_options_, track_data, new_object);
60 }
61 // 2. push new_obect to track_data
62 track_data->PushTrackedObjectToTrack(new_object);
63 track_data->is_current_state_predicted_ = false;
64}

◆ UpdateTrackDataWithoutObject()

void apollo::perception::radar4d::MrfTracker::UpdateTrackDataWithoutObject ( double  timestamp,
MrfTrackDataPtr  track_data 
)

Update track data without object

参数
timestamp
track_datahistory track data

在文件 mrf_tracker.cc 第 66 行定义.

67 {
68 for (auto& filter : filters_) {
69 filter->UpdateWithoutObject(filter_options_, timestamp, track_data);
70 }
71 track_data->is_current_state_predicted_ = true;
72}

类成员变量说明

◆ filter_options_

MrfFilterOptions apollo::perception::radar4d::MrfTracker::filter_options_
protected

在文件 mrf_tracker.h 第 107 行定义.

◆ filters_

std::vector<MrfBaseFilter*> apollo::perception::radar4d::MrfTracker::filters_
protected

在文件 mrf_tracker.h 第 103 行定义.

◆ global_track_id_counter_

int apollo::perception::radar4d::MrfTracker::global_track_id_counter_ = 0
protected

在文件 mrf_tracker.h 第 105 行定义.


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