Continuous validation of a path. More...
#include <hpp/core/continuous-validation.hh>
Public Member Functions | |
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 () |
![]() | |
virtual | ~PathValidation () |
Protected Types | |
typedef continuousValidation::BodyPairCollisions_t | BodyPairCollisions_t |
Protected Member Functions | |
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... | |
![]() | |
PathValidation () | |
Static Protected Member Functions | |
static void | setPath (BodyPairCollisions_t &bodyPairCollisions, const PathPtr_t &path, bool reverse) |
Continuous validation of a path.
This class tests for collision
A path is valid if and only if each interval validation element is valid along the whole interval of definition
Interval validation elements can be pairs of objects to test for collision (BodyPairCollision) or an other type of validation.
Collision pairs between bodies of the robot are initialized at construction of the instance through the Initializer.
Method addObstacle adds an obstacle in the environment. For each joint, a new pair is created with the new obstacle.
Validation of a collision pair 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. This is implemented in BodyPairCollision and SolidSolidCollision.
See this document for details on the continuous collision checking.
See this document for details on the architecture of the code.
|
protected |
|
virtual |
|
protected |
Constructor.
robot | the robot for which validation is performed, |
tolerance | maximal penetration allowed. |
|
virtual |
Add an obstacle.
object | obstacle added Add the object to each collision pair a body of which is the environment. care about obstacles. |
Reimplemented from hpp::core::PathValidation.
void hpp::core::ContinuousValidation::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.
|
virtual |
Reimplemented from hpp::core::PathValidation.
|
protected |
Store weak pointer to itself.
|
virtual |
Remove a collision pair between a joint and an obstacle.
joint | the joint that holds the inner objects, |
obstacle | the obstacle to remove. |
Reimplemented from hpp::core::PathValidation.
|
staticprotected |
|
inline |
Get tolerance value.
|
virtual |
Compute the largest valid interval starting from the path beginning.
path | the path to check for validity, |
reverse | if true check from the end, |
validPart | the extracted valid part of the path, pointer to path if path is valid. |
report | information about the validation process. A report is allocated if the path is not valid. |
Implements hpp::core::PathValidation.
|
protectedvirtual |
Validate interval centered on a path parameter.
bodyPairCollisions | collision to consider |
config | Configuration at abscissa t on the path. |
t | parameter value in the path interval of definition |
interval | interval over which the path is collision-free, not necessarily included in definition interval |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |