Skip to content

Fixes collision filtering logic on CPU #2553

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 7 commits into from
Jun 10, 2025

Conversation

kellyguo11
Copy link
Contributor

Description

Previously, the physics engine introduced a new feature to automatically perform collision filtering across environments when physics replication is enabled. However, this feature has limitations for CPU simulation, so we still need to explicitly call collision filtering on CPU simulation.

This change fixes the scene setup process to do explicit collision filtering when running on the CPU.

Fixes #2548

Type of change

  • Bug fix (non-breaking change which fixes an issue)

Checklist

  • I have run the pre-commit checks with ./isaaclab.sh --format
  • I have made corresponding changes to the documentation
  • My changes generate no new warnings
  • I have added tests that prove my fix is effective or that my feature works
  • I have updated the changelog and the corresponding version in the extension's config/extension.toml file
  • I have added my name to the CONTRIBUTORS.md or my name already exists there

@@ -66,6 +66,9 @@ def _setup_scene(self):
self._terrain = self.cfg.terrain.class_type(self.cfg.terrain)
# clone and replicate
self.scene.clone_environments(copy_from_source=False)
# we need to explicitly filter collisions for CPU simulation
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

hmm is it possible to put this inside environments cloning (as a flag to filter collisions)? It gets strange in the code to have this changing frequently 😓

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ya we should be able to do that, we can add a few more arguments to clone_environments

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

hmm I think this might be a breaking change if we put it inside clone_environments. we can only call filter collision once in the cloner, so if users already have that call in their scripts, then doing it this way will break their scripts.

@kellyguo11 kellyguo11 merged commit 1f9621f into isaac-sim:main Jun 10, 2025
4 of 5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[Bug Report] Environments collide with each other when running on cpu
2 participants