Apollo 11.0
自动驾驶开放平台
apollo::perception::radar4d::TrackedObject结构体 参考

#include <tracked_object.h>

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

Public 成员函数

 TrackedObject ()=default
 
 TrackedObject (base::ObjectPtr obj_ptr, const Eigen::Affine3d &pose)
 
 TrackedObject (const TrackedObject &rhs)=default
 
TrackedObjectoperator= (const TrackedObject &rhs)=default
 
void Reset ()
 Reset all data
 
void Reset (base::ObjectPtr obj_ptr, const Eigen::Affine3d &pose, const Eigen::Vector3d &global_to_local_offset=Eigen::Vector3d::Zero(), const base::SensorInfo &sensor=base::SensorInfo())
 Reset all data
 
std::string ToString () const
 Transform tracked data state to string
 
void ComputeShapeFeatures ()
 Compute shape features
 
void AttachObject (base::ObjectPtr obj_ptr, const Eigen::Affine3d &pose, const Eigen::Vector3d &global_to_local_offset=Eigen::Vector3d::Zero(), const base::SensorInfo &sensor=base::SensorInfo())
 Attach object
 
void TransformObjectCloudToWorld ()
 Transform object cloud to world
 
void CopyFrom (std::shared_ptr< TrackedObject > rhs, bool is_deep)
 Copy from tracked object
 
void ToObject (base::ObjectPtr obj_ptr) const
 Convert tracked object to base object
 
float GetVelThreshold (base::ObjectPtr obj) const
 Get vehicle threshold
 

Public 属性

std::vector< float > shape_features
 
std::vector< float > shape_features_full
 
size_t histogram_bin_size = 10
 
float association_score = 0.0f
 
bool is_fake = false
 
int track_id = -1
 
double tracking_time = 0.0
 
Eigen::Affine3d sensor_to_local_pose
 
base::ObjectPtr object_ptr
 
Eigen::Vector3d corners [4]
 
Eigen::Vector3d center
 
Eigen::Vector3d barycenter
 
Eigen::Vector3d anchor_point
 
Eigen::Vector3d direction
 
Eigen::Vector3d lane_direction
 
Eigen::Vector3d size
 
base::ObjectType type = base::ObjectType::UNKNOWN
 
bool is_background = false
 
Eigen::Vector3d measured_barycenter_velocity
 
Eigen::Vector3d measured_center_velocity
 
Eigen::Vector3d measured_nearest_corner_velocity
 
Eigen::Vector3d measured_corners_velocity [4]
 
int boostup_need_history_size = 0
 
bool valid = false
 
bool converged = true
 
float convergence_confidence = 0.0f
 
double update_quality = 0.0
 
Eigen::Vector3d selected_measured_velocity
 
Eigen::Vector3d selected_measured_acceleration
 
Eigen::Vector3d belief_anchor_point
 
Eigen::Vector3d belief_velocity
 
Eigen::Vector3d belief_acceleration
 
Eigen::Vector3d belief_velocity_gain
 
Eigen::Matrix3d velocity_covariance
 
Eigen::Matrix3d belief_velocity_online_covariance
 
Eigen::Vector4d state
 
Eigen::Matrix4d measurement_covariance
 
Eigen::Matrix4d state_covariance
 
Eigen::Vector3d motion_score
 
Eigen::Vector3d output_velocity
 
Eigen::Matrix3d output_velocity_uncertainty
 
Eigen::Vector3d output_direction
 
Eigen::Vector3d output_center
 
Eigen::Vector3d output_size
 
base::SensorInfo sensor_info
 
Eigen::Vector3d global_local_offset
 

详细描述

在文件 tracked_object.h32 行定义.

构造及析构函数说明

◆ TrackedObject() [1/3]

apollo::perception::radar4d::TrackedObject::TrackedObject ( )
default

◆ TrackedObject() [2/3]

apollo::perception::radar4d::TrackedObject::TrackedObject ( base::ObjectPtr  obj_ptr,
const Eigen::Affine3d &  pose 
)

在文件 tracked_object.cc32 行定义.

33 {
34 AttachObject(obj_ptr, pose);
35}
void AttachObject(base::ObjectPtr obj_ptr, const Eigen::Affine3d &pose, const Eigen::Vector3d &global_to_local_offset=Eigen::Vector3d::Zero(), const base::SensorInfo &sensor=base::SensorInfo())
Attach object

◆ TrackedObject() [3/3]

apollo::perception::radar4d::TrackedObject::TrackedObject ( const TrackedObject rhs)
default

成员函数说明

