Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions CONTRIBUTORS.md
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,7 @@ Guidelines for modifications:
* Jan Kerner
* Jean Tampon
* Jeonghwan Kim
* Ji Yuan (Steven) Feng
* Jia Lin Yuan
* Jiakai Zhang
* Jinghuan Shang
Expand Down
4 changes: 2 additions & 2 deletions scripts/demos/markers.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@
import isaaclab.sim as sim_utils
from isaaclab.markers import VisualizationMarkers, VisualizationMarkersCfg
from isaaclab.sim import SimulationContext
from isaaclab.utils.assets import ISAAC_NUCLEUS_DIR, ISAACLAB_NUCLEUS_DIR
from isaaclab.utils.assets import ISAAC_NUCLEUS_DIR
from isaaclab.utils.math import quat_from_angle_axis


Expand Down Expand Up @@ -82,7 +82,7 @@ def define_markers() -> VisualizationMarkers:
visual_material=sim_utils.PreviewSurfaceCfg(diffuse_color=(1.0, 0.25, 0.0)),
),
"robot_mesh": sim_utils.UsdFileCfg(
usd_path=f"{ISAACLAB_NUCLEUS_DIR}/Robots/ANYbotics/ANYmal-C/anymal_c.usd",
usd_path=f"{ISAAC_NUCLEUS_DIR}/Robots/ANYbotics/anymal_c/anymal_c.usd",
scale=(2.0, 2.0, 2.0),
visual_material=sim_utils.GlassMdlCfg(glass_color=(0.0, 0.1, 0.0)),
),
Expand Down
6 changes: 3 additions & 3 deletions scripts/demos/multi_asset.py
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@
from isaaclab.sim import SimulationContext
from isaaclab.sim.utils.stage import get_current_stage
from isaaclab.utils import Timer, configclass
from isaaclab.utils.assets import ISAACLAB_NUCLEUS_DIR
from isaaclab.utils.assets import ISAAC_NUCLEUS_DIR

