119 const double sx,
const double sy,
const double ex,
const double ey,
120 const std::vector<double>& XYbounds,
121 const std::vector<std::vector<common::math::LineSegment2d>>&
122 obstacles_linesegments_vec,
127 const std::vector<double>& XYbounds,
128 const std::vector<std::vector<common::math::LineSegment2d>>&
129 obstacles_linesegments_vec,
130 const std::vector<std::vector<common::math::LineSegment2d>>&
131 soft_boundary_linesegments_vec = {{}});
132 double CheckDpMap(
const double sx,
const double sy);
135 double EuclidDistance(
const double x1,
const double y1,
const double x2,
137 std::vector<std::shared_ptr<Node2d>> GenerateNextNodes(
138 std::shared_ptr<Node2d> node);
139 bool CheckConstraints(std::shared_ptr<Node2d> node);
140 void LoadGridAStarResult(GridAStartResult* result);
143 double xy_grid_resolution_ = 0.0;
144 double node_radius_ = 0.0;
145 std::vector<double> XYbounds_;
146 double max_grid_x_ = 0.0;
147 double max_grid_y_ = 0.0;
148 std::shared_ptr<Node2d> start_node_;
149 std::shared_ptr<Node2d> end_node_;
150 std::shared_ptr<Node2d> final_node_;
151 std::vector<std::vector<common::math::LineSegment2d>>
152 obstacles_linesegments_vec_;
155 bool operator()(
const std::pair<std::string,
157 const std::pair<std::string, double>& right)
const {
158 return left.second >= right.second;
161 std::unordered_map<std::string, std::shared_ptr<Node2d>> dp_map_;
170 const std::vector<std::vector<common::math::LineSegment2d>>&
176 std::unordered_set<std::string>& close_set);
177 std::vector<std::vector<common::math::LineSegment2d>>
178 soft_boundary_linesegments_vec_;
179 double esdf_range_ = 0.0;
180 bool use_esdf_ =
false;
181 std::vector<int> dx_{1, 0, -1, 0};
182 std::vector<int> dy_{0, -1, 0, 1};
bool GenerateDpMap(const double ex, const double ey, const std::vector< double > &XYbounds, const std::vector< std::vector< common::math::LineSegment2d > > &obstacles_linesegments_vec, const std::vector< std::vector< common::math::LineSegment2d > > &soft_boundary_linesegments_vec={{}})
bool GenerateAStarPath(const double sx, const double sy, const double ex, const double ey, const std::vector< double > &XYbounds, const std::vector< std::vector< common::math::LineSegment2d > > &obstacles_linesegments_vec, GridAStartResult *result)