No version for distro humble showing jade. Known supported distros are highlighted in the buttons above.
Package symbol

fcl package from fcl repo

fcl

ROS Distro
jade

Package Summary

Tags No category tags.
Version 0.3.3
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/flexible-collision-library/fcl.git
VCS Type git
VCS Version master
Last Updated 2025-03-13
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

FCL is a collision checking library

Additional Links

Maintainers

  • Ioan Sucan

Authors

  • Jia Pan

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 http://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.io/.

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 generate a visual studio project and then you can compile the code.

Interfaces

Before starting the proximity computation, we need first to set the geometry and transform for the objects involving in computation. The geometry of an object is represented as a mesh soup, which can be set as follows:

// set mesh triangles and vertice indices
std::vector<Vector3f> vertices;
std::vector<Triangle> triangles;
// code to set the vertices and triangles
...
// BVHModel is a template class for mesh geometry, for default OBBRSS template
// is used
typedef BVHModel<OBBRSSf> Model;
std::shared_ptr<Model> geom = std::make_shared<Model>();
// add the mesh data into the BVHModel structure
geom->beginModel();
geom->addSubModel(vertices, triangles);
geom->endModel();

The transform of an object includes the rotation and translation:

// R and T are the rotation matrix and translation vector
Matrix3f R;
Vector3f T;
// code for setting R and T
...
// transform is configured according to R and T
Transform3f pose = Transform3f::Identity();
pose.linear() = R;
pose.translation() = T;

File truncated at 100 lines see the full file

CHANGELOG

FCL 0

FCL 0.7.0 (2021-09-09)

  • Breaking changes

    • Macros FCL_SUPPRESS_MAYBE_UNINITIALIZED_BEGIN and FCL_SUPPRESS_MAYBE_UNINITIALIZED_END defined in fcl/common/warning.h have been removed: #489
    • Require CMake 3.10: #506
    • Check SSE support and enable SSE if support is found: #506 #514
  • Core/Common

    • Use package format 3 with conditional dependency on catkin: #536
    • Fix compilation on Windows. Do not use “not” in preprocessor: #530
    • Use std::copy instead of memcpy. Patches imported from Debian: #517
    • Fix finding of ccd with pkg-config: #499 #497
  • Math

    • constants::eps() is now constexpr: #494
    • Fix shape conservative advancement normal computation: #505
  • Geometry

    • OcTree logic for determining free/occupied: #467
    • Bugs in RSS distance queries fixed: #467
    • Convex gets some validation and improved support for the GJK supportVertex() API: #488
    • Fixed bug in collision function matrix that only allowed calculation of collision between ellipsoid and half space with that ordering. Now also supports half space and ellipsoid. #520
    • Do not flush error messages on cerr: #542
  • Broadphase

  • Narrowphase

    • Primitive convex-half space collision algorithm introduced: #469
    • Contact and distance query results types changed to be compatible with OcTree: #472
    • Documentation for OcTree no longer mistakenly excluded from doxygen: #472
    • Another failure mode in the GJK/EPA signed distance query patched: #494
    • Fix build when ccd_real_t == float: #498
    • Remove accidental recursive include: #496
  • Build/Test/Misc

    • Fixed syntax which prevented building in Visual Studio 2015: #459
    • Fix compilation errors using default options on Emscripten: #470
    • Change supported linux build to Ubuntu 18.04 and Mac OS 10.14.6: #489

FCL 0.6.1 (2020-02-26)

  • Math

    • Replace M_PI instance with constants::pi(): #450
  • Narrowphase

    • Various corrections and clarifications of the GJK algorithm used for general convex distance: #446
  • Build/Test/Misc

    • Clean up install config files and ensure find_dependency is called as appropriate: #452

FCL 0.6.0 (2020-02-10)

  • Core/Common

    • Removed dependency on boost: #140, #146,

File truncated at 100 lines see the full file

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Package Dependencies

System Dependencies

Dependant Packages

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged fcl at Robotics Stack Exchange

No version for distro jazzy showing jade. Known supported distros are highlighted in the buttons above.
Package symbol

fcl package from fcl repo

fcl

ROS Distro
jade

Package Summary

Tags No category tags.
Version 0.3.3
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/flexible-collision-library/fcl.git
VCS Type git
VCS Version master
Last Updated 2025-03-13
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

FCL is a collision checking library

Additional Links

Maintainers

  • Ioan Sucan

Authors

  • Jia Pan

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 http://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.io/.

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 generate a visual studio project and then you can compile the code.

Interfaces

Before starting the proximity computation, we need first to set the geometry and transform for the objects involving in computation. The geometry of an object is represented as a mesh soup, which can be set as follows:

// set mesh triangles and vertice indices
std::vector<Vector3f> vertices;
std::vector<Triangle> triangles;
// code to set the vertices and triangles
...
// BVHModel is a template class for mesh geometry, for default OBBRSS template
// is used
typedef BVHModel<OBBRSSf> Model;
std::shared_ptr<Model> geom = std::make_shared<Model>();
// add the mesh data into the BVHModel structure
geom->beginModel();
geom->addSubModel(vertices, triangles);
geom->endModel();

The transform of an object includes the rotation and translation:

// R and T are the rotation matrix and translation vector
Matrix3f R;
Vector3f T;
// code for setting R and T
...
// transform is configured according to R and T
Transform3f pose = Transform3f::Identity();
pose.linear() = R;
pose.translation() = T;

File truncated at 100 lines see the full file

CHANGELOG

FCL 0

FCL 0.7.0 (2021-09-09)

  • Breaking changes

    • Macros FCL_SUPPRESS_MAYBE_UNINITIALIZED_BEGIN and FCL_SUPPRESS_MAYBE_UNINITIALIZED_END defined in fcl/common/warning.h have been removed: #489
    • Require CMake 3.10: #506
    • Check SSE support and enable SSE if support is found: #506 #514
  • Core/Common

    • Use package format 3 with conditional dependency on catkin: #536
    • Fix compilation on Windows. Do not use “not” in preprocessor: #530
    • Use std::copy instead of memcpy. Patches imported from Debian: #517
    • Fix finding of ccd with pkg-config: #499 #497
  • Math

    • constants::eps() is now constexpr: #494
    • Fix shape conservative advancement normal computation: #505
  • Geometry

    • OcTree logic for determining free/occupied: #467
    • Bugs in RSS distance queries fixed: #467
    • Convex gets some validation and improved support for the GJK supportVertex() API: #488
    • Fixed bug in collision function matrix that only allowed calculation of collision between ellipsoid and half space with that ordering. Now also supports half space and ellipsoid. #520
    • Do not flush error messages on cerr: #542
  • Broadphase

  • Narrowphase

    • Primitive convex-half space collision algorithm introduced: #469
    • Contact and distance query results types changed to be compatible with OcTree: #472
    • Documentation for OcTree no longer mistakenly excluded from doxygen: #472
    • Another failure mode in the GJK/EPA signed distance query patched: #494
    • Fix build when ccd_real_t == float: #498
    • Remove accidental recursive include: #496
  • Build/Test/Misc

    • Fixed syntax which prevented building in Visual Studio 2015: #459
    • Fix compilation errors using default options on Emscripten: #470
    • Change supported linux build to Ubuntu 18.04 and Mac OS 10.14.6: #489

FCL 0.6.1 (2020-02-26)

  • Math

    • Replace M_PI instance with constants::pi(): #450
  • Narrowphase

    • Various corrections and clarifications of the GJK algorithm used for general convex distance: #446
  • Build/Test/Misc

    • Clean up install config files and ensure find_dependency is called as appropriate: #452

FCL 0.6.0 (2020-02-10)

  • Core/Common

    • Removed dependency on boost: #140, #146,

File truncated at 100 lines see the full file

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Package Dependencies

System Dependencies

Dependant Packages

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged fcl at Robotics Stack Exchange

No version for distro kilted showing jade. Known supported distros are highlighted in the buttons above.
Package symbol

fcl package from fcl repo

fcl

ROS Distro
jade

Package Summary

Tags No category tags.
Version 0.3.3
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/flexible-collision-library/fcl.git
VCS Type git
VCS Version master
Last Updated 2025-03-13
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

FCL is a collision checking library

Additional Links

Maintainers

  • Ioan Sucan

Authors

  • Jia Pan

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 http://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.io/.

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 generate a visual studio project and then you can compile the code.

Interfaces

Before starting the proximity computation, we need first to set the geometry and transform for the objects involving in computation. The geometry of an object is represented as a mesh soup, which can be set as follows:

// set mesh triangles and vertice indices
std::vector<Vector3f> vertices;
std::vector<Triangle> triangles;
// code to set the vertices and triangles
...
// BVHModel is a template class for mesh geometry, for default OBBRSS template
// is used
typedef BVHModel<OBBRSSf> Model;
std::shared_ptr<Model> geom = std::make_shared<Model>();
// add the mesh data into the BVHModel structure
geom->beginModel();
geom->addSubModel(vertices, triangles);
geom->endModel();

The transform of an object includes the rotation and translation:

// R and T are the rotation matrix and translation vector
Matrix3f R;
Vector3f T;
// code for setting R and T
...
// transform is configured according to R and T
Transform3f pose = Transform3f::Identity();
pose.linear() = R;
pose.translation() = T;

File truncated at 100 lines see the full file

CHANGELOG

