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

#include <mlf_tracker.h>

apollo::perception::lidar::MlfTracker 的协作图:

Public 成员函数

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

Protected 成员函数

int GetNextTrackId ()
 Get next track id
 

Protected 属性

std::vector< MlfBaseFilter * > filters_
 
int global_track_id_counter_ = 0
 
MlfFilterOptions filter_options_
 

详细描述

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

构造及析构函数说明

◆ MlfTracker()

apollo::perception::lidar::MlfTracker::MlfTracker ( )
default

◆ ~MlfTracker()

apollo::perception::lidar::MlfTracker::~MlfTracker ( )
inline

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

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

成员函数说明

◆ GetNextTrackId()

int apollo::perception::lidar::MlfTracker::GetNextTrackId ( )
inlineprotected

Get next track id

返回
int track id

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

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

◆ Init()

bool apollo::perception::lidar::MlfTracker::Init ( const MlfTrackerInitOptions  options = MlfTrackerInitOptions())

Init mlf tracker

参数
options
返回
true
false

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

26 {
27 std::string config_file = "mlf_tracker.conf";
28 if (!options.config_file.empty()) {
29 config_file = options.config_file;
30 }
31 config_file = GetConfigFile(options.config_path, config_file);
32 MlfTrackerConfig 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 MlfBaseFilter* filter = MlfBaseFilterRegisterer::GetInstanceByName(name);
38 ACHECK(filter);
39 MlfFilterInitOptions 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 << "MlfTracker 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::lidar::MlfTracker::InitializeTrack ( MlfTrackDataPtr  new_track_data,
TrackedObjectPtr  new_object 
)

Initialize new track data and push new object to cache

参数
new_track_datanew track data
new_objectnew object

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

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

◆ Name()

std::string apollo::perception::lidar::MlfTracker::Name ( ) const
inline

Get class name

返回
std::string

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

86{ return "MlfTracker"; }

◆ UpdateTrackDataWithObject()

void apollo::perception::lidar::MlfTracker::UpdateTrackDataWithObject ( MlfTrackDataPtr  track_data,
TrackedObjectPtr  new_object 
)

Update track data with object

参数
track_datahistory track data
new_objectnew object

在文件 mlf_tracker.cc 第 57 行定义.

58 {
59 // Update trackable state:
60 // 1.change background to foreground if it's matched with foreground track
61 // 2.update foreground_track_prob_
62 // 3.change bacground obj is_background state if it's MOVING or OBJECT
63 track_data->UpdateTrackableState(new_object);
64 // 1. state filter and store belief in new_object
65 for (auto& filter : filters_) {
66 filter->UpdateWithObject(filter_options_, track_data, new_object);
67 }
68 // 2. push new_obect to track_data
69 track_data->PushTrackedObjectToTrack(new_object);
70 track_data->is_current_state_predicted_ = false;
71 track_data->is_front_critical_track_ =
72 new_object->object_ptr->is_front_critical;
73}

◆ UpdateTrackDataWithoutObject()

void apollo::perception::lidar::MlfTracker::UpdateTrackDataWithoutObject ( double  timestamp,
MlfTrackDataPtr  track_data 
)

Update track data without object

参数
timestamp
track_datahistory track data

在文件 mlf_tracker.cc 第 75 行定义.

76 {
77 for (auto& filter : filters_) {
78 filter->UpdateWithoutObject(filter_options_, timestamp, track_data);
79 }
80 track_data->is_current_state_predicted_ = true;
81}

类成员变量说明

◆ filter_options_

MlfFilterOptions apollo::perception::lidar::MlfTracker::filter_options_
protected

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

◆ filters_

std::vector<MlfBaseFilter*> apollo::perception::lidar::MlfTracker::filters_
protected

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

◆ global_track_id_counter_

int apollo::perception::lidar::MlfTracker::global_track_id_counter_ = 0
protected

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


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