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
Additional Links
Maintainers
- Ioan Sucan
Authors
- Jia Pan
FCL – The Flexible Collision Library
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
FCL 0
FCL 0.7.0 (2021-09-09)
-
Breaking changes
-
Core/Common
-
Math
-
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
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)
File truncated at 100 lines see the full file
Wiki Tutorials
Dependant Packages
Name | Deps |
---|---|
moveit_core | |
moveit_experimental |
Launch files
Messages
Services
Plugins
Recent questions tagged fcl at Robotics Stack Exchange
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
Additional Links
Maintainers
- Ioan Sucan
Authors
- Jia Pan
FCL – The Flexible Collision Library
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
FCL 0
FCL 0.7.0 (2021-09-09)
-
Breaking changes
-
Core/Common
-
Math
-
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
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)
File truncated at 100 lines see the full file
Wiki Tutorials
Dependant Packages
Name | Deps |
---|---|
moveit_core | |
moveit_experimental |
Launch files
Messages
Services
Plugins
Recent questions tagged fcl at Robotics Stack Exchange
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
Additional Links
Maintainers
- Ioan Sucan
Authors
- Jia Pan
FCL – The Flexible Collision Library
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
FCL 0
FCL 0.7.0 (2021-09-09)
-
Breaking changes
-
Core/Common
-
Math
-
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
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)
File truncated at 100 lines see the full file
Wiki Tutorials
Dependant Packages
Name | Deps |
---|---|
moveit_core | |
moveit_experimental |
Launch files
Messages
Services
Plugins
Recent questions tagged fcl at Robotics Stack Exchange
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
Additional Links
Maintainers
- Ioan Sucan
Authors
- Jia Pan
FCL – The Flexible Collision Library
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
FCL 0
FCL 0.7.0 (2021-09-09)
-
Breaking changes
-
Core/Common
-
Math
-
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
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)
File truncated at 100 lines see the full file
Wiki Tutorials
Dependant Packages
Name | Deps |
---|---|
moveit_core | |
moveit_experimental |
Launch files
Messages
Services
Plugins
Recent questions tagged fcl at Robotics Stack Exchange
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
Additional Links
Maintainers
- Ioan Sucan
Authors
- Jia Pan
FCL – The Flexible Collision Library
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
FCL 0
FCL 0.7.0 (2021-09-09)
-
Breaking changes
-
Core/Common
-
Math
-
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
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)
File truncated at 100 lines see the full file
Wiki Tutorials
Dependant Packages
Name | Deps |
---|---|
moveit_core | |
moveit_experimental |
Launch files
Messages
Services
Plugins
Recent questions tagged fcl at Robotics Stack Exchange
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
Additional Links
Maintainers
- Ioan Sucan
Authors
- Jia Pan
FCL – The Flexible Collision Library
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
FCL 0
FCL 0.7.0 (2021-09-09)
-
Breaking changes
-
Core/Common
-
Math
-
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
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)
File truncated at 100 lines see the full file
Wiki Tutorials
Dependant Packages
Name | Deps |
---|---|
moveit_core | |
moveit_experimental |
Launch files
Messages
Services
Plugins
Recent questions tagged fcl at Robotics Stack Exchange
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
Additional Links
Maintainers
- Ioan Sucan
Authors
- Jia Pan
FCL – The Flexible Collision Library
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
FCL 0
FCL 0.7.0 (2021-09-09)
-
Breaking changes
-
Core/Common
-
Math
-
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
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)
File truncated at 100 lines see the full file
Wiki Tutorials
Dependant Packages
Name | Deps |
---|---|
moveit_core | |
moveit_experimental |
Launch files
Messages
Services
Plugins
Recent questions tagged fcl at Robotics Stack Exchange
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
Additional Links
Maintainers
- Ioan Sucan
Authors
- Jia Pan
FCL – The Flexible Collision Library
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
FCL 0
FCL 0.7.0 (2021-09-09)
-
Breaking changes
-
Core/Common
-
Math
-
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
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)
File truncated at 100 lines see the full file
Wiki Tutorials
Dependant Packages
Name | Deps |
---|---|
moveit_core | |
moveit_experimental |
Launch files
Messages
Services
Plugins
Recent questions tagged fcl at Robotics Stack Exchange
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
Additional Links
Maintainers
- Ioan Sucan
Authors
- Jia Pan
FCL – The Flexible Collision Library
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
FCL 0
FCL 0.7.0 (2021-09-09)
-
Breaking changes
-
Core/Common
-
Math
-
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
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)
File truncated at 100 lines see the full file
Wiki Tutorials
Dependant Packages
Name | Deps |
---|---|
moveit_core | |
moveit_experimental |
Launch files
Messages
Services
Plugins
Recent questions tagged fcl at Robotics Stack Exchange
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
Additional Links
Maintainers
- Ioan Sucan
Authors
- Jia Pan
FCL – The Flexible Collision Library
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
FCL 0
FCL 0.7.0 (2021-09-09)
-
Breaking changes
-
Core/Common
-
Math
-
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
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)
File truncated at 100 lines see the full file
Wiki Tutorials
Dependant Packages
Name | Deps |
---|---|
moveit_core | |
moveit_experimental |
Launch files
Messages
Services
Plugins
Recent questions tagged fcl at Robotics Stack Exchange
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
Additional Links
Maintainers
- Ioan Sucan
Authors
- Jia Pan
FCL – The Flexible Collision Library
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
FCL 0
FCL 0.7.0 (2021-09-09)
-
Breaking changes
-
Core/Common
-
Math
-
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
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)
File truncated at 100 lines see the full file
Wiki Tutorials
Dependant Packages
Name | Deps |
---|---|
moveit_core | |
moveit_experimental |
Launch files
Messages
Services
Plugins
Recent questions tagged fcl at Robotics Stack Exchange
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
Additional Links
Maintainers
- Ioan Sucan
Authors
- Jia Pan
FCL – The Flexible Collision Library
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
FCL 0
FCL 0.7.0 (2021-09-09)
-
Breaking changes
-
Core/Common
-
Math
-
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
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)
File truncated at 100 lines see the full file
Wiki Tutorials
Dependant Packages
Name | Deps |
---|---|
moveit_core | |
moveit_experimental |
Launch files
Messages
Services
Plugins
Recent questions tagged fcl at Robotics Stack Exchange
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
Additional Links
Maintainers
- Ioan Sucan
Authors
- Jia Pan
FCL – The Flexible Collision Library
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
FCL 0
FCL 0.7.0 (2021-09-09)
-
Breaking changes
-
Core/Common
-
Math
-
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
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)
File truncated at 100 lines see the full file
Wiki Tutorials
Dependant Packages
Name | Deps |
---|---|
moveit_core | |
moveit_experimental |
Launch files
Messages
Services
Plugins
Recent questions tagged fcl at Robotics Stack Exchange
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
Additional Links
Maintainers
- Ioan Sucan
Authors
- Jia Pan
FCL – The Flexible Collision Library
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
FCL 0
FCL 0.7.0 (2021-09-09)
-
Breaking changes
-
Core/Common
-
Math
-
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
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)
File truncated at 100 lines see the full file
Wiki Tutorials
Dependant Packages
Name | Deps |
---|---|
moveit_core | |
moveit_experimental |
Launch files
Messages
Services
Plugins
Recent questions tagged fcl at Robotics Stack Exchange
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
Additional Links
Maintainers
- Ioan Sucan
Authors
- Jia Pan
FCL – The Flexible Collision Library
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
FCL 0
FCL 0.7.0 (2021-09-09)
-
Breaking changes
-
Core/Common
-
Math
-
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
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)
File truncated at 100 lines see the full file
Wiki Tutorials
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged fcl at Robotics Stack Exchange
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
Additional Links
Maintainers
- Ioan Sucan
Authors
- Jia Pan
FCL – The Flexible Collision Library
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
FCL 0
FCL 0.7.0 (2021-09-09)
-
Breaking changes
-
Core/Common
-
Math
-
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
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)
File truncated at 100 lines see the full file
Wiki Tutorials
Dependant Packages
Name | Deps |
---|---|
pr2_moveit_tests | |
moveit_core |
Launch files
Messages
Services
Plugins
Recent questions tagged fcl at Robotics Stack Exchange
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
Additional Links
Maintainers
- Ioan Sucan
Authors
- Jia Pan
FCL – The Flexible Collision Library
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
FCL 0
FCL 0.7.0 (2021-09-09)
-
Breaking changes
-
Core/Common
-
Math
-
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
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)
File truncated at 100 lines see the full file
Wiki Tutorials
Dependant Packages
Name | Deps |
---|---|
moveit_core | |
moveit_experimental |
Launch files
Messages
Services
Plugins
Recent questions tagged fcl at Robotics Stack Exchange
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
Additional Links
Maintainers
- TRI Geometry Team
Authors
FCL – The Flexible Collision Library
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
FCL 0
FCL 0.7.0 (2021-09-09)
-
Breaking changes
-
Core/Common
-
Math
-
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
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)
File truncated at 100 lines see the full file
Wiki Tutorials
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged fcl at Robotics Stack Exchange
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
Additional Links
Maintainers
- TRI Geometry Team
Authors
FCL – The Flexible Collision Library
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
FCL 0
FCL 0.7.0 (2021-09-09)
-
Breaking changes
-
Core/Common
-
Math
-
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
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)
File truncated at 100 lines see the full file