Continuous validation of a path for collision. More...
#include <hpp/core/continuous-collision-checking.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) |
virtual | ~ContinuousCollisionChecking () |
![]() | |
virtual | ~PathValidation () |
Protected Member Functions | |
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 () | |
Continuous validation of a path for collision.
This class is derived into two sub-classes that test 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.
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.
|
virtual |
|
protected |
Constructor.
robot | the robot for which collision checking 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.
|
virtual |
Reimplemented from hpp::core::PathValidation.
|
virtual |
Remove a collision pair between a joint and an obstacle.
the | joint that holds the inner objects, |
the | obstacle to remove. collision configuration validation needs to know about obstacles. This virtual method does nothing for configuration validation methods that do not care about obstacles. |
Reimplemented from hpp::core::PathValidation.
|
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, |
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.
|
protected |
Validate interval centered on a path parameter.
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 |