How to randomize ground plane friction?

I am trying to apply domain randomization (DR) to elements of my simulation and I ran into some issues related to ground friction. It is not possible to add DR noise to the ground plane friction values in the config file as in other parameters.
I see there’s a parameter to randomize the friction inside rigid_shape_properties. As I understand, this should randomize the friction value of the rigid bodies of the loaded model, in which case the simulation will choose whatever value is smaller between two contacts (ground and model’s “feet”) during runtime, correct? However, changing this friction doesn’t seem to have any effect. I tried scaling by huge values or 0 and see no change in the simulation.
Changing the values during the creation of the ground plane does affect the simulation correctly. However, it is not possible to change the ground plane values during runtime? I tried re-creating the ground plane with the add_ground function to no effect.

TL;DR: How to randomize (DR) for ground friction?

1 Like

The best way to randomize friction would be to change robot model link friction. The resulting friction between 2 rigid bodies or a rigid body and plane is not min, but average between these 2 values, so it should work well for your case.

By “change the root model link friction” do you mean the friction parameter under rigid_shape_properties? I don’t notice any difference in the simulation when changing it, even using extreme values like 0 or huge numbers. I only see a difference in the simulation/behavior of the agent when changing static_friction and dynamic_friction of plane parameters. This is using PhysX backend if that’s relevant. Could you provide some clarification on this issue?


1 Like

Hi did you figure out how to randomize the friction between two rigid objects?

I tried to set the friction/rolling_friction/torsion_friction for both the object and the robot model’s link [by setting the rigid_shape_properties] but it doesn’t seem to make any difference.

1 Like

I am having this exact same issue. The rigid_shape_properties friction value does not seem to have any effect. Additionally, why is there not a different parameter for static and dynamic friction within rigid_shape_properties?