◆ AttachObject()

void apollo::perception::radar4d::TrackedObject::AttachObject ( base::ObjectPtr  obj_ptr,
const Eigen::Affine3d &  pose,
const Eigen::Vector3d &  global_to_local_offset = Eigen::Vector3d::Zero(),
const base::SensorInfo sensor = base::SensorInfo() 
)

Attach object

参数
obj_ptr
pose
global_to_local_offset
sensor

在文件 tracked_object.cc37 行定义.

40 {
41 if (obj_ptr) {
42 // all state of input obj_ptr will not change except cloud world
43 object_ptr = obj_ptr;
44
46 global_local_offset = global_to_local_offset;
47 // object info to tracked object
48 center = pose * object_ptr->center;
49 const RadarPointFCloud& cloud = (object_ptr->radar4d_supplement).cloud;
50 barycenter = (algorithm::CalculateRadarCentroid(cloud)).cast<double>();
51 barycenter = pose * barycenter;
53
54 Eigen::Matrix3d rotation = pose.rotation();
55 direction = rotation * object_ptr->direction.cast<double>();
57 size = object_ptr->size.cast<double>();
58 type = object_ptr->type;
59 is_background = object_ptr->radar4d_supplement.is_background;
60
61 base::RadarPointDCloud& cloud_world =
62 (object_ptr->radar4d_supplement).cloud_world;
63 cloud_world.clear();
64 cloud_world.resize(cloud.size());
65 for (size_t i = 0; i < cloud.size(); ++i) {
66 Eigen::Vector3d pt(cloud[i].x, cloud[i].y, cloud[i].z);
67 Eigen::Vector3d pt_world = pose * pt;
68 cloud_world[i].x = pt_world(0);
69 cloud_world[i].y = pt_world(1);
70 cloud_world[i].z = pt_world(2);
71 cloud_world[i].rcs = cloud[i].rcs;
72 cloud_world[i].velocity = cloud[i].velocity;
73 cloud_world[i].comp_vel = cloud[i].comp_vel;
74 }
75 // other belief information keep as Reset()
76 selected_measured_velocity = Eigen::Vector3d::Zero();
77 selected_measured_acceleration = Eigen::Vector3d::Zero();
79 belief_velocity = Eigen::Vector3d::Zero();
80 belief_acceleration = Eigen::Vector3d::Zero();
81
82 output_velocity = Eigen::Vector3d::Zero();
83 output_velocity_uncertainty = Eigen::Matrix3d::Zero();
87
88 sensor_info = sensor;
89 }
90}
Eigen::Matrix< T, 3, 1 > CalculateRadarCentroid(const base::AttributeRadarPointCloud< base::RadarPoint< T > > &cloud)
Definition common.h:152
AttributeRadarPointCloud< RadarPointD > RadarPointDCloud
apollo::perception::base::RadarPointCloud< RadarPointF > RadarPointFCloud

◆ ComputeShapeFeatures()

void apollo::perception::radar4d::TrackedObject::ComputeShapeFeatures ( )

Compute shape features

在文件 tracked_object.cc246 行定义.

246 {
247 // Compute object's shape feature
248 // 1. check whether shape feature is ready
249 // 2. compute object's shape feature
251 FeatureDescriptor fd(&(object_ptr->radar4d_supplement.cloud));
252 fd.ComputeHistogram(static_cast<int>(histogram_bin_size),
253 shape_features_full.data());
254
255 size_t feature_len = histogram_bin_size * 3;
256 shape_features.clear();
257 shape_features.resize(feature_len);
258 for (size_t i = 0; i < feature_len; ++i) {
260 }
261}

◆ CopyFrom()

void apollo::perception::radar4d::TrackedObject::CopyFrom ( std::shared_ptr< TrackedObject rhs,
bool  is_deep 
)

Copy from tracked object

参数
rhs
is_deep

◆ GetVelThreshold()

float apollo::perception::radar4d::TrackedObject::GetVelThreshold ( base::ObjectPtr  obj) const

Get vehicle threshold

参数
obj
返回
float

在文件 tracked_object.cc188 行定义.

188 {
189 if (obj->type == base::ObjectType::VEHICLE) {
190 return 0.99f;
191 }
192 return 0.0f;
193}

◆ operator=()

TrackedObject & apollo::perception::radar4d::TrackedObject::operator= ( const TrackedObject rhs)
default

◆ Reset() [1/2]

void apollo::perception::radar4d::TrackedObject::Reset ( )

Reset all data

在文件 tracked_object.cc111 行定义.

