42 const Eigen::MatrixXd& constraint_boundary);
44 const Eigen::MatrixXd& constraint_boundary);
52 bool AddBoundary(
const std::vector<double>& x_coord,
53 const std::vector<double>& lower_bound,
54 const std::vector<double>& upper_bound);
57 const std::vector<double>& lower_bound,
58 const std::vector<double>& upper_bound);
61 const std::vector<double>& lower_bound,
62 const std::vector<double>& upper_bound);
65 const std::vector<double>& lower_bound,
66 const std::vector<double>& upper_bound);
116 uint32_t FindIndex(
const double x)
const;
118 bool FilterConstraints(
const std::vector<double>& x_coord,
119 const std::vector<double>& lower_bound,
120 const std::vector<double>& upper_bound,
121 std::vector<double>*
const filtered_lower_bound_x,
122 std::vector<double>*
const filtered_lower_bound,
123 std::vector<double>*
const filtered_upper_bound_x,
124 std::vector<double>*
const filtered_upper_bound);
125 void GeneratePowerX(
const double x,
const uint32_t order,
126 std::vector<double>*
const power_x)
const;
128 using AddConstraintInRangeFunc =
129 std::function<bool(const std::vector<double>&,
const std::vector<double>&,
130 const std::vector<double>&)>;
131 bool AddConstraintInRange(AddConstraintInRangeFunc
func,
const double x,
132 const double val,
const double range);
137 std::vector<double> x_knots_;
138 uint32_t spline_order_;
bool AddPointSecondDerivativeConstraint(const double x, const double ddfx)
void(* func)(void *)
Definition: routine_context.h:41
bool AddSecondDerivativeBoundary(const std::vector< double > &x_coord, const std::vector< double > &lower_bound, const std::vector< double > &upper_bound)
const AffineConstraint & equality_constraint() const
bool AddEqualityConstraint(const Eigen::MatrixXd &constraint_matrix, const Eigen::MatrixXd &constraint_boundary)
bool AddBoundary(const std::vector< double > &x_coord, const std::vector< double > &lower_bound, const std::vector< double > &upper_bound)
: inequality boundary constraints if no boundary, do specify either by std::infinity or let vector...
PlanningContext is the runtime context in planning. It is persistent across multiple frames...
Definition: atomic_hash_map.h:25
bool AddDerivativeBoundary(const std::vector< double > &x_coord, const std::vector< double > &lower_bound, const std::vector< double > &upper_bound)
bool AddThirdDerivativeSmoothConstraint()
bool AddPointThirdDerivativeConstraint(const double x, const double dddfx)
Planning module main class. It processes GPS and IMU as input, to generate planning info...
bool AddInequalityConstraint(const Eigen::MatrixXd &constraint_matrix, const Eigen::MatrixXd &constraint_boundary)
bool AddDerivativeSmoothConstraint()
bool AddPointConstraintInRange(const double x, const double fx, const double range)
Spline1dConstraint(const Spline1d &pss)
bool AddThirdDerivativeBoundary(const std::vector< double > &x_coord, const std::vector< double > &lower_bound, const std::vector< double > &upper_bound)
bool AddSmoothConstraint()
bool AddPointConstraint(const double x, const double fx)
: equality constraint to guarantee joint smoothness boundary equality constriant constraint on fx...
bool AddPointDerivativeConstraint(const double x, const double dfx)
bool AddPointThirdDerivativeConstraintInRange(const double x, const double dddfx, const double range)
Definition: affine_constraint.h:29
const AffineConstraint & inequality_constraint() const
: output interface inequality constraint
Definition: spline_1d.h:40
bool AddMonotoneInequalityConstraint(const std::vector< double > &x_coord)
: Add monotone constraint inequality, guarantee the monotone city at evaluated point. customized monotone inequality constraint at x_coord
Definition: spline_1d_constraint.h:35
bool AddSecondDerivativeSmoothConstraint()
: piecewise smoothing spline class
bool AddPointSecondDerivativeConstraintInRange(const double x, const double ddfx, const double range)
bool AddMonotoneInequalityConstraintAtKnots()
bool AddPointDerivativeConstraintInRange(const double x, const double dfx, const double range)