hpp::core::continuousValidation::Progressive Class Reference

Continuous validation of a path. More...

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

Inheritance diagram for hpp::core::continuousValidation::Progressive:
[legend]
Collaboration diagram for hpp::core::continuousValidation::Progressive:
[legend]

Public Member Functions

virtual ~Progressive ()
 
- Public Member Functions inherited from hpp::core::ContinuousValidation
virtual bool validate (const PathPtr_t &path, bool reverse, PathPtr_t &validPart, PathValidationReportPtr_t &report)
 Compute the largest valid interval starting from the path beginning. More...
 
virtual void addObstacle (const CollisionObjectConstPtr_t &object)
 Add an obstacle. More...
 
virtual void removeObstacleFromJoint (const JointPtr_t &joint, const CollisionObjectConstPtr_t &obstacle)
 Remove a collision pair between a joint and an obstacle. More...
 
void filterCollisionPairs (const RelativeMotion::matrix_type &relMotion)
 
void changeInitializer (continuousValidation::InitializerPtr_t initializer)
 Change the initializer The continuous validation is then reset and the new initializer is called to do the new initialization. More...
 
value_type tolerance () const
 Get tolerance value. More...
 
virtual ~ContinuousValidation ()
 
- Public Member Functions inherited from hpp::core::PathValidation
virtual ~PathValidation ()
 

Static Public Member Functions

static ProgressivePtr_t create (const DevicePtr_t &robot, const value_type &tolerance)
 Create instance and return shared pointer. More...
 

Protected Member Functions

 Progressive (const DevicePtr_t &robot, const value_type &tolerance)
 Constructor. More...
 
void init (const ProgressiveWkPtr_t weak)
 Store weak pointer to itself. More...
 
- Protected Member Functions inherited from hpp::core::ContinuousValidation
 ContinuousValidation (const DevicePtr_t &robot, const value_type &tolerance)
 Constructor. More...
 
virtual bool validateConfiguration (BodyPairCollisions_t &bodyPairCollisions, const Configuration_t &config, const value_type &t, interval_t &interval, PathValidationReportPtr_t &report)
 Validate interval centered on a path parameter. More...
 
void init (ContinuousValidationWkPtr_t weak)
 Store weak pointer to itself. More...
 
- Protected Member Functions inherited from hpp::core::PathValidation
 PathValidation ()
 

Additional Inherited Members

- Protected Types inherited from hpp::core::ContinuousValidation
typedef continuousValidation::BodyPairCollisions_t BodyPairCollisions_t
 
- Static Protected Member Functions inherited from hpp::core::ContinuousValidation
static void setPath (BodyPairCollisions_t &bodyPairCollisions, const PathPtr_t &path, bool reverse)
 
- Protected Attributes inherited from hpp::core::ContinuousValidation
DevicePtr_t robot_
 
value_type tolerance_
 
BodyPairCollisions_t bodyPairCollisions_
 
BodyPairCollisions_t disabledBodyPairCollisions_
 
pinocchio::Pool< BodyPairCollisions_tbodyPairCollisionPool_
 
value_type stepSize_
 
continuousValidation::InitializerPtr_t initializer_
 

Detailed Description

Continuous validation of a path.

This class tests for collision

  • straight paths, or
  • concatenation of straight paths.

A path is valid if and only if each interval validation element is valid along the whole interval of definition

For each interval validation element, a union of sub-intervals where the element is valid is computed.

The validation of a path is progressive, starting at the beginning of the interval (or at the end if reverse is set to true). The smallest valid sub-interval for all validation elements centered at the current parameter is computed. The current parameter is thus set to the upper bound of this sub-interval and the validation process goes on until a collision is detected or the current parameter reaches the end of the interval of definition.

Collision pairs between bodies of the robot are initialized at construction of the instance.

Method addObstacle adds an obstacle in the environment. For each joint, a new pair is created with the new obstacle.

Validation of pairs along straight interpolations is based on the computation of an upper-bound of the relative velocity of objects of one joint (or of the environment) in the reference frame of the other joint.

See this document for details.