111 {
112 object_ptr.reset();
113 sensor_to_local_pose = Eigen::Affine3d::Identity();
114
115 // measurement reset
116 for (int i = 0; i < 4; ++i) {
117 corners[i] = Eigen::Vector3d::Zero();
118 measured_corners_velocity[i] = Eigen::Vector3d::Zero();
119 }
120 center = Eigen::Vector3d::Zero();
121 barycenter = Eigen::Vector3d::Zero();
122 anchor_point = Eigen::Vector3d::Zero();
123 measured_barycenter_velocity = Eigen::Vector3d::Zero();
124 measured_center_velocity = Eigen::Vector3d::Zero();
125 measured_nearest_corner_velocity = Eigen::Vector3d::Zero();
126 direction = Eigen::Vector3d::Zero();
127 lane_direction = Eigen::Vector3d::Zero();
128 size = Eigen::Vector3d::Zero();
130 is_background = false;
131 shape_features.clear();
132 shape_features_full.clear();
134 association_score = 0.0;
135 is_fake = false;
136 track_id = -1;
137 tracking_time = 0.0;
138
139 // filter reset
141 valid = false;
142 converged = true;
144 update_quality = 0.0;
146 selected_measured_acceleration = Eigen::Vector3d::Zero();
150 belief_velocity_gain = Eigen::Vector3d::Zero();
151 velocity_covariance = Eigen::Matrix3d::Zero();
152 belief_velocity_online_covariance = Eigen::Matrix3d::Zero();
153
154 state = Eigen::Vector4d::Zero();
155 measurement_covariance = Eigen::Matrix4d::Zero();
156 state_covariance = Eigen::Matrix4d::Zero();
157
158 motion_score = Eigen::Vector3d(1, 1, 1);
159
160 // output reset
166
167 // sensor info reset
169}

◆ Reset() [2/2]

void apollo::perception::radar4d::TrackedObject::Reset ( base::ObjectPtr  obj_ptr,
const Eigen::Affine3d &  pose,
const Eigen::Vector3d &  global_to_local_offset = Eigen::Vector3d::Zero(),
const base::SensorInfo sensor = base::SensorInfo() 
)

Reset all data

参数
obj_ptr
pose
global_to_local_offset
sensor

在文件 tracked_object.cc171 行定义.

173 {
174 Reset();
175 AttachObject(obj_ptr, pose, global_to_local_offset, sensor);
176}

◆ ToObject()

void apollo::perception::radar4d::TrackedObject::ToObject ( base::ObjectPtr  obj_ptr) const

Convert tracked object to base object

参数
obj_ptr

在文件 tracked_object.cc195 行定义.

195 {
196 *obj = *object_ptr;
197 // obj id keep default
198 // obj polygon calculate outside, because
199 /* 1. if ConvexHull2D as member variable:
200 constructor time consume a little large
201 2. if ConvexHull2D as static or global variable:
202 need mutex time consume in multi threads
203 what a pity!
204 */
205 obj->direction = output_direction.cast<float>();
206 // obj theta_variance not calculate in tracker, keep default
207 obj->center = output_center;
208 // obj center_uncertainty not calculate in tracker, keep default
209 obj->size = output_size.cast<float>();
210 // obj size_varuance not calculate in tracker, keep default
211 obj->anchor_point = belief_anchor_point;
212 obj->type = type;
213 // obj type_probs not calculate in tracker, keep default
214 // obj confidence not calculate in tracker, keep default
215 obj->track_id = track_id;
216 obj->velocity = output_velocity.cast<float>();
217 obj->velocity_uncertainty = output_velocity_uncertainty.cast<float>();
218 obj->velocity_converged = converged;
219 obj->tracking_time = tracking_time;
220 if (obj->velocity.norm() > GetVelThreshold(obj)) {
221 obj->theta = std::atan2(obj->velocity[1], obj->velocity[0]);
222 } else {
223 obj->theta = std::atan2(obj->direction[1], obj->direction[0]);
224 }
225 // obj latest_tracked_time not calculate in tracker, keep default
226 // obj car_light not calculate in tracker, keep default
227 // obj radar4d_supplement cloud_world has passed in *obj = *object_ptr
228 // obj radar4d_supplement other elements not calculate in tracker,
229 // keep default
230 // obj radar_supplement not calculate in tracker, keep default
231 // obj camera_supplement not calculate in tracker, keep default
232}
float GetVelThreshold(base::ObjectPtr obj) const
Get vehicle threshold

◆ ToString()

std::string apollo::perception::radar4d::TrackedObject::ToString ( ) const

