IsaacLab icon indicating copy to clipboard operation
IsaacLab copied to clipboard

[Proposal] Add compliant stiffness and damping randomization when randomizing materials

Open ParlitsisG opened this issue 8 months ago • 3 comments

Proposal

Add compliant stiffness and damping randomization when randomizing materials. Currently physics material randomization only supports friction and restitution.

Motivation

Manipulation tasks such as a manipulator pushing and picking require randomizations in the behaviour of the object during contact to simulate the diversity of object material properties. During impact and contacts a compliant contact model which is randomized could be a good method for domain randomization when training an rl agent.

Alternatives

I guess using Deformable objects is possible but at much higher computational cost.

Additional context

I am currently working on a project using a dual arm manipulation franka manipulator with flat siliconde end effectors instead of a gripper to pick and place large objects. In order to describe contacts I want to randomize the contact model as part of domain randomization to make my RL agent more robust during the Sim-to-real.

Checklist

  • [x] I have checked that there is no similar issue in the repo (required)

ParlitsisG avatar Apr 09 '25 15:04 ParlitsisG

Thank you for posting this proposal. Could you elaborate on what you mean by "compliant contact model" and give an example or elaborate in what would be a good implementation? Thanks.

RandomOakForest avatar Apr 10 '25 10:04 RandomOakForest

Thank you for posting this proposal. Could you elaborate on what you mean by "compliant contact model" and give an example or elaborate in what would be a good implementation? Thanks.

In Isaac lab documentation it is defined this way under the physics material configuration in documentation

compliant_contact_stiffness: float = 0.0
  Spring stiffness for a compliant contact model using implicit springs. Defaults to 0.0.
  A higher stiffness results in behavior closer to a rigid contact. The compliant contact model is only enabled
  if the stiffness is larger than 0.
  compliant_contact_damping: float = 0.0
  Damping coefficient for a compliant contact model using implicit springs. Defaults to 0.0.
  Irrelevant if compliant contacts are disabled when :obj:`compliant_contact_stiffness` is set to zero and
  rigid contacts are active.
 

What I propose is to allow for randomization of this values the same way one can already randomize friction and restitution from this the physics material essentially add to randomize_rigid_body_material class

This can be used for any contact rich task with random objects for domain randomization as it alters the behaviour of the object during contact.

ParlitsisG avatar Apr 10 '25 14:04 ParlitsisG

Thanks. The team has taken note of this.

RandomOakForest avatar Apr 11 '25 12:04 RandomOakForest