Need precise collider shapes on rigid bodies

Hi,

I am trying to create physics-enabled vehicles with wheels. Simple primitives with custom geometry do not replicate reality close enough, so I would like to enable triangle mesh colliders on rigid bodies. My impression is that this is not possible - as soon as I enable rigid bodies, the collider falls back to a convex hull. The convex hull has a vertex limit of 64 which seems to unprecise for me.

  1. Will triangle mesh colliders on rigid bodies be supported in the near future?
  2. How can I work around this issue as long as this feature is not implemented?

Thanks
Bruno

You are correct, this is not supported. You can however try convex decomposition. We also recently demoed signed distance field collision detection which we are optimistic about will be even better than convex decomposition but presently the memory use is too high for broad application.

image

Thanks Adam,

but the convex decomposition does not improve the accuracy a lot. Pleas look at this:


The vertex hull limit is set to the maximum of 64. But this wheel will not roll smoothly. To be accurate, it has to be conical, not cylindrical. How can I approach this?

For this case you should definitely use a cylinder primitive for the rolling part. There is really no viable alternative there.

You basically add a child cylinder to your prim, hide it so it doesn’t render graphically, and make sure you “add” a collider, by default it will be represented by a cylinder prim directly. You can then add additional cylinders for the axle and the larger side plate.

Thanks Adam,

I know about this feature.

This might be an issue in the near future. Our expectation is to refine the shape of train wheels step by step. This is how its profile looks like in reality:

image

The wheel is conical and that’s an important part of the physics of a train wheel. It’s not just a cylinder with a flange.

What I understand from your comment is that simulating this is not possible with Omniverse Physics in the near future. That is an important statement that I have to discuss internally.

Thanks
Bruno

Hi Bruno,

we indeed do not have practical collision detection for nonconvex objects so I don’t think you should try to model that wheel as its real shape. In the future we will have signed distance field collisions productized which we could try. That is basically a voxel approach, but I am concerned it might not roll very smoothly or will have a very high memory cost depending on subdivision.

If you think it is possible for you to write custom contact generation code between a complex wheel shape and the rail, it is possible to do, if quite involved. We might try to investigate that route.

I get some improvement if I clone the edgy collider 4 times and rotate each clone by 4.5 degrees. It’s hacky but works. Of course not what we are after. Could you give me some directions on how to approach the approach you suggested with the custom contact generation code?