Unverified Commit aec36d94 authored by Pascal Roth's avatar Pascal Roth Committed by GitHub

Replaces IsaacSim `prim_utils` with IsaacLab `prim_utils` (#3924)

# Description

Remove dependency on IsaacSim `prim_utils` for integration of new
simulation engines like `newton`.

NOTE: this PR depends on #3923 

## Type of change

- Dependency removal

## Checklist

- [x] I have read and understood the [contribution
guidelines](https://isaac-sim.github.io/IsaacLab/main/source/refs/contributing.html)
- [x] I have run the [`pre-commit` checks](https://pre-commit.com/) with
`./isaaclab.sh --format`
- [x] I have made corresponding changes to the documentation
- [x] 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

---------
Signed-off-by: 's avatarooctipus <zhengyuz@nvidia.com>
Signed-off-by: 's avatarKelly Guo <kellyg@nvidia.com>
Co-authored-by: 's avatarOcti Zhang <zhengyuz@nvidia.com>
Co-authored-by: 's avatarKelly Guo <kellyg@nvidia.com>
parent 95723762
...@@ -157,6 +157,7 @@ autodoc_mock_imports = [ ...@@ -157,6 +157,7 @@ autodoc_mock_imports = [
"omni.client", "omni.client",
"omni.physx", "omni.physx",
"omni.physics", "omni.physics",
"usdrt",
"pxr.PhysxSchema", "pxr.PhysxSchema",
"pxr.PhysicsSchemaTools", "pxr.PhysicsSchemaTools",
"omni.replicator", "omni.replicator",
......
...@@ -245,11 +245,10 @@ import random ...@@ -245,11 +245,10 @@ import random
import time import time
import torch import torch
import isaacsim.core.utils.prims as prim_utils
import psutil import psutil
from isaacsim.core.utils.stage import create_new_stage
import isaaclab.sim as sim_utils import isaaclab.sim as sim_utils
import isaaclab.sim.utils.prims as prim_utils
from isaaclab.assets import RigidObject, RigidObjectCfg from isaaclab.assets import RigidObject, RigidObjectCfg
from isaaclab.scene.interactive_scene import InteractiveScene from isaaclab.scene.interactive_scene import InteractiveScene
from isaaclab.sensors import ( from isaaclab.sensors import (
...@@ -261,6 +260,7 @@ from isaaclab.sensors import ( ...@@ -261,6 +260,7 @@ from isaaclab.sensors import (
TiledCameraCfg, TiledCameraCfg,
patterns, patterns,
) )
from isaaclab.sim.utils.stage import create_new_stage
from isaaclab.utils.math import orthogonalize_perspective_depth, unproject_depth from isaaclab.utils.math import orthogonalize_perspective_depth, unproject_depth
from isaaclab_tasks.utils import load_cfg_from_registry from isaaclab_tasks.utils import load_cfg_from_registry
......
...@@ -35,9 +35,8 @@ simulation_app = app_launcher.app ...@@ -35,9 +35,8 @@ simulation_app = app_launcher.app
import numpy as np import numpy as np
import torch import torch
import isaacsim.core.utils.prims as prim_utils
import isaaclab.sim as sim_utils import isaaclab.sim as sim_utils
import isaaclab.sim.utils.prims as prim_utils
from isaaclab.assets import Articulation from isaaclab.assets import Articulation
from isaaclab.utils.assets import ISAAC_NUCLEUS_DIR from isaaclab.utils.assets import ISAAC_NUCLEUS_DIR
......
...@@ -45,13 +45,13 @@ import torch ...@@ -45,13 +45,13 @@ import torch
import carb import carb
import omni import omni
from isaacsim.core.utils.stage import get_current_stage
from omni.kit.viewport.utility import get_viewport_from_window_name from omni.kit.viewport.utility import get_viewport_from_window_name
from omni.kit.viewport.utility.camera_state import ViewportCameraState from omni.kit.viewport.utility.camera_state import ViewportCameraState
from pxr import Gf, Sdf from pxr import Gf, Sdf
from rsl_rl.runners import OnPolicyRunner from rsl_rl.runners import OnPolicyRunner
from isaaclab.envs import ManagerBasedRLEnv from isaaclab.envs import ManagerBasedRLEnv
from isaaclab.sim.utils.stage import get_current_stage
from isaaclab.utils.math import quat_apply from isaaclab.utils.math import quat_apply
from isaaclab.utils.pretrained_checkpoint import get_published_pretrained_checkpoint from isaaclab.utils.pretrained_checkpoint import get_published_pretrained_checkpoint
......
...@@ -35,9 +35,8 @@ simulation_app = app_launcher.app ...@@ -35,9 +35,8 @@ simulation_app = app_launcher.app
import numpy as np import numpy as np
import torch import torch
import isaacsim.core.utils.prims as prim_utils
import isaaclab.sim as sim_utils import isaaclab.sim as sim_utils
import isaaclab.sim.utils.prims as prim_utils
from isaaclab.assets import Articulation from isaaclab.assets import Articulation
## ##
......
...@@ -37,7 +37,6 @@ simulation_app = app_launcher.app ...@@ -37,7 +37,6 @@ simulation_app = app_launcher.app
import random import random
from isaacsim.core.utils.stage import get_current_stage
from pxr import Gf, Sdf from pxr import Gf, Sdf
import isaaclab.sim as sim_utils import isaaclab.sim as sim_utils
...@@ -52,6 +51,7 @@ from isaaclab.assets import ( ...@@ -52,6 +51,7 @@ from isaaclab.assets import (
) )
from isaaclab.scene import InteractiveScene, InteractiveSceneCfg from isaaclab.scene import InteractiveScene, InteractiveSceneCfg
from isaaclab.sim import SimulationContext from isaaclab.sim import SimulationContext
from isaaclab.sim.utils.stage import get_current_stage
from isaaclab.utils import Timer, configclass from isaaclab.utils import Timer, configclass
from isaaclab.utils.assets import ISAACLAB_NUCLEUS_DIR from isaaclab.utils.assets import ISAACLAB_NUCLEUS_DIR
......
...@@ -35,9 +35,8 @@ simulation_app = app_launcher.app ...@@ -35,9 +35,8 @@ simulation_app = app_launcher.app
import numpy as np import numpy as np
import torch import torch
import isaacsim.core.utils.prims as prim_utils
import isaaclab.sim as sim_utils import isaaclab.sim as sim_utils
import isaaclab.sim.utils.prims as prim_utils
from isaaclab.assets import Articulation from isaaclab.assets import Articulation
## ##
......
...@@ -64,12 +64,11 @@ simulation_app = app_launcher.app ...@@ -64,12 +64,11 @@ simulation_app = app_launcher.app
"""Rest everything follows.""" """Rest everything follows."""
import isaacsim.core.utils.prims as prim_utils
from isaacsim.core.api.simulation_context import SimulationContext from isaacsim.core.api.simulation_context import SimulationContext
from isaacsim.core.cloner import GridCloner from isaacsim.core.cloner import GridCloner
from isaacsim.core.utils.carb import set_carb_setting
from isaacsim.core.utils.stage import get_current_stage
import isaaclab.sim.utils.prims as prim_utils
from isaaclab.sim.utils.stage import get_current_stage
from isaaclab.utils import Timer from isaaclab.utils import Timer
from isaaclab.utils.assets import check_file_path from isaaclab.utils.assets import check_file_path
...@@ -96,7 +95,7 @@ def main(): ...@@ -96,7 +95,7 @@ def main():
sim.get_physics_context().set_gpu_total_aggregate_pairs_capacity(2**21) sim.get_physics_context().set_gpu_total_aggregate_pairs_capacity(2**21)
# enable hydra scene-graph instancing # enable hydra scene-graph instancing
# this is needed to visualize the scene when fabric is enabled # this is needed to visualize the scene when fabric is enabled
set_carb_setting(sim._settings, "/persistent/omnihydra/useSceneGraphInstancing", True) sim._settings.set_bool("/persistent/omnihydra/useSceneGraphInstancing", True)
# Create interface to clone the scene # Create interface to clone the scene
cloner = GridCloner(spacing=args_cli.spacing, stage=stage) cloner = GridCloner(spacing=args_cli.spacing, stage=stage)
......
...@@ -93,9 +93,9 @@ import contextlib ...@@ -93,9 +93,9 @@ import contextlib
import os import os
import carb import carb
import isaacsim.core.utils.stage as stage_utils
import omni.kit.app import omni.kit.app
import isaaclab.sim.utils.stage as stage_utils
from isaaclab.sim.converters import MeshConverter, MeshConverterCfg from isaaclab.sim.converters import MeshConverter, MeshConverterCfg
from isaaclab.sim.schemas import schemas_cfg from isaaclab.sim.schemas import schemas_cfg
from isaaclab.utils.assets import check_file_path from isaaclab.utils.assets import check_file_path
......
...@@ -63,9 +63,9 @@ import contextlib ...@@ -63,9 +63,9 @@ import contextlib
import os import os
import carb import carb
import isaacsim.core.utils.stage as stage_utils
import omni.kit.app import omni.kit.app
import isaaclab.sim.utils.stage as stage_utils
from isaaclab.sim.converters import MjcfConverter, MjcfConverterCfg from isaaclab.sim.converters import MjcfConverter, MjcfConverterCfg
from isaaclab.utils.assets import check_file_path from isaaclab.utils.assets import check_file_path
from isaaclab.utils.dict import print_dict from isaaclab.utils.dict import print_dict
......
...@@ -81,9 +81,9 @@ import contextlib ...@@ -81,9 +81,9 @@ import contextlib
import os import os
import carb import carb
import isaacsim.core.utils.stage as stage_utils
import omni.kit.app import omni.kit.app
import isaaclab.sim.utils.stage as stage_utils
from isaaclab.sim.converters import UrdfConverter, UrdfConverterCfg from isaaclab.sim.converters import UrdfConverter, UrdfConverterCfg
from isaaclab.utils.assets import check_file_path from isaaclab.utils.assets import check_file_path
from isaaclab.utils.dict import print_dict from isaaclab.utils.dict import print_dict
......
...@@ -31,9 +31,8 @@ simulation_app = app_launcher.app ...@@ -31,9 +31,8 @@ simulation_app = app_launcher.app
"""Rest everything follows.""" """Rest everything follows."""
import isaacsim.core.utils.prims as prim_utils
import isaaclab.sim as sim_utils import isaaclab.sim as sim_utils
import isaaclab.sim.utils.prims as prim_utils
from isaaclab.utils.assets import ISAAC_NUCLEUS_DIR from isaaclab.utils.assets import ISAAC_NUCLEUS_DIR
......
...@@ -34,9 +34,8 @@ simulation_app = app_launcher.app ...@@ -34,9 +34,8 @@ simulation_app = app_launcher.app
import torch import torch
import isaacsim.core.utils.prims as prim_utils
import isaaclab.sim as sim_utils import isaaclab.sim as sim_utils
import isaaclab.sim.utils.prims as prim_utils
from isaaclab.assets import Articulation from isaaclab.assets import Articulation
from isaaclab.sim import SimulationContext from isaaclab.sim import SimulationContext
......
...@@ -35,9 +35,8 @@ simulation_app = app_launcher.app ...@@ -35,9 +35,8 @@ simulation_app = app_launcher.app
import torch import torch
import isaacsim.core.utils.prims as prim_utils
import isaaclab.sim as sim_utils import isaaclab.sim as sim_utils
import isaaclab.sim.utils.prims as prim_utils
import isaaclab.utils.math as math_utils import isaaclab.utils.math as math_utils
from isaaclab.assets import DeformableObject, DeformableObjectCfg from isaaclab.assets import DeformableObject, DeformableObjectCfg
from isaaclab.sim import SimulationContext from isaaclab.sim import SimulationContext
......
...@@ -35,9 +35,8 @@ simulation_app = app_launcher.app ...@@ -35,9 +35,8 @@ simulation_app = app_launcher.app
import torch import torch
import isaacsim.core.utils.prims as prim_utils
import isaaclab.sim as sim_utils import isaaclab.sim as sim_utils
import isaaclab.sim.utils.prims as prim_utils
import isaaclab.utils.math as math_utils import isaaclab.utils.math as math_utils
from isaaclab.assets import RigidObject, RigidObjectCfg from isaaclab.assets import RigidObject, RigidObjectCfg
from isaaclab.sim import SimulationContext from isaaclab.sim import SimulationContext
......
...@@ -35,9 +35,8 @@ simulation_app = app_launcher.app ...@@ -35,9 +35,8 @@ simulation_app = app_launcher.app
import torch import torch
import isaacsim.core.utils.prims as prim_utils
import isaaclab.sim as sim_utils import isaaclab.sim as sim_utils
import isaaclab.sim.utils.prims as prim_utils
from isaaclab.assets import Articulation, SurfaceGripper, SurfaceGripperCfg from isaaclab.assets import Articulation, SurfaceGripper, SurfaceGripperCfg
from isaaclab.sim import SimulationContext from isaaclab.sim import SimulationContext
......
...@@ -33,9 +33,8 @@ simulation_app = app_launcher.app ...@@ -33,9 +33,8 @@ simulation_app = app_launcher.app
import torch import torch
import isaacsim.core.utils.prims as prim_utils
import isaaclab.sim as sim_utils import isaaclab.sim as sim_utils
import isaaclab.sim.utils.prims as prim_utils
from isaaclab.assets import RigidObject, RigidObjectCfg from isaaclab.assets import RigidObject, RigidObjectCfg
from isaaclab.sensors.ray_caster import RayCaster, RayCasterCfg, patterns from isaaclab.sensors.ray_caster import RayCaster, RayCasterCfg, patterns
from isaaclab.utils.assets import ISAAC_NUCLEUS_DIR from isaaclab.utils.assets import ISAAC_NUCLEUS_DIR
......
...@@ -38,10 +38,10 @@ simulation_app = app_launcher.app ...@@ -38,10 +38,10 @@ simulation_app = app_launcher.app
import os import os
import torch import torch
import isaacsim.core.utils.prims as prim_utils
import omni.replicator.core as rep import omni.replicator.core as rep
import isaaclab.sim as sim_utils import isaaclab.sim as sim_utils
import isaaclab.sim.utils.prims as prim_utils
from isaaclab.sensors.ray_caster import RayCasterCamera, RayCasterCameraCfg, patterns from isaaclab.sensors.ray_caster import RayCasterCamera, RayCasterCameraCfg, patterns
from isaaclab.utils import convert_dict_to_backend from isaaclab.utils import convert_dict_to_backend
from isaaclab.utils.assets import ISAAC_NUCLEUS_DIR from isaaclab.utils.assets import ISAAC_NUCLEUS_DIR
......
...@@ -65,10 +65,10 @@ import os ...@@ -65,10 +65,10 @@ import os
import random import random
import torch import torch
import isaacsim.core.utils.prims as prim_utils
import omni.replicator.core as rep import omni.replicator.core as rep
import isaaclab.sim as sim_utils import isaaclab.sim as sim_utils
import isaaclab.sim.utils.prims as prim_utils
from isaaclab.assets import RigidObject, RigidObjectCfg from isaaclab.assets import RigidObject, RigidObjectCfg
from isaaclab.markers import VisualizationMarkers from isaaclab.markers import VisualizationMarkers
from isaaclab.markers.config import RAY_CASTER_MARKER_CFG from isaaclab.markers.config import RAY_CASTER_MARKER_CFG
......
[package] [package]
# Note: Semantic Versioning is used: https://semver.org/ # Note: Semantic Versioning is used: https://semver.org/
version = "0.49.1" version = "0.49.2"
# Description # Description
title = "Isaac Lab framework for Robot Learning" title = "Isaac Lab framework for Robot Learning"
......
Changelog Changelog
--------- ---------
0.49.2 (2025-11-26)
~~~~~~~~~~~~~~~~~~~
Changed
^^^^^^^
* Changed import from ``isaacsim.core.utils.prims`` to ``isaaclab.sim.utils.prims`` across repo to reduce IsaacLab dependencies.
0.49.1 (2025-12-08) 0.49.1 (2025-12-08)
~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~
...@@ -45,7 +54,9 @@ Added ...@@ -45,7 +54,9 @@ Added
Changed Changed
^^^^^^^ ^^^^^^^
* Changed import from ``isaaclab.sim.utils`` to ``isaaclab.sim.utils.stage`` to properly propagate the Isaac Sim stage context. * Changed import from ``isaaclab.sim.utils`` to ``isaaclab.sim.utils.stage`` in ``isaaclab.devices.openxr.xr_anchor_utils.py``
to properly propagate the Isaac Sim stage context.
0.48.6 (2025-11-18) 0.48.6 (2025-11-18)
......
...@@ -14,6 +14,7 @@ fault occurs. The launched :class:`isaacsim.simulation_app.SimulationApp` instan ...@@ -14,6 +14,7 @@ fault occurs. The launched :class:`isaacsim.simulation_app.SimulationApp` instan
import argparse import argparse
import contextlib import contextlib
import logging
import os import os
import re import re
import signal import signal
...@@ -25,6 +26,9 @@ with contextlib.suppress(ModuleNotFoundError): ...@@ -25,6 +26,9 @@ with contextlib.suppress(ModuleNotFoundError):
from isaacsim import SimulationApp from isaacsim import SimulationApp
# import logger
logger = logging.getLogger(__name__)
class ExplicitAction(argparse.Action): class ExplicitAction(argparse.Action):
"""Custom action to track if an argument was explicitly passed by the user.""" """Custom action to track if an argument was explicitly passed by the user."""
...@@ -993,10 +997,9 @@ class AppLauncher: ...@@ -993,10 +997,9 @@ class AppLauncher:
def __patch_pxr_gf_matrix4d(self, launcher_args: dict): def __patch_pxr_gf_matrix4d(self, launcher_args: dict):
import traceback import traceback
import carb
from pxr import Gf from pxr import Gf
carb.log_warn( logger.warning(
"Due to an issue with Pinocchio and pxr.Gf.Matrix4d, patching the Matrix4d constructor to convert arguments" "Due to an issue with Pinocchio and pxr.Gf.Matrix4d, patching the Matrix4d constructor to convert arguments"
" into a list of floats." " into a list of floats."
) )
...@@ -1058,13 +1061,13 @@ class AppLauncher: ...@@ -1058,13 +1061,13 @@ class AppLauncher:
original_matrix4d(self, *args, **kwargs) original_matrix4d(self, *args, **kwargs)
except Exception as e: except Exception as e:
carb.log_error(f"Matrix4d wrapper error: {e}") logger.error(f"Matrix4d wrapper error: {e}")
traceback.print_stack() traceback.print_stack()
# Fall back to original constructor as last resort # Fall back to original constructor as last resort
try: try:
original_matrix4d(self, *args, **kwargs) original_matrix4d(self, *args, **kwargs)
except Exception as inner_e: except Exception as inner_e:
carb.log_error(f"Original Matrix4d constructor also failed: {inner_e}") logger.error(f"Original Matrix4d constructor also failed: {inner_e}")
# Initialize as identity matrix if all else fails # Initialize as identity matrix if all else fails
original_matrix4d(self) original_matrix4d(self)
......
...@@ -14,12 +14,12 @@ from abc import ABC, abstractmethod ...@@ -14,12 +14,12 @@ from abc import ABC, abstractmethod
from collections.abc import Sequence from collections.abc import Sequence
from typing import TYPE_CHECKING, Any from typing import TYPE_CHECKING, Any
import isaacsim.core.utils.prims as prim_utils
import omni.kit.app import omni.kit.app
import omni.timeline import omni.timeline
from isaacsim.core.simulation_manager import IsaacEvents, SimulationManager from isaacsim.core.simulation_manager import IsaacEvents, SimulationManager
import isaaclab.sim as sim_utils import isaaclab.sim as sim_utils
import isaaclab.sim.utils.prims as prim_utils
from isaaclab.sim.utils.stage import get_current_stage from isaaclab.sim.utils.stage import get_current_stage
if TYPE_CHECKING: if TYPE_CHECKING:
......
...@@ -6,7 +6,6 @@ ...@@ -6,7 +6,6 @@
import torch import torch
from dataclasses import MISSING from dataclasses import MISSING
import isaacsim.core.utils.prims as prim_utils
from isaacsim.core.api.simulation_context import SimulationContext from isaacsim.core.api.simulation_context import SimulationContext
from isaacsim.core.prims import SingleArticulation from isaacsim.core.prims import SingleArticulation
...@@ -19,6 +18,7 @@ enable_extension("isaacsim.robot_motion.motion_generation") ...@@ -19,6 +18,7 @@ enable_extension("isaacsim.robot_motion.motion_generation")
from isaacsim.robot_motion.motion_generation import ArticulationMotionPolicy from isaacsim.robot_motion.motion_generation import ArticulationMotionPolicy
from isaacsim.robot_motion.motion_generation.lula.motion_policies import RmpFlow, RmpFlowSmoothed from isaacsim.robot_motion.motion_generation.lula.motion_policies import RmpFlow, RmpFlowSmoothed
import isaaclab.sim.utils as sim_utils
from isaaclab.utils import configclass from isaaclab.utils import configclass
from isaaclab.utils.assets import retrieve_file_path from isaaclab.utils.assets import retrieve_file_path
...@@ -81,7 +81,7 @@ class RmpFlowController: ...@@ -81,7 +81,7 @@ class RmpFlowController:
# obtain the simulation time # obtain the simulation time
physics_dt = SimulationContext.instance().get_physics_dt() physics_dt = SimulationContext.instance().get_physics_dt()
# find all prims # find all prims
self._prim_paths = prim_utils.find_matching_prim_paths(prim_paths_expr) self._prim_paths = sim_utils.find_matching_prim_paths(prim_paths_expr)
self.num_robots = len(self._prim_paths) self.num_robots = len(self._prim_paths)
# resolve controller # resolve controller
if self.cfg.name == "rmp_flow": if self.cfg.name == "rmp_flow":
......
...@@ -29,8 +29,8 @@ import omni.physx.scripts.utils as physx_utils ...@@ -29,8 +29,8 @@ import omni.physx.scripts.utils as physx_utils
from pxr import Gf, PhysxSchema, Sdf, Usd, UsdGeom, UsdPhysics, Vt from pxr import Gf, PhysxSchema, Sdf, Usd, UsdGeom, UsdPhysics, Vt
import isaaclab.sim as sim_utils import isaaclab.sim as sim_utils
import isaaclab.sim.utils.stage as stage_utils
from isaaclab.sim.spawners import SpawnerCfg from isaaclab.sim.spawners import SpawnerCfg
from isaaclab.sim.utils import stage as stage_utils
from isaaclab.utils.configclass import configclass from isaaclab.utils.configclass import configclass
from isaaclab.utils.math import convert_quat from isaaclab.utils.math import convert_quat
...@@ -68,7 +68,7 @@ class VisualizationMarkers: ...@@ -68,7 +68,7 @@ class VisualizationMarkers:
The class parses the configuration to create different the marker prototypes into the stage. Each marker The class parses the configuration to create different the marker prototypes into the stage. Each marker
prototype prim is created as a child of the :class:`UsdGeom.PointInstancer` prim. The prim path for the prototype prim is created as a child of the :class:`UsdGeom.PointInstancer` prim. The prim path for the
marker prim is resolved using the key of the marker in the :attr:`VisualizationMarkersCfg.markers` marker prim is resolved using the key of the marker in the :attr:`VisualizationMarkersCfg.markers`
dictionary. The marker prototypes are created using the :meth:`isaacsim.core.utils.create_prim` dictionary. The marker prototypes are created using the :meth:`isaaclab.sim.utils.prims.create_prim`
function, and then instanced using :class:`UsdGeom.PointInstancer` prim to allow creating multiple function, and then instanced using :class:`UsdGeom.PointInstancer` prim to allow creating multiple
instances of the marker prims. instances of the marker prims.
......
...@@ -21,8 +21,8 @@ from isaacsim.core.version import get_version ...@@ -21,8 +21,8 @@ from isaacsim.core.version import get_version
from pxr import Sdf, UsdGeom from pxr import Sdf, UsdGeom
import isaaclab.sim as sim_utils import isaaclab.sim as sim_utils
import isaaclab.sim.utils.stage as stage_utils
import isaaclab.utils.sensors as sensor_utils import isaaclab.utils.sensors as sensor_utils
from isaaclab.sim.utils import stage as stage_utils
from isaaclab.utils import to_camel_case from isaaclab.utils import to_camel_case
from isaaclab.utils.array import convert_to_torch from isaaclab.utils.array import convert_to_torch
from isaaclab.utils.math import ( from isaaclab.utils.math import (
......
...@@ -13,9 +13,9 @@ from isaacsim.core.simulation_manager import SimulationManager ...@@ -13,9 +13,9 @@ from isaacsim.core.simulation_manager import SimulationManager
from pxr import UsdPhysics from pxr import UsdPhysics
import isaaclab.sim as sim_utils import isaaclab.sim as sim_utils
import isaaclab.sim.utils.stage as stage_utils
import isaaclab.utils.math as math_utils import isaaclab.utils.math as math_utils
from isaaclab.markers import VisualizationMarkers from isaaclab.markers import VisualizationMarkers
from isaaclab.sim.utils import stage as stage_utils
from ..sensor_base import SensorBase from ..sensor_base import SensorBase
from .imu_data import ImuData from .imu_data import ImuData
......
...@@ -12,9 +12,9 @@ from typing import TYPE_CHECKING, ClassVar, Literal ...@@ -12,9 +12,9 @@ from typing import TYPE_CHECKING, ClassVar, Literal
import omni.physics.tensors.impl.api as physx import omni.physics.tensors.impl.api as physx
from isaacsim.core.prims import XFormPrim from isaacsim.core.prims import XFormPrim
import isaaclab.sim.utils.stage as stage_utils
import isaaclab.utils.math as math_utils import isaaclab.utils.math as math_utils
from isaaclab.sensors.camera import CameraData from isaaclab.sensors.camera import CameraData
from isaaclab.sim.utils import stage as stage_utils
from isaaclab.utils.warp import raycast_mesh from isaaclab.utils.warp import raycast_mesh
from .ray_caster import RayCaster from .ray_caster import RayCaster
......
...@@ -32,12 +32,15 @@ from isaacsim.core.utils.viewports import set_camera_view ...@@ -32,12 +32,15 @@ from isaacsim.core.utils.viewports import set_camera_view
from isaacsim.core.version import get_version from isaacsim.core.version import get_version
from pxr import Gf, PhysxSchema, Sdf, Usd, UsdPhysics from pxr import Gf, PhysxSchema, Sdf, Usd, UsdPhysics
from isaaclab.sim.utils import stage as stage_utils import isaaclab.sim.utils.stage as stage_utils
from .simulation_cfg import SimulationCfg from .simulation_cfg import SimulationCfg
from .spawners import DomeLightCfg, GroundPlaneCfg from .spawners import DomeLightCfg, GroundPlaneCfg
from .utils import ColoredFormatter, RateLimitFilter, bind_physics_material from .utils import ColoredFormatter, RateLimitFilter, bind_physics_material
# import logger
logger = logging.getLogger(__name__)
class SimulationContext(_SimulationContext): class SimulationContext(_SimulationContext):
"""A class to control simulation-related events such as physics stepping and rendering. """A class to control simulation-related events such as physics stepping and rendering.
...@@ -539,7 +542,7 @@ class SimulationContext(_SimulationContext): ...@@ -539,7 +542,7 @@ class SimulationContext(_SimulationContext):
if self._anim_recording_enabled: if self._anim_recording_enabled:
is_anim_recording_finished = self._update_anim_recording() is_anim_recording_finished = self._update_anim_recording()
if is_anim_recording_finished: if is_anim_recording_finished:
carb.log_warn("[INFO][SimulationContext]: Animation recording finished. Closing app.") logger.warning("[INFO][SimulationContext]: Animation recording finished. Closing app.")
self._app.shutdown() self._app.shutdown()
# check if the simulation timeline is paused. in that case keep stepping until it is playing # check if the simulation timeline is paused. in that case keep stepping until it is playing
...@@ -927,7 +930,7 @@ class SimulationContext(_SimulationContext): ...@@ -927,7 +930,7 @@ class SimulationContext(_SimulationContext):
def _finish_anim_recording(self): def _finish_anim_recording(self):
"""Finishes the animation recording and outputs the baked animation recording.""" """Finishes the animation recording and outputs the baked animation recording."""
carb.log_warn( logger.warning(
"[INFO][SimulationContext]: Finishing animation recording. Stage must be saved. Might take a few minutes." "[INFO][SimulationContext]: Finishing animation recording. Stage must be saved. Might take a few minutes."
) )
......
...@@ -8,10 +8,11 @@ from __future__ import annotations ...@@ -8,10 +8,11 @@ from __future__ import annotations
import logging import logging
from typing import TYPE_CHECKING from typing import TYPE_CHECKING
import isaacsim.core.utils.prims as prim_utils
import omni.kit.commands import omni.kit.commands
from pxr import Gf, Sdf, Usd from pxr import Gf, Sdf, Usd
import isaaclab.sim.utils.prims as prim_utils
# from Isaac Sim 4.2 onwards, pxr.Semantics is deprecated # from Isaac Sim 4.2 onwards, pxr.Semantics is deprecated
try: try:
import Semantics import Semantics
...@@ -160,7 +161,7 @@ def spawn_ground_plane( ...@@ -160,7 +161,7 @@ def spawn_ground_plane(
# Apply physics material to ground plane # Apply physics material to ground plane
collision_prim_path = prim_utils.get_prim_path( collision_prim_path = prim_utils.get_prim_path(
prim_utils.get_first_matching_child_prim( prim_utils.get_first_matching_child_prim(
prim_path, predicate=lambda x: prim_utils.get_prim_type_name(x) == "Plane" prim_path, predicate=lambda x: prim_utils.from_prim_get_type_name(x) == "Plane"
) )
) )
bind_physics_material(collision_prim_path, f"{prim_path}/physicsMaterial") bind_physics_material(collision_prim_path, f"{prim_path}/physicsMaterial")
......
...@@ -7,9 +7,9 @@ from __future__ import annotations ...@@ -7,9 +7,9 @@ from __future__ import annotations
from typing import TYPE_CHECKING from typing import TYPE_CHECKING
import isaacsim.core.utils.prims as prim_utils
from pxr import Usd, UsdLux from pxr import Usd, UsdLux
import isaaclab.sim.utils.prims as prim_utils
from isaaclab.sim.utils import clone, safe_set_attribute_on_usd_prim from isaaclab.sim.utils import clone, safe_set_attribute_on_usd_prim
if TYPE_CHECKING: if TYPE_CHECKING:
......
...@@ -31,7 +31,7 @@ When parsing physics material properties on an object, the following priority is ...@@ -31,7 +31,7 @@ When parsing physics material properties on an object, the following priority is
Usage: Usage:
.. code-block:: python .. code-block:: python
import isaacsim.core.utils.prims as prim_utils import isaaclab.sim.utils.prims as prim_utils
import isaaclab.sim as sim_utils import isaaclab.sim as sim_utils
......
...@@ -7,9 +7,9 @@ from __future__ import annotations ...@@ -7,9 +7,9 @@ from __future__ import annotations
from typing import TYPE_CHECKING from typing import TYPE_CHECKING
import isaacsim.core.utils.prims as prim_utils
from pxr import PhysxSchema, Usd, UsdPhysics, UsdShade from pxr import PhysxSchema, Usd, UsdPhysics, UsdShade
import isaaclab.sim.utils.prims as prim_utils
from isaaclab.sim.utils import clone, safe_set_attribute_on_usd_schema from isaaclab.sim.utils import clone, safe_set_attribute_on_usd_schema
from isaaclab.sim.utils.stage import get_current_stage from isaaclab.sim.utils.stage import get_current_stage
......
...@@ -8,10 +8,10 @@ from __future__ import annotations ...@@ -8,10 +8,10 @@ from __future__ import annotations
import logging import logging
from typing import TYPE_CHECKING from typing import TYPE_CHECKING
import isaacsim.core.utils.prims as prim_utils
import omni.kit.commands import omni.kit.commands
from pxr import Usd from pxr import Usd
import isaaclab.sim.utils.prims as prim_utils
from isaaclab.sim.utils import attach_stage_to_usd_context, clone, safe_set_attribute_on_usd_prim from isaaclab.sim.utils import attach_stage_to_usd_context, clone, safe_set_attribute_on_usd_prim
from isaaclab.utils.assets import NVIDIA_NUCLEUS_DIR from isaaclab.utils.assets import NVIDIA_NUCLEUS_DIR
......
...@@ -10,9 +10,9 @@ import trimesh ...@@ -10,9 +10,9 @@ import trimesh
import trimesh.transformations import trimesh.transformations
from typing import TYPE_CHECKING from typing import TYPE_CHECKING
import isaacsim.core.utils.prims as prim_utils
from pxr import Usd, UsdPhysics from pxr import Usd, UsdPhysics
import isaaclab.sim.utils.prims as prim_utils
from isaaclab.sim import schemas from isaaclab.sim import schemas
from isaaclab.sim.utils import bind_physics_material, bind_visual_material, clone from isaaclab.sim.utils import bind_physics_material, bind_visual_material, clone
......
...@@ -8,12 +8,11 @@ from __future__ import annotations ...@@ -8,12 +8,11 @@ from __future__ import annotations
import logging import logging
from typing import TYPE_CHECKING from typing import TYPE_CHECKING
import isaacsim.core.utils.prims as prim_utils
import omni.kit.commands import omni.kit.commands
from pxr import Sdf, Usd from pxr import Sdf, Usd
from isaaclab.sim.utils import clone import isaaclab.sim.utils.prims as prim_utils
from isaaclab.sim.utils.stage import attach_stage_to_usd_context from isaaclab.sim.utils import attach_stage_to_usd_context, clone
from isaaclab.utils import to_camel_case from isaaclab.utils import to_camel_case
if TYPE_CHECKING: if TYPE_CHECKING:
......
...@@ -7,9 +7,9 @@ from __future__ import annotations ...@@ -7,9 +7,9 @@ from __future__ import annotations
from typing import TYPE_CHECKING from typing import TYPE_CHECKING
import isaacsim.core.utils.prims as prim_utils
from pxr import Usd from pxr import Usd
import isaaclab.sim.utils.prims as prim_utils
from isaaclab.sim import schemas from isaaclab.sim import schemas
from isaaclab.sim.utils import bind_physics_material, bind_visual_material, clone from isaaclab.sim.utils import bind_physics_material, bind_visual_material, clone
......
...@@ -10,12 +10,12 @@ import re ...@@ -10,12 +10,12 @@ import re
from typing import TYPE_CHECKING from typing import TYPE_CHECKING
import carb import carb
import isaacsim.core.utils.prims as prim_utils
from pxr import Sdf, Usd from pxr import Sdf, Usd
import isaaclab.sim as sim_utils import isaaclab.sim as sim_utils
import isaaclab.sim.utils.prims as prim_utils
import isaaclab.sim.utils.stage as stage_utils
from isaaclab.sim.spawners.from_files import UsdFileCfg from isaaclab.sim.spawners.from_files import UsdFileCfg
from isaaclab.sim.utils import stage as stage_utils
if TYPE_CHECKING: if TYPE_CHECKING:
from . import wrappers_cfg from . import wrappers_cfg
......
...@@ -3,4 +3,8 @@ ...@@ -3,4 +3,8 @@
# #
# SPDX-License-Identifier: BSD-3-Clause # SPDX-License-Identifier: BSD-3-Clause
from .utils import * # noqa: F401, F403 from .logger import * # noqa: F401, F403
from .nucleus import * # noqa: F401, F403
from .prims import * # noqa: F401, F403
from .semantics import * # noqa: F401, F403
from .stage import * # noqa: F401, F403
# Copyright (c) 2022-2025, The Isaac Lab Project Developers (https://github.com/isaac-sim/IsaacLab/blob/main/CONTRIBUTORS.md).
# All rights reserved.
#
# SPDX-License-Identifier: BSD-3-Clause
"""Sub-module with logging utilities."""
from __future__ import annotations
import logging
import time
# import logger
logger = logging.getLogger(__name__)
# --- Colored formatter ---
class ColoredFormatter(logging.Formatter):
COLORS = {
"WARNING": "\033[33m", # orange/yellow
"ERROR": "\033[31m", # red
"CRITICAL": "\033[31m", # red
"INFO": "\033[0m", # reset
"DEBUG": "\033[0m",
}
RESET = "\033[0m"
def format(self, record):
color = self.COLORS.get(record.levelname, self.RESET)
message = super().format(record)
return f"{color}{message}{self.RESET}"
# --- Custom rate-limited warning filter ---
class RateLimitFilter(logging.Filter):
def __init__(self, interval_seconds=5):
super().__init__()
self.interval = interval_seconds
self.last_emitted = {}
def filter(self, record):
"""Allow WARNINGs only once every few seconds per message."""
if record.levelno != logging.WARNING:
return True
now = time.time()
msg_key = record.getMessage()
if msg_key not in self.last_emitted or (now - self.last_emitted[msg_key]) > self.interval:
self.last_emitted[msg_key] = now
return True
return False
This diff is collapsed.
This diff is collapsed.
...@@ -80,10 +80,10 @@ def create_prim_from_mesh(prim_path: str, mesh: trimesh.Trimesh, **kwargs): ...@@ -80,10 +80,10 @@ def create_prim_from_mesh(prim_path: str, mesh: trimesh.Trimesh, **kwargs):
physics_material: The physics material to apply. Defaults to None. physics_material: The physics material to apply. Defaults to None.
""" """
# need to import these here to prevent isaacsim launching when importing this module # need to import these here to prevent isaacsim launching when importing this module
import isaacsim.core.utils.prims as prim_utils
from pxr import UsdGeom from pxr import UsdGeom
import isaaclab.sim as sim_utils import isaaclab.sim as sim_utils
import isaaclab.sim.utils.prims as prim_utils
# create parent prim # create parent prim
prim_utils.create_prim(prim_path, "Xform") prim_utils.create_prim(prim_path, "Xform")
......
...@@ -9,7 +9,6 @@ from contextlib import suppress ...@@ -9,7 +9,6 @@ from contextlib import suppress
from matplotlib import cm from matplotlib import cm
from typing import TYPE_CHECKING, Optional from typing import TYPE_CHECKING, Optional
import carb
import omni import omni
with suppress(ImportError): with suppress(ImportError):
...@@ -82,7 +81,7 @@ class ImagePlot(UIWidgetWrapper): ...@@ -82,7 +81,7 @@ class ImagePlot(UIWidgetWrapper):
self._byte_provider = omni.ui.ByteImageProvider() self._byte_provider = omni.ui.ByteImageProvider()
if image is None: if image is None:
carb.log_warn("image is NONE") logger.warning("image is NONE")
image = np.ones((480, 640, 3), dtype=np.uint8) * 255 image = np.ones((480, 640, 3), dtype=np.uint8) * 255
image[:, :, 0] = 0 image[:, :, 0] = 0
image[:, :240, 1] = 0 image[:, :240, 1] = 0
......
...@@ -10,11 +10,12 @@ from typing import Any, TypeAlias ...@@ -10,11 +10,12 @@ from typing import Any, TypeAlias
import omni.kit.commands import omni.kit.commands
import omni.ui as ui import omni.ui as ui
from isaacsim.core.utils.prims import delete_prim, get_prim_at_path
from omni.kit.xr.scene_view.utils import UiContainer, WidgetComponent from omni.kit.xr.scene_view.utils import UiContainer, WidgetComponent
from omni.kit.xr.scene_view.utils.spatial_source import SpatialSource from omni.kit.xr.scene_view.utils.spatial_source import SpatialSource
from pxr import Gf from pxr import Gf
from isaaclab.sim.utils.prims import delete_prim, get_prim_at_path
Vec3Type: TypeAlias = Gf.Vec3f | Gf.Vec3d Vec3Type: TypeAlias = Gf.Vec3f | Gf.Vec3d
camera_facing_widget_container = {} camera_facing_widget_container = {}
......
...@@ -370,3 +370,46 @@ def resolve_matching_names_values( ...@@ -370,3 +370,46 @@ def resolve_matching_names_values(
) )
# return # return
return index_list, names_list, values_list return index_list, names_list, values_list
def find_unique_string_name(initial_name: str, is_unique_fn: Callable[[str], bool]) -> str:
"""Find a unique string name based on the predicate function provided.
The string is appended with "_N", where N is a natural number till the resultant string
is unique.
Args:
initial_name (str): The initial string name.
is_unique_fn (Callable[[str], bool]): The predicate function to validate against.
Returns:
str: A unique string based on input function.
"""
if is_unique_fn(initial_name):
return initial_name
iterator = 1
result = initial_name + "_" + str(iterator)
while not is_unique_fn(result):
result = initial_name + "_" + str(iterator)
iterator += 1
return result
def find_root_prim_path_from_regex(prim_path_regex: str) -> tuple[str, int]:
"""Find the first prim above the regex pattern prim and its position.
Args:
prim_path_regex (str): full prim path including the regex pattern prim.
Returns:
Tuple[str, int]: First position is the prim path to the parent of the regex prim.
Second position represents the level of the regex prim in the USD stage tree representation.
"""
prim_paths_list = str(prim_path_regex).split("/")
root_idx = None
for prim_path_idx in range(len(prim_paths_list)):
chars = set("[]*|^")
if any((c in chars) for c in prim_paths_list[prim_path_idx]):
root_idx = prim_path_idx
break
root_prim_path = None
tree_level = None
if root_idx is not None:
root_prim_path = "/".join(prim_paths_list[:root_idx])
tree_level = root_idx
return root_prim_path, tree_level
...@@ -35,9 +35,8 @@ simulation_app = app_launcher.app ...@@ -35,9 +35,8 @@ simulation_app = app_launcher.app
import numpy as np import numpy as np
import torch import torch
import isaacsim.core.utils.prims as prim_utils
import isaaclab.sim as sim_utils import isaaclab.sim as sim_utils
import isaaclab.sim.utils.prims as prim_utils
from isaaclab.assets import Articulation from isaaclab.assets import Articulation
## ##
......
...@@ -20,11 +20,11 @@ simulation_app = AppLauncher(headless=True).app ...@@ -20,11 +20,11 @@ simulation_app = AppLauncher(headless=True).app
import ctypes import ctypes
import torch import torch
import isaacsim.core.utils.prims as prim_utils
import pytest import pytest
from isaacsim.core.version import get_version from isaacsim.core.version import get_version
import isaaclab.sim as sim_utils import isaaclab.sim as sim_utils
import isaaclab.sim.utils.prims as prim_utils
import isaaclab.utils.math as math_utils import isaaclab.utils.math as math_utils
import isaaclab.utils.string as string_utils import isaaclab.utils.string as string_utils
from isaaclab.actuators import ActuatorBase, IdealPDActuatorCfg, ImplicitActuatorCfg from isaaclab.actuators import ActuatorBase, IdealPDActuatorCfg, ImplicitActuatorCfg
......
...@@ -20,11 +20,11 @@ import ctypes ...@@ -20,11 +20,11 @@ import ctypes
import torch import torch
import carb import carb
import isaacsim.core.utils.prims as prim_utils
import pytest import pytest
from flaky import flaky from flaky import flaky
import isaaclab.sim as sim_utils import isaaclab.sim as sim_utils
import isaaclab.sim.utils.prims as prim_utils
import isaaclab.utils.math as math_utils import isaaclab.utils.math as math_utils
from isaaclab.assets import DeformableObject, DeformableObjectCfg from isaaclab.assets import DeformableObject, DeformableObjectCfg
from isaaclab.sim import build_simulation_context from isaaclab.sim import build_simulation_context
......
...@@ -20,11 +20,11 @@ import ctypes ...@@ -20,11 +20,11 @@ import ctypes
import torch import torch
from typing import Literal from typing import Literal
import isaacsim.core.utils.prims as prim_utils
import pytest import pytest
from flaky import flaky from flaky import flaky
import isaaclab.sim as sim_utils import isaaclab.sim as sim_utils
import isaaclab.sim.utils.prims as prim_utils
from isaaclab.assets import RigidObject, RigidObjectCfg from isaaclab.assets import RigidObject, RigidObjectCfg
from isaaclab.sim import build_simulation_context from isaaclab.sim import build_simulation_context
from isaaclab.sim.spawners import materials from isaaclab.sim.spawners import materials
......
...@@ -19,10 +19,10 @@ simulation_app = AppLauncher(headless=True).app ...@@ -19,10 +19,10 @@ simulation_app = AppLauncher(headless=True).app
import ctypes import ctypes
import torch import torch
import isaacsim.core.utils.prims as prim_utils
import pytest import pytest
import isaaclab.sim as sim_utils import isaaclab.sim as sim_utils
import isaaclab.sim.utils.prims as prim_utils
from isaaclab.assets import RigidObjectCfg, RigidObjectCollection, RigidObjectCollectionCfg from isaaclab.assets import RigidObjectCfg, RigidObjectCollection, RigidObjectCollectionCfg
from isaaclab.sim import build_simulation_context from isaaclab.sim import build_simulation_context
from isaaclab.utils.assets import ISAAC_NUCLEUS_DIR from isaaclab.utils.assets import ISAAC_NUCLEUS_DIR
......
...@@ -18,11 +18,11 @@ simulation_app = AppLauncher(headless=True).app ...@@ -18,11 +18,11 @@ simulation_app = AppLauncher(headless=True).app
import torch import torch
import isaacsim.core.utils.prims as prim_utils
import pytest import pytest
from isaacsim.core.version import get_version from isaacsim.core.version import get_version
import isaaclab.sim as sim_utils import isaaclab.sim as sim_utils
import isaaclab.sim.utils.prims as prim_utils
from isaaclab.actuators import ImplicitActuatorCfg from isaaclab.actuators import ImplicitActuatorCfg
from isaaclab.assets import ( from isaaclab.assets import (
Articulation, Articulation,
......
...@@ -14,14 +14,14 @@ simulation_app = AppLauncher(headless=True).app ...@@ -14,14 +14,14 @@ simulation_app = AppLauncher(headless=True).app
import torch import torch
import isaacsim.core.utils.prims as prim_utils
import pytest import pytest
from isaacsim.core.cloner import GridCloner from isaacsim.core.cloner import GridCloner
import isaaclab.sim as sim_utils import isaaclab.sim as sim_utils
import isaaclab.sim.utils.prims as prim_utils
import isaaclab.sim.utils.stage as stage_utils
from isaaclab.assets import Articulation from isaaclab.assets import Articulation
from isaaclab.controllers import DifferentialIKController, DifferentialIKControllerCfg from isaaclab.controllers import DifferentialIKController, DifferentialIKControllerCfg
from isaaclab.sim.utils import stage as stage_utils
from isaaclab.utils.math import ( # isort:skip from isaaclab.utils.math import ( # isort:skip
compute_pose_error, compute_pose_error,
......
...@@ -14,17 +14,17 @@ simulation_app = AppLauncher(headless=True).app ...@@ -14,17 +14,17 @@ simulation_app = AppLauncher(headless=True).app
import torch import torch
import isaacsim.core.utils.prims as prim_utils
import pytest import pytest
from isaacsim.core.cloner import GridCloner from isaacsim.core.cloner import GridCloner
import isaaclab.sim as sim_utils import isaaclab.sim as sim_utils
import isaaclab.sim.utils.prims as prim_utils
import isaaclab.sim.utils.stage as stage_utils
from isaaclab.assets import Articulation from isaaclab.assets import Articulation
from isaaclab.controllers import OperationalSpaceController, OperationalSpaceControllerCfg from isaaclab.controllers import OperationalSpaceController, OperationalSpaceControllerCfg
from isaaclab.markers import VisualizationMarkers from isaaclab.markers import VisualizationMarkers
from isaaclab.markers.config import FRAME_MARKER_CFG from isaaclab.markers.config import FRAME_MARKER_CFG
from isaaclab.sensors import ContactSensor, ContactSensorCfg from isaaclab.sensors import ContactSensor, ContactSensorCfg
from isaaclab.sim.utils import stage as stage_utils
from isaaclab.utils.math import ( from isaaclab.utils.math import (
apply_delta_pose, apply_delta_pose,
combine_frame_transforms, combine_frame_transforms,
......
...@@ -45,7 +45,6 @@ import numpy as np ...@@ -45,7 +45,6 @@ import numpy as np
import os import os
import random import random
import isaacsim.core.utils.prims as prim_utils
import omni.replicator.core as rep import omni.replicator.core as rep
from isaacsim.core.api.world import World from isaacsim.core.api.world import World
from isaacsim.core.prims import Articulation, RigidPrim, SingleGeometryPrim, SingleRigidPrim from isaacsim.core.prims import Articulation, RigidPrim, SingleGeometryPrim, SingleRigidPrim
...@@ -54,6 +53,7 @@ from PIL import Image, ImageChops ...@@ -54,6 +53,7 @@ from PIL import Image, ImageChops
from pxr import Gf, UsdGeom from pxr import Gf, UsdGeom
import isaaclab.sim.utils.nucleus as nucleus_utils import isaaclab.sim.utils.nucleus as nucleus_utils
import isaaclab.sim.utils.prims as prim_utils
# check nucleus connection # check nucleus connection
if nucleus_utils.get_assets_root_path() is None: if nucleus_utils.get_assets_root_path() is None:
......
...@@ -33,7 +33,6 @@ simulation_app = SimulationApp({"headless": args_cli.headless}) ...@@ -33,7 +33,6 @@ simulation_app = SimulationApp({"headless": args_cli.headless})
import logging import logging
import torch import torch
import isaacsim.core.utils.prims as prim_utils
import omni.kit.commands import omni.kit.commands
import omni.physx import omni.physx
from isaacsim.core.api.world import World from isaacsim.core.api.world import World
...@@ -41,11 +40,14 @@ from isaacsim.core.prims import Articulation ...@@ -41,11 +40,14 @@ from isaacsim.core.prims import Articulation
from isaacsim.core.utils.viewports import set_camera_view from isaacsim.core.utils.viewports import set_camera_view
from pxr import PhysxSchema, UsdPhysics from pxr import PhysxSchema, UsdPhysics
# import logger
logger = logging.getLogger(__name__)
import isaaclab.sim.utils.nucleus as nucleus_utils import isaaclab.sim.utils.nucleus as nucleus_utils
import isaaclab.sim.utils.prims as prim_utils
import isaaclab.sim.utils.stage as stage_utils import isaaclab.sim.utils.stage as stage_utils
# import logger
logger = logging.getLogger(__name__)
# check nucleus connection # check nucleus connection
if nucleus_utils.get_assets_root_path() is None: if nucleus_utils.get_assets_root_path() is None:
msg = ( msg = (
......
...@@ -44,15 +44,16 @@ import logging ...@@ -44,15 +44,16 @@ import logging
import os import os
import torch import torch
import isaacsim.core.utils.prims as prim_utils
from isaacsim.core.api.world import World from isaacsim.core.api.world import World
from isaacsim.core.cloner import GridCloner from isaacsim.core.cloner import GridCloner
from isaacsim.core.prims import Articulation from isaacsim.core.prims import Articulation
from isaacsim.core.utils.viewports import set_camera_view from isaacsim.core.utils.viewports import set_camera_view
import isaaclab.sim.utils.nucleus as nucleus_utils
import isaaclab.sim.utils.prims as prim_utils
# import logger # import logger
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
import isaaclab.sim.utils.nucleus as nucleus_utils
# check nucleus connection # check nucleus connection
if nucleus_utils.get_assets_root_path() is None: if nucleus_utils.get_assets_root_path() is None:
......
...@@ -38,13 +38,15 @@ import gc ...@@ -38,13 +38,15 @@ import gc
import logging import logging
import torch # noqa: F401 import torch # noqa: F401
import isaacsim.core.utils.prims as prim_utils
from isaacsim.core.api.simulation_context import SimulationContext from isaacsim.core.api.simulation_context import SimulationContext
from isaacsim.core.prims import Articulation from isaacsim.core.prims import Articulation
import isaaclab.sim.utils.nucleus as nucleus_utils
import isaaclab.sim.utils.prims as prim_utils
# import logger # import logger
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
import isaaclab.sim.utils.nucleus as nucleus_utils
# check nucleus connection # check nucleus connection
if nucleus_utils.get_assets_root_path() is None: if nucleus_utils.get_assets_root_path() is None:
......
...@@ -45,7 +45,6 @@ simulation_app = app_launcher.app ...@@ -45,7 +45,6 @@ simulation_app = app_launcher.app
import numpy as np import numpy as np
import torch import torch
import isaacsim.core.utils.prims as prim_utils
import omni.replicator.core as rep import omni.replicator.core as rep
from isaacsim.core.api.simulation_context import SimulationContext from isaacsim.core.api.simulation_context import SimulationContext
from isaacsim.core.cloner import GridCloner from isaacsim.core.cloner import GridCloner
...@@ -53,6 +52,8 @@ from isaacsim.core.objects import DynamicSphere ...@@ -53,6 +52,8 @@ from isaacsim.core.objects import DynamicSphere
from isaacsim.core.prims import RigidPrim from isaacsim.core.prims import RigidPrim
from isaacsim.core.utils.viewports import set_camera_view from isaacsim.core.utils.viewports import set_camera_view
import isaaclab.sim.utils.prims as prim_utils
def main(): def main():
"""Spawn a bunch of balls and randomly change their textures.""" """Spawn a bunch of balls and randomly change their textures."""
......
...@@ -18,9 +18,9 @@ import pytest ...@@ -18,9 +18,9 @@ import pytest
from isaacsim.core.api.simulation_context import SimulationContext from isaacsim.core.api.simulation_context import SimulationContext
import isaaclab.sim as sim_utils import isaaclab.sim as sim_utils
import isaaclab.sim.utils.stage as stage_utils
from isaaclab.markers import VisualizationMarkers, VisualizationMarkersCfg from isaaclab.markers import VisualizationMarkers, VisualizationMarkersCfg
from isaaclab.markers.config import FRAME_MARKER_CFG, POSITION_GOAL_MARKER_CFG from isaaclab.markers.config import FRAME_MARKER_CFG, POSITION_GOAL_MARKER_CFG
from isaaclab.sim.utils import stage as stage_utils
from isaaclab.utils.math import random_orientation from isaaclab.utils.math import random_orientation
from isaaclab.utils.timer import Timer from isaaclab.utils.timer import Timer
......
...@@ -36,12 +36,12 @@ simulation_app = app_launcher.app ...@@ -36,12 +36,12 @@ simulation_app = app_launcher.app
import torch import torch
import isaacsim.core.utils.prims as prim_utils
from isaacsim.core.api.simulation_context import SimulationContext from isaacsim.core.api.simulation_context import SimulationContext
from isaacsim.core.cloner import GridCloner from isaacsim.core.cloner import GridCloner
from isaacsim.core.utils.viewports import set_camera_view from isaacsim.core.utils.viewports import set_camera_view
import isaaclab.sim as sim_utils import isaaclab.sim as sim_utils
import isaaclab.sim.utils.prims as prim_utils
from isaaclab.assets import Articulation from isaaclab.assets import Articulation
from isaaclab.sensors.contact_sensor import ContactSensor, ContactSensorCfg from isaaclab.sensors.contact_sensor import ContactSensor, ContactSensorCfg
from isaaclab.utils.timer import Timer from isaaclab.utils.timer import Timer
......
...@@ -12,6 +12,7 @@ from __future__ import annotations ...@@ -12,6 +12,7 @@ from __future__ import annotations
"""Launch Isaac Sim Simulator first.""" """Launch Isaac Sim Simulator first."""
import argparse import argparse
import logging
from isaacsim import SimulationApp from isaacsim import SimulationApp
...@@ -54,6 +55,9 @@ from isaaclab.terrains.terrain_importer import TerrainImporter ...@@ -54,6 +55,9 @@ from isaaclab.terrains.terrain_importer import TerrainImporter
from isaaclab.utils.assets import ISAAC_NUCLEUS_DIR from isaaclab.utils.assets import ISAAC_NUCLEUS_DIR
from isaaclab.utils.timer import Timer from isaaclab.utils.timer import Timer
# import logger
logger = logging.getLogger(__name__)
def design_scene(sim: SimulationContext, num_envs: int = 2048) -> RigidObject: def design_scene(sim: SimulationContext, num_envs: int = 2048) -> RigidObject:
"""Design the scene.""" """Design the scene."""
...@@ -188,8 +192,8 @@ if __name__ == "__main__": ...@@ -188,8 +192,8 @@ if __name__ == "__main__":
# Run the main function # Run the main function
main() main()
except Exception as err: except Exception as err:
carb.log_error(err) logger.error(err)
carb.log_error(traceback.format_exc()) logger.error(traceback.format_exc())
raise raise
finally: finally:
# close sim app # close sim app
......
...@@ -41,13 +41,13 @@ simulation_app = app_launcher.app ...@@ -41,13 +41,13 @@ simulation_app = app_launcher.app
import torch import torch
import isaacsim.core.utils.prims as prim_utils
from isaacsim.core.api.simulation_context import SimulationContext from isaacsim.core.api.simulation_context import SimulationContext
from isaacsim.core.cloner import GridCloner from isaacsim.core.cloner import GridCloner
from isaacsim.core.prims import RigidPrim from isaacsim.core.prims import RigidPrim
from isaacsim.core.utils.viewports import set_camera_view from isaacsim.core.utils.viewports import set_camera_view
import isaaclab.sim as sim_utils import isaaclab.sim as sim_utils
import isaaclab.sim.utils.prims as prim_utils
import isaaclab.terrains as terrain_gen import isaaclab.terrains as terrain_gen
from isaaclab.sensors.ray_caster import RayCaster, RayCasterCfg, patterns from isaaclab.sensors.ray_caster import RayCaster, RayCasterCfg, patterns
from isaaclab.terrains.config.rough import ROUGH_TERRAINS_CFG from isaaclab.terrains.config.rough import ROUGH_TERRAINS_CFG
......
...@@ -22,15 +22,15 @@ import random ...@@ -22,15 +22,15 @@ import random
import scipy.spatial.transform as tf import scipy.spatial.transform as tf
import torch import torch
import isaacsim.core.utils.prims as prim_utils
import omni.replicator.core as rep import omni.replicator.core as rep
import pytest import pytest
from isaacsim.core.prims import SingleGeometryPrim, SingleRigidPrim from isaacsim.core.prims import SingleGeometryPrim, SingleRigidPrim
from pxr import Gf, Usd, UsdGeom from pxr import Gf, Usd, UsdGeom
import isaaclab.sim as sim_utils import isaaclab.sim as sim_utils
import isaaclab.sim.utils.prims as prim_utils
import isaaclab.sim.utils.stage as stage_utils
from isaaclab.sensors.camera import Camera, CameraCfg from isaaclab.sensors.camera import Camera, CameraCfg
from isaaclab.sim.utils import stage as stage_utils
from isaaclab.utils import convert_dict_to_backend from isaaclab.utils import convert_dict_to_backend
from isaaclab.utils.math import convert_quat from isaaclab.utils.math import convert_quat
from isaaclab.utils.timer import Timer from isaaclab.utils.timer import Timer
......
...@@ -28,6 +28,7 @@ from isaaclab.assets import RigidObject, RigidObjectCfg ...@@ -28,6 +28,7 @@ from isaaclab.assets import RigidObject, RigidObjectCfg
from isaaclab.scene import InteractiveScene, InteractiveSceneCfg from isaaclab.scene import InteractiveScene, InteractiveSceneCfg
from isaaclab.sensors import ContactSensor, ContactSensorCfg from isaaclab.sensors import ContactSensor, ContactSensorCfg
from isaaclab.sim import SimulationContext, build_simulation_context from isaaclab.sim import SimulationContext, build_simulation_context
from isaaclab.sim.utils.stage import get_current_stage
from isaaclab.terrains import HfRandomUniformTerrainCfg, TerrainGeneratorCfg, TerrainImporterCfg from isaaclab.terrains import HfRandomUniformTerrainCfg, TerrainGeneratorCfg, TerrainImporterCfg
from isaaclab.utils import configclass from isaaclab.utils import configclass
...@@ -418,9 +419,6 @@ def test_contact_sensor_threshold(setup_simulation, device): ...@@ -418,9 +419,6 @@ def test_contact_sensor_threshold(setup_simulation, device):
# Play the simulator # Play the simulator
sim.reset() sim.reset()
# Get the stage and check the USD threshold attribute on the rigid body prim
from isaacsim.core.utils.stage import get_current_stage
stage = get_current_stage() stage = get_current_stage()
prim_path = scene_cfg.shape.prim_path prim_path = scene_cfg.shape.prim_path
prim = stage.GetPrimAtPath(prim_path) prim = stage.GetPrimAtPath(prim_path)
......
...@@ -19,11 +19,11 @@ import torch ...@@ -19,11 +19,11 @@ import torch
import pytest import pytest
import isaaclab.sim as sim_utils import isaaclab.sim as sim_utils
import isaaclab.sim.utils.stage as stage_utils
import isaaclab.utils.math as math_utils import isaaclab.utils.math as math_utils
from isaaclab.assets import RigidObjectCfg from isaaclab.assets import RigidObjectCfg
from isaaclab.scene import InteractiveScene, InteractiveSceneCfg from isaaclab.scene import InteractiveScene, InteractiveSceneCfg
from isaaclab.sensors import FrameTransformerCfg, OffsetCfg from isaaclab.sensors import FrameTransformerCfg, OffsetCfg
from isaaclab.sim.utils import stage as stage_utils
from isaaclab.terrains import TerrainImporterCfg from isaaclab.terrains import TerrainImporterCfg
from isaaclab.utils import configclass from isaaclab.utils import configclass
......
...@@ -20,13 +20,13 @@ import torch ...@@ -20,13 +20,13 @@ import torch
import pytest import pytest
import isaaclab.sim as sim_utils import isaaclab.sim as sim_utils
import isaaclab.sim.utils.stage as stage_utils
import isaaclab.utils.math as math_utils import isaaclab.utils.math as math_utils
from isaaclab.actuators import ImplicitActuatorCfg from isaaclab.actuators import ImplicitActuatorCfg
from isaaclab.assets import ArticulationCfg, RigidObjectCfg from isaaclab.assets import ArticulationCfg, RigidObjectCfg
from isaaclab.markers.config import GREEN_ARROW_X_MARKER_CFG, RED_ARROW_X_MARKER_CFG from isaaclab.markers.config import GREEN_ARROW_X_MARKER_CFG, RED_ARROW_X_MARKER_CFG
from isaaclab.scene import InteractiveScene, InteractiveSceneCfg from isaaclab.scene import InteractiveScene, InteractiveSceneCfg
from isaaclab.sensors.imu import ImuCfg from isaaclab.sensors.imu import ImuCfg
from isaaclab.sim.utils import stage as stage_utils
from isaaclab.terrains import TerrainImporterCfg from isaaclab.terrains import TerrainImporterCfg
from isaaclab.utils import configclass from isaaclab.utils import configclass
......
...@@ -20,7 +20,6 @@ import numpy as np ...@@ -20,7 +20,6 @@ import numpy as np
import random import random
import torch import torch
import isaacsim.core.utils.prims as prim_utils
import omni.replicator.core as rep import omni.replicator.core as rep
import pytest import pytest
from flaky import flaky from flaky import flaky
...@@ -28,8 +27,9 @@ from isaacsim.core.prims import SingleGeometryPrim, SingleRigidPrim ...@@ -28,8 +27,9 @@ from isaacsim.core.prims import SingleGeometryPrim, SingleRigidPrim
from pxr import Gf, UsdGeom from pxr import Gf, UsdGeom
import isaaclab.sim as sim_utils import isaaclab.sim as sim_utils
import isaaclab.sim.utils.prims as prim_utils
import isaaclab.sim.utils.stage as stage_utils
from isaaclab.sensors.camera import TiledCamera, TiledCameraCfg from isaaclab.sensors.camera import TiledCamera, TiledCameraCfg
from isaaclab.sim.utils import stage as stage_utils
@pytest.fixture() @pytest.fixture()
......
...@@ -20,16 +20,16 @@ import numpy as np ...@@ -20,16 +20,16 @@ import numpy as np
import os import os
import torch import torch
import isaacsim.core.utils.prims as prim_utils
import omni.replicator.core as rep import omni.replicator.core as rep
import pytest import pytest
from pxr import Gf from pxr import Gf
import isaaclab.sim as sim_utils import isaaclab.sim as sim_utils
import isaaclab.sim.utils.prims as prim_utils
import isaaclab.sim.utils.stage as stage_utils
from isaaclab.sensors.camera import Camera, CameraCfg from isaaclab.sensors.camera import Camera, CameraCfg
from isaaclab.sensors.ray_caster import RayCasterCamera, RayCasterCameraCfg, patterns from isaaclab.sensors.ray_caster import RayCasterCamera, RayCasterCameraCfg, patterns
from isaaclab.sim import PinholeCameraCfg from isaaclab.sim import PinholeCameraCfg
from isaaclab.sim.utils import stage as stage_utils
from isaaclab.terrains.trimesh.utils import make_plane from isaaclab.terrains.trimesh.utils import make_plane
from isaaclab.terrains.utils import create_prim_from_mesh from isaaclab.terrains.utils import create_prim_from_mesh
from isaaclab.utils import convert_dict_to_backend from isaaclab.utils import convert_dict_to_backend
......
...@@ -18,12 +18,12 @@ import torch ...@@ -18,12 +18,12 @@ import torch
from collections.abc import Sequence from collections.abc import Sequence
from dataclasses import dataclass from dataclasses import dataclass
import isaacsim.core.utils.prims as prim_utils
import pytest import pytest
import isaaclab.sim as sim_utils import isaaclab.sim as sim_utils
import isaaclab.sim.utils.prims as prim_utils
import isaaclab.sim.utils.stage as stage_utils
from isaaclab.sensors import SensorBase, SensorBaseCfg from isaaclab.sensors import SensorBase, SensorBaseCfg
from isaaclab.sim.utils import stage as stage_utils
from isaaclab.utils import configclass from isaaclab.utils import configclass
......
...@@ -20,13 +20,13 @@ import numpy as np ...@@ -20,13 +20,13 @@ import numpy as np
import random import random
import torch import torch
import isaacsim.core.utils.prims as prim_utils
import omni.replicator.core as rep import omni.replicator.core as rep
import pytest import pytest
from isaacsim.core.prims import SingleGeometryPrim, SingleRigidPrim from isaacsim.core.prims import SingleGeometryPrim, SingleRigidPrim
from pxr import Gf, UsdGeom from pxr import Gf, UsdGeom
from isaaclab.sim.utils import stage as stage_utils import isaaclab.sim.utils.prims as prim_utils
import isaaclab.sim.utils.stage as stage_utils
# from Isaac Sim 4.2 onwards, pxr.Semantics is deprecated # from Isaac Sim 4.2 onwards, pxr.Semantics is deprecated
try: try:
......
...@@ -40,9 +40,8 @@ import random ...@@ -40,9 +40,8 @@ import random
import torch import torch
import tqdm import tqdm
import isaacsim.core.utils.prims as prim_utils
import isaaclab.sim as sim_utils import isaaclab.sim as sim_utils
import isaaclab.sim.utils.prims as prim_utils
def define_origins(num_origins: int, spacing: float) -> list[list[float]]: def define_origins(num_origins: int, spacing: float) -> list[list[float]]:
......
...@@ -21,10 +21,10 @@ simulation_app = AppLauncher(headless=True).app ...@@ -21,10 +21,10 @@ simulation_app = AppLauncher(headless=True).app
"""Rest everything follows.""" """Rest everything follows."""
import pytest import pytest
from isaacsim.core.utils.prims import is_prim_path_valid
from isaaclab.sim.simulation_cfg import SimulationCfg from isaaclab.sim.simulation_cfg import SimulationCfg
from isaaclab.sim.simulation_context import build_simulation_context from isaaclab.sim.simulation_context import build_simulation_context
from isaaclab.sim.utils.prims import is_prim_path_valid
@pytest.mark.parametrize("gravity_enabled", [True, False]) @pytest.mark.parametrize("gravity_enabled", [True, False])
......
...@@ -20,10 +20,10 @@ simulation_app = AppLauncher(headless=True).app ...@@ -20,10 +20,10 @@ simulation_app = AppLauncher(headless=True).app
"""Rest everything follows.""" """Rest everything follows."""
import pytest import pytest
from isaacsim.core.utils.prims import is_prim_path_valid
from isaaclab.sim.simulation_cfg import SimulationCfg from isaaclab.sim.simulation_cfg import SimulationCfg
from isaaclab.sim.simulation_context import build_simulation_context from isaaclab.sim.simulation_context import build_simulation_context
from isaaclab.sim.utils.prims import is_prim_path_valid
@pytest.mark.parametrize("gravity_enabled", [True, False]) @pytest.mark.parametrize("gravity_enabled", [True, False])
......
...@@ -17,15 +17,15 @@ import os ...@@ -17,15 +17,15 @@ import os
import random import random
import tempfile import tempfile
import isaacsim.core.utils.prims as prim_utils
import omni import omni
import pytest import pytest
from isaacsim.core.api.simulation_context import SimulationContext from isaacsim.core.api.simulation_context import SimulationContext
from pxr import UsdGeom, UsdPhysics from pxr import UsdGeom, UsdPhysics
import isaaclab.sim.utils.prims as prim_utils
import isaaclab.sim.utils.stage as stage_utils
from isaaclab.sim.converters import MeshConverter, MeshConverterCfg from isaaclab.sim.converters import MeshConverter, MeshConverterCfg
from isaaclab.sim.schemas import schemas_cfg from isaaclab.sim.schemas import schemas_cfg
from isaaclab.sim.utils import stage as stage_utils
from isaaclab.utils.assets import ISAACLAB_NUCLEUS_DIR, retrieve_file_path from isaaclab.utils.assets import ISAACLAB_NUCLEUS_DIR, retrieve_file_path
......
...@@ -14,13 +14,13 @@ simulation_app = AppLauncher(headless=True).app ...@@ -14,13 +14,13 @@ simulation_app = AppLauncher(headless=True).app
import os import os
import isaacsim.core.utils.prims as prim_utils
import pytest import pytest
from isaacsim.core.api.simulation_context import SimulationContext from isaacsim.core.api.simulation_context import SimulationContext
from isaacsim.core.utils.extensions import enable_extension, get_extension_path_from_name from isaacsim.core.utils.extensions import enable_extension, get_extension_path_from_name
import isaaclab.sim.utils.prims as prim_utils
import isaaclab.sim.utils.stage as stage_utils
from isaaclab.sim.converters import MjcfConverter, MjcfConverterCfg from isaaclab.sim.converters import MjcfConverter, MjcfConverterCfg
from isaaclab.sim.utils import stage as stage_utils
@pytest.fixture(autouse=True) @pytest.fixture(autouse=True)
......
...@@ -14,14 +14,14 @@ simulation_app = AppLauncher(headless=True).app ...@@ -14,14 +14,14 @@ simulation_app = AppLauncher(headless=True).app
import math import math
import isaacsim.core.utils.prims as prim_utils
import pytest import pytest
from isaacsim.core.api.simulation_context import SimulationContext from isaacsim.core.api.simulation_context import SimulationContext
from pxr import UsdPhysics from pxr import UsdPhysics
import isaaclab.sim.schemas as schemas import isaaclab.sim.schemas as schemas
import isaaclab.sim.utils.prims as prim_utils
import isaaclab.sim.utils.stage as stage_utils
from isaaclab.sim.utils import find_global_fixed_joint_prim from isaaclab.sim.utils import find_global_fixed_joint_prim
from isaaclab.sim.utils import stage as stage_utils
from isaaclab.utils.assets import ISAAC_NUCLEUS_DIR from isaaclab.utils.assets import ISAAC_NUCLEUS_DIR
from isaaclab.utils.string import to_camel_case from isaaclab.utils.string import to_camel_case
......
...@@ -14,10 +14,10 @@ simulation_app = AppLauncher(headless=True).app ...@@ -14,10 +14,10 @@ simulation_app = AppLauncher(headless=True).app
import numpy as np import numpy as np
import isaacsim.core.utils.prims as prim_utils
import pytest import pytest
from isaacsim.core.api.simulation_context import SimulationContext as IsaacSimulationContext from isaacsim.core.api.simulation_context import SimulationContext as IsaacSimulationContext
import isaaclab.sim.utils.prims as prim_utils
from isaaclab.sim import SimulationCfg, SimulationContext from isaaclab.sim import SimulationCfg, SimulationContext
......
...@@ -12,13 +12,13 @@ simulation_app = AppLauncher(headless=True).app ...@@ -12,13 +12,13 @@ simulation_app = AppLauncher(headless=True).app
"""Rest everything follows.""" """Rest everything follows."""
import isaacsim.core.utils.prims as prim_utils
import pytest import pytest
from isaacsim.core.api.simulation_context import SimulationContext from isaacsim.core.api.simulation_context import SimulationContext
from isaacsim.core.utils.extensions import enable_extension, get_extension_path_from_name from isaacsim.core.utils.extensions import enable_extension, get_extension_path_from_name
import isaaclab.sim as sim_utils import isaaclab.sim as sim_utils
from isaaclab.sim.utils import stage as stage_utils import isaaclab.sim.utils.prims as prim_utils
import isaaclab.sim.utils.stage as stage_utils
from isaaclab.utils.assets import ISAACLAB_NUCLEUS_DIR from isaaclab.utils.assets import ISAACLAB_NUCLEUS_DIR
......
...@@ -12,13 +12,14 @@ simulation_app = AppLauncher(headless=True).app ...@@ -12,13 +12,14 @@ simulation_app = AppLauncher(headless=True).app
"""Rest everything follows.""" """Rest everything follows."""
import isaacsim.core.utils.prims as prim_utils
import pytest import pytest
from isaacsim.core.api.simulation_context import SimulationContext from isaacsim.core.api.simulation_context import SimulationContext
from pxr import UsdLux from pxr import UsdLux
import isaaclab.sim as sim_utils import isaaclab.sim as sim_utils
from isaaclab.sim.utils import stage as stage_utils import isaaclab.sim.utils.prims as prim_utils
import isaaclab.sim.utils.stage as stage_utils
from isaaclab.utils.string import to_camel_case from isaaclab.utils.string import to_camel_case
......
...@@ -12,13 +12,14 @@ simulation_app = AppLauncher(headless=True).app ...@@ -12,13 +12,14 @@ simulation_app = AppLauncher(headless=True).app
"""Rest everything follows.""" """Rest everything follows."""
import isaacsim.core.utils.prims as prim_utils
import pytest import pytest
from isaacsim.core.api.simulation_context import SimulationContext from isaacsim.core.api.simulation_context import SimulationContext
from pxr import UsdPhysics, UsdShade from pxr import UsdPhysics, UsdShade
import isaaclab.sim as sim_utils import isaaclab.sim as sim_utils
from isaaclab.sim.utils import stage as stage_utils import isaaclab.sim.utils.prims as prim_utils
import isaaclab.sim.utils.stage as stage_utils
from isaaclab.utils.assets import NVIDIA_NUCLEUS_DIR from isaaclab.utils.assets import NVIDIA_NUCLEUS_DIR
......
...@@ -12,12 +12,13 @@ simulation_app = AppLauncher(headless=True).app ...@@ -12,12 +12,13 @@ simulation_app = AppLauncher(headless=True).app
"""Rest everything follows.""" """Rest everything follows."""
import isaacsim.core.utils.prims as prim_utils
import pytest import pytest
from isaacsim.core.api.simulation_context import SimulationContext from isaacsim.core.api.simulation_context import SimulationContext
import isaaclab.sim as sim_utils import isaaclab.sim as sim_utils
from isaaclab.sim.utils import stage as stage_utils import isaaclab.sim.utils.prims as prim_utils
import isaaclab.sim.utils.stage as stage_utils
@pytest.fixture @pytest.fixture
......
...@@ -12,13 +12,14 @@ simulation_app = AppLauncher(headless=True).app ...@@ -12,13 +12,14 @@ simulation_app = AppLauncher(headless=True).app
"""Rest everything follows.""" """Rest everything follows."""
import isaacsim.core.utils.prims as prim_utils
import pytest import pytest
from isaacsim.core.api.simulation_context import SimulationContext from isaacsim.core.api.simulation_context import SimulationContext
import isaaclab.sim as sim_utils import isaaclab.sim as sim_utils
import isaaclab.sim.utils.prims as prim_utils
import isaaclab.sim.utils.stage as stage_utils
from isaaclab.sim.spawners.sensors.sensors import CUSTOM_FISHEYE_CAMERA_ATTRIBUTES, CUSTOM_PINHOLE_CAMERA_ATTRIBUTES from isaaclab.sim.spawners.sensors.sensors import CUSTOM_FISHEYE_CAMERA_ATTRIBUTES, CUSTOM_PINHOLE_CAMERA_ATTRIBUTES
from isaaclab.sim.utils import stage as stage_utils
from isaaclab.utils.string import to_camel_case from isaaclab.utils.string import to_camel_case
......
...@@ -12,12 +12,12 @@ simulation_app = AppLauncher(headless=True).app ...@@ -12,12 +12,12 @@ simulation_app = AppLauncher(headless=True).app
"""Rest everything follows.""" """Rest everything follows."""
import isaacsim.core.utils.prims as prim_utils
import pytest import pytest
from isaacsim.core.api.simulation_context import SimulationContext from isaacsim.core.api.simulation_context import SimulationContext
import isaaclab.sim as sim_utils import isaaclab.sim as sim_utils
from isaaclab.sim.utils import stage as stage_utils import isaaclab.sim.utils.prims as prim_utils
import isaaclab.sim.utils.stage as stage_utils
@pytest.fixture @pytest.fixture
...@@ -259,7 +259,7 @@ def test_spawn_cone_clones(sim): ...@@ -259,7 +259,7 @@ def test_spawn_cone_clones(sim):
assert prim.IsValid() assert prim.IsValid()
assert prim_utils.get_prim_path(prim) == "/World/env_0/Cone" assert prim_utils.get_prim_path(prim) == "/World/env_0/Cone"
# find matching prims # find matching prims
prims = prim_utils.find_matching_prim_paths("/World/env_*/Cone") prims = sim_utils.find_matching_prim_paths("/World/env_.*/Cone")
assert len(prims) == num_clones assert len(prims) == num_clones
...@@ -285,8 +285,8 @@ def test_spawn_cone_clone_with_all_props_global_material(sim): ...@@ -285,8 +285,8 @@ def test_spawn_cone_clone_with_all_props_global_material(sim):
assert prim.IsValid() assert prim.IsValid()
assert prim_utils.get_prim_path(prim) == "/World/env_0/Cone" assert prim_utils.get_prim_path(prim) == "/World/env_0/Cone"
# find matching prims # find matching prims
prims = prim_utils.find_matching_prim_paths("/World/env_*/Cone") prims = sim_utils.find_matching_prim_paths("/World/env_.*/Cone")
assert len(prims) == num_clones assert len(prims) == num_clones
# find matching material prims # find matching material prims
prims = prim_utils.find_matching_prim_paths("/Looks/visualMaterial.*") prims = sim_utils.find_matching_prim_paths("/Looks/visualMaterial.*")
assert len(prims) == 1 assert len(prims) == 1
...@@ -12,12 +12,13 @@ simulation_app = AppLauncher(headless=True).app ...@@ -12,12 +12,13 @@ simulation_app = AppLauncher(headless=True).app
"""Rest everything follows.""" """Rest everything follows."""
import isaacsim.core.utils.prims as prim_utils
import pytest import pytest
from isaacsim.core.api.simulation_context import SimulationContext from isaacsim.core.api.simulation_context import SimulationContext
import isaaclab.sim as sim_utils import isaaclab.sim as sim_utils
from isaaclab.sim.utils import stage as stage_utils import isaaclab.sim.utils.prims as prim_utils
import isaaclab.sim.utils.stage as stage_utils
from isaaclab.utils.assets import ISAACLAB_NUCLEUS_DIR from isaaclab.utils.assets import ISAACLAB_NUCLEUS_DIR
...@@ -69,7 +70,7 @@ def test_spawn_multiple_shapes_with_global_settings(sim): ...@@ -69,7 +70,7 @@ def test_spawn_multiple_shapes_with_global_settings(sim):
assert prim.IsValid() assert prim.IsValid()
assert prim_utils.get_prim_path(prim) == "/World/env_0/Cone" assert prim_utils.get_prim_path(prim) == "/World/env_0/Cone"
prim_paths = prim_utils.find_matching_prim_paths("/World/env_*/Cone") prim_paths = sim_utils.find_matching_prim_paths("/World/env_.*/Cone")
assert len(prim_paths) == num_clones assert len(prim_paths) == num_clones
for prim_path in prim_paths: for prim_path in prim_paths:
...@@ -115,7 +116,7 @@ def test_spawn_multiple_shapes_with_individual_settings(sim): ...@@ -115,7 +116,7 @@ def test_spawn_multiple_shapes_with_individual_settings(sim):
assert prim.IsValid() assert prim.IsValid()
assert prim_utils.get_prim_path(prim) == "/World/env_0/Cone" assert prim_utils.get_prim_path(prim) == "/World/env_0/Cone"
prim_paths = prim_utils.find_matching_prim_paths("/World/env_*/Cone") prim_paths = sim_utils.find_matching_prim_paths("/World/env_.*/Cone")
assert len(prim_paths) == num_clones assert len(prim_paths) == num_clones
for prim_path in prim_paths: for prim_path in prim_paths:
...@@ -158,5 +159,5 @@ def test_spawn_multiple_files_with_global_settings(sim): ...@@ -158,5 +159,5 @@ def test_spawn_multiple_files_with_global_settings(sim):
assert prim.IsValid() assert prim.IsValid()
assert prim_utils.get_prim_path(prim) == "/World/env_0/Robot" assert prim_utils.get_prim_path(prim) == "/World/env_0/Robot"
prim_paths = prim_utils.find_matching_prim_paths("/World/env_*/Robot") prim_paths = sim_utils.find_matching_prim_paths("/World/env_.*/Robot")
assert len(prim_paths) == num_clones assert len(prim_paths) == num_clones
...@@ -12,7 +12,7 @@ simulation_app = AppLauncher(headless=True, enable_cameras=True).app ...@@ -12,7 +12,7 @@ simulation_app = AppLauncher(headless=True, enable_cameras=True).app
"""Rest everything follows.""" """Rest everything follows."""
import isaacsim.core.utils.prims as prim_utils
import omni import omni
import omni.physx import omni.physx
import omni.usd import omni.usd
...@@ -22,8 +22,9 @@ from isaacsim.core.cloner import GridCloner ...@@ -22,8 +22,9 @@ from isaacsim.core.cloner import GridCloner
from isaacsim.core.version import get_version from isaacsim.core.version import get_version
import isaaclab.sim as sim_utils import isaaclab.sim as sim_utils
import isaaclab.sim.utils.prims as prim_utils
import isaaclab.sim.utils.stage as stage_utils
from isaaclab.sim.simulation_context import SimulationCfg, SimulationContext from isaaclab.sim.simulation_context import SimulationCfg, SimulationContext
from isaaclab.sim.utils import stage as stage_utils
from isaaclab.utils.assets import ISAACLAB_NUCLEUS_DIR from isaaclab.utils.assets import ISAACLAB_NUCLEUS_DIR
...@@ -91,13 +92,13 @@ def test_stage_in_memory_with_shapes(sim): ...@@ -91,13 +92,13 @@ def test_stage_in_memory_with_shapes(sim):
assert stage_utils.is_current_stage_in_memory() assert stage_utils.is_current_stage_in_memory()
# verify prims exist in stage in memory # verify prims exist in stage in memory
prims = prim_utils.find_matching_prim_paths(prim_path_regex) prims = sim_utils.find_matching_prim_paths(prim_path_regex)
assert len(prims) == num_clones assert len(prims) == num_clones
# verify prims do not exist in context stage # verify prims do not exist in context stage
context_stage = omni.usd.get_context().get_stage() context_stage = omni.usd.get_context().get_stage()
with stage_utils.use_stage(context_stage): with stage_utils.use_stage(context_stage):
prims = prim_utils.find_matching_prim_paths(prim_path_regex) prims = sim_utils.find_matching_prim_paths(prim_path_regex)
assert len(prims) != num_clones assert len(prims) != num_clones
# attach stage to context # attach stage to context
...@@ -107,7 +108,7 @@ def test_stage_in_memory_with_shapes(sim): ...@@ -107,7 +108,7 @@ def test_stage_in_memory_with_shapes(sim):
assert not stage_utils.is_current_stage_in_memory() assert not stage_utils.is_current_stage_in_memory()
# verify prims now exist in context stage # verify prims now exist in context stage
prims = prim_utils.find_matching_prim_paths(prim_path_regex) prims = sim_utils.find_matching_prim_paths(prim_path_regex)
assert len(prims) == num_clones assert len(prims) == num_clones
...@@ -157,13 +158,13 @@ def test_stage_in_memory_with_usds(sim): ...@@ -157,13 +158,13 @@ def test_stage_in_memory_with_usds(sim):
assert stage_utils.is_current_stage_in_memory() assert stage_utils.is_current_stage_in_memory()
# verify prims exist in stage in memory # verify prims exist in stage in memory
prims = prim_utils.find_matching_prim_paths(prim_path_regex) prims = sim_utils.find_matching_prim_paths(prim_path_regex)
assert len(prims) == num_clones assert len(prims) == num_clones
# verify prims do not exist in context stage # verify prims do not exist in context stage
context_stage = omni.usd.get_context().get_stage() context_stage = omni.usd.get_context().get_stage()
with stage_utils.use_stage(context_stage): with stage_utils.use_stage(context_stage):
prims = prim_utils.find_matching_prim_paths(prim_path_regex) prims = sim_utils.find_matching_prim_paths(prim_path_regex)
assert len(prims) != num_clones assert len(prims) != num_clones
# attach stage to context # attach stage to context
...@@ -173,7 +174,7 @@ def test_stage_in_memory_with_usds(sim): ...@@ -173,7 +174,7 @@ def test_stage_in_memory_with_usds(sim):
assert not stage_utils.is_current_stage_in_memory() assert not stage_utils.is_current_stage_in_memory()
# verify prims now exist in context stage # verify prims now exist in context stage
prims = prim_utils.find_matching_prim_paths(prim_path_regex) prims = sim_utils.find_matching_prim_paths(prim_path_regex)
assert len(prims) == num_clones assert len(prims) == num_clones
...@@ -219,7 +220,7 @@ def test_stage_in_memory_with_clone_in_fabric(sim): ...@@ -219,7 +220,7 @@ def test_stage_in_memory_with_clone_in_fabric(sim):
# verify prims do not exist in context stage # verify prims do not exist in context stage
context_stage = omni.usd.get_context().get_stage() context_stage = omni.usd.get_context().get_stage()
with stage_utils.use_stage(context_stage): with stage_utils.use_stage(context_stage):
prims = prim_utils.find_matching_prim_paths(prim_path_regex) prims = sim_utils.find_matching_prim_paths(prim_path_regex)
assert len(prims) != num_clones assert len(prims) != num_clones
# attach stage to context # attach stage to context
......
...@@ -15,14 +15,14 @@ simulation_app = AppLauncher(headless=True).app ...@@ -15,14 +15,14 @@ simulation_app = AppLauncher(headless=True).app
import numpy as np import numpy as np
import os import os
import isaacsim.core.utils.prims as prim_utils
import pytest import pytest
from isaacsim.core.api.simulation_context import SimulationContext from isaacsim.core.api.simulation_context import SimulationContext
from isaacsim.core.prims import Articulation from isaacsim.core.prims import Articulation
from isaacsim.core.utils.extensions import enable_extension, get_extension_path_from_name from isaacsim.core.utils.extensions import enable_extension, get_extension_path_from_name
import isaaclab.sim.utils.prims as prim_utils
import isaaclab.sim.utils.stage as stage_utils
from isaaclab.sim.converters import UrdfConverter, UrdfConverterCfg from isaaclab.sim.converters import UrdfConverter, UrdfConverterCfg
from isaaclab.sim.utils import stage as stage_utils
# Create a fixture for setup and teardown # Create a fixture for setup and teardown
......
...@@ -15,13 +15,13 @@ simulation_app = AppLauncher(headless=True).app ...@@ -15,13 +15,13 @@ simulation_app = AppLauncher(headless=True).app
import numpy as np import numpy as np
import torch import torch
import isaacsim.core.utils.prims as prim_utils
import pytest import pytest
from pxr import Sdf, Usd, UsdGeom, UsdPhysics from pxr import Sdf, Usd, UsdGeom, UsdPhysics
import isaaclab.sim as sim_utils import isaaclab.sim as sim_utils
import isaaclab.sim.utils.prims as prim_utils
import isaaclab.sim.utils.stage as stage_utils
import isaaclab.utils.math as math_utils import isaaclab.utils.math as math_utils
from isaaclab.sim.utils import stage as stage_utils
from isaaclab.utils.assets import ISAAC_NUCLEUS_DIR, ISAACLAB_NUCLEUS_DIR from isaaclab.utils.assets import ISAAC_NUCLEUS_DIR, ISAACLAB_NUCLEUS_DIR
...@@ -104,36 +104,6 @@ def test_get_first_matching_child_prim(): ...@@ -104,36 +104,6 @@ def test_get_first_matching_child_prim():
assert isaaclab_result.GetPrimPath() == "/World/env_1/Franka/panda_link0/visuals/panda_link0" assert isaaclab_result.GetPrimPath() == "/World/env_1/Franka/panda_link0/visuals/panda_link0"
def test_find_matching_prim_paths():
"""Test find_matching_prim_paths() function."""
# create scene
for index in range(2048):
random_pos = np.random.uniform(-100, 100, size=3)
prim_utils.create_prim(f"/World/Floor_{index}", "Cube", position=random_pos, attributes={"size": 2.0})
prim_utils.create_prim(f"/World/Floor_{index}/Sphere", "Sphere", attributes={"radius": 10})
prim_utils.create_prim(f"/World/Floor_{index}/Sphere/childSphere", "Sphere", attributes={"radius": 1})
prim_utils.create_prim(f"/World/Floor_{index}/Sphere/childSphere2", "Sphere", attributes={"radius": 1})
# test leaf paths
isaac_sim_result = prim_utils.find_matching_prim_paths("/World/Floor_.*/Sphere")
isaaclab_result = sim_utils.find_matching_prim_paths("/World/Floor_.*/Sphere")
assert isaac_sim_result == isaaclab_result
# test non-leaf paths
isaac_sim_result = prim_utils.find_matching_prim_paths("/World/Floor_.*")
isaaclab_result = sim_utils.find_matching_prim_paths("/World/Floor_.*")
assert isaac_sim_result == isaaclab_result
# test child-leaf paths
isaac_sim_result = prim_utils.find_matching_prim_paths("/World/Floor_.*/Sphere/childSphere.*")
isaaclab_result = sim_utils.find_matching_prim_paths("/World/Floor_.*/Sphere/childSphere.*")
assert isaac_sim_result == isaaclab_result
# test valid path
with pytest.raises(ValueError):
sim_utils.get_all_matching_child_prims("World/Floor_.*")
def test_find_global_fixed_joint_prim(): def test_find_global_fixed_joint_prim():
"""Test find_global_fixed_joint_prim() function.""" """Test find_global_fixed_joint_prim() function."""
# create scene # create scene
......
...@@ -64,7 +64,6 @@ simulation_app = app_launcher.app ...@@ -64,7 +64,6 @@ simulation_app = app_launcher.app
import numpy as np import numpy as np
import isaacsim.core.utils.prims as prim_utils
import omni.kit import omni.kit
import omni.kit.commands import omni.kit.commands
from isaacsim.core.api.materials import PhysicsMaterial from isaacsim.core.api.materials import PhysicsMaterial
...@@ -77,6 +76,7 @@ from isaacsim.core.utils.extensions import enable_extension ...@@ -77,6 +76,7 @@ from isaacsim.core.utils.extensions import enable_extension
from isaacsim.core.utils.viewports import set_camera_view from isaacsim.core.utils.viewports import set_camera_view
import isaaclab.sim as sim_utils import isaaclab.sim as sim_utils
import isaaclab.sim.utils.prims as prim_utils
import isaaclab.terrains as terrain_gen import isaaclab.terrains as terrain_gen
from isaaclab.terrains.config.rough import ROUGH_TERRAINS_CFG from isaaclab.terrains.config.rough import ROUGH_TERRAINS_CFG
from isaaclab.terrains.terrain_importer import TerrainImporter from isaaclab.terrains.terrain_importer import TerrainImporter
......
...@@ -17,7 +17,6 @@ import torch ...@@ -17,7 +17,6 @@ import torch
import trimesh import trimesh
from typing import Literal from typing import Literal
import isaacsim.core.utils.prims as prim_utils
import omni.kit import omni.kit
import omni.kit.commands import omni.kit.commands
import pytest import pytest
...@@ -28,6 +27,7 @@ from isaacsim.core.prims import RigidPrim, SingleGeometryPrim, SingleRigidPrim ...@@ -28,6 +27,7 @@ from isaacsim.core.prims import RigidPrim, SingleGeometryPrim, SingleRigidPrim
from isaacsim.core.utils.extensions import enable_extension from isaacsim.core.utils.extensions import enable_extension
from pxr import UsdGeom from pxr import UsdGeom
import isaaclab.sim.utils.prims as prim_utils
import isaaclab.terrains as terrain_gen import isaaclab.terrains as terrain_gen
from isaaclab.sim import PreviewSurfaceCfg, SimulationContext, build_simulation_context, get_first_matching_child_prim from isaaclab.sim import PreviewSurfaceCfg, SimulationContext, build_simulation_context, get_first_matching_child_prim
from isaaclab.terrains import TerrainImporter, TerrainImporterCfg from isaaclab.terrains import TerrainImporter, TerrainImporterCfg
......
...@@ -72,7 +72,7 @@ def get_camera_position(): ...@@ -72,7 +72,7 @@ def get_camera_position():
try: try:
from pxr import UsdGeom from pxr import UsdGeom
from isaaclab.sim.utils import stage as stage_utils import isaaclab.sim.utils.stage as stage_utils
stage = stage_utils.get_current_stage() stage = stage_utils.get_current_stage()
if stage is not None: if stage is not None:
......
...@@ -10,9 +10,9 @@ import torch ...@@ -10,9 +10,9 @@ import torch
import trimesh import trimesh
from trimesh.sample import sample_surface from trimesh.sample import sample_surface
import isaacsim.core.utils.prims as prim_utils
from pxr import UsdGeom from pxr import UsdGeom
import isaaclab.sim.utils.prims as prim_utils
from isaaclab.sim.utils import get_all_matching_child_prims from isaaclab.sim.utils import get_all_matching_child_prims
# ---- module-scope caches ---- # ---- module-scope caches ----
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment