hpp::core::path::Hermite Class Reference

#include <hpp/core/path/hermite.hh>

Inheritance diagram for hpp::core::path::Hermite:
[legend]
Collaboration diagram for hpp::core::path::Hermite:
[legend]

Public Types

typedef Spline< BernsteinBasis, 3 > parent_t
 
- Public Types inherited from hpp::core::path::Spline< BernsteinBasis, 3 >
enum  
 
typedef internal::sbf_traits< PolynomeBasis, Ordersbf_traits
 
typedef internal::spline_basis_function< PolynomeBasis, OrderBasisFunction_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 boost::shared_ptr< SplinePtr_t
 
typedef boost::weak_ptr< SplineWkPtr_t
 

Public Member Functions

virtual ~Hermite () throw ()
 Destructor. More...
 
virtual PathPtr_t copy () const
 Return a shared pointer to this. More...
 
virtual PathPtr_t copy (const ConstraintSetPtr_t &constraints) const
 Return a shared pointer to a copy of this and set constraints. More...
 
DevicePtr_t device () const
 Return the internal robot. More...
 
void v0 (const vectorIn_t &speed)
 
void v1 (const vectorIn_t &speed)
 
vector_t v0 () const
 
vector_t v1 () const
 
virtual Configuration_t initial () const
 Get the initial configuration. More...
 
virtual Configuration_t end () const
 Get the final configuration. More...
 
const value_typehermiteLength () const
 
void computeHermiteLength ()
 
vector_t velocity (const value_type &t) const
 
- Public Member Functions inherited from hpp::core::path::Spline< BernsteinBasis, 3 >
size_type parameterSize () const
 
void parameterDerivativeCoefficients (vectorOut_t res, const value_type &t) const
 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} \). More...

 
void parameterIntegrate (vectorIn_t dParam)
 Adds dParam to the parameters. More...
 
value_type squaredNormIntegral (const size_type order) const
 Returns \( \int S^{(k)}(t)^T \times S^{(k)}(t) dt \). More...
 
void squaredNormIntegralDerivative (const size_type order, vectorOut_t res) const
 Returns the derivative of squaredNormIntegral wrt the parameters. More...
 
void 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) \]

. More...

 
void basisFunctionDerivative (const size_type order, const value_type &u, vectorOut_t res) const
 
void maxVelocity (vectorOut_t res) const
 Returns an upper bound of the velocity on the complete interval. More...
 
void 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 \]

. More...

 
void squaredNormBasisFunctionIntegral (const size_type order, matrixOut_t res) const
 
const Configuration_tbase () const
 Get the base configuration. More...
 
void base (const Configuration_t &q)
 
const ParameterMatrix_tparameters () const
 Each row corresponds to a velocity of the robot. More...
 
void parameters (const ParameterMatrix_t &m)
 Returns the \( (P_i^T) \). More...
 
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
 Return a shared pointer to a copy of this. More...
 
PathPtr_t copy (const ConstraintSetPtr_t &constraints) const
 Return a shared pointer to a copy of this and set constraints. More...
 
virtual ~Spline () throw ()
 
- Public Member Functions inherited from hpp::core::Path
virtual ~Path () throw ()
 Destructor. More...
 
template<class T >
boost::shared_ptr< T > as (void)
 Static cast into a derived type. More...
 
template<class T >
boost::shared_ptr< const T > as (void) const
 Static cast into a derived type. More...
 
PathPtr_t extract (const interval_t &subInterval) const throw (projection_error)
 
PathPtr_t extract (const value_type &tmin, const value_type &tmax) const throw (projection_error)
 
virtual PathPtr_t reverse () const
 Reversion of a path. More...
 
Configuration_t operator() (const value_type &time) const HPP_CORE_DEPRECATED
 
Configuration_t operator() (const value_type &time, bool &success) const
 
bool operator() (ConfigurationOut_t result, const value_type &time) const throw ()
 
Configuration_t eval (const value_type &time, bool &success) const
 
bool eval (ConfigurationOut_t result, const value_type &time) const throw ()
 
bool at (const value_type &time, ConfigurationOut_t result) const
 Get the configuration at a parameter without applying the constraints. More...
 
void derivative (vectorOut_t result, const value_type &time, size_type order) const
 Get derivative with respect to parameter at given parameter. More...
 
void velocityBound (vectorOut_t result, const value_type &t0, const value_type &t1) const
 Get an upper bound of the velocity on a sub-interval. More...
 
size_type outputSize () const
 Get size of configuration space. More...
 
size_type outputDerivativeSize () const
 Get size of velocity. More...
 
const interval_ttimeRange () const
 Get interval of definition. More...
 
virtual value_type length () const
 Get length of definition interval. More...
 
const ConstraintSetPtr_tconstraints () const
 Get constraints the path is subject to. More...
 
const interval_tparamRange () const
 Get interval of parameters. More...
 
void timeParameterization (const TimeParameterizationPtr_t &tp, const interval_t &tr)
 Set the time parameterization function. More...
 

Static Public Member Functions

static HermitePtr_t create (const DevicePtr_t &device, ConfigurationIn_t init, ConfigurationIn_t end, ConstraintSetPtr_t constraints)
 
static HermitePtr_t createCopy (const HermitePtr_t &path)
 Create copy and return shared pointer. More...
 
static HermitePtr_t createCopy (const HermitePtr_t &path, const ConstraintSetPtr_t &constraints)
 Create copy and return shared pointer. More...
 
- Static Public Member Functions inherited from hpp::core::path::Spline< BernsteinBasis, 3 >
static void timeFreeBasisFunctionDerivative (const size_type order, const value_type &u, BasisFunctionVector_t &res)
 Returns a vector \( (v_i) \) as

\[ v_i = b_i^{(k)}(u) \]

. More...

 
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)
 Evaluate a spline. More...
 

Protected Member Functions

virtual std::ostream & print (std::ostream &os) const
 Print path in a stream. More...
 
 Hermite (const DevicePtr_t &robot, ConfigurationIn_t init, ConfigurationIn_t end)
 Constructor. More...
 
 Hermite (const DevicePtr_t &robot, ConfigurationIn_t init, ConfigurationIn_t end, ConstraintSetPtr_t constraints)
 Constructor with constraints. More...
 
 Hermite (const Hermite &path)
 Copy constructor. More...
 
 Hermite (const Hermite &path, const ConstraintSetPtr_t &constraints)
 Copy constructor with constraints. More...
 
void init (HermitePtr_t self)
 
- Protected Member Functions inherited from hpp::core::path::Spline< BernsteinBasis, 3 >
 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
 Print interval of definition (and of parameters if relevant) in a stream. More...
 
bool impl_compute (ConfigurationOut_t configuration, value_type t) const
 Function evaluation without applying constraints. More...
 
void impl_derivative (vectorOut_t res, const value_type &t, size_type order) const
 Virtual implementation of derivative. More...
 
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
 Virtual implementation of velocityBound. More...
 
- Protected Member Functions inherited from hpp::core::Path
 Path (const interval_t &interval, size_type outputSize, size_type outputDerivativeSize, const ConstraintSetPtr_t &constraints)
 Constructor. More...
 
 Path (const interval_t &interval, size_type outputSize, size_type outputDerivativeSize)
 Constructor. More...
 
 Path (const Path &path)
 Copy constructor. More...
 
 Path (const Path &path, const ConstraintSetPtr_t &constraints)
 Copy constructor with constraints. More...
 
void init (const PathWkPtr_t &self)
 Store weak pointer to itself. More...
 
void constraints (const ConstraintSetPtr_t &constraint)
 Set the constraints. More...
 
virtual void checkPath () const
 Should be called by child classes after having init. More...
 
void timeRange (const interval_t &timeRange)
 
const TimeParameterizationPtr_ttimeParameterization () const
 
value_type paramLength () const
 
Configuration_t configAtParam (const value_type &param, bool &success) const
 
virtual PathPtr_t impl_extract (const interval_t &paramInterval) const throw (projection_error)
 Virtual implementation of extract. More...
 

Additional Inherited Members

- Protected Attributes inherited from hpp::core::path::Spline< BernsteinBasis, 3 >
size_type parameterSize_
 Robot number of degrees of freedom. More...
 
DevicePtr_t robot_
 
LiegroupElement base_
 Base of the spline path. More...
 
ParameterMatrix_t parameters_
 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. More...
 
