ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question
0

Do multiple convex collision instances in URDF increase performance?

asked 2020-11-27 07:50:08 -0600

rfn123 gravatar image

The documentation of the URDF says: " Note: multiple instances of <collision> tags can exist for the same link. The union of the geometry they define forms the collision representation of the link."

I was wondering how the collision check (e.g. in Moveit) will be performed. Let's say I do a convex decomposition on the mesh of a link and include the convex component in seperate collision instances. Would this increase the performance compared to the case where I put the convex components in a single file and thus a single collision instance? Will the collision checker first check whether the specified mesh is convex and then check for collisions or does the collision checker first combines the convex components and then does the collision check? In the latter case the combined shape is not necessarily convex anymore and thus more computation heavy to check.

Thanks!

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted
1

answered 2020-11-27 08:07:10 -0600

gvdhoorn gravatar image

updated 2020-11-27 08:10:29 -0600

Let's say I do a convex decomposition on the mesh of a link and include the convex component in seperate collision instances. Would this increase the performance compared to the case where I put the convex components in a single file and thus a single collision instance?

there is no general answer here except: it depends. And it depends heavily on the consumer of your URDF.

For MoveIt specifically: the convexity of any geometry entity is "lost". Afaik there is no performance gain to be had here. Now that MoveIt starts to look at alternative collision libraries and environments (Bullet fi), I expect this to become more of an issue and consequently will gain more attention.

In the Tesseract project they've forked URDF specifically to add these kinds of concepts and then support them throughout the planning infrastructure.

The reason collision geometry elements exist in URDF is to allow for lower fidelity models to be attached to links. Using lower fidelity versions of meshes (ie: convex hulls) for collision detection does result in performance improvements. But mostly because there will just be less vertices/faces to check.

In the latter case the combined shape is not necessarily convex anymore and thus more computation heavy to check.

As I wrote: afaik there is nothing which can benefit from any convexity here. At least not in MoveIt as of this time.

edit flag offensive delete link more

Question Tools

1 follower

Stats

Asked: 2020-11-27 07:50:08 -0600

Seen: 336 times

Last updated: Nov 27 '20