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

#include <node3d.h>

apollo::planning::Node3d 的协作图:

Public 成员函数

 Node3d (const double x, const double y, const double phi)
 
 Node3d (const double x, const double y, const double phi, const std::vector< double > &XYbounds, const PlannerOpenSpaceConfig &open_space_conf)
 
 Node3d (const std::vector< double > &traversed_x, const std::vector< double > &traversed_y, const std::vector< double > &traversed_phi, const std::vector< double > &XYbounds, const PlannerOpenSpaceConfig &open_space_conf)
 
virtual ~Node3d ()=default
 
double GetCost () const
 
double GetTrajCost () const
 
double GetHeuCost () const
 
int GetGridX () const
 
int GetGridY () const
 
double GetX () const
 
double GetY () const
 
double GetPhi () const
 
bool operator== (const Node3d &right) const
 
const std::string & GetIndex () const
 
size_t GetStepSize () const
 
bool GetDirec () const
 
double GetSteer () const
 
std::shared_ptr< Node3d > GetPreNode () const
 
const std::vector< double > & GetXs () const
 
const std::vector< double > & GetYs () const
 
const std::vector< double > & GetPhis () const
 
const double & GetTravelDist () const
 
void SetPre (std::shared_ptr< Node3d > pre_node)
 
void SetDirec (bool direction)
 
void SetTrajCost (double cost)
 
void SetHeuCost (double cost)
 
void SetSteer (double steering)
 
void SetTravelDist (double dist)
 
 Node3d (const double x, const double y, const double phi, const std::vector< double > &XYbounds, const WarmStartConfig &warm_start_conf)
 
 Node3d (const std::vector< double > &traversed_x, const std::vector< double > &traversed_y, const std::vector< double > &traversed_phi, const std::vector< double > &XYbounds, const WarmStartConfig &warm_start_conf)
 

静态 Public 成员函数

static apollo::common::math::Box2d GetBoundingBox (const common::VehicleParam &vehicle_param_, const double x, const double y, const double phi)
 

详细描述

在文件 node3d.h 第 35 行定义.

构造及析构函数说明

◆ Node3d() [1/5]

apollo::planning::Node3d::Node3d ( const double  x,
const double  y,
const double  phi 
)

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

32 {
33 x_ = x;
34 y_ = y;
35 phi_ = phi;
36}

◆ Node3d() [2/5]

apollo::planning::Node3d::Node3d ( const double  x,
const double  y,
const double  phi,
const std::vector< double > &  XYbounds,
const PlannerOpenSpaceConfig &  open_space_conf 
)

在文件 node3d.cc 第 38 行定义.

43 {
44 CHECK_EQ(XYbounds.size(), 4U) << "XYbounds size is not 4, but" << XYbounds.size();
45
46 x_ = x;
47 y_ = y;
48 phi_ = phi;
49
50 x_grid_ = static_cast<int>((x_ - XYbounds[0]) / open_space_conf.warm_start_config().xy_grid_resolution());
51 y_grid_ = static_cast<int>((y_ - XYbounds[2]) / open_space_conf.warm_start_config().xy_grid_resolution());
52 phi_grid_ = static_cast<int>((phi_ - (-M_PI)) / open_space_conf.warm_start_config().phi_grid_resolution());
53
54 traversed_x_.push_back(x);
55 traversed_y_.push_back(y);
56 traversed_phi_.push_back(phi);
57
58 index_ = ComputeStringIndex(x_grid_, y_grid_, phi_grid_);
59}

◆ Node3d() [3/5]

apollo::planning::Node3d::Node3d ( const std::vector< double > &  traversed_x,
const std::vector< double > &  traversed_y,
const std::vector< double > &  traversed_phi,
const std::vector< double > &  XYbounds,
const PlannerOpenSpaceConfig &  open_space_conf 
)

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