##
# Pre-defined Configuration
Expand Down Expand Up @@ -183,8 +183,8 @@ class MultiObjectSceneCfg(InteractiveSceneCfg):
prim_path="/World/envs/env_.*/Robot",
spawn=sim_utils.MultiUsdFileCfg(
usd_path=[
f"{ISAACLAB_NUCLEUS_DIR}/Robots/ANYbotics/ANYmal-C/anymal_c.usd",
f"{ISAACLAB_NUCLEUS_DIR}/Robots/ANYbotics/ANYmal-D/anymal_d.usd",
f"{ISAAC_NUCLEUS_DIR}/Robots/ANYbotics/anymal_c/anymal_c.usd",
f"{ISAAC_NUCLEUS_DIR}/Robots/ANYbotics/anymal_d/anymal_d.usd",
],
random_choice=True,
rigid_props=sim_utils.RigidBodyPropertiesCfg(
Expand Down
8 changes: 4 additions & 4 deletions source/isaaclab/isaaclab/sim/spawners/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,10 @@
.. code-block:: python

import isaaclab.sim as sim_utils
from isaaclab.utils.assets import ISAACLAB_NUCLEUS_DIR
from isaaclab.utils.assets import ISAAC_NUCLEUS_DIR

# spawn from USD file
cfg = sim_utils.UsdFileCfg(usd_path=f"{ISAACLAB_NUCLEUS_DIR}/Robots/FrankaEmika/panda_instanceable.usd")
cfg = sim_utils.UsdFileCfg(usd_path=f"{ISAAC_NUCLEUS_DIR}/Robots/FrankaRobotics/FrankaEmika/panda_instanceable.usd")
prim_path = "/World/myAsset"

# spawn using the function from the module
Expand All @@ -30,10 +30,10 @@
.. code-block:: python

import isaaclab.sim as sim_utils
from isaaclab.utils.assets import ISAACLAB_NUCLEUS_DIR
from isaaclab.utils.assets import ISAAC_NUCLEUS_DIR

# spawn from USD file
cfg = sim_utils.UsdFileCfg(usd_path=f"{ISAACLAB_NUCLEUS_DIR}/Robots/FrankaEmika/panda_instanceable.usd")
cfg = sim_utils.UsdFileCfg(usd_path=f"{ISAAC_NUCLEUS_DIR}/Robots/FrankaRobotics/FrankaEmika/panda_instanceable.usd")
prim_path = "/World/myAsset"

# use the `func` reference in the config class
Expand Down
1 change: 1 addition & 0 deletions source/isaaclab/isaaclab/utils/assets.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@
logger = logging.getLogger(__name__)

NUCLEUS_ASSET_ROOT_DIR = carb.settings.get_settings().get("/persistent/isaac/asset_root/cloud")

"""Path to the root directory on the Nucleus Server."""

NVIDIA_NUCLEUS_DIR = f"{NUCLEUS_ASSET_ROOT_DIR}/NVIDIA"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -61,10 +61,6 @@
ISAAC_NUCLEUS_DIR = f"{nucleus_utils.get_assets_root_path()}/Isaac"
"""Path to the `Isaac` directory on the NVIDIA Nucleus Server."""

ISAACLAB_NUCLEUS_DIR = f"{ISAAC_NUCLEUS_DIR}/IsaacLab"
"""Path to the `Isaac/IsaacLab` directory on the NVIDIA Nucleus Server."""


"""
Main
"""
Expand All @@ -90,7 +86,7 @@ def main():
prim_utils.create_prim("/World/Light/WhiteSphere", "SphereLight", translation=(-4.5, 3.5, 10.0))
# -- Robot
# resolve asset
usd_path = f"{ISAACLAB_NUCLEUS_DIR}/Robots/ANYbotics/ANYmal-C/anymal_c.usd"
usd_path = f"{ISAAC_NUCLEUS_DIR}/Robots/ANYbotics/anymal_c/anymal_c.usd"
root_prim_path = "/World/Robot/base"
# add asset
print("Loading robot from: ", usd_path)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -68,9 +68,6 @@
ISAAC_NUCLEUS_DIR = f"{nucleus_utils.get_assets_root_path()}/Isaac"
"""Path to the `Isaac` directory on the NVIDIA Nucleus Server."""

ISAACLAB_NUCLEUS_DIR = f"{ISAAC_NUCLEUS_DIR}/IsaacLab"
"""Path to the `Isaac/IsaacLab` directory on the NVIDIA Nucleus Server."""


"""
Main
Expand Down Expand Up @@ -104,10 +101,7 @@ def main():
prim_utils.create_prim("/World/Light/WhiteSphere", "SphereLight", translation=(-4.5, 3.5, 10.0))
# -- Robot
# resolve asset
if args_cli.asset == "isaaclab":
usd_path = f"{ISAACLAB_NUCLEUS_DIR}/Robots/ANYbotics/ANYmal-C/anymal_c.usd"
root_prim_path = "/World/envs/env_.*/Robot/base"
elif args_cli.asset == "oige":
if args_cli.asset == "isaaclab" or args_cli.asset == "oige":
usd_path = f"{ISAAC_NUCLEUS_DIR}/Robots/ANYbotics/anymal_c/anymal_c.usd"
root_prim_path = "/World/envs/env_.*/Robot"
elif os.path.exists(args_cli.asset):
Expand Down
5 changes: 1 addition & 4 deletions source/isaaclab/test/deps/isaacsim/check_ref_count.py
Original file line number Diff line number Diff line change
Expand Up @@ -61,9 +61,6 @@
ISAAC_NUCLEUS_DIR = f"{nucleus_utils.get_assets_root_path()}/Isaac"
"""Path to the `Isaac` directory on the NVIDIA Nucleus Server."""

ISAACLAB_NUCLEUS_DIR = f"{ISAAC_NUCLEUS_DIR}/IsaacLab"
"""Path to the `Isaac/IsaacLab` directory on the NVIDIA Nucleus Server."""


"""
Classes
Expand All @@ -76,7 +73,7 @@ class AnymalArticulation:
def __init__(self):
"""Initialize the Anymal articulation class."""
# resolve asset
usd_path = f"{ISAACLAB_NUCLEUS_DIR}/Robots/ANYbotics/ANYmal-C/anymal_c.usd"
usd_path = f"{ISAAC_NUCLEUS_DIR}/Robots/ANYbotics/anymal_c/anymal_c.usd"
# add asset
print("Loading robot from: ", usd_path)
prim_utils.create_prim("/World/Robot", usd_path=usd_path, translation=(0.0, 0.0, 0.6))
Expand Down
8 changes: 4 additions & 4 deletions source/isaaclab/test/sim/test_simulation_stage_in_memory.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@

import isaaclab.sim as sim_utils
from isaaclab.sim.simulation_context import SimulationCfg, SimulationContext
from isaaclab.utils.assets import ISAACLAB_NUCLEUS_DIR
from isaaclab.utils.assets import ISAAC_NUCLEUS_DIR, ISAACLAB_NUCLEUS_DIR
from isaaclab.utils.version import get_isaac_sim_version


Expand Down Expand Up @@ -146,8 +146,8 @@ def test_stage_in_memory_with_usds(sim):
# define parameters
num_clones = 10
usd_paths = [
f"{ISAACLAB_NUCLEUS_DIR}/Robots/ANYbotics/ANYmal-C/anymal_c.usd",
f"{ISAACLAB_NUCLEUS_DIR}/Robots/ANYbotics/ANYmal-D/anymal_d.usd",
f"{ISAAC_NUCLEUS_DIR}/Robots/ANYbotics/anymal_c/anymal_c.usd",
f"{ISAAC_NUCLEUS_DIR}/Robots/ANYbotics/anymal_d/anymal_d.usd",
]

# grab stage in memory and set as current stage via the with statement
Expand Down Expand Up @@ -209,7 +209,7 @@ def test_stage_in_memory_with_clone_in_fabric(sim):
pytest.skip("Stage in memory is not supported in this version of Isaac Sim")

# define parameters
usd_path = f"{ISAACLAB_NUCLEUS_DIR}/Robots/ANYbotics/ANYmal-C/anymal_c.usd"
usd_path = f"{ISAAC_NUCLEUS_DIR}/Robots/ANYbotics/anymal_c/anymal_c.usd"
num_clones = 100

# grab stage in memory and set as current stage via the with statement
Expand Down
8 changes: 5 additions & 3 deletions source/isaaclab/test/sim/test_spawn_from_files.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
from isaacsim.core.api.simulation_context import SimulationContext

import isaaclab.sim as sim_utils
from isaaclab.utils.assets import ISAACLAB_NUCLEUS_DIR
from isaaclab.utils.assets import ISAAC_NUCLEUS_DIR, ISAACLAB_NUCLEUS_DIR
from isaaclab.utils.version import get_isaac_sim_version


Expand Down Expand Up @@ -48,7 +48,7 @@ def sim():
def test_spawn_usd(sim):
"""Test loading prim from Usd file."""
# Spawn cone
cfg = sim_utils.UsdFileCfg(usd_path=f"{ISAACLAB_NUCLEUS_DIR}/Robots/FrankaEmika/panda_instanceable.usd")
cfg = sim_utils.UsdFileCfg(usd_path=f"{ISAAC_NUCLEUS_DIR}/Robots/FrankaRobotics/FrankaEmika/panda_instanceable.usd")
prim = cfg.func("/World/Franka", cfg)
# Check validity
assert prim.IsValid()
Expand All @@ -60,7 +60,9 @@ def test_spawn_usd(sim):
def test_spawn_usd_fails(sim):
"""Test loading prim from Usd file fails when asset usd path is invalid."""
# Spawn cone
cfg = sim_utils.UsdFileCfg(usd_path=f"{ISAACLAB_NUCLEUS_DIR}/Robots/FrankaEmika/panda2_instanceable.usd")
cfg = sim_utils.UsdFileCfg(
usd_path=f"{ISAAC_NUCLEUS_DIR}/Robots/FrankaRobotics/FrankaEmika/panda2_instanceable.usd"
)

with pytest.raises(FileNotFoundError):
cfg.func("/World/Franka", cfg)
Expand Down
6 changes: 3 additions & 3 deletions source/isaaclab/test/sim/test_spawn_wrappers.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
from isaacsim.core.api.simulation_context import SimulationContext

import isaaclab.sim as sim_utils
from isaaclab.utils.assets import ISAACLAB_NUCLEUS_DIR
from isaaclab.utils.assets import ISAAC_NUCLEUS_DIR


@pytest.fixture
Expand Down Expand Up @@ -136,8 +136,8 @@ def test_spawn_multiple_files_with_global_settings(sim):

cfg = sim_utils.MultiUsdFileCfg(
usd_path=[
f"{ISAACLAB_NUCLEUS_DIR}/Robots/ANYbotics/ANYmal-C/anymal_c.usd",
f"{ISAACLAB_NUCLEUS_DIR}/Robots/ANYbotics/ANYmal-D/anymal_d.usd",
f"{ISAAC_NUCLEUS_DIR}/Robots/ANYbotics/anymal_c/anymal_c.usd",
f"{ISAAC_NUCLEUS_DIR}/Robots/ANYbotics/anymal_d/anymal_d.usd",
],
random_choice=True,
rigid_props=sim_utils.RigidBodyPropertiesCfg(
Expand Down
10 changes: 5 additions & 5 deletions source/isaaclab/test/sim/test_utils_prims.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@

import isaaclab.sim as sim_utils
from isaaclab.sim.utils.prims import _to_tuple # type: ignore[reportPrivateUsage]
from isaaclab.utils.assets import ISAAC_NUCLEUS_DIR, ISAACLAB_NUCLEUS_DIR
from isaaclab.utils.assets import ISAAC_NUCLEUS_DIR


@pytest.fixture(autouse=True)
Expand Down Expand Up @@ -76,7 +76,7 @@ def test_create_prim():
assert prim.GetAttribute("size").Get() == 100

# check adding USD reference
franka_usd = f"{ISAACLAB_NUCLEUS_DIR}/Robots/FrankaEmika/panda_instanceable.usd"
franka_usd = f"{ISAAC_NUCLEUS_DIR}/Robots/FrankaEmika/panda_instanceable.usd"
prim = sim_utils.create_prim("/World/Test/USDReference", usd_path=franka_usd, stage=stage)
# check USD reference set
assert prim.IsValid()
Expand Down Expand Up @@ -319,7 +319,7 @@ def test_delete_prim():
# check for usd reference
prim = sim_utils.create_prim(
"/World/Test/USDReference",
usd_path=f"{ISAACLAB_NUCLEUS_DIR}/Robots/FrankaEmika/panda_instanceable.usd",
usd_path=f"{ISAAC_NUCLEUS_DIR}/Robots/FrankaEmika/panda_instanceable.usd",
stage=stage,
)
# delete prim
Expand All @@ -345,7 +345,7 @@ def test_move_prim():
prim = sim_utils.create_prim(
"/World/Test/Xform",
"Xform",
usd_path=f"{ISAACLAB_NUCLEUS_DIR}/Robots/FrankaEmika/panda_instanceable.usd",
usd_path=f"{ISAAC_NUCLEUS_DIR}/Robots/FrankaEmika/panda_instanceable.usd",
translation=(1.0, 2.0, 3.0),
orientation=(0.0, 0.0, 0.0, 1.0),
stage=stage,
Expand Down Expand Up @@ -392,7 +392,7 @@ def test_get_usd_references():
assert len(refs) == 0

# Create a prim with a USD reference
franka_usd = f"{ISAACLAB_NUCLEUS_DIR}/Robots/FrankaEmika/panda_instanceable.usd"
franka_usd = f"{ISAAC_NUCLEUS_DIR}/Robots/FrankaEmika/panda_instanceable.usd"
sim_utils.create_prim("/World/WithReference", usd_path=franka_usd, stage=stage)
# Check that it has the expected reference
refs = sim_utils.get_usd_references("/World/WithReference", stage=stage)
Expand Down
24 changes: 17 additions & 7 deletions source/isaaclab/test/sim/test_utils_queries.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
from pxr import UsdPhysics

import isaaclab.sim as sim_utils
from isaaclab.utils.assets import ISAAC_NUCLEUS_DIR, ISAACLAB_NUCLEUS_DIR
from isaaclab.utils.assets import ISAAC_NUCLEUS_DIR


@pytest.fixture(autouse=True)
Expand Down Expand Up @@ -98,7 +98,9 @@ def test_get_all_matching_child_prims():
# note: isaac sim function does not support instanced prims so we add it here
# after the above test for the above test to still pass.
sim_utils.create_prim(
"/World/Franka", "Xform", usd_path=f"{ISAACLAB_NUCLEUS_DIR}/Robots/FrankaEmika/panda_instanceable.usd"
"/World/Franka",
"Xform",
usd_path=f"{ISAAC_NUCLEUS_DIR}/Robots/FrankaRobotics/FrankaEmika/panda_instanceable.usd",
)

# test with predicate
Expand All @@ -123,13 +125,19 @@ def test_get_first_matching_child_prim():
# create scene
sim_utils.create_prim("/World/Floor")
sim_utils.create_prim(
"/World/env_1/Franka", "Xform", usd_path=f"{ISAACLAB_NUCLEUS_DIR}/Robots/FrankaEmika/panda_instanceable.usd"
"/World/env_1/Franka",
"Xform",
usd_path=f"{ISAAC_NUCLEUS_DIR}/Robots/FrankaRobotics/FrankaEmika/panda_instanceable.usd",
)
sim_utils.create_prim(
"/World/env_2/Franka", "Xform", usd_path=f"{ISAACLAB_NUCLEUS_DIR}/Robots/FrankaEmika/panda_instanceable.usd"
"/World/env_2/Franka",
"Xform",
usd_path=f"{ISAAC_NUCLEUS_DIR}/Robots/FrankaRobotics/FrankaEmika/panda_instanceable.usd",
)
sim_utils.create_prim(
"/World/env_0/Franka", "Xform", usd_path=f"{ISAACLAB_NUCLEUS_DIR}/Robots/FrankaEmika/panda_instanceable.usd"
"/World/env_0/Franka",
"Xform",
usd_path=f"{ISAAC_NUCLEUS_DIR}/Robots/FrankaRobotics/FrankaEmika/panda_instanceable.usd",
)

# test
Expand All @@ -151,8 +159,10 @@ def test_find_global_fixed_joint_prim():
"""Test find_global_fixed_joint_prim() function."""
# create scene
sim_utils.create_prim("/World")
sim_utils.create_prim("/World/ANYmal", usd_path=f"{ISAACLAB_NUCLEUS_DIR}/Robots/ANYbotics/ANYmal-C/anymal_c.usd")
sim_utils.create_prim("/World/Franka", usd_path=f"{ISAACLAB_NUCLEUS_DIR}/Robots/FrankaEmika/panda_instanceable.usd")
sim_utils.create_prim("/World/ANYmal", usd_path=f"{ISAAC_NUCLEUS_DIR}/Robots/ANYbotics/anymal_c/anymal_c.usd")
sim_utils.create_prim(
"/World/Franka", usd_path=f"{ISAAC_NUCLEUS_DIR}/Robots/FrankaRobotics/FrankaEmika/panda_instanceable.usd"
)
if "4.5" in ISAAC_NUCLEUS_DIR:
franka_usd = f"{ISAAC_NUCLEUS_DIR}/Robots/Franka/franka.usd"
else:
Expand Down
8 changes: 4 additions & 4 deletions source/isaaclab/test/utils/test_assets.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,27 +26,27 @@ def test_nucleus_connection():
def test_check_file_path_nucleus():
"""Test checking a file path on the Nucleus server."""
# robot file path
usd_path = f"{assets_utils.ISAACLAB_NUCLEUS_DIR}/Robots/FrankaEmika/panda_instanceable.usd"
usd_path = f"{assets_utils.ISAAC_NUCLEUS_DIR}/Robots/FrankaRobotics/FrankaEmika/panda_instanceable.usd"
# check file path
assert assets_utils.check_file_path(usd_path) == 2


def test_check_file_path_invalid():
"""Test checking an invalid file path."""
# robot file path
usd_path = f"{assets_utils.ISAACLAB_NUCLEUS_DIR}/Robots/FrankaEmika/panda_xyz.usd"
usd_path = f"{assets_utils.ISAAC_NUCLEUS_DIR}/Robots/FrankaRobotics/FrankaEmika/panda_xyz.usd"
# check file path
assert assets_utils.check_file_path(usd_path) == 0


def test_check_usd_path_with_timeout():
"""Test checking a USD path with timeout."""
# robot file path
usd_path = f"{assets_utils.ISAACLAB_NUCLEUS_DIR}/Robots/FrankaEmika/panda_instanceable.usd"
usd_path = f"{assets_utils.ISAAC_NUCLEUS_DIR}/Robots/FrankaRobotics/FrankaEmika/panda_instanceable.usd"
# check file path
assert assets_utils.check_usd_path_with_timeout(usd_path) is True

# invalid file path
usd_path = f"{assets_utils.ISAACLAB_NUCLEUS_DIR}/Robots/FrankaEmika/panda_xyz.usd"
usd_path = f"{assets_utils.ISAAC_NUCLEUS_DIR}/Robots/FrankaRobotics/FrankaEmika/panda_xyz.usd"
# check file path
assert assets_utils.check_usd_path_with_timeout(usd_path) is False
4 changes: 2 additions & 2 deletions source/isaaclab_assets/isaaclab_assets/robots/agibot.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,15 +15,15 @@
import isaaclab.sim as sim_utils
from isaaclab.actuators import ImplicitActuatorCfg
from isaaclab.assets.articulation import ArticulationCfg
from isaaclab.utils.assets import ISAACLAB_NUCLEUS_DIR
from isaaclab.utils.assets import ISAAC_NUCLEUS_DIR

##
# Configuration
##

AGIBOT_A2D_CFG = ArticulationCfg(
spawn=sim_utils.UsdFileCfg(
usd_path=f"{ISAACLAB_NUCLEUS_DIR}/Robots/Agibot/A2D/A2D_physics.usd",
usd_path=f"{ISAAC_NUCLEUS_DIR}/Robots/Agibot/A2D/A2D.usd",
activate_contact_sensors=True,
rigid_props=sim_utils.RigidBodyPropertiesCfg(
disable_gravity=False,
Expand Down
Loading