I’m trying to randomise the properties of particles for a robot learning task. What I’m interested in are particle size and particle friction. The following code creates a particle system and a particle material based on a passed configuration. The ranges I’m looking at are between [0.9, 1.1]mm for the particle diameter and [0.1, 2] for the particle coefficient. The mass is 0.0000000033 kg. All others material properties but friction and mass are set as None. The code works fine until I hit friction coefficients larger than 1.4, after which the particles explode. I have tried adjusting the particle neighbourhood size as well as increasing and decreasing the factor between the particleContactOffset and the solidRestOffset, but so far without luck. Any help would be appreciated.
Isaac Sim version used is 2022.2.0 together with Isaac Orbit.
self.solidRestOffset = self.cfg.particleDiameter/2
self.restOffset = self.solidRestOffset
self.fluidRestOffset = 0.6 * self.solidRestOffset
self.particleContactOffset = self.solidRestOffset * 2
self.contactOffset=self.particleContactOffset
self.particle_system = prims.ParticleSystem(self.path_prefix+"/particleSystem", simulation_owner='/physicsScene',
particle_contact_offset=self.particleContactOffset,
contact_offset=self.contactOffset,
rest_offset=self.restOffset,
solid_rest_offset=self.solidRestOffset,
fluid_rest_offset=self.fluidRestOffset,
# enable_ccd=True,
# max_neighborhood=2048
)
# Create a pbd particle material and set it on the particle system
particle_material = materials.ParticleMaterial(self.path_prefix+"/particleMaterial",
friction=self.cfg.friction,
particle_friction_scale=self.cfg.particle_friction_scale ,
damping=self.cfg.damping,
viscosity=self.cfg.viscosity,
vorticity_confinement=self.cfg.vorticity_confinement,
surface_tension=self.cfg.surface_tension,
cohesion=self.cfg.cohesion,
adhesion=self.cfg.adhesion,
particle_adhesion_scale=self.cfg.particle_adhesion_scale ,
adhesion_offset_scale=self.cfg.adhesion_offset_scale,
gravity_scale=self.cfg.gravity_scale,
lift=self.cfg.lift ,
drag=self.cfg.drag)
self.particle_system.apply_particle_material(particle_material)