hpp-core
4.11.0
Implement basic classes for canonical path planning for kinematic chains.
|
#include <hpp/core/fwd.hh>
Public Types | |
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 |
Static Public Member Functions | |
static void | timeFreeBasisFunctionDerivative (const size_type order, const value_type &u, BasisFunctionVector_t &res) |
static void | timeFreeBasisFunctionDerivative (const size_type order, const value_type &u, vectorOut_t res) |
static Ptr_t | create (const DevicePtr_t &robot, const interval_t &interval, const ConstraintSetPtr_t &constraints) |
static void | value (pinocchio::LiegroupElementConstRef base, Eigen::Ref< const ParameterMatrix_t > params, const value_type &u, ConfigurationOut_t config, vectorOut_t velocity) |
Protected Member Functions | |
Spline (const DevicePtr_t &robot, const interval_t &interval, const ConstraintSetPtr_t &constraints) | |
Spline (const Spline &path) | |
Spline (const Spline &path, const ConstraintSetPtr_t &constraints) | |
void | init (const Ptr_t &self) |
std::ostream & | print (std::ostream &os) const |
bool | impl_compute (ConfigurationOut_t configuration, value_type t) const |
void | impl_derivative (vectorOut_t res, const value_type &t, size_type order) const |
void | impl_paramDerivative (vectorOut_t res, const value_type &t) const |
void | impl_paramIntegrate (vectorIn_t dParam) |
void | impl_velocityBound (vectorOut_t result, const value_type &t0, const value_type &t1) const |
Protected Attributes | |
size_type | parameterSize_ |
Robot number of degrees of freedom. More... | |
DevicePtr_t | robot_ |
LiegroupElement | base_ |
ParameterMatrix_t | parameters_ |
Base class for spline paths
Splines are polynomials with various possible representations.
_PolynomeBasis | basis of polynomials used among
|
_Order | degree of the polynomial representation. |
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*
The dimension of control points, corresponding to the robot number of degrees of freedom can be retrieved by getter Spline::parameterSize.
typedef internal::spline_basis_function<PolynomeBasis, Order> hpp::core::path::Spline< _PolynomeBasis, _Order >::BasisFunction_t |
typedef sbf_traits::IntegralCoeffs_t hpp::core::path::Spline< _PolynomeBasis, _Order >::BasisFunctionIntegralMatrix_t |
typedef sbf_traits::Coeffs_t hpp::core::path::Spline< _PolynomeBasis, _Order >::BasisFunctionVector_t |
typedef Eigen::Map<const vector_t, Eigen::Aligned> hpp::core::path::Spline< _PolynomeBasis, _Order >::ConstParameterVector_t |
typedef Eigen::Matrix<value_type, NbCoeffs, Eigen::Dynamic, Eigen::RowMajor> hpp::core::path::Spline< _PolynomeBasis, _Order >::ParameterMatrix_t |
typedef Eigen::Map< vector_t, Eigen::Aligned> hpp::core::path::Spline< _PolynomeBasis, _Order >::ParameterVector_t |
typedef Eigen::Matrix<value_type, NbPowerOfT, 1> hpp::core::path::Spline< _PolynomeBasis, _Order >::PowersOfT_t |
typedef shared_ptr<Spline> hpp::core::path::Spline< _PolynomeBasis, _Order >::Ptr_t |
typedef internal::sbf_traits<PolynomeBasis, Order> hpp::core::path::Spline< _PolynomeBasis, _Order >::sbf_traits |
typedef weak_ptr<Spline> hpp::core::path::Spline< _PolynomeBasis, _Order >::WkPtr_t |
anonymous enum |
|
inlinevirtual |
|
inlineprotected |
|
protected |
|
protected |
|
inline |
Get the base configuration. The parameters are velocities to be integrated from this configuration.
|
inline |
void hpp::core::path::Spline< _PolynomeBasis, _Order >::basisFunctionDerivative | ( | const size_type | order, |
const value_type & | u, | ||
BasisFunctionVector_t & | res | ||
) | const |
Returns a vector \( (v_i) \) as
\[ v_i = T^{-k} b_i^{(k)}(u) \]
|
inline |
|
inline |
|
inline |
|
inlinestatic |
|
inlinevirtual |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
inlineprotected |
|
inlinevirtual |
void hpp::core::path::Spline< _PolynomeBasis, _Order >::maxVelocity | ( | vectorOut_t | res | ) | const |
Returns an upper bound of the velocity on the complete interval.
|
inline |
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} \)
|
inline |
Adds dParam to the parameters.
|
inline |
Each row corresponds to a velocity of the robot.
|
inline |
Returns the \( (P_i^T) \). Each row contains one parameter.
|
inline |
|
protected |
|
inline |
Concatenate the parameters as one vector (P_0^T, ..., P_n^T).
|
inline |
Set the parameters.
void hpp::core::path::Spline< _PolynomeBasis, _Order >::squaredNormBasisFunctionIntegral | ( | const size_type | order, |
BasisFunctionIntegralMatrix_t & | res | ||
) | const |
Returns a matrix \( (m_{i,j}) \) as
\[ m_{i,j} = T^{1-2k} \int_0^1 b_i^{(k)}(u) b_j^{(k)}(u) du \]
|
inline |
value_type hpp::core::path::Spline< _PolynomeBasis, _Order >::squaredNormIntegral | ( | const size_type | order | ) | const |
Returns \( \int S^{(k)}(t)^T \times S^{(k)}(t) dt \)
where k is the argument
void hpp::core::path::Spline< _PolynomeBasis, _Order >::squaredNormIntegralDerivative | ( | const size_type | order, |
vectorOut_t | res | ||
) | const |
Returns the derivative of squaredNormIntegral wrt the parameters.
\[ res(j) \gets 2 \sum_i P_i^T \times m_{i,j} \]
|
static |
Returns a vector \( (v_i) \) as
\[ v_i = b_i^{(k)}(u) \]
|
inlinestatic |
|
static |
Evaluate a spline.
base | the base configuration. |
params | concatenation of row vectors representing the velocity interpolation points. |
u | the ratio, between 0 and 1. |
config | the output configuration |
velocity | the interpolated velocity |
|
protected |
Base of the spline path. The spline is a curve in the tangent space of the robot at this configuration.
|
protected |
Parameters of the spline are stored in a matrix number of rows = degree of polynomial + 1 number of columns = robot number of degrees of freedom.
|
protected |
Robot number of degrees of freedom.
|
protected |