Apollo 11.0
自动驾驶开放平台
apollo::planning::NudgeInfo类 参考

#include <nudge_info.h>

apollo::planning::NudgeInfo 的协作图:

Public 成员函数

 NudgeInfo ()=default
 
void set_enable (bool is_enable)
 
bool is_enable () const
 
void set_is_merge_block_obs (bool is_merge)
 
bool is_merge_block_obs () const
 
const std::unordered_map< std::string, NudgeObstacleInfo > & tracking_nudge_obs_info () const
 
std::unordered_map< std::string, NudgeObstacleInfo > * mutable_tracking_nudge_obs_info ()
 
const std::vector< SLPolygon > & block_sl_polygons () const
 
std::vector< SLPolygon > * mutable_block_sl_polygons ()
 
const std::set< std::string > & update_ids () const
 
std::set< std::string > * mutable_update_ids ()
 
const std::vector< std::vector< SLPoint > > & extra_nudge_key_points () const
 
std::vector< std::vector< SLPoint > > * mutable_extra_nudge_key_points ()
 
bool IsObsIgnoreNudgeDecision (std::string obs_id, double obs_start_s, double check_dis) const
 
bool NeedCheckObsCollision (std::string obs_id) const
 
void GetFirstBlockSLPolygon (std::string obs_id, SLPolygon *obs_sl_polygon) const
 
void SortBlockSLPolygons ()
 
void PrintDebugInfo ()
 
bool GetInterpolatedNudgeL (bool is_left_nudge, double s, double *nudge_l) const
 

详细描述

在文件 nudge_info.h 第 98 行定义.

构造及析构函数说明

◆ NudgeInfo()

apollo::planning::NudgeInfo::NudgeInfo ( )
default

成员函数说明

◆ block_sl_polygons()

const std::vector< SLPolygon > & apollo::planning::NudgeInfo::block_sl_polygons ( ) const

在文件 nudge_info.cc 第 51 行定义.

51 {
52 return block_sl_polygons_;
53}

◆ extra_nudge_key_points()

const std::vector< std::vector< SLPoint > > & apollo::planning::NudgeInfo::extra_nudge_key_points ( ) const

在文件 nudge_info.cc 第 65 行定义.

65 {
66 return extra_nudge_key_points_;
67}

◆ GetFirstBlockSLPolygon()

void apollo::planning::NudgeInfo::GetFirstBlockSLPolygon ( std::string  obs_id,
SLPolygon *  obs_sl_polygon 
) const

在文件 nudge_info.cc 第 101 行定义.

101 {
102 if (obs_id.empty()) {
103 return;
104 }
105 if (update_ids_.find(obs_id) != update_ids_.end() && block_sl_polygons_.size() > 0 && is_merge_block_obs_
106 && block_sl_polygons_.at(0).id().find(obs_id) != std::string::npos) {
107 *obs_sl_polygon = block_sl_polygons_.at(0);
108 }
109}

◆ GetInterpolatedNudgeL()

bool apollo::planning::NudgeInfo::GetInterpolatedNudgeL ( bool  is_left_nudge,
double  s,
double *  nudge_l 
) const

在文件 nudge_info.cc 第 135 行定义.

135 {
136 if (extra_nudge_key_points_.size() < 2 || extra_nudge_key_points_.at(0).size() < 2) {
137 return false;
138 }
139 size_t index = is_left_nudge ? 0 : 1;
140
141 if (s <= extra_nudge_key_points_[index].front().s()) {
142 *nudge_l = extra_nudge_key_points_[index].front().l();
143 return true;
144 }
145 if (s >= extra_nudge_key_points_[index].back().s()) {
146 *nudge_l = extra_nudge_key_points_[index].back().l();
147 return true;
148 }
149 auto iter = std::lower_bound(
150 extra_nudge_key_points_[index].begin(),
151 extra_nudge_key_points_[index].end(),
152 s,
153 [](const SLPoint& sl_point, const double s) { return sl_point.s() < s; });
154 auto last_iter = std::prev(iter);
155 *nudge_l = last_iter->l() + (s - last_iter->s()) * (iter->l() - last_iter->l()) / (iter->s() - last_iter->s());
156 return true;
157}

◆ is_enable()

bool apollo::planning::NudgeInfo::is_enable ( ) const

在文件 nudge_info.cc 第 32 行定义.

32 {
33 return is_enable_;
34}

◆ is_merge_block_obs()

bool apollo::planning::NudgeInfo::is_merge_block_obs ( ) const

在文件 nudge_info.cc 第 39 行定义.

39 {
40 return is_merge_block_obs_;
41}

