[Proposal] Add compliant stiffness and damping randomization when randomizing materials
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)
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.
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.
Thanks. The team has taken note of this.