FCL 0

FCL 0.7.0 (2021-09-09)

  • Breaking changes

    • Macros FCL_SUPPRESS_MAYBE_UNINITIALIZED_BEGIN and FCL_SUPPRESS_MAYBE_UNINITIALIZED_END defined in fcl/common/warning.h have been removed: #489
    • Require CMake 3.10: #506
    • Check SSE support and enable SSE if support is found: #506 #514
  • Core/Common

    • Use package format 3 with conditional dependency on catkin: #536
    • Fix compilation on Windows. Do not use “not” in preprocessor: #530
    • Use std::copy instead of memcpy. Patches imported from Debian: #517
    • Fix finding of ccd with pkg-config: #499 #497
  • Math

    • constants::eps() is now constexpr: #494
    • Fix shape conservative advancement normal computation: #505
  • Geometry

    • OcTree logic for determining free/occupied: #467
    • Bugs in RSS distance queries fixed: #467
    • Convex gets some validation and improved support for the GJK supportVertex() API: #488
    • Fixed bug in collision function matrix that only allowed calculation of collision between ellipsoid and half space with that ordering. Now also supports half space and ellipsoid. #520
    • Do not flush error messages on cerr: #542
  • Broadphase

  • Narrowphase

    • Primitive convex-half space collision algorithm introduced: #469
    • Contact and distance query results types changed to be compatible with OcTree: #472
    • Documentation for OcTree no longer mistakenly excluded from doxygen: #472
    • Another failure mode in the GJK/EPA signed distance query patched: #494
    • Fix build when ccd_real_t == float: #498
    • Remove accidental recursive include: #496
  • Build/Test/Misc

    • Fixed syntax which prevented building in Visual Studio 2015: #459
    • Fix compilation errors using default options on Emscripten: #470
    • Change supported linux build to Ubuntu 18.04 and Mac OS 10.14.6: #489

FCL 0.6.1 (2020-02-26)

  • Math

    • Replace M_PI instance with constants::pi(): #450
  • Narrowphase

    • Various corrections and clarifications of the GJK algorithm used for general convex distance: #446
  • Build/Test/Misc

    • Clean up install config files and ensure find_dependency is called as appropriate: #452

FCL 0.6.0 (2020-02-10)

  • Core/Common

    • Removed dependency on boost: #140, #146,

File truncated at 100 lines see the full file

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Package Dependencies

System Dependencies

Dependant Packages

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged fcl at Robotics Stack Exchange

No version for distro rolling showing jade. Known supported distros are highlighted in the buttons above.
Package symbol

fcl package from fcl repo

fcl

ROS Distro
jade

Package Summary

Tags No category tags.
Version 0.3.3
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/flexible-collision-library/fcl.git
VCS Type git
VCS Version master
Last Updated 2025-03-13
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

FCL is a collision checking library

Additional Links

Maintainers

  • Ioan Sucan

Authors

  • Jia Pan

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 http://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.io/.

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 generate a visual studio project and then you can compile the code.

Interfaces

Before starting the proximity computation, we need first to set the geometry and transform for the objects involving in computation. The geometry of an object is represented as a mesh soup, which can be set as follows:

// set mesh triangles and vertice indices
std::vector<Vector3f> vertices;
std::vector<Triangle> triangles;
// code to set the vertices and triangles
...
// BVHModel is a template class for mesh geometry, for default OBBRSS template
// is used
typedef BVHModel<OBBRSSf> Model;
std::shared_ptr<Model> geom = std::make_shared<Model>();
// add the mesh data into the BVHModel structure
geom->beginModel();
geom->addSubModel(vertices, triangles);
geom->endModel();

The transform of an object includes the rotation and translation:

// R and T are the rotation matrix and translation vector
Matrix3f R;
Vector3f T;
// code for setting R and T
...
// transform is configured according to R and T
Transform3f pose = Transform3f::Identity();
pose.linear() = R;
pose.translation() = T;

File truncated at 100 lines see the full file

CHANGELOG

FCL 0

FCL 0.7.0 (2021-09-09)

  • Breaking changes

    • Macros FCL_SUPPRESS_MAYBE_UNINITIALIZED_BEGIN and FCL_SUPPRESS_MAYBE_UNINITIALIZED_END defined in fcl/common/warning.h have been removed: #489
    • Require CMake 3.10: #506
    • Check SSE support and enable SSE if support is found: #506 #514
  • Core/Common

    • Use package format 3 with conditional dependency on catkin: #536
    • Fix compilation on Windows. Do not use “not” in preprocessor: #530
    • Use std::copy instead of memcpy. Patches imported from Debian: #517
    • Fix finding of ccd with pkg-config: #499 #497
  • Math

    • constants::eps() is now constexpr: #494
    • Fix shape conservative advancement normal computation: #505
  • Geometry

    • OcTree logic for determining free/occupied: #467
    • Bugs in RSS distance queries fixed: #467
    • Convex gets some validation and improved support for the GJK supportVertex() API: #488
    • Fixed bug in collision function matrix that only allowed calculation of collision between ellipsoid and half space with that ordering. Now also supports half space and ellipsoid. #520
    • Do not flush error messages on cerr: #542
  • Broadphase

  • Narrowphase

    • Primitive convex-half space collision algorithm introduced: #469
    • Contact and distance query results types changed to be compatible with OcTree: #472
    • Documentation for OcTree no longer mistakenly excluded from doxygen: #472
    • Another failure mode in the GJK/EPA signed distance query patched: #494
    • Fix build when ccd_real_t == float: #498
    • Remove accidental recursive include: #496
  • Build/Test/Misc

    • Fixed syntax which prevented building in Visual Studio 2015: #459
    • Fix compilation errors using default options on Emscripten: #470
    • Change supported linux build to Ubuntu 18.04 and Mac OS 10.14.6: #489

FCL 0.6.1 (2020-02-26)

  • Math

    • Replace M_PI instance with constants::pi(): #450
  • Narrowphase

    • Various corrections and clarifications of the GJK algorithm used for general convex distance: #446
  • Build/Test/Misc

    • Clean up install config files and ensure find_dependency is called as appropriate: #452

FCL 0.6.0 (2020-02-10)

  • Core/Common

    • Removed dependency on boost: #140, #146,

File truncated at 100 lines see the full file

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Package Dependencies

System Dependencies

Dependant Packages

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged fcl at Robotics Stack Exchange

No version for distro ardent showing jade. Known supported distros are highlighted in the buttons above.
Package symbol

fcl package from fcl repo

fcl

ROS Distro
jade

Package Summary

Tags No category tags.
Version 0.3.3
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/flexible-collision-library/fcl.git
VCS Type git
VCS Version master
Last Updated 2025-03-13
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

FCL is a collision checking library

Additional Links

Maintainers

  • Ioan Sucan

Authors

  • Jia Pan

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 http://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.io/.

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 generate a visual studio project and then you can compile the code.

Interfaces

Before starting the proximity computation, we need first to set the geometry and transform for the objects involving in computation. The geometry of an object is represented as a mesh soup, which can be set as follows:

// set mesh triangles and vertice indices
std::vector<Vector3f> vertices;
std::vector<Triangle> triangles;
// code to set the vertices and triangles
...
// BVHModel is a template class for mesh geometry, for default OBBRSS template
// is used
typedef BVHModel<OBBRSSf> Model;
std::shared_ptr<Model> geom = std::make_shared<Model>();
// add the mesh data into the BVHModel structure
geom->beginModel();
geom->addSubModel(vertices, triangles);
geom->endModel();

The transform of an object includes the rotation and translation:

// R and T are the rotation matrix and translation vector
Matrix3f R;
Vector3f T;
// code for setting R and T
...
// transform is configured according to R and T
Transform3f pose = Transform3f::Identity();
pose.linear() = R;
pose.translation() = T;

File truncated at 100 lines see the full file

CHANGELOG

FCL 0

FCL 0.7.0 (2021-09-09)

  • Breaking changes

    • Macros FCL_SUPPRESS_MAYBE_UNINITIALIZED_BEGIN and FCL_SUPPRESS_MAYBE_UNINITIALIZED_END defined in fcl/common/warning.h have been removed: #489
    • Require CMake 3.10: #506
    • Check SSE support and enable SSE if support is found: #506 #514
  • Core/Common

    • Use package format 3 with conditional dependency on catkin: #536
    • Fix compilation on Windows. Do not use “not” in preprocessor: #530
    • Use std::copy instead of memcpy. Patches imported from Debian: #517
    • Fix finding of ccd with pkg-config: #499 #497
  • Math

    • constants::eps() is now constexpr: #494
    • Fix shape conservative advancement normal computation: #505
  • Geometry

    • OcTree logic for determining free/occupied: #467
    • Bugs in RSS distance queries fixed: #467
    • Convex gets some validation and improved support for the GJK supportVertex() API: #488
    • Fixed bug in collision function matrix that only allowed calculation of collision between ellipsoid and half space with that ordering. Now also supports half space and ellipsoid. #520
    • Do not flush error messages on cerr: #542
  • Broadphase

  • Narrowphase

    • Primitive convex-half space collision algorithm introduced: #469
    • Contact and distance query results types changed to be compatible with OcTree: #472
    • Documentation for OcTree no longer mistakenly excluded from doxygen: #472
    • Another failure mode in the GJK/EPA signed distance query patched: #494
    • Fix build when ccd_real_t == float: #498
    • Remove accidental recursive include: #496
  • Build/Test/Misc

    • Fixed syntax which prevented building in Visual Studio 2015: #459
    • Fix compilation errors using default options on Emscripten: #470
    • Change supported linux build to Ubuntu 18.04 and Mac OS 10.14.6: #489