Transform tracked data state to string

返回
std::string

在文件 tracked_object.cc234 行定义.

234 {
235 // std::string txt;
236 // return txt;
237 std::ostringstream oos;
238 oos << "obj id: " << object_ptr->id << ", track_id: " << object_ptr->track_id
239 << ", bary_center: (" << barycenter[0] << "," << barycenter[1] << ","
240 << barycenter[2] << ")"
241 << ", lane_direction: (" << lane_direction[0] << "," << lane_direction[1]
242 << "," << lane_direction[2] << ")";
243 return oos.str();
244}

◆ TransformObjectCloudToWorld()

void apollo::perception::radar4d::TrackedObject::TransformObjectCloudToWorld ( )

Transform object cloud to world

在文件 tracked_object.cc92 行定义.

92 {
93 const base::RadarPointFCloud& cloud =
94 (object_ptr->radar4d_supplement).cloud;
95 base::RadarPointDCloud& cloud_world =
96 (object_ptr->radar4d_supplement).cloud_world;
97 cloud_world.clear();
98 cloud_world.resize(cloud.size());
99 for (size_t i = 0; i < cloud.size(); ++i) {
100 Eigen::Vector3d pt(cloud[i].x, cloud[i].y, cloud[i].z);
101 Eigen::Vector3d pt_world = sensor_to_local_pose * pt;
102 cloud_world[i].x = pt_world(0);
103 cloud_world[i].y = pt_world(1);
104 cloud_world[i].z = pt_world(2);
105 cloud_world[i].rcs = cloud[i].rcs;
106 cloud_world[i].velocity = cloud[i].velocity;
107 cloud_world[i].comp_vel = cloud[i].comp_vel;
108 }
109}
AttributeRadarPointCloud< RadarPointF > RadarPointFCloud

类成员变量说明

◆ anchor_point

Eigen::Vector3d apollo::perception::radar4d::TrackedObject::anchor_point

在文件 tracked_object.h139 行定义.

◆ association_score

float apollo::perception::radar4d::TrackedObject::association_score = 0.0f

在文件 tracked_object.h117 行定义.

◆ barycenter

Eigen::Vector3d apollo::perception::radar4d::TrackedObject::barycenter

在文件 tracked_object.h138 行定义.

◆ belief_acceleration

Eigen::Vector3d apollo::perception::radar4d::TrackedObject::belief_acceleration

在文件 tracked_object.h170 行定义.

◆ belief_anchor_point

Eigen::Vector3d apollo::perception::radar4d::TrackedObject::belief_anchor_point

在文件 tracked_object.h168 行定义.

◆ belief_velocity

Eigen::Vector3d apollo::perception::radar4d::TrackedObject::belief_velocity

在文件 tracked_object.h169 行定义.

◆ belief_velocity_gain

Eigen::Vector3d apollo::perception::radar4d::TrackedObject::belief_velocity_gain

在文件 tracked_object.h171 行定义.

◆ belief_velocity_online_covariance

Eigen::Matrix3d apollo::perception::radar4d::TrackedObject::belief_velocity_online_covariance

在文件 tracked_object.h175 行定义.

◆ boostup_need_history_size

int apollo::perception::radar4d::TrackedObject::boostup_need_history_size = 0

在文件 tracked_object.h161 行定义.

◆ center

Eigen::Vector3d apollo::perception::radar4d::TrackedObject::center

在文件 tracked_object.h137 行定义.

◆ converged

bool apollo::perception::radar4d::TrackedObject::converged = true

在文件 tracked_object.h163 行定义.

◆ convergence_confidence

float apollo::perception::radar4d::TrackedObject::convergence_confidence = 0.0f

在文件 tracked_object.h164 行定义.

◆ corners

Eigen::Vector3d apollo::perception::radar4d::TrackedObject::corners[4]

在文件 tracked_object.h136 行定义.

◆ direction

Eigen::Vector3d apollo::perception::radar4d::TrackedObject::direction

在文件 tracked_object.h142 行定义.

◆ global_local_offset

Eigen::Vector3d apollo::perception::radar4d::TrackedObject::global_local_offset

在文件 tracked_object.h200 行定义.

◆ histogram_bin_size

size_t apollo::perception::radar4d::TrackedObject::histogram_bin_size = 10

在文件 tracked_object.h114 行定义.

◆ is_background

bool apollo::perception::radar4d::TrackedObject::is_background = false

在文件 tracked_object.h147 行定义.

◆ is_fake

bool apollo::perception::radar4d::TrackedObject::is_fake = false

