hpp-fcl Documentation

hpp-fcl is a modified version the FCL libraries.

It is a library for collision detection and distance computation between various types of geometric shapes reprensented either by

- basic shapes (hpp::fcl::ShapeBase) like box, sphere, cylinders, ...
- or by bounding volume hierarchies of various types (hpp::fcl::BVHModel)

- Using hpp-fcl

The main entry points to the library are functions

- hpp::fcl::collide(const CollisionObject*, const CollisionObject*, const CollisionRequest&, CollisionResult&)
- hpp::fcl::distance(const CollisionObject*, const CollisionObject*, const DistanceRequest&, DistanceResult&)

detection and distance lower bound

Collision queries can return a distance lower bound between the two objects, which is computationally cheaper than computing the real distance. The following figure shows the returned result in CollisionResult::distance_lower_bound and DistanceResult::min_distance, with respect to the objects real distance.

The two parameters refer to CollisionRequest::security_margin and CollisionRequest::break_distance.

- Note
- In the green hatched area, the distance lower bound is not known. It is only guaranted that it will be inferior to
*distance - security_margin*and superior to*break_distance*. - If CollisionRequest::security_margin is set to -inf, no collision test is performed by function hpp::fcl::collide or class hpp::fcl::ComputeCollision and the objects are considered as not colliding.