66 {
67 CHECK_EQ(XYbounds.size(), 4U) << "XYbounds size is not 4, but" << XYbounds.size();
68 CHECK_EQ(traversed_x.size(), traversed_y.size());
69 CHECK_EQ(traversed_x.size(), traversed_phi.size());
70
71 x_ = traversed_x.back();
72 y_ = traversed_y.back();
73 phi_ = traversed_phi.back();
74
75 // XYbounds in xmin, xmax, ymin, ymax
76 x_grid_ = static_cast<int>((x_ - XYbounds[0]) / open_space_conf.warm_start_config().xy_grid_resolution());
77 y_grid_ = static_cast<int>((y_ - XYbounds[2]) / open_space_conf.warm_start_config().xy_grid_resolution());
78 phi_grid_ = static_cast<int>((phi_ - (-M_PI)) / open_space_conf.warm_start_config().phi_grid_resolution());
79
80 traversed_x_ = traversed_x;
81 traversed_y_ = traversed_y;
82 traversed_phi_ = traversed_phi;
83
84 index_ = ComputeStringIndex(x_grid_, y_grid_, phi_grid_);
85 step_size_ = traversed_x.size();
86}

◆ ~Node3d()

virtual apollo::planning::Node3d::~Node3d ( )
virtualdefault

◆ Node3d() [4/5]

apollo::planning::Node3d::Node3d ( const double  x,
const double  y,
const double  phi,
const std::vector< double > &  XYbounds,
const WarmStartConfig &  warm_start_conf 
)

在文件 node3d.cc 第 88 行定义.

93 {
94 CHECK_EQ(XYbounds.size(), 4U) << "XYbounds size is not 4, but" << XYbounds.size();
95
96 x_ = x;
97 y_ = y;
98 phi_ = phi;
99
100 x_grid_ = static_cast<int>((x_ - XYbounds[0]) / warm_start_conf.xy_grid_resolution());
101 y_grid_ = static_cast<int>((y_ - XYbounds[2]) / warm_start_conf.xy_grid_resolution());
102 phi_grid_ = static_cast<int>((phi_ - (-M_PI)) / warm_start_conf.phi_grid_resolution());
103
104 traversed_x_.push_back(x);
105 traversed_y_.push_back(y);
106 traversed_phi_.push_back(phi);
107
108 index_ = ComputeStringIndex(x_grid_, y_grid_, phi_grid_);
109}

◆ Node3d() [5/5]

apollo::planning::Node3d::Node3d ( const std::vector< double > &  traversed_x,
const std::vector< double > &  traversed_y,
const std::vector< double > &  traversed_phi,
const std::vector< double > &  XYbounds,
const WarmStartConfig &  warm_start_conf 
)

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

116 {
117 CHECK_EQ(XYbounds.size(), 4U) << "XYbounds size is not 4, but" << XYbounds.size();
118 CHECK_EQ(traversed_x.size(), traversed_y.size());
119 CHECK_EQ(traversed_x.size(), traversed_phi.size());
120
121 x_ = traversed_x.back();
122 y_ = traversed_y.back();
123 phi_ = traversed_phi.back();
124
125 // XYbounds in xmin, xmax, ymin, ymax
126 x_grid_ = static_cast<int>((x_ - XYbounds[0]) / warm_start_conf.xy_grid_resolution());
127 y_grid_ = static_cast<int>((y_ - XYbounds[2]) / warm_start_conf.xy_grid_resolution());
128 phi_grid_ = static_cast<int>((phi_ - (-M_PI)) / warm_start_conf.phi_grid_resolution());
129
130 traversed_x_ = traversed_x;
131 traversed_y_ = traversed_y;
132 traversed_phi_ = traversed_phi;
133
134 index_ = ComputeStringIndex(x_grid_, y_grid_, phi_grid_);
135 step_size_ = traversed_x.size();
136}

成员函数说明

◆ GetBoundingBox()

Box2d apollo::planning::Node3d::GetBoundingBox ( const common::VehicleParam &  vehicle_param_,
const double  x,
const double  y,
const double  phi 
)
static

在文件 node3d.cc 第 138 行定义.

142 {
143 double ego_length = vehicle_param_.length();
144 double ego_width = vehicle_param_.width();
145 double shift_distance = ego_length / 2.0 - vehicle_param_.back_edge_to_center();
146 Box2d ego_box({x + shift_distance * std::cos(phi), y + shift_distance * std::sin(phi)}, phi, ego_length, ego_width);
147 return ego_box;
148}

◆ GetCost()

double apollo::planning::Node3d::GetCost ( ) const
inline

在文件 node3d.h 第 54 行定义.

54 {
55 return traj_cost_ + heuristic_cost_;
56 }

◆ GetDirec()

bool apollo::planning::Node3d::GetDirec ( ) const
inline

在文件 node3d.h 第 85 行定义.

85 {
86 return direction_;
87 }

◆ GetGridX()

