hpp-core  4.9.0
Implement basic classes for canonical path planning for kinematic chains.
hpp::core::continuousValidation::BodyPairCollision Class Referenceabstract

#include <hpp/core/continuous-validation/body-pair-collision.hh>

Inheritance diagram for hpp::core::continuousValidation::BodyPairCollision:
Collaboration diagram for hpp::core::continuousValidation::BodyPairCollision:

Public Types

typedef std::pair< CollisionObjectConstPtr_t, CollisionObjectConstPtr_tCollisionPair_t
 
typedef std::vector< CollisionPair_tCollisionPairs_t
 

Public Member Functions

bool validateConfiguration (const value_type &t, interval_t &interval, ValidationReportPtr_t &report, const pinocchio::DeviceData &data)
 
const CollisionPairs_tpairs () const
 
CollisionPairs_tpairs ()
 
value_type maximalVelocity () const
 
virtual size_type indexJointA () const
 Returns joint A index or -1 if no such joint exists. More...
 
virtual size_type indexJointB () const
 Returns joint B index or -1 if no such joint exists. More...
 
virtual bool removeObjectTo_b (const CollisionObjectConstPtr_t &)
 
virtual void addCollisionPair (const CollisionObjectConstPtr_t &, const CollisionObjectConstPtr_t &)
 
virtual std::string name () const =0
 
virtual std::ostream & print (std::ostream &os) const =0
 
Security margin
value_type securityMargin () const
 Get security margin. More...
 
void securityMargin (const value_type &securityMargin)
 Set security margin. More...
 
- Public Member Functions inherited from hpp::core::continuousValidation::IntervalValidation
void path (const PathPtr_t &path, bool reverse)
 
PathConstPtr_t path () const
 Get path. More...
 
value_type tolerance () const
 
virtual IntervalValidationPtr_t copy () const =0
 

Protected Member Functions

 BodyPairCollision (value_type tolerance)
 
 BodyPairCollision (const BodyPairCollision &other)
 Copy constructor. More...
 
virtual void setReport (ValidationReportPtr_t &report, fcl::CollisionResult result, CollisionPair_t _pair) const
 
- Protected Member Functions inherited from hpp::core::continuousValidation::IntervalValidation
 IntervalValidation (value_type tolerance)
 
 IntervalValidation (const IntervalValidation &other)
 

Additional Inherited Members

- Protected Types inherited from hpp::core::continuousValidation::IntervalValidation
typedef boost::icl::continuous_interval< value_typecontinuous_interval
 
typedef boost::icl::interval_set< value_typeinterval_set
 
- Protected Attributes inherited from hpp::core::continuousValidation::IntervalValidation
PathPtr_t path_
 
value_type tolerance_
 
bool reverse_
 
bool refine_
 
bool valid_
 
interval_set validInterval_
 

Detailed Description

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, or between a robot body and the environment. Bodies are considered as rigid.

If the bodies are part of an open kinematic chain, the computations are performed by class SolidSolidCollision.

With this abstraction, other bodies (like legs of a parallel robot) can also be checked for collision. In this case, the specialized class needs to implement method computeMaximalVelocity , taking into account the constrained motion of the legs implied by the closure of the kinematic chain.

See this document for details.

Member Typedef Documentation

◆ CollisionPair_t

◆ CollisionPairs_t

Constructor & Destructor Documentation

◆ BodyPairCollision() [1/2]

hpp::core::continuousValidation::BodyPairCollision::BodyPairCollision ( value_type  tolerance)
inlineprotected

Constructor of body pair collision

Parameters
toleranceallowed penetration should be positive

◆ BodyPairCollision() [2/2]

hpp::core::continuousValidation::BodyPairCollision::BodyPairCollision ( const BodyPairCollision other)
inlineprotected

Copy constructor.

Member Function Documentation

◆ addCollisionPair()

virtual void hpp::core::continuousValidation::BodyPairCollision::addCollisionPair ( const CollisionObjectConstPtr_t ,
const CollisionObjectConstPtr_t  
)
inlinevirtual

◆ indexJointA()

virtual size_type hpp::core::continuousValidation::BodyPairCollision::indexJointA ( ) const
inlinevirtual

Returns joint A index or -1 if no such joint exists.

Reimplemented in hpp::core::continuousValidation::SolidSolidCollision.

◆ indexJointB()

virtual size_type hpp::core::continuousValidation::BodyPairCollision::indexJointB ( ) const
inlinevirtual

Returns joint B index or -1 if no such joint exists.

Reimplemented in hpp::core::continuousValidation::SolidSolidCollision.

◆ maximalVelocity()

value_type hpp::core::continuousValidation::BodyPairCollision::maximalVelocity ( ) const
inline

◆ name()

virtual std::string hpp::core::continuousValidation::BodyPairCollision::name ( ) const
pure virtual

◆ pairs() [1/2]

const CollisionPairs_t& hpp::core::continuousValidation::BodyPairCollision::pairs ( ) const
inline

◆ pairs() [2/2]

CollisionPairs_t& hpp::core::continuousValidation::BodyPairCollision::pairs ( )
inline

◆ print()

virtual std::ostream& hpp::core::continuousValidation::BodyPairCollision::print ( std::ostream &  os) const
pure virtual

◆ removeObjectTo_b()

virtual bool hpp::core::continuousValidation::BodyPairCollision::removeObjectTo_b ( const CollisionObjectConstPtr_t )
inlinevirtual

◆ securityMargin() [1/2]

value_type hpp::core::continuousValidation::BodyPairCollision::securityMargin ( ) const
inline

Get security margin.

◆ securityMargin() [2/2]

void hpp::core::continuousValidation::BodyPairCollision::securityMargin ( const value_type securityMargin)
inline

Set security margin.

◆ setReport()

virtual void hpp::core::continuousValidation::BodyPairCollision::setReport ( ValidationReportPtr_t report,
fcl::CollisionResult  result,
CollisionPair_t  _pair 
) const
inlineprotectedvirtual

◆ validateConfiguration()

bool hpp::core::continuousValidation::BodyPairCollision::validateConfiguration ( const value_type t,
interval_t interval,
ValidationReportPtr_t report,
const pinocchio::DeviceData data 
)
virtual

Validate interval centered on a path parameter

Parameters
tparameter value in the path interval of definition
[in,out]intervalas input, interval over which collision checking must be performed. As output, interval over which pair is collision-free, not necessarily included in definition interval.
reportthe collision validation report
Returns
true if the body pair is collision free for this parameter value, false if the body pair is in collision.
Note
object should be in the positions defined by the configuration of parameter t on the path.

Implements hpp::core::continuousValidation::IntervalValidation.


The documentation for this class was generated from the following file: