How to increase the number of contact points between meshes of rigid-bodies

Isaac Sim Version

4.5.0
4.2.0
4.1.0
4.0.0
4.5.0
2023.1.1
2023.1.0-hotfix.1
Other (please specify):

Operating System

Ubuntu 22.04
Ubuntu 20.04
Windows 11
Windows 10
Other (please specify):

GPU Information

  • Model: A4500
  • Driver Version: 575.57.08

Contact points between cube and plane fully aligned

Detailed Description

How to increase the number of contact points between two rigid bodies that are fully in contact as follows:
A cube that lies on top of a plane.
For now the maximum that I’ve achieved is 6 points of contacts (some of the times it can be 4 or 5). Would want to increase the resolution of the plane to identify contacts in better resolution. Also more information about how this method of generate geometry contacts work can be helpful.

Steps to Reproduce

  1. Create cube and plane mesh
  2. Creat an action graph
  3. Use the output of read prims with generate geometry contacts
  4. Print contacts with Bundle inspector

Screenshots or Videos

        [0] sourcePrimPath(token) = "prim0"
        [1] depths(float[]) = [-0.000000, -0.000000, 0.000000, 0.000000, 0.000000, 0.000000]
        [2] points(float3[]) = [(0.686204, 0.300346, -0.000000), (1.046615, -0.632447, -0.000000), (0.113822, -0.992858, -0.000000), (0.057384, 0.057384, -0.000000), (-0.194606, -0.194606, -0.000000), (-0.246589, -0.060065, 0.000000)]

Additional Information

What I’ve Tried

I’ve tried to change parameters of collider of both meshes and also parameters of generate geometry contacts.
Although both cube and plane are fully in contact I can’t produce more points of contact between these two prims.

Hi @davidLe which API are you using to get contact sensor reading? Have you tried get_contact_sensor_raw_data?

Thanks for the answer.

I use the following:

Is it possible to print raw data from action graph node?
Using raw contact sensor data seems to be the right way.

Is there an option to create a grid of contact sensors over a plane?

In the example of the cube on top of a plane - is it possible to control the number of contacts per area for these touching faces?

The simulation for which I try to extract contact points between the cube and the plane:

When calling to the function get_contact_sensor_raw_data I get only 4 contact points when cube fully touches the plane.
I have also tried to use PrimView and set large number of contacts.
Then calling the function get_contact_force_data shows 4 positions and force values for the contact points, the rest of the array contains zeros.

If there is any way I can change the resolution of contact points when face fully touches the plane it can be useful.