coal 3.0.2
Coal, The Collision Detection Library. Previously known as HPP-FCL, fork of FCL -- The Flexible Collision Library
Loading...
Searching...
No Matches
coal

Introduction

Coal 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 (coal::ShapeBase) like box, sphere, cylinders, ...
  • or by bounding volume hierarchies of various types (coal::BVHModel)
Using Coal

The main entry points to the library are functions

  • coal::collide(const CollisionObject*, const CollisionObject*, const CollisionRequest&, CollisionResult&)
  • coal::distance(const CollisionObject*, const CollisionObject*, const DistanceRequest&, DistanceResult&)

Collision

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 coal::collide or class coal::ComputeCollision and the objects are considered as not colliding.