50 bool Smooth(
const Eigen::MatrixXd& xWS,
const double init_a,
52 const std::vector<std::vector<common::math::Vec2d>>&
53 obstacles_vertices_vec,
57 void AdjustStartEndHeading(
58 const Eigen::MatrixXd& xWS,
59 std::vector<std::pair<double, double>>*
const point2d);
61 bool ReAnchoring(
const std::vector<size_t>& colliding_point_index,
65 std::vector<double>* initial_bounds);
68 std::vector<size_t>* colliding_point_index);
70 void AdjustPathBounds(
const std::vector<size_t>& colliding_point_index,
71 std::vector<double>* bounds);
73 bool SetPathProfile(
const std::vector<std::pair<double, double>>& point2d,
76 bool CheckGear(
const Eigen::MatrixXd& xWS);
78 bool SmoothSpeed(
const double init_a,
const double init_v,
79 const double path_length,
SpeedData* smoothed_speeds);
87 bool GenerateStopProfileFromPolynomial(
const double init_acc,
88 const double init_speed,
89 const double stop_distance,
95 double CalcHeadings(
const DiscretizedPath& path_points,
const size_t index);
99 double ego_length_ = 0.0;
100 double ego_width_ = 0.0;
101 double center_shift_distance_ = 0.0;
103 std::vector<std::vector<common::math::LineSegment2d>>
104 obstacles_linesegments_vec_;
106 std::vector<size_t> input_colliding_point_index_;
108 bool enforce_initial_kappa_ =
true;
120 std::vector<std::vector<common::math::Vec2d>>
box_vec_;
121 std::vector<std::vector<std::vector<common::math::Vec2d>>>
box_vec_vec_;
128 const std::vector<double>& bounds,
130 std::vector<std::vector<common::math::Vec2d>> point_box = {});