#include <curves/bezier_curve.h>
|
| bezier_curve () |
| Empty constructor. More...
|
|
template<typename In > |
| bezier_curve (In PointsBegin, In PointsEnd, const time_t T_min=0., const time_t T_max=1., const time_t mult_T=1.) |
| Constructor. More...
|
|
template<typename In > |
| bezier_curve (In PointsBegin, In PointsEnd, const curve_constraints_t &constraints, const time_t T_min=0., const time_t T_max=1., const time_t mult_T=1.) |
| Constructor This constructor will add 4 points (2 after the first one, 2 before the last one) to ensure that velocity and acceleration constraints are respected. More...
|
|
| bezier_curve (const bezier_curve &other) |
|
| ~bezier_curve () |
| Destructor. More...
|
|
virtual point_t | operator() (const time_t t) const |
| Evaluation of the bezier curve at time t. More...
|
|
bezier_curve_t | compute_derivate (const std::size_t order) const |
| Compute the derived curve at order N. More...
|
|
bezier_curve_t | compute_primitive (const std::size_t order) const |
| Compute the primitive of the curve at order N. More...
|
|
virtual point_t | derivate (const time_t t, const std::size_t order) const |
| Evaluate the derivative order N of curve at time t. More...
|
|
point_t | evalBernstein (const Numeric t) const |
| Evaluate all Bernstein polynomes for a certain degree. More...
|
|
| curve_abc () |
| Constructor. More...
|
|
virtual | ~curve_abc () |
| Destructor. More...
|
|
virtual std::size_t | dim () const =0 |
| Get dimension of curve. More...
|
|
virtual time_t | min () const =0 |
| Get the minimum time for which the curve is defined. More...
|
|
virtual time_t | max () const =0 |
| Get the maximum time for which the curve is defined. More...
|
|
std::pair< time_t, time_t > | timeRange () |
|
template<class Archive > |
void | serialize (Archive &ar, const unsigned int version) |
|
◆ bezier_curve_t
template<typename Time = double, typename Numeric = Time, bool Safe = false, typename Point = Eigen::Matrix<Numeric, Eigen::Dynamic, 1>>
◆ cit_point_t
template<typename Time = double, typename Numeric = Time, bool Safe = false, typename Point = Eigen::Matrix<Numeric, Eigen::Dynamic, 1>>
◆ curve_constraints_t
template<typename Time = double, typename Numeric = Time, bool Safe = false, typename Point = Eigen::Matrix<Numeric, Eigen::Dynamic, 1>>
◆ num_t
template<typename Time = double, typename Numeric = Time, bool Safe = false, typename Point = Eigen::Matrix<Numeric, Eigen::Dynamic, 1>>
◆ point_t
template<typename Time = double, typename Numeric = Time, bool Safe = false, typename Point = Eigen::Matrix<Numeric, Eigen::Dynamic, 1>>
◆ t_point_t
template<typename Time = double, typename Numeric = Time, bool Safe = false, typename Point = Eigen::Matrix<Numeric, Eigen::Dynamic, 1>>
◆ time_t
template<typename Time = double, typename Numeric = Time, bool Safe = false, typename Point = Eigen::Matrix<Numeric, Eigen::Dynamic, 1>>
◆ bezier_curve() [1/4]
template<typename Time = double, typename Numeric = Time, bool Safe = false, typename Point = Eigen::Matrix<Numeric, Eigen::Dynamic, 1>>
Empty constructor.
Curve obtained this way can not perform other class functions.
◆ bezier_curve() [2/4]
template<typename Time = double, typename Numeric = Time, bool Safe = false, typename Point = Eigen::Matrix<Numeric, Eigen::Dynamic, 1>>
template<typename In >
Constructor.
Given the first and last point of a control points set, create the bezier curve.
- Parameters
-
PointsBegin | : an iterator pointing to the first element of a control point container. |
PointsEnd | : an iterator pointing to the last element of a control point container. |
T | : upper bound of time which is between (default ). |
mult_T | : ... (default value is 1.0). |
◆ bezier_curve() [3/4]
template<typename Time = double, typename Numeric = Time, bool Safe = false, typename Point = Eigen::Matrix<Numeric, Eigen::Dynamic, 1>>
template<typename In >
Constructor This constructor will add 4 points (2 after the first one, 2 before the last one) to ensure that velocity and acceleration constraints are respected.
- Parameters
-
PointsBegin | : an iterator pointing to the first element of a control point container. |
PointsEnd | : an iterator pointing to the last element of a control point container. |
constraints | : constraints applying on start / end velocities and acceleration. |
◆ bezier_curve() [4/4]
template<typename Time = double, typename Numeric = Time, bool Safe = false, typename Point = Eigen::Matrix<Numeric, Eigen::Dynamic, 1>>
◆ ~bezier_curve()
template<typename Time = double, typename Numeric = Time, bool Safe = false, typename Point = Eigen::Matrix<Numeric, Eigen::Dynamic, 1>>
◆ compute_derivate()
template<typename Time = double, typename Numeric = Time, bool Safe = false, typename Point = Eigen::Matrix<Numeric, Eigen::Dynamic, 1>>
◆ compute_primitive()
template<typename Time = double, typename Numeric = Time, bool Safe = false, typename Point = Eigen::Matrix<Numeric, Eigen::Dynamic, 1>>
◆ derivate()
template<typename Time = double, typename Numeric = Time, bool Safe = false, typename Point = Eigen::Matrix<Numeric, Eigen::Dynamic, 1>>
◆ evalBernstein()
template<typename Time = double, typename Numeric = Time, bool Safe = false, typename Point = Eigen::Matrix<Numeric, Eigen::Dynamic, 1>>
Evaluate all Bernstein polynomes for a certain degree.
A bezier curve with N control points is represented by :
with
.
Warning: the horner scheme is about 100 times faster than this method.
This method will probably be removed in the future as the computation of bernstein polynomial is very costly.
- Parameters
-
t | : time when to evaluate the curve. |
- Returns
point corresponding on curve at time t.
References curves::curve_abc< Time, Numeric, Safe, Point >::dim(), curves::curve_constraints< Point >::end_acc, curves::curve_constraints< Point >::end_vel, curves::curve_constraints< Point >::init_acc, curves::curve_constraints< Point >::init_vel, curves::curve_abc< Time, Numeric, Safe, Point >::max(), curves::curve_abc< Time, Numeric, Safe, Point >::min(), and curves::curve_abc< Time, Numeric, Safe, Point >::serialize().
◆ operator()()
template<typename Time = double, typename Numeric = Time, bool Safe = false, typename Point = Eigen::Matrix<Numeric, Eigen::Dynamic, 1>>