在文件 tracked_object.h122 行定义.

◆ lane_direction

Eigen::Vector3d apollo::perception::radar4d::TrackedObject::lane_direction

在文件 tracked_object.h143 行定义.

◆ measured_barycenter_velocity

Eigen::Vector3d apollo::perception::radar4d::TrackedObject::measured_barycenter_velocity

在文件 tracked_object.h152 行定义.

◆ measured_center_velocity

Eigen::Vector3d apollo::perception::radar4d::TrackedObject::measured_center_velocity

在文件 tracked_object.h153 行定义.

◆ measured_corners_velocity

Eigen::Vector3d apollo::perception::radar4d::TrackedObject::measured_corners_velocity[4]

在文件 tracked_object.h155 行定义.

◆ measured_nearest_corner_velocity

Eigen::Vector3d apollo::perception::radar4d::TrackedObject::measured_nearest_corner_velocity

在文件 tracked_object.h154 行定义.

◆ measurement_covariance

Eigen::Matrix4d apollo::perception::radar4d::TrackedObject::measurement_covariance

在文件 tracked_object.h179 行定义.

◆ motion_score

Eigen::Vector3d apollo::perception::radar4d::TrackedObject::motion_score

在文件 tracked_object.h188 行定义.

◆ object_ptr

base::ObjectPtr apollo::perception::radar4d::TrackedObject::object_ptr

在文件 tracked_object.h134 行定义.

◆ output_center

Eigen::Vector3d apollo::perception::radar4d::TrackedObject::output_center

在文件 tracked_object.h196 行定义.

◆ output_direction

Eigen::Vector3d apollo::perception::radar4d::TrackedObject::output_direction

在文件 tracked_object.h195 行定义.

◆ output_size

Eigen::Vector3d apollo::perception::radar4d::TrackedObject::output_size

在文件 tracked_object.h197 行定义.

◆ output_velocity

Eigen::Vector3d apollo::perception::radar4d::TrackedObject::output_velocity

在文件 tracked_object.h193 行定义.

◆ output_velocity_uncertainty

Eigen::Matrix3d apollo::perception::radar4d::TrackedObject::output_velocity_uncertainty

在文件 tracked_object.h194 行定义.

◆ selected_measured_acceleration

Eigen::Vector3d apollo::perception::radar4d::TrackedObject::selected_measured_acceleration

在文件 tracked_object.h167 行定义.

◆ selected_measured_velocity

Eigen::Vector3d apollo::perception::radar4d::TrackedObject::selected_measured_velocity

在文件 tracked_object.h166 行定义.

◆ sensor_info

base::SensorInfo apollo::perception::radar4d::TrackedObject::sensor_info

在文件 tracked_object.h198 行定义.

◆ sensor_to_local_pose

Eigen::Affine3d apollo::perception::radar4d::TrackedObject::sensor_to_local_pose

在文件 tracked_object.h129 行定义.

◆ shape_features

std::vector<float> apollo::perception::radar4d::TrackedObject::shape_features

在文件 tracked_object.h112 行定义.

◆ shape_features_full

std::vector<float> apollo::perception::radar4d::TrackedObject::shape_features_full

在文件 tracked_object.h113 行定义.

◆ size

Eigen::Vector3d apollo::perception::radar4d::TrackedObject::size

在文件 tracked_object.h144 行定义.

◆ state

Eigen::Vector4d apollo::perception::radar4d::TrackedObject::state

在文件 tracked_object.h178 行定义.

◆ state_covariance

Eigen::Matrix4d apollo::perception::radar4d::TrackedObject::state_covariance

在文件 tracked_object.h180 行定义.

◆ track_id

int apollo::perception::radar4d::TrackedObject::track_id = -1

在文件 tracked_object.h123 行定义.

◆ tracking_time

double apollo::perception::radar4d::TrackedObject::tracking_time = 0.0

在文件 tracked_object.h124 行定义.

◆ type

base::ObjectType apollo::perception::radar4d::TrackedObject::type = base::ObjectType::UNKNOWN

在文件 tracked_object.h146 行定义.

◆ update_quality

double apollo::perception::radar4d::TrackedObject::update_quality = 0.0

在文件 tracked_object.h165 行定义.

◆ valid

bool apollo::perception::radar4d::TrackedObject::valid = false

在文件 tracked_object.h162 行定义.

◆ velocity_covariance

Eigen::Matrix3d apollo::perception::radar4d::TrackedObject::velocity_covariance

在文件 tracked_object.h174 行定义.


该结构体的文档由以下文件生成: