hpp::core::continuousValidation::IntervalValidation< ValidationReportTypePtr_t > Class Template Referenceabstract

Computation of collision-free sub-intervals of a path. More...

#include <hpp/core/continuous-validation/interval-validation.hh>

Public Member Functions

virtual bool validateConfiguration (const value_type &t, interval_t &interval, ValidationReportTypePtr_t &report, pinocchio::DeviceData &data)=0
 
void path (const PathPtr_t &path, bool reverse)
 Set path to validate. More...
 
PathConstPtr_t path () const
 Get path. More...
 
value_type tolerance () const
 
virtual std::string name () const =0
 
virtual std::ostream & print (std::ostream &os) const =0
 

Protected Types

typedef boost::icl::continuous_interval< value_typecontinuous_interval
 
typedef boost::icl::interval_set< value_typeinterval_set
 

Protected Member Functions

 IntervalValidation (value_type tolerance)
 Constructor of interval validation element. More...
 
 IntervalValidation (const IntervalValidation &other)
 

Protected Attributes

PathPtr_t path_
 
value_type tolerance_
 
bool reverse_
 
bool refine_
 
bool valid_
 
interval_set validInterval_
 

Detailed Description

template<typename ValidationReportTypePtr_t>
class hpp::core::continuousValidation::IntervalValidation< ValidationReportTypePtr_t >

Computation of collision-free sub-intervals of a path.

This class aims at validating a path for the absence of collision between two bodies of a robot.

The interval of definition of the path is successively covered by intervals where boths bodies are proved to be collision-free. Each interval is computed by bounding from above the velocity of all points of body 1 in the reference frame of body 2.

Member Typedef Documentation

◆ continuous_interval

template<typename ValidationReportTypePtr_t>
typedef boost::icl::continuous_interval<value_type> hpp::core::continuousValidation::IntervalValidation< ValidationReportTypePtr_t >::continuous_interval
protected

◆ interval_set

template<typename ValidationReportTypePtr_t>
typedef boost::icl::interval_set<value_type> hpp::core::continuousValidation::IntervalValidation< ValidationReportTypePtr_t >::interval_set
protected

Constructor & Destructor Documentation

◆ IntervalValidation() [1/2]

template<typename ValidationReportTypePtr_t>
hpp::core::continuousValidation::IntervalValidation< ValidationReportTypePtr_t >::IntervalValidation ( value_type  tolerance)
inlineprotected

Constructor of interval validation element.

Parameters
toleranceallowed penetration should be positive

◆ IntervalValidation() [2/2]

template<typename ValidationReportTypePtr_t>
hpp::core::continuousValidation::IntervalValidation< ValidationReportTypePtr_t >::IntervalValidation ( const IntervalValidation< ValidationReportTypePtr_t > &  other)
inlineprotected

Member Function Documentation

◆ name()

◆ path() [1/2]

template<typename ValidationReportTypePtr_t>
void hpp::core::continuousValidation::IntervalValidation< ValidationReportTypePtr_t >::path ( const PathPtr_t path,
bool  reverse 
)
inline

Set path to validate.

Parameters
pathpath to validate,
reversewhether path is validated from end to beginning.

◆ path() [2/2]

template<typename ValidationReportTypePtr_t>
PathConstPtr_t hpp::core::continuousValidation::IntervalValidation< ValidationReportTypePtr_t >::path ( ) const
inline

◆ print()

template<typename ValidationReportTypePtr_t>
virtual std::ostream& hpp::core::continuousValidation::IntervalValidation< ValidationReportTypePtr_t >::print ( std::ostream &  os) const
pure virtual

◆ tolerance()

template<typename ValidationReportTypePtr_t>
value_type hpp::core::continuousValidation::IntervalValidation< ValidationReportTypePtr_t >::tolerance ( ) const
inline

◆ validateConfiguration()

template<typename ValidationReportTypePtr_t>
virtual bool hpp::core::continuousValidation::IntervalValidation< ValidationReportTypePtr_t >::validateConfiguration ( const value_type t,
interval_t interval,
ValidationReportTypePtr_t &  report,
pinocchio::DeviceData &  data 
)
pure virtual

Member Data Documentation

◆ path_

template<typename ValidationReportTypePtr_t>
PathPtr_t hpp::core::continuousValidation::IntervalValidation< ValidationReportTypePtr_t >::path_
protected

◆ refine_

template<typename ValidationReportTypePtr_t>
bool hpp::core::continuousValidation::IntervalValidation< ValidationReportTypePtr_t >::refine_
protected

◆ reverse_

template<typename ValidationReportTypePtr_t>
bool hpp::core::continuousValidation::IntervalValidation< ValidationReportTypePtr_t >::reverse_
protected

◆ tolerance_

template<typename ValidationReportTypePtr_t>
value_type hpp::core::continuousValidation::IntervalValidation< ValidationReportTypePtr_t >::tolerance_
protected

◆ valid_

template<typename ValidationReportTypePtr_t>
bool hpp::core::continuousValidation::IntervalValidation< ValidationReportTypePtr_t >::valid_
protected

◆ validInterval_

template<typename ValidationReportTypePtr_t>
interval_set hpp::core::continuousValidation::IntervalValidation< ValidationReportTypePtr_t >::validInterval_
protected