Skip to content

rpoyner-tri/fcl

 
 

Repository files navigation

FCL -- The Flexible Collision Library

Linux / OS X Build Status Windows Build status Coverage Coverage Status

FCL is a library for performing three types of proximity queries on a pair of geometric models composed of triangles.

  • Collision detection: detecting whether the two models overlap, and optionally, all of the triangles that overlap.
  • Distance computation: computing the minimum distance between a pair of models, i.e., the distance between the closest pair of points.
  • Tolerance verification: determining whether two models are closer or farther than a tolerance distance.
  • Continuous collision detection: detecting whether the two moving models overlap during the movement, and optionally, the time of contact.
  • Contact information: for collision detection and continuous collision detection, the contact information (including contact normals and contact points) can be returned optionally.

FCL has the following features

  • C++ interface
  • Compilable for either linux or win32 (both makefiles and Microsoft Visual projects can be generated using cmake)
  • No special topological constraints or adjacency information required for input models – all that is necessary is a list of the model's triangles
  • Supported different object shapes:
  • box
  • sphere
  • ellipsoid
  • capsule
  • cone
  • cylinder
  • convex
  • half-space
  • plane
  • mesh
  • octree (optional, octrees are represented using the octomap library https://octomap.github.com)

Installation

Before compiling FCL, please make sure Eigen and libccd (for collision checking between convex objects and is available here https://github.com/danfis/libccd) are installed. For libccd, make sure to compile from github version instead of the zip file from the webpage, because one bug fixing is not included in the zipped version.

Some optional libraries need to be installed for some optional capability of FCL. For octree collision, please install the octomap library from https://octomap.github.com.

CMakeLists.txt is used to generate makefiles in Linux or Visual studio projects in windows. In command line, run

mkdir build
cd build
cmake ..

Next, in linux, use make to compile the code.

In windows, there will gener