In this project i will try to describe as a tutorial my learning with the coal-library from how to load to visualize collisions
the first step is to prepare the models that we are going to be using in this case is going to be a mustard bottle form ycb dataset 003_cracker_box and 011_banana and a robot description like (robotniq)
coal uses under the hood assimp and has already develop a mesh loader and makes use of and internal class to handle the data BVH_model
A Bounding Volume Hierarchy is a tree built over your mesh/point cloud where each node stores a simple “bounding volume” (BV) enclosing a bunch of primitives. Queries (collision, distance, ray cast) walk this tree to prune big chunks fast, so you only do expensive checks on a few leaves. In FCL/Coal this is the templated BVHModel type (e.g., BVHModel or BVHModel).
-
AABB — Axis-Aligned Bounding Box Box edges are aligned with world axes. Super cheap to test, but can fit loosely when objects are rotated. Great for broad-phase pruning. (Supported as a node type in Coal.)
-
OBB — Oriented Bounding Box A box with its own rotation, so it wraps geometry more tightly than AABB. Intersection tests are a bit costlier than AABB but give fewer false positives. (Coal has an OBB class.)
-
RSS — Rectangular Swept Sphere A rectangle “inflated” by a sphere (Minkowski sum of a rectangle and a sphere). It tends to give tight bounds and very efficient distance lower bounds between volumes—handy for closest-distance queries.
-
OBBRSS — a composite BV that stores both an OBB and an RSS The idea: use the OBB part for fast, accurate collision culling and the RSS part for strong distance bounds, in a single hierarchy. Coal (and FCL) provide specialized traversal for this BV type. In Coal’s docs it’s described as “Class merging the OBB and RSS, can handle collision and distance simultaneously.”
Broad-phase: AABB (fastest, simplest).
Narrow-phase collision on triangle meshes: OBB or OBBRSS (tighter fit → fewer leaf checks).
Closest-distance / continuous checks: RSS or OBBRSS (good distance bounds). Coal supports all of these as BVH node types.