flexible-collision-library / fcl

Flexible Collision Library
https://flexible-collision-library.github.io/
Other
1.35k stars 415 forks source link

How to make one concave geometry outside of another concave geometry by a set distance threshold #586

Open KingWang569 opened 1 year ago

KingWang569 commented 1 year ago

Is your feature request related to a problem? Please describe. We now have such a problem: We want different components of the robot (eg: arm, C-type-tool, etc.) and different parts of the table (eg desktop, table legs, etc.) to maintain the set safe distance threshold; We use ros fcl interface distance() to get the minimum distance from the robot to the table manager.manager_->distance(object.collisionobjects[i].get(), &drd, &collision_detection::distanceCallback); image

For the first time, when we try to move the C-type-tool up, we can control it to slow down and stop based on the minimum distance between the C-type-tool and the table; When the C-type tool moves to the point where it is not allowed to continue upward movement, we try to move the tool to the right, and a collision occurs, because the obtained distance is always the minimum distance until the C-type-tool is closer to the table;

Describe the solution you'd like We want one concave polygon to move in all directions to another concave polygon, always staying outside the distance threshold we set, without collision The equidistant collision model is not applicable because we set different distance thresholds and we cannot create an equidistant collision model for each distance threshold image

Describe alternatives you've considered A clear and concise description of any alternative solutions or features you've considered.

Additional context The motion control of the object has a certain overshoot due to the large speed, so we need to be able to obtain the distance in all directions between a concave polyhedron and another concave polyhedron to control deceleration and stop We're curious how such issues are addressed in the game Looking forward to your reply and solution Thanks!