DynamicCuboid Falling through Floor when make_kinematic is False

What could be the reason for DynamicCuboids falling through the floor when make_kinematic is set to False? However, in the case of the last env_id (if there are 256 environments, it would be env_255), the DynamicCuboid contacts and correctly rests on the floor as intended. Could it be that the way objects are added to the environment is incorrect?

This is how I add the objects in the environment.

def set_up_scene(self, scene) -> None:
    self.add_prop()

    # Set up scene
    super().set_up_scene(scene)

    # Add prop to scene
    self._props = RigidPrimView(prim_paths_expr="/World/envs/.*/prop", name="prop_view", reset_xform_properties=False)
    scene.add(self._props)

def add_prop(self):
    prop = DynamicCuboid(prim_path=self.default_zero_env_path + "/prop",
                            name="prop",
                            translation=self._prop_position,
                            orientation=self._prop_rotation,
                            color=torch.tensor([0.2, 0.4, 0.6]),
                            size=0.04,
                            density=100.0)
    self._sim_config.apply_articulation_settings("prop", get_prim_at_path(prop.prim_path), self._sim_config.parse_actor_config("prop"))

And regarding the physics settings added with apply_articulation_settings, I have them set as follows.

prop:
  # -1 to use default values
  override_usd_defaults: False
  make_kinematic: False
  enable_self_collisions: False
  enable_gyroscopic_forces: True
  # also in stage params
  # per-actor
  solver_position_iteration_count: 12
  solver_velocity_iteration_count: 1
  sleep_threshold: 0.005
  stabilization_threshold: 0.001
  # per-body
  density: 100
  max_depenetration_velocity: 1000.0
  # per-shape
  contact_offset: 0.005
  rest_offset: 0.0

Since there were reported issues with ArticulationView in IsaacSim2022.2.1, I am using the Docker image of IsaacSim2022.2.0 instead.

Can somebody please tell me what causes this problem?
Thanks in advance.

Hi @smakolon385 - The issue you’re experiencing might be due to the physics settings or the way the objects are added to the scene. Here are a few things you can try:

  1. Check the floor’s physics properties: Make sure the floor is set as a static object and its collision properties are correctly set.
  2. Adjust the physics settings: Try adjusting the physics settings for the objects. For example, you can try increasing the solver_position_iteration_count and solver_velocity_iteration_count values, or adjusting the sleep_threshold and stabilization_threshold values.
  3. Add a delay before adding the objects: Sometimes, adding objects to the scene immediately after it’s created can cause issues. Try adding a small delay before adding the objects to the scene.
  4. Check the object’s initial position: Make sure the objects are not initially placed inside the floor or too close to it, as this can cause collision issues.
  5. Update to the latest version of Isaac Sim: If possible, try updating to the latest version of Isaac Sim. There might be bug fixes or improvements that could solve your issue.
1 Like

Hello @rthaker,

Thank you for your helpful suggestions! I followed your advice and made the following changes to resolve the issue:

  1. Checked the floor’s physics properties: I ensured that the floor was set as a static object and confirmed that its collision properties were correctly configured.
  2. Adjusted the physics settings: I modified the physics settings for the objects in the scene. Specifically, I increased the values for solver_position_iteration_count and solver_velocity_iteration_count.

After implementing these changes, I’m happy to report that the issue has been successfully resolved. The objects now interact with the floor as expected, and the collision problems have been eliminated.

Once again, thank you so much for your valuable suggestions and guidance.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.