40 const double t)
const {
41 std::pair<double, double> dynamic_limits;
43 double dec_time = lower_v0_ / max_dec_;
44 if (t - lower_t0_ < dec_time) {
45 dynamic_limits.first =
46 lower_s0_ + (lower_v0_ - max_dec_ * (t - lower_t0_) + lower_v0_) *
47 (t - lower_t0_) * 0.5;
49 dynamic_limits.first = lower_s0_ + (lower_v0_ * dec_time) * 0.5;
53 double acc_time = (max_v_ - upper_v0_) / max_acc_;
54 if (t - upper_t0_ < acc_time) {
55 dynamic_limits.second =
56 upper_s0_ + (upper_v0_ + max_acc_ * (t - upper_t0_) + upper_v0_) *
57 (t - upper_t0_) * 0.5;
59 dynamic_limits.second = upper_s0_ + (upper_v0_ + max_v_) * acc_time * 0.5 +
60 (t - upper_t0_ - acc_time) * max_v_;
63 return dynamic_limits;
void UpdateBlockingInfo(const double t, const double lower_s, const double lower_v, const double upper_s, const double upper_v)
Update the anchoring of the vehicle dynamics limits.