Continuous validation of a path for collision. More...
#include <hpp/core/continuous-collision-checking/progressive.hh>
Public Member Functions | |
virtual | ~Progressive () |
![]() | |
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 () |
![]() | |
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... | |
![]() | |
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... | |
![]() | |
PathValidation () | |
Additional Inherited Members | |
![]() | |
DevicePtr_t | robot_ |
value_type | tolerance_ |
continuousCollisionChecking::BodyPairCollisions_t | bodyPairCollisions_ |
continuousCollisionChecking::BodyPairCollisions_t | disabledBodyPairCollisions_ |
value_type | stepSize_ |
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.
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 pairs 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.