◆ IsObsIgnoreNudgeDecision()

bool apollo::planning::NudgeInfo::IsObsIgnoreNudgeDecision ( std::string  obs_id,
double  obs_start_s,
double  check_dis 
) const

在文件 nudge_info.cc 第 84 行定义.

84 {
85 if (obs_id.empty()) {
86 return true;
87 }
88
89 if (extra_nudge_key_points_.size() < 2 || extra_nudge_key_points_.at(0).size() < 2) {
90 return false;
91 }
92
93 if (update_ids_.find(obs_id) == update_ids_.end()
94 && obs_start_s - extra_nudge_key_points_.at(0).at(1).s() > check_dis) {
95 return true;
96 }
97
98 return false;
99}

◆ mutable_block_sl_polygons()

std::vector< SLPolygon > * apollo::planning::NudgeInfo::mutable_block_sl_polygons ( )

在文件 nudge_info.cc 第 54 行定义.

54 {
55 return &block_sl_polygons_;
56}

◆ mutable_extra_nudge_key_points()

std::vector< std::vector< SLPoint > > * apollo::planning::NudgeInfo::mutable_extra_nudge_key_points ( )

在文件 nudge_info.cc 第 68 行定义.

68 {
69 return &extra_nudge_key_points_;
70}

◆ mutable_tracking_nudge_obs_info()

std::unordered_map< std::string, NudgeObstacleInfo > * apollo::planning::NudgeInfo::mutable_tracking_nudge_obs_info ( )

在文件 nudge_info.cc 第 47 行定义.

47 {
48 return &tracking_nudge_obs_info_;
49}

◆ mutable_update_ids()

std::set< std::string > * apollo::planning::NudgeInfo::mutable_update_ids ( )

在文件 nudge_info.cc 第 61 行定义.

61 {
62 return &update_ids_;
63}

◆ NeedCheckObsCollision()

bool apollo::planning::NudgeInfo::NeedCheckObsCollision ( std::string  obs_id) const

在文件 nudge_info.cc 第 72 行定义.

72 {
73 if (obs_id.empty()) {
74 return false;
75 }
76
77 if (update_ids_.find(obs_id) != update_ids_.end()) {
78 return true;
79 }
80
81 return false;
82}

◆ PrintDebugInfo()

void apollo::planning::NudgeInfo::PrintDebugInfo ( )

在文件 nudge_info.cc 第 117 行定义.

117 {
118 for (auto iter = tracking_nudge_obs_info_.begin(); iter != tracking_nudge_obs_info_.end(); iter++) {
119 std::stringstream debug_str;
120
121 debug_str << "NudgeInfo ---- id: " << iter->first << "; " << "tracking time: " << iter->second.tracking_time
122 << "; "
123 // << "nudge type: " << iter->second.nudge_type.str() << "; "
124 << "nudge probability: " << iter->second.nudge_probability << "; ";
125
126 debug_str << "polygon_points: ";
127
128 for (const auto& point : iter->second.origin_polygon.points()) {
129 debug_str << "(" << point.x() << ", " << point.y() << "), ";
130 }
131 AINFO << debug_str.str();
132 }
133}
#define AINFO
Definition log.h:42

◆ set_enable()

void apollo::planning::NudgeInfo::set_enable ( bool  is_enable)

在文件 nudge_info.cc 第 28 行定义.

28 {
29 is_enable_ = is_enable;
30}

◆ set_is_merge_block_obs()

void apollo::planning::NudgeInfo::set_is_merge_block_obs ( bool  is_merge)

在文件 nudge_info.cc 第 36 行定义.

36 {
37 is_merge_block_obs_ = is_merge;
38}

◆ SortBlockSLPolygons()

void apollo::planning::NudgeInfo::SortBlockSLPolygons ( )

在文件 nudge_info.cc 第 111 行定义.

111 {
112 sort(block_sl_polygons_.begin(), block_sl_polygons_.end(), [](const SLPolygon& a, const SLPolygon& b) {
113 return a.MinS() < b.MinS();
114 });
115}

◆ tracking_nudge_obs_info()

const std::unordered_map< std::string, NudgeObstacleInfo > & apollo::planning::NudgeInfo::tracking_nudge_obs_info ( ) const

在文件 nudge_info.cc 第 43 行定义.

43 {
44 return tracking_nudge_obs_info_;
45}

◆ update_ids()

const std::set< std::string > & apollo::planning::NudgeInfo::update_ids ( ) const

在文件 nudge_info.cc 第 58 行定义.

58 {
59 return update_ids_;
60}

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