FCL 0.6.1 (2020-02-26)

  • Math

    • Replace M_PI instance with constants::pi(): #450
  • Narrowphase

    • Various corrections and clarifications of the GJK algorithm used for general convex distance: #446
  • Build/Test/Misc

    • Clean up install config files and ensure find_dependency is called as appropriate: #452

FCL 0.6.0 (2020-02-10)

  • Core/Common

    • Removed dependency on boost: #140, #146,

File truncated at 100 lines see the full file

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Package Dependencies

System Dependencies

Dependant Packages

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged fcl at Robotics Stack Exchange

No version for distro bouncy showing jade. Known supported distros are highlighted in the buttons above.
Package symbol

fcl package from fcl repo

fcl

ROS Distro
jade

Package Summary

Tags No category tags.
Version 0.3.3
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/flexible-collision-library/fcl.git
VCS Type git
VCS Version master
Last Updated 2025-03-13
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

FCL is a collision checking library

Additional Links

Maintainers

  • Ioan Sucan

Authors

  • Jia Pan

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 http://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.io/.

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 generate a visual studio project and then you can compile the code.

Interfaces

Before starting the proximity computation, we need first to set the geometry and transform for the objects involving in computation. The geometry of an object is represented as a mesh soup, which can be set as follows:

// set mesh triangles and vertice indices
std::vector<Vector3f> vertices;
std::vector<Triangle> triangles;
// code to set the vertices and triangles
...
// BVHModel is a template class for mesh geometry, for default OBBRSS template
// is used
typedef BVHModel<OBBRSSf> Model;
std::shared_ptr<Model> geom = std::make_shared<Model>();
// add the mesh data into the BVHModel structure
geom->beginModel();
geom->addSubModel(vertices, triangles);
geom->endModel();

The transform of an object includes the rotation and translation:

// R and T are the rotation matrix and translation vector
Matrix3f R;
Vector3f T;
// code for setting R and T
...
// transform is configured according to R and T
Transform3f pose = Transform3f::Identity();
pose.linear() = R;
pose.translation() = T;

File truncated at 100 lines see the full file

CHANGELOG

FCL 0

FCL 0.7.0 (2021-09-09)

  • Breaking changes

    • Macros FCL_SUPPRESS_MAYBE_UNINITIALIZED_BEGIN and FCL_SUPPRESS_MAYBE_UNINITIALIZED_END defined in fcl/common/warning.h have been removed: #489
    • Require CMake 3.10: #506
    • Check SSE support and enable SSE if support is found: #506 #514
  • Core/Common

    • Use package format 3 with conditional dependency on catkin: #536
    • Fix compilation on Windows. Do not use “not” in preprocessor: #530
    • Use std::copy instead of memcpy. Patches imported from Debian: #517
    • Fix finding of ccd with pkg-config: #499 #497
  • Math

    • constants::eps() is now constexpr: #494
    • Fix shape conservative advancement normal computation: #505
  • Geometry

    • OcTree logic for determining free/occupied: #467
    • Bugs in RSS distance queries fixed: #467
    • Convex gets some validation and improved support for the GJK supportVertex() API: #488
    • Fixed bug in collision function matrix that only allowed calculation of collision between ellipsoid and half space with that ordering. Now also supports half space and ellipsoid. #520
    • Do not flush error messages on cerr: #542
  • Broadphase

  • Narrowphase

    • Primitive convex-half space collision algorithm introduced: #469
    • Contact and distance query results types changed to be compatible with OcTree: #472
    • Documentation for OcTree no longer mistakenly excluded from doxygen: #472
    • Another failure mode in the GJK/EPA signed distance query patched: #494
    • Fix build when ccd_real_t == float: #498
    • Remove accidental recursive include: #496
  • Build/Test/Misc

    • Fixed syntax which prevented building in Visual Studio 2015: #459
    • Fix compilation errors using default options on Emscripten: #470
    • Change supported linux build to Ubuntu 18.04 and Mac OS 10.14.6: #489

FCL 0.6.1 (2020-02-26)

  • Math

    • Replace M_PI instance with constants::pi(): #450
  • Narrowphase

    • Various corrections and clarifications of the GJK algorithm used for general convex distance: #446
  • Build/Test/Misc

    • Clean up install config files and ensure find_dependency is called as appropriate: #452

FCL 0.6.0 (2020-02-10)

  • Core/Common

    • Removed dependency on boost: #140, #146,

File truncated at 100 lines see the full file

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Package Dependencies

System Dependencies

Dependant Packages

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged fcl at Robotics Stack Exchange

No version for distro crystal showing jade. Known supported distros are highlighted in the buttons above.
Package symbol

fcl package from fcl repo

fcl

ROS Distro
jade

Package Summary

Tags No category tags.
Version 0.3.3
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/flexible-collision-library/fcl.git
VCS Type git
VCS Version master
Last Updated 2025-03-13
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

FCL is a collision checking library

Additional Links

Maintainers

  • Ioan Sucan

Authors

  • Jia Pan

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 http://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.io/.

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 generate a visual studio project and then you can compile the code.

Interfaces

Before starting the proximity computation, we need first to set the geometry and transform for the objects involving in computation. The geometry of an object is represented as a mesh soup, which can be set as follows:

// set mesh triangles and vertice indices
std::vector<Vector3f> vertices;
std::vector<Triangle> triangles;
// code to set the vertices and triangles
...
// BVHModel is a template class for mesh geometry, for default OBBRSS template
// is used
typedef BVHModel<OBBRSSf> Model;
std::shared_ptr<Model> geom = std::make_shared<Model>();
// add the mesh data into the BVHModel structure
geom->beginModel();
geom->addSubModel(vertices, triangles);
geom->endModel();

The transform of an object includes the rotation and translation:

// R and T are the rotation matrix and translation vector
Matrix3f R;
Vector3f T;
// code for setting R and T
...
// transform is configured according to R and T
Transform3f pose = Transform3f::Identity();
pose.linear() = R;
pose.translation() = T;

File truncated at 100 lines see the full file

CHANGELOG

FCL 0

FCL 0.7.0 (2021-09-09)

  • Breaking changes

    • Macros FCL_SUPPRESS_MAYBE_UNINITIALIZED_BEGIN and FCL_SUPPRESS_MAYBE_UNINITIALIZED_END defined in fcl/common/warning.h have been removed: #489
    • Require CMake 3.10: #506
    • Check SSE support and enable SSE if support is found: #506 #514
  • Core/Common

    • Use package format 3 with conditional dependency on catkin: #536
    • Fix compilation on Windows. Do not use “not” in preprocessor: #530
    • Use std::copy instead of memcpy. Patches imported from Debian: #517
    • Fix finding of ccd with pkg-config: #499 #497
  • Math

    • constants::eps() is now constexpr: #494
    • Fix shape conservative advancement normal computation: #505
  • Geometry

    • OcTree logic for determining free/occupied: #467
    • Bugs in RSS distance queries fixed: #467
    • Convex gets some validation and improved support for the GJK supportVertex() API: #488
    • Fixed bug in collision function matrix that only allowed calculation of collision between ellipsoid and half space with that ordering. Now also supports half space and ellipsoid. #520
    • Do not flush error messages on cerr: #542
  • Broadphase

  • Narrowphase

    • Primitive convex-half space collision algorithm introduced: #469
    • Contact and distance query results types changed to be compatible with OcTree: #472
    • Documentation for OcTree no longer mistakenly excluded from doxygen: #472
    • Another failure mode in the GJK/EPA signed distance query patched: #494
    • Fix build when ccd_real_t == float: #498
    • Remove accidental recursive include: #496
  • Build/Test/Misc

    • Fixed syntax which prevented building in Visual Studio 2015: #459
    • Fix compilation errors using default options on Emscripten: #470
    • Change supported linux build to Ubuntu 18.04 and Mac OS 10.14.6: #489

FCL 0.6.1 (2020-02-26)

  • Math

    • Replace M_PI instance with constants::pi(): #450
  • Narrowphase

    • Various corrections and clarifications of the GJK algorithm used for general convex distance: #446
  • Build/Test/Misc

    • Clean up install config files and ensure find_dependency is called as appropriate: #452

FCL 0.6.0 (2020-02-10)

  • Core/Common

    • Removed dependency on boost: #140, #146,

File truncated at 100 lines see the full file

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Package Dependencies

System Dependencies

Dependant Packages

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged fcl at Robotics Stack Exchange

No version for distro eloquent showing jade. Known supported distros are highlighted in the buttons above.
Package symbol

fcl package from fcl repo

fcl

ROS Distro
jade

Package Summary

Tags No category tags.
Version 0.3.3
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/flexible-collision-library/fcl.git
VCS Type git
VCS Version master
Last Updated 2025-03-13
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

FCL is a collision checking library

Additional Links

Maintainers

  • Ioan Sucan

Authors

  • Jia Pan

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 http://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.io/.

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 generate a visual studio project and then you can compile the code.

Interfaces

