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

#include <object_sequence.h>

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

Public 类型

typedef int TrackIdKey
 
typedef double TimeStampKey
 
typedef std::map< TimeStampKey, std::shared_ptr< apollo::perception::base::Object > > TrackedObjects
 

Public 成员函数

 ObjectSequence ()=default
 
 ~ObjectSequence ()=default
 
bool AddTrackedFrameObjects (const std::vector< std::shared_ptr< perception::base::Object > > &objects, TimeStampKey timestamp)
 
bool GetTrackInTemporalWindow (TrackIdKey track_id, TrackedObjects *track, TimeStampKey window_time)
 

Protected 成员函数

 FRIEND_TEST (FusedClassifierTest, test_one_sequence_fusion)
 
 FRIEND_TEST (FusedClassifierTest, test_one_sequence_fusion_bad_timestamp)
 
void RemoveStaleTracks (TimeStampKey current_stamp)
 

Protected 属性

TimeStampKey current_
 
std::map< TrackIdKey, TrackedObjectssequence_
 
std::mutex mutex_
 

静态 Protected 属性

static constexpr TimeStampKey kMaxTimeOut = 5.0
 

详细描述

在文件 object_sequence.h31 行定义.

成员类型定义说明

◆ TimeStampKey

◆ TrackedObjects

◆ TrackIdKey

构造及析构函数说明

◆ ObjectSequence()

apollo::perception::radar4d::ObjectSequence::ObjectSequence ( )
default

◆ ~ObjectSequence()

apollo::perception::radar4d::ObjectSequence::~ObjectSequence ( )
default

成员函数说明

◆ AddTrackedFrameObjects()

bool apollo::perception::radar4d::ObjectSequence::AddTrackedFrameObjects ( const std::vector< std::shared_ptr< perception::base::Object > > &  objects,
TimeStampKey  timestamp 
)

◆ FRIEND_TEST() [1/2]

apollo::perception::radar4d::ObjectSequence::FRIEND_TEST ( FusedClassifierTest  ,
test_one_sequence_fusion   
)
protected

◆ FRIEND_TEST() [2/2]

apollo::perception::radar4d::ObjectSequence::FRIEND_TEST ( FusedClassifierTest  ,
test_one_sequence_fusion_bad_timestamp   
)
protected

◆ GetTrackInTemporalWindow()

bool apollo::perception::radar4d::ObjectSequence::GetTrackInTemporalWindow ( TrackIdKey  track_id,
TrackedObjects track,
TimeStampKey  window_time 
)

在文件 object_sequence.cc49 行定义.

51 {
52 if (track == nullptr) {
53 return false;
54 }
55 track->clear();
56 std::lock_guard<std::mutex> lock(mutex_);
57 double start_time = current_ - window_time;
58 auto iter = sequence_.find(track_id);
59 if (iter == sequence_.end()) {
60 return false;
61 }
62 for (auto& tobj : iter->second) {
63 if (tobj.first >= start_time) {
64 track->insert(tobj);
65 }
66 }
67 return true;
68}
std::map< TrackIdKey, TrackedObjects > sequence_

◆ RemoveStaleTracks()

void apollo::perception::radar4d::ObjectSequence::RemoveStaleTracks ( TimeStampKey  current_stamp)
protected

在文件 object_sequence.cc70 行定义.

70 {
71 for (auto outer_iter = sequence_.begin(); outer_iter != sequence_.end();) {
72 if (outer_iter->second.empty()) {
73 AERROR << "Found empty tracks";
74 continue;
75 }
76 auto& track = outer_iter->second;
77
78 if (current_stamp - track.rbegin()->first > kMaxTimeOut) {
79 sequence_.erase(outer_iter++);
80 continue;
81 }
82 for (auto inner_iter = track.begin(); inner_iter != track.end();) {
83 if (current_stamp - inner_iter->first > kMaxTimeOut) {
84 track.erase(inner_iter++);
85 continue;
86 } else {
87 break;
88 }
89 }
90 if (track.empty()) { // all element removed
91 sequence_.erase(outer_iter++);
92 } else {
93 ++outer_iter;
94 }
95 }
96}
static constexpr TimeStampKey kMaxTimeOut
#define AERROR
Definition log.h:44

类成员变量说明

◆ current_

TimeStampKey apollo::perception::radar4d::ObjectSequence::current_
protected

在文件 object_sequence.h55 行定义.

◆ kMaxTimeOut

constexpr TimeStampKey apollo::perception::radar4d::ObjectSequence::kMaxTimeOut = 5.0
staticconstexprprotected

在文件 object_sequence.h58 行定义.

◆ mutex_

std::mutex apollo::perception::radar4d::ObjectSequence::mutex_
protected

在文件 object_sequence.h57 行定义.

◆ sequence_

std::map<TrackIdKey, TrackedObjects> apollo::perception::radar4d::ObjectSequence::sequence_
protected

在文件 object_sequence.h56 行定义.


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