FCL: A general purpose library for collision and proximity queries
read more
Citations
The Open Motion Planning Library
CHOMP: Covariant Hamiltonian optimization for motion planning
Trajectory Planning for Quadrotor Swarms
Reducing the Barrier to Entry of Complex Robotic Software: a MoveIt! Case Study
References
Planning Algorithms: Introductory Material
OBBTree: a hierarchical structure for rapid interference detection
The Open Motion Planning Library
A fast procedure for computing the distance between complex objects in three-dimensional space
Related Papers (5)
Frequently Asked Questions (16)
Q2. What are the future works in "Fcl: a general purpose library for collision and proximity queries" ?
There are many avenues for future work. The authors can improve the performance of many underlying algorithms.
Q3. What is the widely used algorithm for convex polytopes?
The convex polytope collision in FCL is based on GJK and EPA (Expanding Polytope Algorithm) [24].2) Bounding Volume Hierarchy based Collision: Some of the most widely used algorithms for triangulated or polygonal models are based on bounding volume hierarchies.
Q4. What are the commonly used algorithms for collision detection and distance?
Typical examples of bounding volumes include axis-aligned bounding box (AABB) [3], spheres, oriented bounding box (OBB) [9], discrete oriented polytope (k-DOP) [12] and swept sphere volume (SSV) [13], and they have been mainly used to perform discrete collision detection and separation distance queries.
Q5. What is the object representation component in FCL?
The object representation component in FCL deals with representing the objects in a hierarchical data structure so that collision and proximity queries can be performed efficiently.
Q6. What is the simplest way to compute translational penetration depth?
The optimization technique based on the Minkowski formulation in the GJK algorithm can also be used to compute translational penetration depth.
Q7. Why are OBB and RSS more efficient?
OBB and RSS are considered as more efficient BVs in terms of performing CCD between rigid models, because the BVH structure is unchanged during the motion or simulation, and only the transformation matrix associated with each BV needs to be updated.
Q8. How many random configurations were chosen for each arm of the robot in these environments?
The PR2 robot was used as the robot model in this test and 1000 random configurations were chosen for each arm of the robot in these environments.
Q9. What is the way to check for collisions between point clouds?
FCL supports collision checking between triangle meshes/soups and point clouds as well as collision checking between point clouds.
Q10. What is the underlying collision checking library?
In the course of the task, the overall algorithm makes multiple calls to inverse kinematics and motion planning modules that use FCL as the underlying collision checking library.
Q11. What are the routines used to perform collision and distance queries?
The authors use two subclasses CollisionTraversalNode and DistanceTraversalNode that correspond to the routines used to perform collision and distance queries, respectively.
Q12. What is the way to perform a collision query?
Collision queries for articulated bodies or environments with multiple moving/deformable objects need to be performed efficiently.
Q13. What is the function that checks for overlap between the geometric objects?
2) intersect, which checks for exact intersection between the geometric objects or the triangle/point primitives of the other object.
Q14. What is the default implementation of BVH?
their BVH data structure is composed of base classes for split and fit operations, and the authors also provide a default implementation for these operations.
Q15. Why are kDOP and AABB more suitable for CCD between deformable?
kDOP and AABB are more suitable for CCD between deformable models, because the cost of refitting these BVHs is relatively low compared to OBB or RSS.
Q16. What are the main categories of collision detection algorithms?
At a broad level, they can be classified based on algorithms for convex polytopes, bounding volume hierarchies, continuous collision detection, broad-phase collision detection and point-cloud collisions.