Before starting the proximity computation, we need first to set the geometry and transform for the objects involving in computation. The geometry of an object is represented as a mesh soup, which can be set as follows:

// set mesh triangles and vertice indices
std::vector<Vector3f> vertices;
std::vector<Triangle> triangles;
// code to set the vertices and triangles
...
// BVHModel is a template class for mesh geometry, for default OBBRSS template
// is used
typedef BVHModel<OBBRSSf> Model;
std::shared_ptr<Model> geom = std::make_shared<Model>();
// add the mesh data into the BVHModel structure
geom->beginModel();
geom->addSubModel(vertices, triangles);
geom->endModel();

The transform of an object includes the rotation and translation:

// R and T are the rotation matrix and translation vector
Matrix3f R;
Vector3f T;
// code for setting R and T
...
// transform is configured according to R and T
Transform3f pose = Transform3f::Identity();
pose.linear() = R;
pose.translation() = T;

File truncated at 100 lines see the full file

CHANGELOG

FCL 0

FCL 0.7.0 (2021-09-09)

  • Breaking changes

    • Macros FCL_SUPPRESS_MAYBE_UNINITIALIZED_BEGIN and FCL_SUPPRESS_MAYBE_UNINITIALIZED_END defined in fcl/common/warning.h have been removed: #489
    • Require CMake 3.10: #506
    • Check SSE support and enable SSE if support is found: #506 #514
  • Core/Common

    • Use package format 3 with conditional dependency on catkin: #536
    • Fix compilation on Windows. Do not use “not” in preprocessor: #530
    • Use std::copy instead of memcpy. Patches imported from Debian: #517
    • Fix finding of ccd with pkg-config: #499 #497
  • Math

    • constants::eps() is now constexpr: #494
    • Fix shape conservative advancement normal computation: #505
  • Geometry

    • OcTree logic for determining free/occupied: #467
    • Bugs in RSS distance queries fixed: #467
    • Convex gets some validation and improved support for the GJK supportVertex() API: #488
    • Fixed bug in collision function matrix that only allowed calculation of collision between ellipsoid and half space with that ordering. Now also supports half space and ellipsoid. #520
    • Do not flush error messages on cerr: #542
  • Broadphase

  • Narrowphase

    • Primitive convex-half space collision algorithm introduced: #469
    • Contact and distance query results types changed to be compatible with OcTree: #472
    • Documentation for OcTree no longer mistakenly excluded from doxygen: #472
    • Another failure mode in the GJK/EPA signed distance query patched: #494
    • Fix build when ccd_real_t == float: #498
    • Remove accidental recursive include: #496
  • Build/Test/Misc

    • Fixed syntax which prevented building in Visual Studio 2015: #459
    • Fix compilation errors using default options on Emscripten: #470
    • Change supported linux build to Ubuntu 18.04 and Mac OS 10.14.6: #489

FCL 0.6.1 (2020-02-26)

  • Math

    • Replace M_PI instance with constants::pi(): #450
  • Narrowphase

    • Various corrections and clarifications of the GJK algorithm used for general convex distance: #446
  • Build/Test/Misc

    • Clean up install config files and ensure find_dependency is called as appropriate: #452

FCL 0.6.0 (2020-02-10)

  • Core/Common

    • Removed dependency on boost: #140, #146,

File truncated at 100 lines see the full file

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Package Dependencies

System Dependencies

Dependant Packages

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged fcl at Robotics Stack Exchange

No version for distro dashing showing jade. Known supported distros are highlighted in the buttons above.
Package symbol

fcl package from fcl repo

fcl

ROS Distro
jade

Package Summary

Tags No category tags.
Version 0.3.3
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/flexible-collision-library/fcl.git
VCS Type git
VCS Version master
Last Updated 2025-03-13
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

FCL is a collision checking library

Additional Links

Maintainers

  • Ioan Sucan

Authors

  • Jia Pan

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 http://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.io/.

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 generate a visual studio project and then you can compile the code.

Interfaces

Before starting the proximity computation, we need first to set the geometry and transform for the objects involving in computation. The geometry of an object is represented as a mesh soup, which can be set as follows:

// set mesh triangles and vertice indices
std::vector<Vector3f> vertices;
std::vector<Triangle> triangles;
// code to set the vertices and triangles
...
// BVHModel is a template class for mesh geometry, for default OBBRSS template
// is used
typedef BVHModel<OBBRSSf> Model;
std::shared_ptr<Model> geom = std::make_shared<Model>();
// add the mesh data into the BVHModel structure
geom->beginModel();
geom->addSubModel(vertices, triangles);
geom->endModel();

The transform of an object includes the rotation and translation:

// R and T are the rotation matrix and translation vector
Matrix3f R;
Vector3f T;
// code for setting R and T
...
// transform is configured according to R and T
Transform3f pose = Transform3f::Identity();
pose.linear() = R;
pose.translation() = T;

File truncated at 100 lines see the full file

CHANGELOG

FCL 0

FCL 0.7.0 (2021-09-09)

  • Breaking changes

    • Macros FCL_SUPPRESS_MAYBE_UNINITIALIZED_BEGIN and FCL_SUPPRESS_MAYBE_UNINITIALIZED_END defined in fcl/common/warning.h have been removed: #489
    • Require CMake 3.10: #506
    • Check SSE support and enable SSE if support is found: #506 #514
  • Core/Common

    • Use package format 3 with conditional dependency on catkin: #536
    • Fix compilation on Windows. Do not use “not” in preprocessor: #530
    • Use std::copy instead of memcpy. Patches imported from Debian: #517
    • Fix finding of ccd with pkg-config: #499 #497
  • Math

    • constants::eps() is now constexpr: #494
    • Fix shape conservative advancement normal computation: #505
  • Geometry

    • OcTree logic for determining free/occupied: #467
    • Bugs in RSS distance queries fixed: #467
    • Convex gets some validation and improved support for the GJK supportVertex() API: #488
    • Fixed bug in collision function matrix that only allowed calculation of collision between ellipsoid and half space with that ordering. Now also supports half space and ellipsoid. #520
    • Do not flush error messages on cerr: #542
  • Broadphase

  • Narrowphase

    • Primitive convex-half space collision algorithm introduced: #469
    • Contact and distance query results types changed to be compatible with OcTree: #472
    • Documentation for OcTree no longer mistakenly excluded from doxygen: #472
    • Another failure mode in the GJK/EPA signed distance query patched: #494
    • Fix build when ccd_real_t == float: #498
    • Remove accidental recursive include: #496
  • Build/Test/Misc

    • Fixed syntax which prevented building in Visual Studio 2015: #459
    • Fix compilation errors using default options on Emscripten: #470
    • Change supported linux build to Ubuntu 18.04 and Mac OS 10.14.6: #489

FCL 0.6.1 (2020-02-26)

  • Math

    • Replace M_PI instance with constants::pi(): #450
  • Narrowphase

    • Various corrections and clarifications of the GJK algorithm used for general convex distance: #446
  • Build/Test/Misc

    • Clean up install config files and ensure find_dependency is called as appropriate: #452

FCL 0.6.0 (2020-02-10)

  • Core/Common

    • Removed dependency on boost: #140, #146,

File truncated at 100 lines see the full file

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Package Dependencies

System Dependencies

Dependant Packages

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged fcl at Robotics Stack Exchange

No version for distro galactic showing jade. Known supported distros are highlighted in the buttons above.
Package symbol

fcl package from fcl repo

fcl

ROS Distro
jade

Package Summary

Tags No category tags.
Version 0.3.3
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/flexible-collision-library/fcl.git
VCS Type git
VCS Version master
Last Updated 2025-03-13
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

FCL is a collision checking library

Additional Links

Maintainers

  • Ioan Sucan

Authors

  • Jia Pan

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 http://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.io/.

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 generate a visual studio project and then you can compile the code.

Interfaces

Before starting the proximity computation, we need first to set the geometry and transform for the objects involving in computation. The geometry of an object is represented as a mesh soup, which can be set as follows:

// set mesh triangles and vertice indices
std::vector<Vector3f> vertices;
std::vector<Triangle> triangles;
// code to set the vertices and triangles
...
// BVHModel is a template class for mesh geometry, for default OBBRSS template
// is used
typedef BVHModel<OBBRSSf> Model;
std::shared_ptr<Model> geom = std::make_shared<Model>();
// add the mesh data into the BVHModel structure
geom->beginModel();
geom->addSubModel(vertices, triangles);
geom->endModel();

The transform of an object includes the rotation and translation:

// R and T are the rotation matrix and translation vector
Matrix3f R;
Vector3f T;
// code for setting R and T
...
// transform is configured according to R and T
Transform3f pose = Transform3f::Identity();
pose.linear() = R;
pose.translation() = T;

File truncated at 100 lines see the full file

CHANGELOG

FCL 0

FCL 0.7.0 (2021-09-09)

  • Breaking changes

    • Macros FCL_SUPPRESS_MAYBE_UNINITIALIZED_BEGIN and FCL_SUPPRESS_MAYBE_UNINITIALIZED_END defined in fcl/common/warning.h have been removed: #489
    • Require CMake 3.10: #506
    • Check SSE support and enable SSE if support is found: #506 #514
  • Core/Common

    • Use package format 3 with conditional dependency on catkin: #536
    • Fix compilation on Windows. Do not use “not” in preprocessor: #530
    • Use std::copy instead of memcpy. Patches imported from Debian: #517
    • Fix finding of ccd with pkg-config: #499 #497
  • Math

    • constants::eps() is now constexpr: #494
    • Fix shape conservative advancement normal computation: #505
  • Geometry

    • OcTree logic for determining free/occupied: #467
    • Bugs in RSS distance queries fixed: #467
    • Convex gets some validation and improved support for the GJK supportVertex() API: #488
    • Fixed bug in collision function matrix that only allowed calculation of collision between ellipsoid and half space with that ordering. Now also supports half space and ellipsoid. #520
    • Do not flush error messages on cerr: #542
  • Broadphase

  • Narrowphase

    • Primitive convex-half space collision algorithm introduced: #469
    • Contact and distance query results types changed to be compatible with OcTree: #472
    • Documentation for OcTree no longer mistakenly excluded from doxygen: #472
    • Another failure mode in the GJK/EPA signed distance query patched: #494
    • Fix build when ccd_real_t == float: #498
    • Remove accidental recursive include: #496
  • Build/Test/Misc

    • Fixed syntax which prevented building in Visual Studio 2015: #459
    • Fix compilation errors using default options on Emscripten: #470
    • Change supported linux build to Ubuntu 18.04 and Mac OS 10.14.6: #489

FCL 0.6.1 (2020-02-26)

  • Math

    • Replace M_PI instance with constants::pi(): #450
  • Narrowphase

    • Various corrections and clarifications of the GJK algorithm used for general convex distance: #446
  • Build/Test/Misc

    • Clean up install config files and ensure find_dependency is called as appropriate: #452

FCL 0.6.0 (2020-02-10)

  • Core/Common

    • Removed dependency on boost: #140, #146,

File truncated at 100 lines see the full file

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Package Dependencies

System Dependencies

Dependant Packages

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged fcl at Robotics Stack Exchange

No version for distro foxy showing jade. Known supported distros are highlighted in the buttons above.
Package symbol

fcl package from fcl repo

fcl

ROS Distro
jade

Package Summary

Tags No category tags.
Version 0.3.3
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/flexible-collision-library/fcl.git
VCS Type git
VCS Version master
Last Updated 2025-03-13
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

FCL is a collision checking library

Additional Links

Maintainers

  • Ioan Sucan

Authors

  • Jia Pan

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 http://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.io/.

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 generate a visual studio project and then you can compile the code.

Interfaces

Before starting the proximity computation, we need first to set the geometry and transform for the objects involving in computation. The geometry of an object is represented as a mesh soup, which can be set as follows:

// set mesh triangles and vertice indices
std::vector<Vector3f> vertices;
std::vector<Triangle> triangles;
// code to set the vertices and triangles
...
// BVHModel is a template class for mesh geometry, for default OBBRSS template
// is used
typedef BVHModel<OBBRSSf> Model;
std::shared_ptr<Model> geom = std::make_shared<Model>();
// add the mesh data into the BVHModel structure
geom->beginModel();
geom->addSubModel(vertices, triangles);
geom->endModel();

The transform of an object includes the rotation and translation:

// R and T are the rotation matrix and translation vector
Matrix3f R;
Vector3f T;
// code for setting R and T
...
// transform is configured according to R and T
Transform3f pose = Transform3f::Identity();
pose.linear() = R;
pose.translation() = T;

File truncated at 100 lines see the full file

CHANGELOG

FCL 0

FCL 0.7.0 (2021-09-09)

  • Breaking changes

    • Macros FCL_SUPPRESS_MAYBE_UNINITIALIZED_BEGIN and FCL_SUPPRESS_MAYBE_UNINITIALIZED_END defined in fcl/common/warning.h have been removed: #489
    • Require CMake 3.10: #506
    • Check SSE support and enable SSE if support is found: #506 #514
  • Core/Common

    • Use package format 3 with conditional dependency on catkin: #536
    • Fix compilation on Windows. Do not use “not” in preprocessor: #530
    • Use std::copy instead of memcpy. Patches imported from Debian: #517
    • Fix finding of ccd with pkg-config: #499 #497
  • Math

    • constants::eps() is now constexpr: #494
    • Fix shape conservative advancement normal computation: #505
  • Geometry

    • OcTree logic for determining free/occupied: #467
    • Bugs in RSS distance queries fixed: #467
    • Convex gets some validation and improved support for the GJK supportVertex() API: #488
    • Fixed bug in collision function matrix that only allowed calculation of collision between ellipsoid and half space with that ordering. Now also supports half space and ellipsoid. #520
    • Do not flush error messages on cerr: #542
  • Broadphase

  • Narrowphase

    • Primitive convex-half space collision algorithm introduced: #469
    • Contact and distance query results types changed to be compatible with OcTree: #472
    • Documentation for OcTree no longer mistakenly excluded from doxygen: #472
    • Another failure mode in the GJK/EPA signed distance query patched: #494
    • Fix build when ccd_real_t == float: #498
    • Remove accidental recursive include: #496
  • Build/Test/Misc

    • Fixed syntax which prevented building in Visual Studio 2015: #459
    • Fix compilation errors using default options on Emscripten: #470
    • Change supported linux build to Ubuntu 18.04 and Mac OS 10.14.6: #489

FCL 0.6.1 (2020-02-26)

  • Math

    • Replace M_PI instance with constants::pi(): #450
  • Narrowphase

    • Various corrections and clarifications of the GJK algorithm used for general convex distance: #446
  • Build/Test/Misc

    • Clean up install config files and ensure find_dependency is called as appropriate: #452

FCL 0.6.0 (2020-02-10)

  • Core/Common

    • Removed dependency on boost: #140, #146,

File truncated at 100 lines see the full file

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Package Dependencies

System Dependencies

Dependant Packages

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged fcl at Robotics Stack Exchange

No version for distro iron showing jade. Known supported distros are highlighted in the buttons above.
Package symbol

fcl package from fcl repo

fcl

ROS Distro
jade

Package Summary

Tags No category tags.
Version 0.3.3
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/flexible-collision-library/fcl.git
VCS Type git
VCS Version master
Last Updated 2025-03-13
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

FCL is a collision checking library

Additional Links

Maintainers

  • Ioan Sucan

Authors

  • Jia Pan

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 http://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.io/.

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 generate a visual studio project and then you can compile the code.

Interfaces

Before starting the proximity computation, we need first to set the geometry and transform for the objects involving in computation. The geometry of an object is represented as a mesh soup, which can be set as follows:

// set mesh triangles and vertice indices
std::vector<Vector3f> vertices;
std::vector<Triangle> triangles;
// code to set the vertices and triangles
...
// BVHModel is a template class for mesh geometry, for default OBBRSS template
// is used
typedef BVHModel<OBBRSSf> Model;
std::shared_ptr<Model> geom = std::make_shared<Model>();
// add the mesh data into the BVHModel structure
geom->beginModel();
geom->addSubModel(vertices, triangles);
geom->endModel();

The transform of an object includes the rotation and translation:

// R and T are the rotation matrix and translation vector
Matrix3f R;
Vector3f T;
// code for setting R and T
...
// transform is configured according to R and T
Transform3f pose = Transform3f::Identity();
pose.linear() = R;
pose.translation() = T;

File truncated at 100 lines see the full file

CHANGELOG

FCL 0

FCL 0.7.0 (2021-09-09)

  • Breaking changes

    • Macros FCL_SUPPRESS_MAYBE_UNINITIALIZED_BEGIN and FCL_SUPPRESS_MAYBE_UNINITIALIZED_END defined in fcl/common/warning.h have been removed: #489
    • Require CMake 3.10: #506
    • Check SSE support and enable SSE if support is found: #506 #514
  • Core/Common

    • Use package format 3 with conditional dependency on catkin: #536
    • Fix compilation on Windows. Do not use “not” in preprocessor: #530
    • Use std::copy instead of memcpy. Patches imported from Debian: #517
    • Fix finding of ccd with pkg-config: #499 #497
  • Math

    • constants::eps() is now constexpr: #494
    • Fix shape conservative advancement normal computation: #505
  • Geometry

    • OcTree logic for determining free/occupied: #467
    • Bugs in RSS distance queries fixed: #467
    • Convex gets some validation and improved support for the GJK supportVertex() API: #488
    • Fixed bug in collision function matrix that only allowed calculation of collision between ellipsoid and half space with that ordering. Now also supports half space and ellipsoid. #520
    • Do not flush error messages on cerr: #542
  • Broadphase

  • Narrowphase

    • Primitive convex-half space collision algorithm introduced: #469
    • Contact and distance query results types changed to be compatible with OcTree: #472
    • Documentation for OcTree no longer mistakenly excluded from doxygen: #472
    • Another failure mode in the GJK/EPA signed distance query patched: #494
    • Fix build when ccd_real_t == float: #498
    • Remove accidental recursive include: #496
  • Build/Test/Misc

    • Fixed syntax which prevented building in Visual Studio 2015: #459
    • Fix compilation errors using default options on Emscripten: #470
    • Change supported linux build to Ubuntu 18.04 and Mac OS 10.14.6: #489

FCL 0.6.1 (2020-02-26)

  • Math

    • Replace M_PI instance with constants::pi(): #450
  • Narrowphase

    • Various corrections and clarifications of the GJK algorithm used for general convex distance: #446
  • Build/Test/Misc

    • Clean up install config files and ensure find_dependency is called as appropriate: #452

