37 const double max_deceleration = -FLAGS_longitudinal_acceleration_lower_bound;
38 t_at_zero_speed_ = v / max_deceleration;
39 s_at_zero_speed_ = init_s[0] + v * v / (2.0 * max_deceleration);
44 return init_s_[0] + init_s_[1] * t +
45 0.5 * FLAGS_longitudinal_acceleration_upper_bound * t * t;
49 if (t < t_at_zero_speed_) {
50 return init_s_[0] + init_s_[1] * t +
51 0.5 * FLAGS_longitudinal_acceleration_lower_bound * t * t;
53 return s_at_zero_speed_;
57 return init_s_[1] + FLAGS_longitudinal_acceleration_upper_bound * t;
61 return t < t_at_zero_speed_
62 ? init_s_[1] + FLAGS_longitudinal_acceleration_lower_bound * t
69 double delta_s = s - init_s_[0];
70 double v = init_s_[1];
71 double a = FLAGS_longitudinal_acceleration_upper_bound;
72 double t = (std::sqrt(v * v + 2.0 * a * delta_s) - v) / a;
double VLower(const double t) const
double TLower(const double s) const
double SLower(const double t) const
FeasibleRegion(const std::array< double, 3 > &init_s)
double SUpper(const double t) const
double VUpper(const double t) const
Planning module main class.