Flexible Collision Library (FCL)
FCLAdvancedThe most widely used open-source C++ collision-checking and distance-computation library in robot motion planning.
FCL is an open-source C++ library presented by Jia Pan, Sachin Chitta, and Dinesh Manocha at ICRA 2012, used to test whether two geometric shapes collide and to compute the closest distance and penetration depth between them, supporting spheres, boxes, cylinders, convex shapes, triangle meshes, and octree maps. Motion planning has to run collision checks against thousands of candidate poses, so speed and robustness directly determine how fast planning runs; FCL speeds this up with a bounding-volume hierarchy (a coarse rejection pass followed by finer computation). MoveIt uses it as its default collision checker. A fork maintained by the LAAS/INRIA team in France, hpp-fcl, made performance improvements and was later renamed Coal, and now serves as Pinocchio's collision backend.
ExampleWhen MoveIt plans a path for an arm to go around a water cup on a table, every candidate set of joint angles is checked by FCL for intersection between the arm mesh and the cup or the table.
- Also called
- hpp-fcl, Coal
- Related
- Collision Checking · Bounding Volume (AABB / OBB) · Gilbert-Johnson-Keerthi Algorithm · MoveIt Motion Planning Framework · Pinocchio · Open Motion Planning Library (OMPL)
- Sources
- flexible-collision-library/fcl (GitHub)
coal-library/coal (GitHub)