FCL 0.6.0 (2020-02-10)

  • Core/Common

    • Removed dependency on boost: #140, #146,

File truncated at 100 lines see the full file

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Package Dependencies

System Dependencies

Dependant Packages

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged fcl at Robotics Stack Exchange

No version for distro lunar showing jade. Known supported distros are highlighted in the buttons above.
Package symbol

fcl package from fcl repo

fcl

ROS Distro
jade

Package Summary

Tags No category tags.
Version 0.3.3
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/flexible-collision-library/fcl.git
VCS Type git
VCS Version master
Last Updated 2025-03-13
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

FCL is a collision checking library

Additional Links

Maintainers

  • Ioan Sucan

Authors

  • Jia Pan

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 http://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.io/.

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 generate a visual studio project and then you can compile the code.

Interfaces

Before starting the proximity computation, we need first to set the geometry and transform for the objects involving in computation. The geometry of an object is represented as a mesh soup, which can be set as follows:

// set mesh triangles and vertice indices
std::vector<Vector3f> vertices;
std::vector<Triangle> triangles;
// code to set the vertices and triangles
...
// BVHModel is a template class for mesh geometry, for default OBBRSS template
// is used
typedef BVHModel<OBBRSSf> Model;
std::shared_ptr<Model> geom = std::make_shared<Model>();
// add the mesh data into the BVHModel structure
geom->beginModel();
geom->addSubModel(vertices, triangles);
geom->endModel();

The transform of an object includes the rotation and translation:

// R and T are the rotation matrix and translation vector
Matrix3f R;
Vector3f T;
// code for setting R and T
...
// transform is configured according to R and T
Transform3f pose = Transform3f::Identity();
pose.linear() = R;
pose.translation() = T;

File truncated at 100 lines see the full file

CHANGELOG

FCL 0

FCL 0.7.0 (2021-09-09)

  • Breaking changes

    • Macros FCL_SUPPRESS_MAYBE_UNINITIALIZED_BEGIN and FCL_SUPPRESS_MAYBE_UNINITIALIZED_END defined in fcl/common/warning.h have been removed: #489
    • Require CMake 3.10: #506
    • Check SSE support and enable SSE if support is found: #506 #514
  • Core/Common

    • Use package format 3 with conditional dependency on catkin: #536
    • Fix compilation on Windows. Do not use “not” in preprocessor: #530
    • Use std::copy instead of memcpy. Patches imported from Debian: #517
    • Fix finding of ccd with pkg-config: #499 #497
  • Math

    • constants::eps() is now constexpr: #494
    • Fix shape conservative advancement normal computation: #505
  • Geometry

    • OcTree logic for determining free/occupied: #467
    • Bugs in RSS distance queries fixed: #467
    • Convex gets some validation and improved support for the GJK supportVertex() API: #488
    • Fixed bug in collision function matrix that only allowed calculation of collision between ellipsoid and half space with that ordering. Now also supports half space and ellipsoid. #520
    • Do not flush error messages on cerr: #542
  • Broadphase

  • Narrowphase

    • Primitive convex-half space collision algorithm introduced: #469
    • Contact and distance query results types changed to be compatible with OcTree: #472
    • Documentation for OcTree no longer mistakenly excluded from doxygen: #472
    • Another failure mode in the GJK/EPA signed distance query patched: #494
    • Fix build when ccd_real_t == float: #498
    • Remove accidental recursive include: #496
  • Build/Test/Misc

    • Fixed syntax which prevented building in Visual Studio 2015: #459
    • Fix compilation errors using default options on Emscripten: #470
    • Change supported linux build to Ubuntu 18.04 and Mac OS 10.14.6: #489

FCL 0.6.1 (2020-02-26)

  • Math

    • Replace M_PI instance with constants::pi(): #450
  • Narrowphase

    • Various corrections and clarifications of the GJK algorithm used for general convex distance: #446
  • Build/Test/Misc

    • Clean up install config files and ensure find_dependency is called as appropriate: #452

FCL 0.6.0 (2020-02-10)

  • Core/Common

    • Removed dependency on boost: #140, #146,

File truncated at 100 lines see the full file

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Package Dependencies

System Dependencies

Dependant Packages

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged fcl at Robotics Stack Exchange

Package symbol

fcl package from fcl repo

fcl

ROS Distro
jade

Third-Party Package

This third-party package's source repository does not contain a package manifest. Instead, its package manifest is stored in its release repository. In order to build this package from source in a Catkin workspace, please download its package manifest.

Package Summary

Tags No category tags.
Version 0.3.3
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/flexible-collision-library/fcl.git
VCS Type git
VCS Version master
Last Updated 2025-03-13
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

FCL is a collision checking library

Additional Links

Maintainers

  • Ioan Sucan

Authors

  • Jia Pan

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 http://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.io/.

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 generate a visual studio project and then you can compile the code.

Interfaces

Before starting the proximity computation, we need first to set the geometry and transform for the objects involving in computation. The geometry of an object is represented as a mesh soup, which can be set as follows:

// set mesh triangles and vertice indices
std::vector<Vector3f> vertices;
std::vector<Triangle> triangles;
// code to set the vertices and triangles
...
// BVHModel is a template class for mesh geometry, for default OBBRSS template
// is used
typedef BVHModel<OBBRSSf> Model;
std::shared_ptr<Model> geom = std::make_shared<Model>();
// add the mesh data into the BVHModel structure
geom->beginModel();
geom->addSubModel(vertices, triangles);
geom->endModel();

The transform of an object includes the rotation and translation:

// R and T are the rotation matrix and translation vector
Matrix3f R;
Vector3f T;
// code for setting R and T
...
// transform is configured according to R and T
Transform3f pose = Transform3f::Identity();
pose.linear() = R;
pose.translation() = T;

File truncated at 100 lines see the full file

CHANGELOG

FCL 0

FCL 0.7.0 (2021-09-09)

  • Breaking changes

    • Macros FCL_SUPPRESS_MAYBE_UNINITIALIZED_BEGIN and FCL_SUPPRESS_MAYBE_UNINITIALIZED_END defined in fcl/common/warning.h have been removed: #489
    • Require CMake 3.10: #506
    • Check SSE support and enable SSE if support is found: #506 #514
  • Core/Common

    • Use package format 3 with conditional dependency on catkin: #536
    • Fix compilation on Windows. Do not use “not” in preprocessor: #530
    • Use std::copy instead of memcpy. Patches imported from Debian: #517
    • Fix finding of ccd with pkg-config: #499 #497
  • Math

    • constants::eps() is now constexpr: #494
    • Fix shape conservative advancement normal computation: #505
  • Geometry

    • OcTree logic for determining free/occupied: #467
    • Bugs in RSS distance queries fixed: #467
    • Convex gets some validation and improved support for the GJK supportVertex() API: #488
    • Fixed bug in collision function matrix that only allowed calculation of collision between ellipsoid and half space with that ordering. Now also supports half space and ellipsoid. #520
    • Do not flush error messages on cerr: #542
  • Broadphase

  • Narrowphase

    • Primitive convex-half space collision algorithm introduced: #469
    • Contact and distance query results types changed to be compatible with OcTree: #472
    • Documentation for OcTree no longer mistakenly excluded from doxygen: #472
    • Another failure mode in the GJK/EPA signed distance query patched: #494
    • Fix build when ccd_real_t == float: #498
    • Remove accidental recursive include: #496
  • Build/Test/Misc

    • Fixed syntax which prevented building in Visual Studio 2015: #459
    • Fix compilation errors using default options on Emscripten: #470
    • Change supported linux build to Ubuntu 18.04 and Mac OS 10.14.6: #489

FCL 0.6.1 (2020-02-26)

  • Math

    • Replace M_PI instance with constants::pi(): #450
  • Narrowphase

    • Various corrections and clarifications of the GJK algorithm used for general convex distance: #446
  • Build/Test/Misc

    • Clean up install config files and ensure find_dependency is called as appropriate: #452

FCL 0.6.0 (2020-02-10)

  • Core/Common

    • Removed dependency on boost: #140, #146,

File truncated at 100 lines see the full file

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Package Dependencies

System Dependencies

Dependant Packages

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged fcl at Robotics Stack Exchange

Package symbol

fcl package from fcl repo

fcl

ROS Distro
indigo

Third-Party Package

This third-party package's source repository does not contain a package manifest. Instead, its package manifest is stored in its release repository. In order to build this package from source in a Catkin workspace, please download its package manifest.

Package Summary

Tags No category tags.
Version 0.3.4
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/flexible-collision-library/fcl.git
VCS Type git
VCS Version master
Last Updated 2025-03-13
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

FCL is a collision checking library

Additional Links

Maintainers

  • Ioan Sucan

Authors

  • Jia Pan

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 http://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.io/.

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 generate a visual studio project and then you can compile the code.

Interfaces

Before starting the proximity computation, we need first to set the geometry and transform for the objects involving in computation. The geometry of an object is represented as a mesh soup, which can be set as follows:

// set mesh triangles and vertice indices
std::vector<Vector3f> vertices;
std::vector<Triangle> triangles;
// code to set the vertices and triangles
...
// BVHModel is a template class for mesh geometry, for default OBBRSS template
// is used
typedef BVHModel<OBBRSSf> Model;
std::shared_ptr<Model> geom = std::make_shared<Model>();
// add the mesh data into the BVHModel structure
geom->beginModel();
geom->addSubModel(vertices, triangles);
geom->endModel();

