Apollo 10.0
自动驾驶开放平台
apollo::prediction::ADCTrajectoryContainer类 参考

#include <adc_trajectory_container.h>

类 apollo::prediction::ADCTrajectoryContainer 继承关系图:
apollo::prediction::ADCTrajectoryContainer 的协作图:

Public 成员函数

 ADCTrajectoryContainer ()
 Constructor
 
virtual ~ADCTrajectoryContainer ()=default
 Destructor
 
void Insert (const ::google::protobuf::Message &message) override
 Insert a data message into the container
 
bool IsProtected () const
 Get the right-of-way status of ADC
 
bool IsPointInJunction (const common::PathPoint &point) const
 Check if a point is in the first junction of the adc trajectory
 
bool HasOverlap (const LaneSequence &lane_sequence) const
 Has overlap with ADC trajectory
 
void SetPosition (const common::math::Vec2d &position)
 Set ADC position
 
std::shared_ptr< const hdmap::JunctionInfoADCJunction () const
 Get ADC junction
 
double ADCDistanceToJunction () const
 Compute ADC's distance to junction
 
const planning::ADCTrajectoryadc_trajectory () const
 Get ADC planning trajectory
 
bool IsLaneIdInReferenceLine (const std::string &lane_id) const
 Determine if a lane ID is in the reference line
 
bool IsLaneIdInTargetReferenceLine (const std::string &lane_id) const
 
const std::vector< std::string > & GetADCLaneIDSequence () const
 
const std::vector< std::string > & GetADCTargetLaneIDSequence () const
 
void SetJunction (const std::string &junction_id, const double distance)
 
- Public 成员函数 继承自 apollo::prediction::Container
 Container ()=default
 Constructor
 
virtual ~Container ()=default
 Destructor
 

详细描述

在文件 adc_trajectory_container.h37 行定义.

构造及析构函数说明

◆ ADCTrajectoryContainer()

apollo::prediction::ADCTrajectoryContainer::ADCTrajectoryContainer ( )

Constructor

在文件 adc_trajectory_container.cc32 行定义.

33 : adc_junction_info_ptr_(nullptr), s_dist_to_junction_(0.0) {}

◆ ~ADCTrajectoryContainer()

virtual apollo::prediction::ADCTrajectoryContainer::~ADCTrajectoryContainer ( )
virtualdefault

Destructor

成员函数说明

◆ adc_trajectory()

const ADCTrajectory & apollo::prediction::ADCTrajectoryContainer::adc_trajectory ( ) const

Get ADC planning trajectory

返回
ADC planning trajectory

在文件 adc_trajectory_container.cc148 行定义.

148 {
149 return adc_trajectory_;
150}

◆ ADCDistanceToJunction()

double apollo::prediction::ADCTrajectoryContainer::ADCDistanceToJunction ( ) const

Compute ADC's distance to junction

返回
ADC's distance to junction

在文件 adc_trajectory_container.cc144 行定义.

144 {
145 return s_dist_to_junction_;
146}

◆ ADCJunction()

std::shared_ptr< const apollo::hdmap::JunctionInfo > apollo::prediction::ADCTrajectoryContainer::ADCJunction ( ) const

Get ADC junction

返回
A pointer to ADC junction information

在文件 adc_trajectory_container.cc140 行定义.

140 {
141 return adc_junction_info_ptr_;
142}

◆ GetADCLaneIDSequence()

const std::vector< std::string > & apollo::prediction::ADCTrajectoryContainer::GetADCLaneIDSequence ( ) const

在文件 adc_trajectory_container.cc239 行定义.

240 {
241 return adc_lane_seq_;
242}

◆ GetADCTargetLaneIDSequence()

const std::vector< std::string > & apollo::prediction::ADCTrajectoryContainer::GetADCTargetLaneIDSequence ( ) const

在文件 adc_trajectory_container.cc245 行定义.

245 {
246 return adc_target_lane_seq_;
247}

◆ HasOverlap()

bool apollo::prediction::ADCTrajectoryContainer::HasOverlap ( const LaneSequence lane_sequence) const

Has overlap with ADC trajectory

返回
True if a target lane sequence has overlap with ADC trajectory

在文件 adc_trajectory_container.cc216 行定义.

217 {
218 for (const auto& lane_segment : lane_sequence.lane_segment()) {
219 std::string lane_id = lane_segment.lane_id();
220 if (adc_lane_ids_.find(lane_id) != adc_lane_ids_.end()) {
221 return true;
222 }
223 }
224 return false;
225}

◆ Insert()

void apollo::prediction::ADCTrajectoryContainer::Insert ( const ::google::protobuf::Message &  message)
overridevirtual

Insert a data message into the container

参数
Datamessage to be inserted in protobuf

实现了 apollo::prediction::Container.

在文件 adc_trajectory_container.cc35 行定义.

