How the collision detection (fcl) works in Moveit's planner?

2,299 views
Skip to first unread message

John Yang

unread,
Jul 7, 2016, 1:21:40 AM7/7/16
to MoveIt! Users
How is the collision detection being performed in MoveIt's planner? Does it compute an ellipsoid around each link of your robot and then measure shortest distance to the collision objects in the environment? Or does it actually have physical points (from mesh) representation of the robot so it can calculate collision in more detail than just using an ellipsoid?

scott paulin

unread,
Jul 14, 2016, 2:38:03 AM7/14/16
to MoveIt! Users
Hi John,

Looking at the moveit source [1], dynamic axis aligned bounding boxes are being used. There is a pretty good explanation of axis aligned bounding boxes at [2]. I am not entirely sure what dynamic means in this context, but it suggests that the exact bounding boxes are recomputed when the robot's state or the environment changes. Collision checking between meshes without bounding boxes is expensive, so mesh points will only be used if a) two bounding boxes are intersecting or b) to compute the shortest distance between robot and environment if the user requires it.

Moveit uses discrete collision checking for motions (rather than continuous collision checking). This means that a motion is checked by subdividing it into N points, and individually checking each point. N is determined using the longest_valid_segment parameter in ompl_planning.yaml. Larger values for longest_valid_segment result in faster planning (because less collision checks are performed) but motions passing through obstacles might be incorrectly classified as being collision free.

[1] https://github.com/ros-planning/moveit_core/blob/jade-devel/collision_detection_fcl/src/collision_world_fcl.cpp
[2] http://stackoverflow.com/questions/22512319/what-is-aabb-collision-detection

Dave Coleman

unread,
Jul 14, 2016, 10:41:27 AM7/14/16
to MoveIt! Users
Great explanation Scott, thanks!

- dave

John Yang

unread,
Jul 19, 2016, 1:26:48 AM7/19/16
to MoveIt! Users
Good explanation! Thanks!

scott paulin於 2016年7月14日星期四 UTC+10下午4時38分03秒寫道:
Reply all
Reply to author
Forward
0 new messages