43 const Eigen::MatrixXd& constraint_boundary);
45 const Eigen::MatrixXd& constraint_boundary);
53 bool AddBoundary(
const std::vector<double>& x_coord,
54 const std::vector<double>& lower_bound,
55 const std::vector<double>& upper_bound);
58 const std::vector<double>& lower_bound,
59 const std::vector<double>& upper_bound);
62 const std::vector<double>& lower_bound,
63 const std::vector<double>& upper_bound);
66 const std::vector<double>& lower_bound,
67 const std::vector<double>& upper_bound);
117 uint32_t FindIndex(
const double x)
const;
119 bool FilterConstraints(
const std::vector<double>& x_coord,
120 const std::vector<double>& lower_bound,
121 const std::vector<double>& upper_bound,
122 std::vector<double>*
const filtered_lower_bound_x,
123 std::vector<double>*
const filtered_lower_bound,
124 std::vector<double>*
const filtered_upper_bound_x,
125 std::vector<double>*
const filtered_upper_bound);
126 void GeneratePowerX(
const double x,
const uint32_t order,
127 std::vector<double>*
const power_x)
const;
129 using AddConstraintInRangeFunc =
130 std::function<bool(
const std::vector<double>&,
const std::vector<double>&,
131 const std::vector<double>&)>;
132 bool AddConstraintInRange(AddConstraintInRangeFunc func,
const double x,
133 const double val,
const double range);
138 std::vector<double> x_knots_;
139 uint32_t spline_order_;
bool AddPointSecondDerivativeConstraint(const double x, const double ddfx)
bool AddDerivativeBoundary(const std::vector< double > &x_coord, const std::vector< double > &lower_bound, const std::vector< double > &upper_bound)
bool AddPointThirdDerivativeConstraintInRange(const double x, const double dddfx, const double range)
bool AddThirdDerivativeSmoothConstraint()
const AffineConstraint & equality_constraint() const
bool AddMonotoneInequalityConstraintAtKnots()
bool AddSecondDerivativeSmoothConstraint()
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....
bool AddEqualityConstraint(const Eigen::MatrixXd &constraint_matrix, const Eigen::MatrixXd &constraint_boundary)
bool AddThirdDerivativeBoundary(const std::vector< double > &x_coord, const std::vector< double > &lower_bound, const std::vector< double > &upper_bound)
bool AddPointDerivativeConstraint(const double x, const double dfx)
const AffineConstraint & inequality_constraint() const
: output interface inequality constraint
bool AddInequalityConstraint(const Eigen::MatrixXd &constraint_matrix, const Eigen::MatrixXd &constraint_boundary)
bool AddMonotoneInequalityConstraint(const std::vector< double > &x_coord)
: Add monotone constraint inequality, guarantee the monotone city at evaluated point.
bool AddDerivativeSmoothConstraint()
bool AddSecondDerivativeBoundary(const std::vector< double > &x_coord, const std::vector< double > &lower_bound, const std::vector< double > &upper_bound)
bool AddSmoothConstraint()
bool AddPointSecondDerivativeConstraintInRange(const double x, const double ddfx, const double range)
bool AddPointDerivativeConstraintInRange(const double x, const double dfx, const double range)
bool AddPointThirdDerivativeConstraint(const double x, const double dddfx)
bool AddPointConstraintInRange(const double x, const double fx, const double range)
bool AddPointConstraint(const double x, const double fx)
: equality constraint to guarantee joint smoothness boundary equality constriant constraint on fx,...
Planning module main class.
: piecewise smoothing spline class