36 {
37 adc_lane_ids_.clear();
38 adc_lane_seq_.clear();
39 adc_target_lane_ids_.clear();
40 adc_target_lane_seq_.clear();
41 adc_junction_polygon_ = std::move(Polygon2d());
42
43 adc_trajectory_.CopyFrom(dynamic_cast<const ADCTrajectory&>(message));
44 ADEBUG << "Received a planning message ["
45 << adc_trajectory_.ShortDebugString() << "].";
46
47 // Find ADC lane sequence
48 SetLaneSequence();
49 ADEBUG << "Generate an ADC lane id sequence [" << ToString(adc_lane_seq_)
50 << "].";
51
52 // Find ADC target lane sequence
53 SetTargetLaneSequence();
54 ADEBUG << "Generate an ADC target lane id sequence ["
55 << ToString(adc_target_lane_seq_) << "].";
56}
#define ADEBUG
Definition log.h:41

◆ IsLaneIdInReferenceLine()

bool apollo::prediction::ADCTrajectoryContainer::IsLaneIdInReferenceLine ( const std::string &  lane_id) const

Determine if a lane ID is in the reference line

返回
The lane ID to be investigated

在文件 adc_trajectory_container.cc152 行定义.

153 {
154 return adc_lane_ids_.find(lane_id) != adc_lane_ids_.end();
155}

◆ IsLaneIdInTargetReferenceLine()

bool apollo::prediction::ADCTrajectoryContainer::IsLaneIdInTargetReferenceLine ( const std::string &  lane_id) const

在文件 adc_trajectory_container.cc157 行定义.

158 {
159 return adc_target_lane_ids_.find(lane_id) != adc_target_lane_ids_.end();
160}

◆ IsPointInJunction()

bool apollo::prediction::ADCTrajectoryContainer::IsPointInJunction ( const common::PathPoint point) const

Check if a point is in the first junction of the adc trajectory

参数
Point
返回
True if the point is in the first junction of the adc trajectory

在文件 adc_trajectory_container.cc58 行定义.

58 {
59 if (adc_junction_polygon_.points().size() < 3) {
60 return false;
61 }
62 bool in_polygon = adc_junction_polygon_.IsPointIn({point.x(), point.y()});
63
64 bool on_virtual_lane = false;
65 if (point.has_lane_id()) {
66 on_virtual_lane = PredictionMap::IsVirtualLane(point.lane_id());
67 }
68 if (!on_virtual_lane) {
69 on_virtual_lane = PredictionMap::OnVirtualLane({point.x(), point.y()},
70 FLAGS_virtual_lane_radius);
71 }
72 return in_polygon && on_virtual_lane;
73}
bool IsPointIn(const Vec2d &point) const
Check if a point is within the polygon.
Definition polygon2d.cc:209
const std::vector< Vec2d > & points() const
Get the vertices of the polygon.
Definition polygon2d.h:65
static bool OnVirtualLane(const Eigen::Vector2d &position, const double radius)
Determine if a point is on a virtual lane.
static bool IsVirtualLane(const std::string &lane_id)
Determine if a lane is a virtual lane.

◆ IsProtected()

bool apollo::prediction::ADCTrajectoryContainer::IsProtected ( ) const

Get the right-of-way status of ADC

返回
The right-of-way status of ADC

在文件 adc_trajectory_container.cc75 行定义.

75 {
76 return adc_trajectory_.has_right_of_way_status() &&
78}
optional RightOfWayStatus right_of_way_status

◆ SetJunction()

void apollo::prediction::ADCTrajectoryContainer::SetJunction ( const std::string &  junction_id,
const double  distance 
)

在文件 adc_trajectory_container.cc80 行定义.

81 {
82 std::shared_ptr<const JunctionInfo> junction_info =
83 PredictionMap::JunctionById(junction_id);
84 if (junction_info != nullptr && junction_info->junction().has_polygon()) {
85 std::vector<Vec2d> vertices;
86 for (const auto& point : junction_info->junction().polygon().point()) {
87 vertices.emplace_back(point.x(), point.y());
88 }
89 if (vertices.size() >= 3) {
90 adc_junction_info_ptr_ = junction_info;
91 s_dist_to_junction_ = distance;
92 adc_junction_polygon_ = std::move(Polygon2d{vertices});
93 }
94 }
95}
static std::shared_ptr< const hdmap::JunctionInfo > JunctionById(const std::string &id)
Get a shared pointer to a junction by junction ID.

◆ SetPosition()

void apollo::prediction::ADCTrajectoryContainer::SetPosition ( const common::math::Vec2d position)

Set ADC position

在文件 adc_trajectory_container.cc227 行定义.

227 {
228 for (auto it = adc_lane_seq_.begin(); it != adc_lane_seq_.end(); ++it) {
229 auto lane_info = PredictionMap::LaneById(*it);
230 if (lane_info != nullptr && lane_info->IsOnLane(position)) {
231 adc_lane_ids_.clear();
232 adc_lane_ids_.insert(it, adc_lane_seq_.end());
233 break;
234 }
235 }
236 ADEBUG << "Generate an ADC lane ids [" << ToString(adc_lane_ids_) << "].";
237}
static std::shared_ptr< const hdmap::LaneInfo > LaneById(const std::string &id)
Get a shared pointer to a lane by lane ID.

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