int apollo::planning::Node3d::GetGridX ( ) const
inline

在文件 node3d.h 第 63 行定义.

63 {
64 return x_grid_;
65 }

◆ GetGridY()

int apollo::planning::Node3d::GetGridY ( ) const
inline

在文件 node3d.h 第 66 行定义.

66 {
67 return y_grid_;
68 }

◆ GetHeuCost()

double apollo::planning::Node3d::GetHeuCost ( ) const
inline

在文件 node3d.h 第 60 行定义.

60 {
61 return heuristic_cost_;
62 }

◆ GetIndex()

const std::string & apollo::planning::Node3d::GetIndex ( ) const
inline

在文件 node3d.h 第 79 行定义.

79 {
80 return index_;
81 }

◆ GetPhi()

double apollo::planning::Node3d::GetPhi ( ) const
inline

在文件 node3d.h 第 75 行定义.

75 {
76 return phi_;
77 }

◆ GetPhis()

const std::vector< double > & apollo::planning::Node3d::GetPhis ( ) const
inline

在文件 node3d.h 第 100 行定义.

100 {
101 return traversed_phi_;
102 }

◆ GetPreNode()

std::shared_ptr< Node3d > apollo::planning::Node3d::GetPreNode ( ) const
inline

在文件 node3d.h 第 91 行定义.

91 {
92 return pre_node_;
93 }

◆ GetSteer()

double apollo::planning::Node3d::GetSteer ( ) const
inline

在文件 node3d.h 第 88 行定义.

88 {
89 return steering_;
90 }

◆ GetStepSize()

size_t apollo::planning::Node3d::GetStepSize ( ) const
inline

在文件 node3d.h 第 82 行定义.

82 {
83 return step_size_;
84 }

◆ GetTrajCost()

double apollo::planning::Node3d::GetTrajCost ( ) const
inline

在文件 node3d.h 第 57 行定义.

57 {
58 return traj_cost_;
59 }

◆ GetTravelDist()

const double & apollo::planning::Node3d::GetTravelDist ( ) const
inline

在文件 node3d.h 第 103 行定义.

103 {
104 return travel_distance_;
105 }

◆ GetX()

double apollo::planning::Node3d::GetX ( ) const
inline

在文件 node3d.h 第 69 行定义.

69 {
70 return x_;
71 }

◆ GetXs()

const std::vector< double > & apollo::planning::Node3d::GetXs ( ) const
inline

在文件 node3d.h 第 94 行定义.

94 {
95 return traversed_x_;
96 }

◆ GetY()

double apollo::planning::Node3d::GetY ( ) const
inline

在文件 node3d.h 第 72 行定义.

72 {
73 return y_;
74 }

◆ GetYs()

const std::vector< double > & apollo::planning::Node3d::GetYs ( ) const
inline

在文件 node3d.h 第 97 行定义.

97 {
98 return traversed_y_;
99 }

◆ operator==()

bool apollo::planning::Node3d::operator== ( const Node3d &  right) const

在文件 node3d.cc 第 150 行定义.

150 {
151 return right.GetIndex() == index_;
152}

◆ SetDirec()

void apollo::planning::Node3d::SetDirec ( bool  direction)
inline

在文件 node3d.h 第 109 行定义.

109 {
110 direction_ = direction;
111 }

◆ SetHeuCost()

void apollo::planning::Node3d::SetHeuCost ( double  cost)
inline

在文件 node3d.h 第 115 行定义.

115 {
116 heuristic_cost_ = cost;
117 }

◆ SetPre()

void apollo::planning::Node3d::SetPre ( std::shared_ptr< Node3d >  pre_node)
inline

在文件 node3d.h 第 106 行定义.

106 {
107 pre_node_ = pre_node;
108 }

◆ SetSteer()

void apollo::planning::Node3d::SetSteer ( double  steering)
inline

在文件 node3d.h 第 118 行定义.

118 {
119 steering_ = steering;
120 }

◆ SetTrajCost()

void apollo::planning::Node3d::SetTrajCost ( double  cost)
inline

在文件 node3d.h 第 112 行定义.

112 {
113 traj_cost_ = cost;
114 }

◆ SetTravelDist()

void apollo::planning::Node3d::SetTravelDist ( double  dist)
inline

在文件 node3d.h 第 121 行定义.

121 {
122 travel_distance_ = dist;
123 }

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