feat: migrate omni.isaac.* imports to isaacsim.* via compat layer

- Add core/compat.py: compatibility module with try/except imports
  supporting both IS 4.x (omni.isaac.*) and IS 5.x+ (isaacsim.*)
- Migrate 152 imports across 47 files from direct omni.isaac.* to core.compat
- Handle class renames: RigidPrim→SingleRigidPrim, GeometryPrim→SingleGeometryPrim,
  XFormPrim→SingleXFormPrim, Articulation→SingleArticulation (aliased for compatibility)
- Add migerate/migrate_imports.py: automated migration script for future use
- Leave debug_draw and env_loader try/except imports as-is

This eliminates ~100 deprecation warnings from our code on IS 5.0,
and future-proofs for IS 6.x when old APIs may be removed.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Tangger
2026-04-03 15:09:50 +08:00
parent 6032b12c59
commit b178aafe40
47 changed files with 546 additions and 249 deletions

View File

@@ -1,7 +1,7 @@
import numpy as np
from omni.isaac.core.utils.prims import get_prim_at_path
from omni.isaac.core.utils.transformations import get_relative_transform
from omni.isaac.sensor import Camera
from core.compat import get_prim_at_path
from core.compat import get_relative_transform
from core.compat import Camera
def _get_annotator(camera: Camera, annotator_name: str):

View File

@@ -1,5 +1,5 @@
import numpy as np
from omni.isaac.core.utils.transformations import pose_from_tf_matrix
from core.compat import pose_from_tf_matrix
from scipy.spatial.transform import Rotation as R

View File

@@ -18,7 +18,7 @@ logging.getLogger("urllib3").setLevel(logging.WARNING)
def set_semantic_label(prim: Prim, label):
from omni.isaac.core.utils.semantics import add_update_semantics
from core.compat import add_update_semantics
if prim.GetTypeName() == "Mesh":
add_update_semantics(prim, semantic_label=label, type_label="class")
@@ -28,7 +28,7 @@ def set_semantic_label(prim: Prim, label):
def set_plane_semantic_label(prim: Prim, label):
from omni.isaac.core.utils.semantics import add_update_semantics
from core.compat import add_update_semantics
if prim.GetTypeName() == "Plane":
add_update_semantics(prim, semantic_label=label, type_label="class")
@@ -38,7 +38,7 @@ def set_plane_semantic_label(prim: Prim, label):
def set_robot_semantic_label(robot: Prim, parent_name: str):
from omni.isaac.core.utils.semantics import add_update_semantics
from core.compat import add_update_semantics
if robot.GetTypeName() == "Mesh":
prim_path = str(robot.GetPrimPath())