|
enum | { PolynomeBasis = _PolynomeBasis,
Order = _Order,
NbCoeffs = _Order + 1,
NbPowerOfT = 2 * NbCoeffs + 1
} |
|
typedef internal::sbf_traits< PolynomeBasis, Order > | sbf_traits |
|
typedef internal::spline_basis_function< PolynomeBasis, Order > | BasisFunction_t |
|
typedef Eigen::Matrix< value_type, NbPowerOfT, 1 > | PowersOfT_t |
|
typedef sbf_traits::Coeffs_t | BasisFunctionVector_t |
|
typedef sbf_traits::IntegralCoeffs_t | BasisFunctionIntegralMatrix_t |
|
typedef Eigen::Matrix< value_type, NbCoeffs, Eigen::Dynamic, Eigen::RowMajor > | ParameterMatrix_t |
|
typedef Eigen::Map< const vector_t, Eigen::Aligned > | ConstParameterVector_t |
|
typedef Eigen::Map< vector_t, Eigen::Aligned > | ParameterVector_t |
|
typedef shared_ptr< Spline > | Ptr_t |
|
typedef weak_ptr< Spline > | WkPtr_t |
|
|
size_type | parameterSize () const |
|
void | parameterDerivativeCoefficients (vectorOut_t res, const value_type &t) const |
|
void | parameterIntegrate (vectorIn_t dParam) |
| Adds dParam to the parameters. More...
|
|
value_type | squaredNormIntegral (const size_type order) const |
|
void | squaredNormIntegralDerivative (const size_type order, vectorOut_t res) const |
|
void | basisFunctionDerivative (const size_type order, const value_type &u, BasisFunctionVector_t &res) const |
|
void | basisFunctionDerivative (const size_type order, const value_type &u, vectorOut_t res) const |
|
void | maxVelocity (vectorOut_t res) const |
|
void | squaredNormBasisFunctionIntegral (const size_type order, BasisFunctionIntegralMatrix_t &res) const |
|
void | squaredNormBasisFunctionIntegral (const size_type order, matrixOut_t res) const |
|
virtual Configuration_t | initial () const |
|
virtual Configuration_t | end () const |
|
const Configuration_t & | base () const |
|
void | base (const Configuration_t &q) |
|
const ParameterMatrix_t & | parameters () const |
| Each row corresponds to a velocity of the robot. More...
|
|
void | parameters (const ParameterMatrix_t &m) |
|
ConstParameterVector_t | rowParameters () const |
| Concatenate the parameters as one vector (P_0^T, ..., P_n^T). More...
|
|
void | rowParameters (vectorIn_t p) |
| Set the parameters. More...
|
|
PathPtr_t | copy () const |
|
PathPtr_t | copy (const ConstraintSetPtr_t &constraints) const |
|
virtual | ~Spline () |
|
template<int _PolynomeBasis, int _Order>
class hpp::core::path::Spline< _PolynomeBasis, _Order >
Base class for spline paths
Splines are polynomials with various possible representations.
- Parameters
-
_PolynomeBasis | basis of polynomials used among
- CanonicalPolynomeBasis for the canonical basis,
- BernsteinBasis for Bernstein basis
|
_Order | degree of the polynomial representation. |
- See also
- hpp::core::path::PolynomeBasisType.
Splines represent a curve in the tangent space of a given robot (hpp::core::Device) at a configuration called base.
\begin{eqnarray*} spline (u) &=& base + PM^{T} B (u) \end{eqnarray*}
where*
- \(u\in [0,1]\),
- operator "+" should be understood as Lie group integration,
- \(PM\) is the matrix of parameters the rows of which are the spline control points. This matrix is accessible via setter and getter Spline::parameters,
- \(B (t)\) is the vector containing the values of the basis functions at parameter \(t\).
The dimension of control points, corresponding to the robot number of degrees of freedom can be retrieved by getter Spline::parameterSize.
- Warning
- Velocities for robots with non-vector configuration space are not correctly handled.
template<int _PolynomeBasis, int _Order>
The partial derivative with respects to the parameters is of the form
\begin{eqnarray*} \frac{\partial S}{\partial p_{k}} (q, p, t) &=& B_k(t) \times I \\ \frac{\partial S}{\partial q_{base}} (q, p, t) &=& I \end{eqnarray*}
This method returns the coefficients \( (B_k(t))_{k} \)