#include <discretized_trajectory.h>
◆ DiscretizedTrajectory() [1/3]
| apollo::planning::DiscretizedTrajectory::DiscretizedTrajectory |
( |
| ) |
|
|
default |
◆ DiscretizedTrajectory() [2/3]
| apollo::planning::DiscretizedTrajectory::DiscretizedTrajectory |
( |
const ADCTrajectory & |
trajectory | ) |
|
|
explicit |
◆ DiscretizedTrajectory() [3/3]
| apollo::planning::DiscretizedTrajectory::DiscretizedTrajectory |
( |
const std::vector< common::TrajectoryPoint > & |
trajectory_points | ) |
|
|
explicit |
在文件 discretized_trajectory.cc 第 34 行定义.
36 : std::vector<TrajectoryPoint>(trajectory_points) {
37 ACHECK(!trajectory_points.empty())
38 << "trajectory_points should NOT be empty()";
39}
◆ ~DiscretizedTrajectory()
| virtual apollo::planning::DiscretizedTrajectory::~DiscretizedTrajectory |
( |
| ) |
|
|
virtualdefault |
◆ AppendTrajectoryPoint()
| void apollo::planning::DiscretizedTrajectory::AppendTrajectoryPoint |
( |
const common::TrajectoryPoint & |
trajectory_point | ) |
|
|
virtual |
在文件 discretized_trajectory.cc 第 114 行定义.
115 {
116 if (!empty()) {
117 CHECK_GT(trajectory_point.relative_time(), back().relative_time());
118 }
119 push_back(trajectory_point);
120}
◆ Clear()
| void apollo::planning::DiscretizedTrajectory::Clear |
( |
| ) |
|
|
inlinevirtual |
◆ Evaluate()
| TrajectoryPoint apollo::planning::DiscretizedTrajectory::Evaluate |
( |
const double |
relative_time | ) |
const |
|
virtual |
在文件 discretized_trajectory.cc 第 46 行定义.
47 {
48 auto comp = [](const TrajectoryPoint& p, const double relative_time) {
49 return p.relative_time() < relative_time;
50 };
51
52 auto it_lower = std::lower_bound(begin(), end(), relative_time, comp);
53
54 if (it_lower == begin()) {
55 return front();
56 } else if (it_lower == end()) {
57 AWARN <<
"When evaluate trajectory, relative_time(" << relative_time
58 << ") is too large";
59 return back();
60 }
62 *(it_lower - 1), *it_lower, relative_time);
63}
SLPoint InterpolateUsingLinearApproximation(const SLPoint &p0, const SLPoint &p1, const double w)
◆ GetSpatialLength()
| double apollo::planning::DiscretizedTrajectory::GetSpatialLength |
( |
| ) |
const |
|
virtual |
在文件 discretized_trajectory.cc 第 140 行定义.
140 {
141 if (empty()) {
142 return 0.0;
143 }
144 return back().path_point().s() - front().path_point().s();
145}
◆ GetTemporalLength()
| double apollo::planning::DiscretizedTrajectory::GetTemporalLength |
( |
| ) |
const |
|
virtual |
在文件 discretized_trajectory.cc 第 133 行定义.
133 {
134 if (empty()) {
135 return 0.0;
136 }
137 return back().relative_time() - front().relative_time();
138}
◆ IsReversed()
| bool apollo::planning::DiscretizedTrajectory::IsReversed |
( |
| ) |
const |
|
inline |
◆ NumOfPoints()
| size_t apollo::planning::DiscretizedTrajectory::NumOfPoints |
( |
| ) |
const |
|
inline |
◆ PrependTrajectoryPoints()
| void apollo::planning::DiscretizedTrajectory::PrependTrajectoryPoints |
( |
const std::vector< common::TrajectoryPoint > & |
trajectory_points | ) |
|
|
inline |
在文件 discretized_trajectory.h 第 69 行定义.
70 {
71 if (!empty() && trajectory_points.size() > 1) {
72 ACHECK(trajectory_points.back().relative_time() <
73 front().relative_time());
74 }
75 insert(begin(), trajectory_points.begin(), trajectory_points.end());
76 }
◆ QueryLowerBoundPoint()
| size_t apollo::planning::DiscretizedTrajectory::QueryLowerBoundPoint |
( |
const double |
relative_time, |
|
|
const double |
epsilon = 1.0e-5 |
|
) |
| const |
|
virtual |
在文件 discretized_trajectory.cc 第 65 行定义.
66 {
68
69 if (relative_time >= back().relative_time()) {
70 return size() - 1;
71 }
72 auto func = [&epsilon](
const TrajectoryPoint& tp,
73 const double relative_time) {
74 return tp.relative_time() + epsilon < relative_time;
75 };
76 auto it_lower = std::lower_bound(begin(), end(), relative_time, func);
77 return std::distance(begin(), it_lower);
78}
◆ QueryNearestPoint()
| size_t apollo::planning::DiscretizedTrajectory::QueryNearestPoint |
( |
const common::math::Vec2d & |
position | ) |
const |
|
virtual |
在文件 discretized_trajectory.cc 第 80 行定义.
81 {
82 double dist_sqr_min = std::numeric_limits<double>::max();
83 size_t index_min = 0;
84 for (size_t i = 0; i < size(); ++i) {
85 const common::math::Vec2d curr_point(data()[i].path_point().x(),
86 data()[i].path_point().y());
87
88 const double dist_sqr = curr_point.DistanceSquareTo(position);
89 if (dist_sqr < dist_sqr_min) {
90 dist_sqr_min = dist_sqr;
91 index_min = i;
92 }
93 }
94 return index_min;
95}
◆ QueryNearestPointWithBuffer()
| size_t apollo::planning::DiscretizedTrajectory::QueryNearestPointWithBuffer |
( |
const common::math::Vec2d & |
position, |
|
|
const double |
buffer |
|
) |
| const |
在文件 discretized_trajectory.cc 第 97 行定义.
98 {
99 double dist_sqr_min = std::numeric_limits<double>::max();
100 size_t index_min = 0;
101 for (size_t i = 0; i < size(); ++i) {
102 const common::math::Vec2d curr_point(data()[i].path_point().x(),
103 data()[i].path_point().y());
104
105 const double dist_sqr = curr_point.DistanceSquareTo(position);
106 if (dist_sqr < dist_sqr_min + buffer) {
107 dist_sqr_min = dist_sqr;
108 index_min = i;
109 }
110 }
111 return index_min;
112}
◆ SetIsReversed()
| void apollo::planning::DiscretizedTrajectory::SetIsReversed |
( |
const bool |
flag | ) |
|
|
inline |
◆ SetTrajectoryPoints()
| void apollo::planning::DiscretizedTrajectory::SetTrajectoryPoints |
( |
const std::vector< common::TrajectoryPoint > & |
trajectory_points | ) |
|
◆ StartPoint()
| TrajectoryPoint apollo::planning::DiscretizedTrajectory::StartPoint |
( |
| ) |
const |
|
virtual |
◆ TrajectoryPointAt()
| const TrajectoryPoint & apollo::planning::DiscretizedTrajectory::TrajectoryPointAt |
( |
const size_t |
index | ) |
const |
该类的文档由以下文件生成: