fix: IS 4.1.0 + Blackwell GPU compatibility fixes
- Add scipy Rotation scalar_first monkey-patch for older scipy (<1.11) - Fix SimulationApp import to support both IS 4.x and 5.x - Reuse task object across reset() calls to prevent duplicate prims - Add _scene_initialized guard in set_up_scene() for repeated resets - Cache arena_file_path to survive task_cfg.pop() - Clean up collision groups before re-creating - Switch to PathTracing renderer for clean output on Blackwell GPU Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -63,6 +63,17 @@ class BananaBaseTask(BaseTask):
|
||||
self._defaultFluidPath = Sdf.Path("/World/task_0/fulid")
|
||||
|
||||
def set_up_scene(self, scene: Scene) -> None:
|
||||
# Skip re-initialization if scene is already set up (repeated reset() calls)
|
||||
if getattr(self, '_scene_initialized', False):
|
||||
self._task_objects = {}
|
||||
self._task_objects |= (
|
||||
getattr(self, 'fixtures', {}) |
|
||||
getattr(self, 'objects', {}) |
|
||||
getattr(self, 'robots', {}) |
|
||||
getattr(self, 'cameras', {})
|
||||
)
|
||||
return
|
||||
self._scene_initialized = True
|
||||
super().set_up_scene(scene)
|
||||
self._set_envmap()
|
||||
self.cfg = update_scenes(self.cfg)
|
||||
|
||||
@@ -27,6 +27,11 @@ def filter_collisions(
|
||||
# We invert the collision group filters for more efficient collision filtering across environments
|
||||
physx_scene.CreateInvertCollisionGroupFilterAttr().Set(True)
|
||||
|
||||
# Clean up existing collision groups before re-creating (handles repeated reset() calls)
|
||||
collision_prim = stage.GetPrimAtPath(collision_root_path)
|
||||
if collision_prim.IsValid():
|
||||
stage.RemovePrim(collision_root_path)
|
||||
|
||||
UsdGeom.Scope.Define(stage, collision_root_path)
|
||||
|
||||
with Sdf.ChangeBlock():
|
||||
|
||||
Reference in New Issue
Block a user