When using the PhysX backend in Isaac Gym, if two rigid bodies with friction coefficients mu_A and mu_B make contact, what is the resulting friction between them? (additive? multiplicative?) I know the effective friction can be measured by directly inspecting a RigidContact object, but I am having trouble loading this while using the tensor API.
As I remember coefficient of friction is not for a single material, it’s always defined for two materials, like steel vs steel and…
I agree, @Abi.Ghafari , this is how friction works in the real world. However, it seems that in PhysX, friction is a material property, and when two bodies make contact, their frictions are combined procedurally. I would like to know what procedure is being used, since I can’t find it in the Isaac documentation. It seems like some possibilities are: multiply, maximum, minimum, average
I checked the documents again, there is not much information there though it seems like there are two concepts, one is friction the other one effective friction:
in isaacgym.gymapi.RigidContact class it says:
Rigid Bodies contact information. Each contact in simulation generates a set of information.
Effective coefficient of Friction between bodies pair.
And in the isaacgym.gymapi.RigidShapeProperties class it says:
Set of properties used for all rigid shapes.
Coefficient of static friction. Value should be equal or greater than zero.
Here it says “all”, I don’t know what it really means!
Maybe you can test it by comparing the effective coefficient of friction vs coefficient of friction of two bodies, have you done it?
It says “average” here :) Though I haven’t tested it yet.
I met some issues dealing with contact restitution using PhysX. Here is a restitution test for the ground and a sphere. Line 110 adjusts restitution for the sphere, line 72 for ground restitution. Seems like ground contact parameters always have a higher priority and these parameters are selected when the ground has contacts with rigid objects. Are there any solutions to this? @kellyg