- Protected Attributes inherited from hpp::core::Path
interval_t paramRange_
 Interval of parameters. More...
 

Member Typedef Documentation

◆ parent_t

Constructor & Destructor Documentation

◆ ~Hermite()

virtual hpp::core::path::Hermite::~Hermite ( )
throw (
)
inlinevirtual

Destructor.

◆ Hermite() [1/4]

hpp::core::path::Hermite::Hermite ( const DevicePtr_t robot,
ConfigurationIn_t  init,
ConfigurationIn_t  end 
)
protected

Constructor.

◆ Hermite() [2/4]

hpp::core::path::Hermite::Hermite ( const DevicePtr_t robot,
ConfigurationIn_t  init,
ConfigurationIn_t  end,
ConstraintSetPtr_t  constraints 
)
protected

Constructor with constraints.

◆ Hermite() [3/4]

hpp::core::path::Hermite::Hermite ( const Hermite path)
protected

Copy constructor.

◆ Hermite() [4/4]

hpp::core::path::Hermite::Hermite ( const Hermite path,
const ConstraintSetPtr_t constraints 
)
protected

Copy constructor with constraints.

Member Function Documentation

◆ computeHermiteLength()

void hpp::core::path::Hermite::computeHermiteLength ( )

◆ copy() [1/2]

virtual PathPtr_t hpp::core::path::Hermite::copy ( ) const
inlinevirtual

Return a shared pointer to this.

As StaightPath are immutable, and refered to by shared pointers, they do not need to be copied.

Implements hpp::core::Path.

◆ copy() [2/2]

virtual PathPtr_t hpp::core::path::Hermite::copy ( const ConstraintSetPtr_t constraints) const
inlinevirtual

Return a shared pointer to a copy of this and set constraints.

Parameters
constraintsconstraints to apply to the copy
Precondition
*this should not have constraints.

Implements hpp::core::Path.

◆ create()

static HermitePtr_t hpp::core::path::Hermite::create ( const DevicePtr_t device,
ConfigurationIn_t  init,
ConfigurationIn_t  end,
ConstraintSetPtr_t  constraints 
)
inlinestatic

◆ createCopy() [1/2]

static HermitePtr_t hpp::core::path::Hermite::createCopy ( const HermitePtr_t path)
inlinestatic

Create copy and return shared pointer.

Parameters
pathpath to copy

References init().

◆ createCopy() [2/2]

static HermitePtr_t hpp::core::path::Hermite::createCopy ( const HermitePtr_t path,
const ConstraintSetPtr_t constraints 
)
inlinestatic

Create copy and return shared pointer.

Parameters
pathpath to copy
constraintsthe path is subject to

References init().

◆ device()

DevicePtr_t hpp::core::path::Hermite::device ( ) const

Return the internal robot.

◆ end()

virtual Configuration_t hpp::core::path::Hermite::end ( ) const
inlinevirtual

Get the final configuration.

Reimplemented from hpp::core::path::Spline< BernsteinBasis, 3 >.

◆ hermiteLength()

const value_type& hpp::core::path::Hermite::hermiteLength ( ) const
inline

◆ init()

void hpp::core::path::Hermite::init ( HermitePtr_t  self)
protected

Referenced by create(), and createCopy().

◆ initial()

virtual Configuration_t hpp::core::path::Hermite::initial ( ) const
inlinevirtual

Get the initial configuration.

Reimplemented from hpp::core::path::Spline< BernsteinBasis, 3 >.

◆ print()

virtual std::ostream& hpp::core::path::Hermite::print ( std::ostream &  os) const
inlineprotectedvirtual

Print path in a stream.

Reimplemented from hpp::core::Path.

References hpp::core::Path::print().

◆ v0() [1/2]

void hpp::core::path::Hermite::v0 ( const vectorIn_t speed)
inline

◆ v0() [2/2]

vector_t hpp::core::path::Hermite::v0 ( ) const
inline

◆ v1() [1/2]

void hpp::core::path::Hermite::v1 ( const vectorIn_t speed)
inline

◆ v1() [2/2]

vector_t hpp::core::path::Hermite::v1 ( ) const
inline

◆ velocity()

vector_t hpp::core::path::Hermite::velocity ( const value_type t) const