Public Member Functions | Static Public Member Functions | Protected Member Functions | List of all members
hpp::core::continuousCollisionChecking::Dichotomy Class Reference

Continuous validation of a path for collision. More...

#include <hpp/core/continuous-collision-checking/dichotomy.hh>

Inheritance diagram for hpp::core::continuousCollisionChecking::Dichotomy:
[legend]
Collaboration diagram for hpp::core::continuousCollisionChecking::Dichotomy:
[legend]

Public Member Functions

virtual ~Dichotomy ()
 
- Public Member Functions inherited from hpp::core::ContinuousCollisionChecking
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)
 
virtual ~ContinuousCollisionChecking ()
 
- Public Member Functions inherited from hpp::core::PathValidation
virtual ~PathValidation ()
 

Static Public Member Functions

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

Protected Member Functions

 Dichotomy (const DevicePtr_t &robot, const value_type &tolerance)
 Constructor. More...
 
- Protected Member Functions inherited from hpp::core::ContinuousCollisionChecking
 ContinuousCollisionChecking (const DevicePtr_t &robot, const value_type &tolerance)
 Constructor. More...
 
bool validateConfiguration (const Configuration_t &config, const value_type &t, interval_t &interval, PathValidationReportPtr_t &report)
 Validate interval centered on a path parameter. More...
 
- Protected Member Functions inherited from hpp::core::PathValidation
 PathValidation ()
 

Additional Inherited Members

- Protected Attributes inherited from hpp::core::ContinuousCollisionChecking
DevicePtr_t robot_
 
value_type tolerance_
 
continuousCollisionChecking::BodyPairCollisions_t bodyPairCollisions_
 
continuousCollisionChecking::BodyPairCollisions_t disabledBodyPairCollisions_
 
value_type stepSize_
 

Detailed Description

Continuous validation of a path for collision.

This class tests for collision

A path is valid if and only if each pair of objects to test is collision-free along the whole interval of definition.

For each pair, a union of sub-intervals where the pair is collision-free is computed.

First, each pair is tested at the beginning of the interval (at the end if reverse is set to true). Then the pair that has the smaller upper bound of the first valid sub-interval is tested at the middle of the segment delimited by the upper bound of the first valid sub-interval and by the lower bound of the second valid sub-interval (or the end of the interval of definition if the union of sub-intervals contains only one sub-interval).

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

Method Progressive::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.