32 const double init_s,
const double init_v,
const double a)
33 : init_s_(init_s), init_v_(init_v), deceleration_(-a) {
34 if (init_v_ < -FLAGS_numerical_epsilon) {
35 AERROR <<
"negative init v = " << init_v_;
37 init_v_ = std::fabs(init_v_);
38 ACHECK(deceleration_ > 0.0);
39 end_t_ = init_v_ / deceleration_;
40 end_s_ = init_v_ * init_v_ / (2.0 * deceleration_) + init_s_;
43double ConstantDecelerationTrajectory1d::Evaluate_s(
const double t)
const {
45 double curr_v = init_v_ - deceleration_ * t;
46 double delta_s = (curr_v + init_v_) * t * 0.5;
47 return init_s_ + delta_s;
53double ConstantDecelerationTrajectory1d::Evaluate_v(
const double t)
const {
55 return init_v_ - deceleration_ * t;
61double ConstantDecelerationTrajectory1d::Evaluate_a(
const double t)
const {
63 return -deceleration_;
69double ConstantDecelerationTrajectory1d::Evaluate_j(
const double t)
const {
78 const double param)
const {
81 return Evaluate_s(param);
83 return Evaluate_v(param);
85 return Evaluate_a(param);
87 return Evaluate_j(param);
std::string ToString() const override
double ParamLength() const override
ConstantDecelerationTrajectory1d(const double init_s, const double init_v, const double a)
double Evaluate(const std::uint32_t order, const double param) const override
Planning module main class.