Computation of collision-free sub-intervals of a path. More...
#include <hpp/core/continuous-validation/body-pair-collision.hh>
Public Types | |
typedef std::pair< CollisionObjectConstPtr_t, CollisionObjectConstPtr_t > | CollisionPair_t |
typedef std::vector< CollisionPair_t > | CollisionPairs_t |
Public Member Functions | |
bool | validateConfiguration (const value_type &t, interval_t &interval, CollisionValidationReportPtr_t &report, pinocchio::DeviceData &data) |
Validate interval centered on a path parameter. More... | |
const CollisionPairs_t & | pairs () const |
CollisionPairs_t & | pairs () |
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 |
virtual BodyPairCollisionPtr_t | copy () const =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 |
Protected Member Functions | |
BodyPairCollision (value_type tolerance) | |
Constructor of body pair collision. More... | |
BodyPairCollision (const BodyPairCollision &other) | |
Copy constructor. More... | |
virtual void | setReport (CollisionValidationReportPtr_t &report, fcl::CollisionResult result, CollisionPair_t _pair) const |
![]() | |
IntervalValidation (value_type tolerance) | |
Constructor of interval validation element. More... | |
IntervalValidation (const IntervalValidation &other) | |
Additional Inherited Members | |
![]() | |
typedef boost::icl::continuous_interval< value_type > | continuous_interval |
typedef boost::icl::interval_set< value_type > | interval_set |
![]() | |
PathPtr_t | path_ |
value_type | tolerance_ |
bool | reverse_ |
bool | refine_ |
bool | valid_ |
interval_set | validInterval_ |
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, which are in most common cases two solid bodies (see SolidSolidCollision). With this abstraction, other bodies (like cables) can also be checked for collision.
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.
See this document for details.
typedef std::pair<CollisionObjectConstPtr_t, CollisionObjectConstPtr_t> hpp::core::continuousValidation::BodyPairCollision::CollisionPair_t |
typedef std::vector<CollisionPair_t> hpp::core::continuousValidation::BodyPairCollision::CollisionPairs_t |
|
inlineprotected |
Constructor of body pair collision.
tolerance | allowed penetration should be positive |
|
inlineprotected |
Copy constructor.
|
inlinevirtual |
Reimplemented in hpp::core::continuousValidation::SolidSolidCollision.
|
pure virtual |
Implemented in hpp::core::continuousValidation::SolidSolidCollision.
Referenced by addCollisionPair().
|
inlinevirtual |
Returns joint A index or -1 if no such joint exists.
Reimplemented in hpp::core::continuousValidation::SolidSolidCollision.
|
inlinevirtual |
Returns joint B index or -1 if no such joint exists.
Reimplemented in hpp::core::continuousValidation::SolidSolidCollision.
|
inline |
|
pure virtual |
Implements hpp::core::continuousValidation::IntervalValidation< CollisionValidationReportPtr_t >.
Implemented in hpp::core::continuousValidation::SolidSolidCollision.
Referenced by addCollisionPair().
|
inline |
Referenced by setReport().
|
inline |
|
pure virtual |
Implements hpp::core::continuousValidation::IntervalValidation< CollisionValidationReportPtr_t >.
Implemented in hpp::core::continuousValidation::SolidSolidCollision.
Referenced by addCollisionPair(), and hpp::core::continuousValidation::operator<<().
|
inlinevirtual |
Reimplemented in hpp::core::continuousValidation::SolidSolidCollision.
|
inlineprotectedvirtual |
References pairs().
|
virtual |
Validate interval centered on a path parameter.
t | parameter value in the path interval of definition | |
[in,out] | interval | as input, interval over which collision checking must be performed. As output, interval over which pair is collision-free, not necessarily included in definition interval. |
report | the collision validation report |
Implements hpp::core::continuousValidation::IntervalValidation< CollisionValidationReportPtr_t >.