The transform of an object includes the rotation and translation:

// R and T are the rotation matrix and translation vector
Matrix3f R;
Vector3f T;
// code for setting R and T
...
// transform is configured according to R and T
Transform3f pose = Transform3f::Identity();
pose.linear() = R;
pose.translation() = T;

File truncated at 100 lines see the full file

CHANGELOG

FCL 0

FCL 0.7.0 (2021-09-09)

  • Breaking changes

    • Macros FCL_SUPPRESS_MAYBE_UNINITIALIZED_BEGIN and FCL_SUPPRESS_MAYBE_UNINITIALIZED_END defined in fcl/common/warning.h have been removed: #489
    • Require CMake 3.10: #506
    • Check SSE support and enable SSE if support is found: #506 #514
  • Core/Common

    • Use package format 3 with conditional dependency on catkin: #536
    • Fix compilation on Windows. Do not use “not” in preprocessor: #530
    • Use std::copy instead of memcpy. Patches imported from Debian: #517
    • Fix finding of ccd with pkg-config: #499 #497
  • Math

    • constants::eps() is now constexpr: #494
    • Fix shape conservative advancement normal computation: #505
  • Geometry

    • OcTree logic for determining free/occupied: #467
    • Bugs in RSS distance queries fixed: #467
    • Convex gets some validation and improved support for the GJK supportVertex() API: #488
    • Fixed bug in collision function matrix that only allowed calculation of collision between ellipsoid and half space with that ordering. Now also supports half space and ellipsoid. #520
    • Do not flush error messages on cerr: #542
  • Broadphase

  • Narrowphase

    • Primitive convex-half space collision algorithm introduced: #469
    • Contact and distance query results types changed to be compatible with OcTree: #472
    • Documentation for OcTree no longer mistakenly excluded from doxygen: #472
    • Another failure mode in the GJK/EPA signed distance query patched: #494
    • Fix build when ccd_real_t == float: #498
    • Remove accidental recursive include: #496
  • Build/Test/Misc

    • Fixed syntax which prevented building in Visual Studio 2015: #459
    • Fix compilation errors using default options on Emscripten: #470
    • Change supported linux build to Ubuntu 18.04 and Mac OS 10.14.6: #489

FCL 0.6.1 (2020-02-26)

  • Math

    • Replace M_PI instance with constants::pi(): #450
  • Narrowphase

    • Various corrections and clarifications of the GJK algorithm used for general convex distance: #446
  • Build/Test/Misc

    • Clean up install config files and ensure find_dependency is called as appropriate: #452

FCL 0.6.0 (2020-02-10)

  • Core/Common

    • Removed dependency on boost: #140, #146,

File truncated at 100 lines see the full file

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Package Dependencies

System Dependencies

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged fcl at Robotics Stack Exchange

Package symbol

fcl package from fcl repo

fcl

ROS Distro
hydro

Third-Party Package

This third-party package's source repository does not contain a package manifest. Instead, its package manifest is stored in its release repository. In order to build this package from source in a Catkin workspace, please download its package manifest.

Package Summary

Tags No category tags.
Version 0.2.9
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/flexible-collision-library/fcl.git
VCS Type git
VCS Version master
Last Updated 2025-03-13
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

FCL is a collision checking library

Additional Links

Maintainers

  • Ioan Sucan

Authors

  • Jia Pan

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 http://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.io/.

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 generate a visual studio project and then you can compile the code.

Interfaces

Before starting the proximity computation, we need first to set the geometry and transform for the objects involving in computation. The geometry of an object is represented as a mesh soup, which can be set as follows:

// set mesh triangles and vertice indices
std::vector<Vector3f> vertices;
std::vector<Triangle> triangles;
// code to set the vertices and triangles
...
// BVHModel is a template class for mesh geometry, for default OBBRSS template
// is used
typedef BVHModel<OBBRSSf> Model;
std::shared_ptr<Model> geom = std::make_shared<Model>();
// add the mesh data into the BVHModel structure
geom->beginModel();
geom->addSubModel(vertices, triangles);
geom->endModel();

The transform of an object includes the rotation and translation:

// R and T are the rotation matrix and translation vector
Matrix3f R;
Vector3f T;
// code for setting R and T
...
// transform is configured according to R and T
Transform3f pose = Transform3f::Identity();
pose.linear() = R;
pose.translation() = T;

File truncated at 100 lines see the full file

CHANGELOG

FCL 0

FCL 0.7.0 (2021-09-09)

  • Breaking changes

    • Macros FCL_SUPPRESS_MAYBE_UNINITIALIZED_BEGIN and FCL_SUPPRESS_MAYBE_UNINITIALIZED_END defined in fcl/common/warning.h have been removed: #489
    • Require CMake 3.10: #506
    • Check SSE support and enable SSE if support is found: #506 #514
  • Core/Common

    • Use package format 3 with conditional dependency on catkin: #536
    • Fix compilation on Windows. Do not use “not” in preprocessor: #530
    • Use std::copy instead of memcpy. Patches imported from Debian: #517
    • Fix finding of ccd with pkg-config: #499 #497
  • Math

    • constants::eps() is now constexpr: #494
    • Fix shape conservative advancement normal computation: #505
  • Geometry

    • OcTree logic for determining free/occupied: #467
    • Bugs in RSS distance queries fixed: #467
    • Convex gets some validation and improved support for the GJK supportVertex() API: #488
    • Fixed bug in collision function matrix that only allowed calculation of collision between ellipsoid and half space with that ordering. Now also supports half space and ellipsoid. #520
    • Do not flush error messages on cerr: #542
  • Broadphase

  • Narrowphase

    • Primitive convex-half space collision algorithm introduced: #469
    • Contact and distance query results types changed to be compatible with OcTree: #472
    • Documentation for OcTree no longer mistakenly excluded from doxygen: #472
    • Another failure mode in the GJK/EPA signed distance query patched: #494
    • Fix build when ccd_real_t == float: #498
    • Remove accidental recursive include: #496
  • Build/Test/Misc

    • Fixed syntax which prevented building in Visual Studio 2015: #459
    • Fix compilation errors using default options on Emscripten: #470
    • Change supported linux build to Ubuntu 18.04 and Mac OS 10.14.6: #489

FCL 0.6.1 (2020-02-26)

  • Math

    • Replace M_PI instance with constants::pi(): #450
  • Narrowphase

    • Various corrections and clarifications of the GJK algorithm used for general convex distance: #446
  • Build/Test/Misc

    • Clean up install config files and ensure find_dependency is called as appropriate: #452

FCL 0.6.0 (2020-02-10)

  • Core/Common

    • Removed dependency on boost: #140, #146,

File truncated at 100 lines see the full file

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Package Dependencies

System Dependencies

Dependant Packages

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged fcl at Robotics Stack Exchange

No version for distro kinetic showing jade. Known supported distros are highlighted in the buttons above.
Package symbol

fcl package from fcl repo

fcl

ROS Distro
jade

Package Summary

Tags No category tags.
Version 0.3.3
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/flexible-collision-library/fcl.git
VCS Type git
VCS Version master
Last Updated 2025-03-13
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

FCL is a collision checking library

Additional Links

Maintainers

  • Ioan Sucan

Authors

  • Jia Pan

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 http://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.io/.

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 generate a visual studio project and then you can compile the code.

Interfaces

Before starting the proximity computation, we need first to set the geometry and transform for the objects involving in computation. The geometry of an object is represented as a mesh soup, which can be set as follows:

// set mesh triangles and vertice indices
std::vector<Vector3f> vertices;
std::vector<Triangle> triangles;
// code to set the vertices and triangles
...
// BVHModel is a template class for mesh geometry, for default OBBRSS template
// is used
typedef BVHModel<OBBRSSf> Model;
std::shared_ptr<Model> geom = std::make_shared<Model>();
// add the mesh data into the BVHModel structure
geom->beginModel();
geom->addSubModel(vertices, triangles);
geom->endModel();

The transform of an object includes the rotation and translation:

// R and T are the rotation matrix and translation vector
Matrix3f R;
Vector3f T;
// code for setting R and T
...
// transform is configured according to R and T
Transform3f pose = Transform3f::Identity();
pose.linear() = R;
pose.translation() = T;

File truncated at 100 lines see the full file

CHANGELOG

FCL 0

FCL 0.7.0 (2021-09-09)

  • Breaking changes

    • Macros FCL_SUPPRESS_MAYBE_UNINITIALIZED_BEGIN and FCL_SUPPRESS_MAYBE_UNINITIALIZED_END defined in fcl/common/warning.h have been removed: #489
    • Require CMake 3.10: #506
    • Check SSE support and enable SSE if support is found: #506 #514
  • Core/Common

    • Use package format 3 with conditional dependency on catkin: #536
    • Fix compilation on Windows. Do not use “not” in preprocessor: #530
    • Use std::copy instead of memcpy. Patches imported from Debian: #517
    • Fix finding of ccd with pkg-config: #499 #497
  • Math

    • constants::eps() is now constexpr: #494
    • Fix shape conservative advancement normal computation: #505
  • Geometry

    • OcTree logic for determining free/occupied: #467
    • Bugs in RSS distance queries fixed: #467
    • Convex gets some validation and improved support for the GJK supportVertex() API: #488
    • Fixed bug in collision function matrix that only allowed calculation of collision between ellipsoid and half space with that ordering. Now also supports half space and ellipsoid. #520
    • Do not flush error messages on cerr: #542
  • Broadphase

  • Narrowphase

    • Primitive convex-half space collision algorithm introduced: #469
    • Contact and distance query results types changed to be compatible with OcTree: #472
    • Documentation for OcTree no longer mistakenly excluded from doxygen: #472
    • Another failure mode in the GJK/EPA signed distance query patched: #494
    • Fix build when ccd_real_t == float: #498
    • Remove accidental recursive include: #496
  • Build/Test/Misc

    • Fixed syntax which prevented building in Visual Studio 2015: #459
    • Fix compilation errors using default options on Emscripten: #470
    • Change supported linux build to Ubuntu 18.04 and Mac OS 10.14.6: #489

FCL 0.6.1 (2020-02-26)

  • Math

    • Replace M_PI instance with constants::pi(): #450
  • Narrowphase

    • Various corrections and clarifications of the GJK algorithm used for general convex distance: #446
  • Build/Test/Misc

    • Clean up install config files and ensure find_dependency is called as appropriate: #452

FCL 0.6.0 (2020-02-10)

  • Core/Common

    • Removed dependency on boost: #140, #146,

File truncated at 100 lines see the full file

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Package Dependencies

System Dependencies

Dependant Packages

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged fcl at Robotics Stack Exchange

Package symbol

fcl package from fcl repo

fcl

ROS Distro
melodic

Package Summary

Tags No category tags.
Version 0.7.0
License BSD
Build type CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/flexible-collision-library/fcl.git
VCS Type git
VCS Version master
Last Updated 2025-03-13
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

FCL: the Flexible Collision Library

Additional Links

No additional links.

Maintainers

  • TRI Geometry Team

Authors

No additional authors.

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 http://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.io/.

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 generate a visual studio project and then you can compile the code.

Interfaces

Before starting the proximity computation, we need first to set the geometry and transform for the objects involving in computation. The geometry of an object is represented as a mesh soup, which can be set as follows:

// set mesh triangles and vertice indices
std::vector<Vector3f> vertices;
std::vector<Triangle> triangles;
// code to set the vertices and triangles
...
// BVHModel is a template class for mesh geometry, for default OBBRSS template
// is used
typedef BVHModel<OBBRSSf> Model;
std::shared_ptr<Model> geom = std::make_shared<Model>();
// add the mesh data into the BVHModel structure
geom->beginModel();
geom->addSubModel(vertices, triangles);
geom->endModel();

The transform of an object includes the rotation and translation:

// R and T are the rotation matrix and translation vector
Matrix3f R;
Vector3f T;
// code for setting R and T
...
// transform is configured according to R and T
Transform3f pose = Transform3f::Identity();
pose.linear() = R;
pose.translation() = T;

File truncated at 100 lines see the full file

CHANGELOG

FCL 0

FCL 0.7.0 (2021-09-09)

  • Breaking changes

    • Macros FCL_SUPPRESS_MAYBE_UNINITIALIZED_BEGIN and FCL_SUPPRESS_MAYBE_UNINITIALIZED_END defined in fcl/common/warning.h have been removed: #489
    • Require CMake 3.10: #506
    • Check SSE support and enable SSE if support is found: #506 #514
  • Core/Common

    • Use package format 3 with conditional dependency on catkin: #536
    • Fix compilation on Windows. Do not use “not” in preprocessor: #530
    • Use std::copy instead of memcpy. Patches imported from Debian: #517
    • Fix finding of ccd with pkg-config: #499 #497
  • Math

    • constants::eps() is now constexpr: #494
    • Fix shape conservative advancement normal computation: #505
  • Geometry

    • OcTree logic for determining free/occupied: #467
    • Bugs in RSS distance queries fixed: #467
    • Convex gets some validation and improved support for the GJK supportVertex() API: #488
    • Fixed bug in collision function matrix that only allowed calculation of collision between ellipsoid and half space with that ordering. Now also supports half space and ellipsoid. #520
    • Do not flush error messages on cerr: #542
  • Broadphase

  • Narrowphase

    • Primitive convex-half space collision algorithm introduced: #469
    • Contact and distance query results types changed to be compatible with OcTree: #472
    • Documentation for OcTree no longer mistakenly excluded from doxygen: #472
    • Another failure mode in the GJK/EPA signed distance query patched: #494
    • Fix build when ccd_real_t == float: #498
    • Remove accidental recursive include: #496
  • Build/Test/Misc

    • Fixed syntax which prevented building in Visual Studio 2015: #459
    • Fix compilation errors using default options on Emscripten: #470
    • Change supported linux build to Ubuntu 18.04 and Mac OS 10.14.6: #489

FCL 0.6.1 (2020-02-26)

  • Math

    • Replace M_PI instance with constants::pi(): #450
  • Narrowphase

    • Various corrections and clarifications of the GJK algorithm used for general convex distance: #446
  • Build/Test/Misc

    • Clean up install config files and ensure find_dependency is called as appropriate: #452

FCL 0.6.0 (2020-02-10)

  • Core/Common

    • Removed dependency on boost: #140, #146,

File truncated at 100 lines see the full file

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Package Dependencies

System Dependencies

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged fcl at Robotics Stack Exchange

Package symbol

fcl package from fcl repo

fcl

ROS Distro
noetic

Package Summary

Tags No category tags.
Version 0.7.0
License BSD
Build type CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/flexible-collision-library/fcl.git
VCS Type git
VCS Version master
Last Updated 2025-03-13
Dev Status MAINTAINED
CI status Continuous Integration : 0 / 0
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

FCL: the Flexible Collision Library

Additional Links

No additional links.

Maintainers

  • TRI Geometry Team

Authors

No additional authors.

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 http://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.io/.

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 generate a visual studio project and then you can compile the code.

Interfaces

Before starting the proximity computation, we need first to set the geometry and transform for the objects involving in computation. The geometry of an object is represented as a mesh soup, which can be set as follows:

// set mesh triangles and vertice indices
std::vector<Vector3f> vertices;
std::vector<Triangle> triangles;
// code to set the vertices and triangles
...
// BVHModel is a template class for mesh geometry, for default OBBRSS template
// is used
typedef BVHModel<OBBRSSf> Model;
std::shared_ptr<Model> geom = std::make_shared<Model>();
// add the mesh data into the BVHModel structure
geom->beginModel();
geom->addSubModel(vertices, triangles);
geom->endModel();

The transform of an object includes the rotation and translation:

// R and T are the rotation matrix and translation vector
Matrix3f R;
Vector3f T;
// code for setting R and T
...
// transform is configured according to R and T
Transform3f pose = Transform3f::Identity();
pose.linear() = R;
pose.translation() = T;

File truncated at 100 lines see the full file

CHANGELOG

FCL 0

FCL 0.7.0 (2021-09-09)

  • Breaking changes

    • Macros FCL_SUPPRESS_MAYBE_UNINITIALIZED_BEGIN and FCL_SUPPRESS_MAYBE_UNINITIALIZED_END defined in fcl/common/warning.h have been removed: #489
    • Require CMake 3.10: #506
    • Check SSE support and enable SSE if support is found: #506 #514
  • Core/Common

    • Use package format 3 with conditional dependency on catkin: #536
    • Fix compilation on Windows. Do not use “not” in preprocessor: #530
    • Use std::copy instead of memcpy. Patches imported from Debian: #517
    • Fix finding of ccd with pkg-config: #499 #497
  • Math

    • constants::eps() is now constexpr: #494
    • Fix shape conservative advancement normal computation: #505
  • Geometry

    • OcTree logic for determining free/occupied: #467
    • Bugs in RSS distance queries fixed: #467
    • Convex gets some validation and improved support for the GJK supportVertex() API: #488
    • Fixed bug in collision function matrix that only allowed calculation of collision between ellipsoid and half space with that ordering. Now also supports half space and ellipsoid. #520
    • Do not flush error messages on cerr: #542
  • Broadphase

  • Narrowphase

    • Primitive convex-half space collision algorithm introduced: #469
    • Contact and distance query results types changed to be compatible with OcTree: #472
    • Documentation for OcTree no longer mistakenly excluded from doxygen: #472
    • Another failure mode in the GJK/EPA signed distance query patched: #494
    • Fix build when ccd_real_t == float: #498
    • Remove accidental recursive include: #496
  • Build/Test/Misc

    • Fixed syntax which prevented building in Visual Studio 2015: #459
    • Fix compilation errors using default options on Emscripten: #470
    • Change supported linux build to Ubuntu 18.04 and Mac OS 10.14.6: #489

FCL 0.6.1 (2020-02-26)

  • Math

    • Replace M_PI instance with constants::pi(): #450
  • Narrowphase

    • Various corrections and clarifications of the GJK algorithm used for general convex distance: #446
  • Build/Test/Misc

    • Clean up install config files and ensure find_dependency is called as appropriate: #452

FCL 0.6.0 (2020-02-10)

  • Core/Common

    • Removed dependency on boost: #140, #146,

File truncated at 100 lines see the full file

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged fcl at Robotics Stack Exchange