diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md index 9fbfe7f1bf3..13a4cbbf72b 100644 --- a/CONTRIBUTORS.md +++ b/CONTRIBUTORS.md @@ -85,6 +85,7 @@ Guidelines for modifications: * Jan Kerner * Jean Tampon * Jeonghwan Kim +* Ji Yuan (Steven) Feng * Jia Lin Yuan * Jiakai Zhang * Jinghuan Shang diff --git a/scripts/demos/markers.py b/scripts/demos/markers.py index 6152dcf5226..fb43ff33dbd 100644 --- a/scripts/demos/markers.py +++ b/scripts/demos/markers.py @@ -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 @@ -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)), ), diff --git a/scripts/demos/multi_asset.py b/scripts/demos/multi_asset.py index d104eb161d3..a53efdcb873 100644 --- a/scripts/demos/multi_asset.py +++ b/scripts/demos/multi_asset.py @@ -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 @@ -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( diff --git a/source/isaaclab/isaaclab/sim/spawners/__init__.py b/source/isaaclab/isaaclab/sim/spawners/__init__.py index 916141906e1..c45d8444938 100644 --- a/source/isaaclab/isaaclab/sim/spawners/__init__.py +++ b/source/isaaclab/isaaclab/sim/spawners/__init__.py @@ -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 @@ -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 diff --git a/source/isaaclab/isaaclab/utils/assets.py b/source/isaaclab/isaaclab/utils/assets.py index 1a2ab00bfff..56e50975d44 100644 --- a/source/isaaclab/isaaclab/utils/assets.py +++ b/source/isaaclab/isaaclab/utils/assets.py @@ -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" diff --git a/source/isaaclab/test/deps/isaacsim/check_floating_base_made_fixed.py b/source/isaaclab/test/deps/isaacsim/check_floating_base_made_fixed.py index 0be9a55bd4c..b5640cc1c96 100644 --- a/source/isaaclab/test/deps/isaacsim/check_floating_base_made_fixed.py +++ b/source/isaaclab/test/deps/isaacsim/check_floating_base_made_fixed.py @@ -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 """ @@ -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) diff --git a/source/isaaclab/test/deps/isaacsim/check_legged_robot_clone.py b/source/isaaclab/test/deps/isaacsim/check_legged_robot_clone.py index 57c016d7522..778d79ecfca 100644 --- a/source/isaaclab/test/deps/isaacsim/check_legged_robot_clone.py +++ b/source/isaaclab/test/deps/isaacsim/check_legged_robot_clone.py @@ -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 @@ -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): diff --git a/source/isaaclab/test/deps/isaacsim/check_ref_count.py b/source/isaaclab/test/deps/isaacsim/check_ref_count.py index 7927b8cb01a..a01a1f7918d 100644 --- a/source/isaaclab/test/deps/isaacsim/check_ref_count.py +++ b/source/isaaclab/test/deps/isaacsim/check_ref_count.py @@ -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 @@ -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)) diff --git a/source/isaaclab/test/sim/test_simulation_stage_in_memory.py b/source/isaaclab/test/sim/test_simulation_stage_in_memory.py index 68d9d86c666..3793dacbe06 100644 --- a/source/isaaclab/test/sim/test_simulation_stage_in_memory.py +++ b/source/isaaclab/test/sim/test_simulation_stage_in_memory.py @@ -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 from isaaclab.utils.version import get_isaac_sim_version @@ -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 @@ -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 diff --git a/source/isaaclab/test/sim/test_spawn_from_files.py b/source/isaaclab/test/sim/test_spawn_from_files.py index 530cc4b99cd..fe1eea4bbe5 100644 --- a/source/isaaclab/test/sim/test_spawn_from_files.py +++ b/source/isaaclab/test/sim/test_spawn_from_files.py @@ -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 @@ -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() @@ -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) diff --git a/source/isaaclab/test/sim/test_spawn_wrappers.py b/source/isaaclab/test/sim/test_spawn_wrappers.py index 3dd07a54e6f..ae9e857d73b 100644 --- a/source/isaaclab/test/sim/test_spawn_wrappers.py +++ b/source/isaaclab/test/sim/test_spawn_wrappers.py @@ -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 @@ -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( diff --git a/source/isaaclab/test/sim/test_utils_prims.py b/source/isaaclab/test/sim/test_utils_prims.py index 16584d113ed..0935b0b7292 100644 --- a/source/isaaclab/test/sim/test_utils_prims.py +++ b/source/isaaclab/test/sim/test_utils_prims.py @@ -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) @@ -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() @@ -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 @@ -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, @@ -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) diff --git a/source/isaaclab/test/sim/test_utils_queries.py b/source/isaaclab/test/sim/test_utils_queries.py index 4f5a0758342..542f98870c5 100644 --- a/source/isaaclab/test/sim/test_utils_queries.py +++ b/source/isaaclab/test/sim/test_utils_queries.py @@ -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) @@ -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 @@ -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 @@ -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: diff --git a/source/isaaclab/test/utils/test_assets.py b/source/isaaclab/test/utils/test_assets.py index 483c7d93d9f..93d1dd41cbc 100644 --- a/source/isaaclab/test/utils/test_assets.py +++ b/source/isaaclab/test/utils/test_assets.py @@ -26,7 +26,7 @@ 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 @@ -34,7 +34,7 @@ def test_check_file_path_nucleus(): 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 @@ -42,11 +42,11 @@ def test_check_file_path_invalid(): 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 diff --git a/source/isaaclab_assets/isaaclab_assets/robots/anymal.py b/source/isaaclab_assets/isaaclab_assets/robots/anymal.py index ac0e565513f..c3224a3503c 100644 --- a/source/isaaclab_assets/isaaclab_assets/robots/anymal.py +++ b/source/isaaclab_assets/isaaclab_assets/robots/anymal.py @@ -23,7 +23,7 @@ from isaaclab.actuators import ActuatorNetLSTMCfg, DCMotorCfg from isaaclab.assets.articulation import ArticulationCfg from isaaclab.sensors import RayCasterCfg -from isaaclab.utils.assets import ISAACLAB_NUCLEUS_DIR +from isaaclab.utils.assets import ISAAC_NUCLEUS_DIR, ISAACLAB_NUCLEUS_DIR from isaaclab_assets.sensors.velodyne import VELODYNE_VLP_16_RAYCASTER_CFG @@ -55,10 +55,9 @@ ## # Configuration - Articulation. ## - ANYMAL_B_CFG = ArticulationCfg( spawn=sim_utils.UsdFileCfg( - usd_path=f"{ISAACLAB_NUCLEUS_DIR}/Robots/ANYbotics/ANYmal-B/anymal_b.usd", + usd_path=f"{ISAAC_NUCLEUS_DIR}/Robots/ANYbotics/anymal_b/anymal_b.usd", activate_contact_sensors=True, rigid_props=sim_utils.RigidBodyPropertiesCfg( disable_gravity=False, @@ -92,8 +91,7 @@ ANYMAL_C_CFG = ArticulationCfg( spawn=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_instanceable.usd", + usd_path=f"{ISAAC_NUCLEUS_DIR}/Robots/ANYbotics/anymal_c/anymal_c.usd", activate_contact_sensors=True, rigid_props=sim_utils.RigidBodyPropertiesCfg( disable_gravity=False, @@ -127,8 +125,7 @@ ANYMAL_D_CFG = ArticulationCfg( spawn=sim_utils.UsdFileCfg( - usd_path=f"{ISAACLAB_NUCLEUS_DIR}/Robots/ANYbotics/ANYmal-D/anymal_d.usd", - # usd_path=f"{ISAACLAB_NUCLEUS_DIR}/Robots/ANYbotics/ANYmal-D/anymal_d_minimal.usd", + usd_path=f"{ISAAC_NUCLEUS_DIR}/Robots/ANYbotics/anymal_d/anymal_d.usd", activate_contact_sensors=True, rigid_props=sim_utils.RigidBodyPropertiesCfg( disable_gravity=False, diff --git a/source/isaaclab_assets/isaaclab_assets/robots/cart_double_pendulum.py b/source/isaaclab_assets/isaaclab_assets/robots/cart_double_pendulum.py index 22028f39baf..c6135e3ce12 100644 --- a/source/isaaclab_assets/isaaclab_assets/robots/cart_double_pendulum.py +++ b/source/isaaclab_assets/isaaclab_assets/robots/cart_double_pendulum.py @@ -8,7 +8,7 @@ import isaaclab.sim as sim_utils from isaaclab.actuators import ImplicitActuatorCfg from isaaclab.assets import ArticulationCfg -from isaaclab.utils.assets import ISAACLAB_NUCLEUS_DIR +from isaaclab.utils.assets import ISAAC_NUCLEUS_DIR ## # Configuration @@ -16,7 +16,7 @@ CART_DOUBLE_PENDULUM_CFG = ArticulationCfg( spawn=sim_utils.UsdFileCfg( - usd_path=f"{ISAACLAB_NUCLEUS_DIR}/Robots/Classic/CartDoublePendulum/cart_double_pendulum.usd", + usd_path=f"{ISAAC_NUCLEUS_DIR}/Robots/IsaacSim/CartDoublePendulum/cart_double_pendulum.usd", rigid_props=sim_utils.RigidBodyPropertiesCfg( rigid_body_enabled=True, max_linear_velocity=1000.0, diff --git a/source/isaaclab_assets/isaaclab_assets/robots/cartpole.py b/source/isaaclab_assets/isaaclab_assets/robots/cartpole.py index 1e236eda6b9..8a5fdf90334 100644 --- a/source/isaaclab_assets/isaaclab_assets/robots/cartpole.py +++ b/source/isaaclab_assets/isaaclab_assets/robots/cartpole.py @@ -8,7 +8,7 @@ import isaaclab.sim as sim_utils from isaaclab.actuators import ImplicitActuatorCfg from isaaclab.assets import ArticulationCfg -from isaaclab.utils.assets import ISAACLAB_NUCLEUS_DIR +from isaaclab.utils.assets import ISAAC_NUCLEUS_DIR ## # Configuration @@ -16,7 +16,7 @@ CARTPOLE_CFG = ArticulationCfg( spawn=sim_utils.UsdFileCfg( - usd_path=f"{ISAACLAB_NUCLEUS_DIR}/Robots/Classic/Cartpole/cartpole.usd", + usd_path=f"{ISAAC_NUCLEUS_DIR}/Robots/IsaacSim/Cartpole/cartpole.usd", rigid_props=sim_utils.RigidBodyPropertiesCfg( rigid_body_enabled=True, max_linear_velocity=1000.0, diff --git a/source/isaaclab_assets/isaaclab_assets/robots/cassie.py b/source/isaaclab_assets/isaaclab_assets/robots/cassie.py index 09e75e241fe..e78171ee99f 100644 --- a/source/isaaclab_assets/isaaclab_assets/robots/cassie.py +++ b/source/isaaclab_assets/isaaclab_assets/robots/cassie.py @@ -15,7 +15,7 @@ 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 @@ -23,7 +23,7 @@ CASSIE_CFG = ArticulationCfg( spawn=sim_utils.UsdFileCfg( - usd_path=f"{ISAACLAB_NUCLEUS_DIR}/Robots/Agility/Cassie/cassie.usd", + usd_path=f"{ISAAC_NUCLEUS_DIR}/Robots/Agility/Cassie/cassie.usd", activate_contact_sensors=True, rigid_props=sim_utils.RigidBodyPropertiesCfg( disable_gravity=False, @@ -44,13 +44,13 @@ "hip_abduction_left": 0.1, "hip_rotation_left": 0.0, "hip_flexion_left": 1.0, - "thigh_joint_left": -1.8, + "knee_joint_left": -1.8, "ankle_joint_left": 1.57, "toe_joint_left": -1.57, "hip_abduction_right": -0.1, "hip_rotation_right": 0.0, "hip_flexion_right": 1.0, - "thigh_joint_right": -1.8, + "knee_joint_right": -1.8, "ankle_joint_right": 1.57, "toe_joint_right": -1.57, }, @@ -59,20 +59,20 @@ soft_joint_pos_limit_factor=0.9, actuators={ "legs": ImplicitActuatorCfg( - joint_names_expr=["hip_.*", "thigh_.*", "ankle_.*"], + joint_names_expr=["hip_.*", "knee_.*", "ankle_.*"], effort_limit_sim=200.0, stiffness={ "hip_abduction.*": 100.0, "hip_rotation.*": 100.0, "hip_flexion.*": 200.0, - "thigh_joint.*": 200.0, + "knee_joint.*": 200.0, "ankle_joint.*": 200.0, }, damping={ "hip_abduction.*": 3.0, "hip_rotation.*": 3.0, "hip_flexion.*": 6.0, - "thigh_joint.*": 6.0, + "knee_joint.*": 6.0, "ankle_joint.*": 6.0, }, ), diff --git a/source/isaaclab_assets/isaaclab_assets/robots/franka.py b/source/isaaclab_assets/isaaclab_assets/robots/franka.py index caacf214c58..3626c229d32 100644 --- a/source/isaaclab_assets/isaaclab_assets/robots/franka.py +++ b/source/isaaclab_assets/isaaclab_assets/robots/franka.py @@ -17,7 +17,7 @@ import isaaclab.sim as sim_utils from isaaclab.actuators import ImplicitActuatorCfg from isaaclab.assets.articulation import ArticulationCfg -from isaaclab.utils.assets import ISAAC_NUCLEUS_DIR, ISAACLAB_NUCLEUS_DIR +from isaaclab.utils.assets import ISAAC_NUCLEUS_DIR ## # Configuration @@ -25,7 +25,7 @@ FRANKA_PANDA_CFG = ArticulationCfg( spawn=sim_utils.UsdFileCfg( - usd_path=f"{ISAACLAB_NUCLEUS_DIR}/Robots/FrankaEmika/panda_instanceable.usd", + usd_path=f"{ISAAC_NUCLEUS_DIR}/Robots/FrankaRobotics/FrankaEmika/panda_instanceable.usd", activate_contact_sensors=False, rigid_props=sim_utils.RigidBodyPropertiesCfg( disable_gravity=False, diff --git a/source/isaaclab_assets/isaaclab_assets/robots/humanoid_28.py b/source/isaaclab_assets/isaaclab_assets/robots/humanoid_28.py index 84f44339a53..26bccacdc72 100644 --- a/source/isaaclab_assets/isaaclab_assets/robots/humanoid_28.py +++ b/source/isaaclab_assets/isaaclab_assets/robots/humanoid_28.py @@ -10,7 +10,7 @@ import isaaclab.sim as sim_utils from isaaclab.actuators import ImplicitActuatorCfg from isaaclab.assets import ArticulationCfg -from isaaclab.utils.assets import ISAACLAB_NUCLEUS_DIR +from isaaclab.utils.assets import ISAAC_NUCLEUS_DIR ## # Configuration @@ -19,7 +19,7 @@ HUMANOID_28_CFG = ArticulationCfg( prim_path="{ENV_REGEX_NS}/Robot", spawn=sim_utils.UsdFileCfg( - usd_path=f"{ISAACLAB_NUCLEUS_DIR}/Robots/Classic/Humanoid28/humanoid_28.usd", + usd_path=f"{ISAAC_NUCLEUS_DIR}/Robots/IsaacSim/Humanoid28/humanoid_28.usd", rigid_props=sim_utils.RigidBodyPropertiesCfg( disable_gravity=None, max_depenetration_velocity=10.0, diff --git a/source/isaaclab_assets/isaaclab_assets/robots/unitree.py b/source/isaaclab_assets/isaaclab_assets/robots/unitree.py index ff7685a3c60..10d0903451c 100644 --- a/source/isaaclab_assets/isaaclab_assets/robots/unitree.py +++ b/source/isaaclab_assets/isaaclab_assets/robots/unitree.py @@ -56,7 +56,7 @@ UNITREE_A1_CFG = ArticulationCfg( spawn=sim_utils.UsdFileCfg( - usd_path=f"{ISAACLAB_NUCLEUS_DIR}/Robots/Unitree/A1/a1.usd", + usd_path=f"{ISAAC_NUCLEUS_DIR}/Robots/Unitree/A1/a1.usd", activate_contact_sensors=True, rigid_props=sim_utils.RigidBodyPropertiesCfg( disable_gravity=False, @@ -103,7 +103,7 @@ UNITREE_GO1_CFG = ArticulationCfg( spawn=sim_utils.UsdFileCfg( - usd_path=f"{ISAACLAB_NUCLEUS_DIR}/Robots/Unitree/Go1/go1.usd", + usd_path=f"{ISAAC_NUCLEUS_DIR}/Robots/Unitree/Go1/go1.usd", activate_contact_sensors=True, rigid_props=sim_utils.RigidBodyPropertiesCfg( disable_gravity=False, @@ -139,7 +139,7 @@ UNITREE_GO2_CFG = ArticulationCfg( spawn=sim_utils.UsdFileCfg( - usd_path=f"{ISAACLAB_NUCLEUS_DIR}/Robots/Unitree/Go2/go2.usd", + usd_path=f"{ISAAC_NUCLEUS_DIR}/Robots/Unitree/Go2/go2.usd", activate_contact_sensors=True, rigid_props=sim_utils.RigidBodyPropertiesCfg( disable_gravity=False, @@ -183,7 +183,8 @@ H1_CFG = ArticulationCfg( spawn=sim_utils.UsdFileCfg( - usd_path=f"{ISAACLAB_NUCLEUS_DIR}/Robots/Unitree/H1/h1.usd", + usd_path=f"{ISAAC_NUCLEUS_DIR}/Robots/Unitree/H1/h1.usd", + variants={"Physics": "Physx"}, activate_contact_sensors=True, rigid_props=sim_utils.RigidBodyPropertiesCfg( disable_gravity=False, @@ -262,16 +263,17 @@ H1_MINIMAL_CFG = H1_CFG.copy() -H1_MINIMAL_CFG.spawn.usd_path = f"{ISAACLAB_NUCLEUS_DIR}/Robots/Unitree/H1/h1_minimal.usd" +H1_MINIMAL_CFG.spawn.variants = {"Physics": "Physx_minimal"} """Configuration for the Unitree H1 Humanoid robot with fewer collision meshes. This configuration removes most collision meshes to speed up simulation. +Uses the Physx_minimal variant from the h1.usd file. """ G1_CFG = ArticulationCfg( spawn=sim_utils.UsdFileCfg( - usd_path=f"{ISAACLAB_NUCLEUS_DIR}/Robots/Unitree/G1/g1.usd", + usd_path=f"{ISAAC_NUCLEUS_DIR}/Robots/Unitree/G1_23dof/g1.usd", activate_contact_sensors=True, rigid_props=sim_utils.RigidBodyPropertiesCfg( disable_gravity=False, @@ -378,7 +380,7 @@ G1_MINIMAL_CFG = G1_CFG.copy() -G1_MINIMAL_CFG.spawn.usd_path = f"{ISAACLAB_NUCLEUS_DIR}/Robots/Unitree/G1/g1_minimal.usd" +G1_MINIMAL_CFG.spawn.usd_path = f"{ISAAC_NUCLEUS_DIR}/Robots/Unitree/G1_23dof/g1_minimal.usd" """Configuration for the Unitree G1 Humanoid robot with fewer collision meshes. This configuration removes most collision meshes to speed up simulation. @@ -389,6 +391,7 @@ spawn=sim_utils.UsdFileCfg( usd_path=f"{ISAAC_NUCLEUS_DIR}/Robots/Unitree/G1/g1.usd", activate_contact_sensors=False, + variants={"Physics": "PhysX"}, rigid_props=sim_utils.RigidBodyPropertiesCfg( disable_gravity=False, retain_accelerations=False, @@ -555,16 +558,10 @@ mobile_cfg.spawn.articulation_props.fix_root_link = False """ -""" -Configuration for the Unitree G1 Humanoid robot with Inspire 5fingers hand. -The Unitree G1 URDF can be found here: https://github.com/unitreerobotics/unitree_ros/tree/master/robots/g1_description/g1_29dof_with_hand_rev_1_0.urdf -The Inspire hand URDF is available at: https://github.com/unitreerobotics/xr_teleoperate/tree/main/assets/inspire_hand -The merging code for the hand and robot can be found here: https://github.com/unitreerobotics/unitree_ros/blob/master/robots/g1_description/merge_g1_29dof_and_inspire_hand.ipynb, -Necessary modifications should be made to ensure the correct parent–child relationship. -""" + # Inherit PD settings from G1_29DOF_CFG, with minor adjustments for grasping task G1_INSPIRE_FTP_CFG = G1_29DOF_CFG.copy() -G1_INSPIRE_FTP_CFG.spawn.usd_path = f"{ISAACLAB_NUCLEUS_DIR}/Robots/Unitree/G1/g1_29dof_inspire_hand.usd" +G1_INSPIRE_FTP_CFG.spawn.variants = {"Physics": "PhysX", "right_hand": "Inspire", "left_hand": "Inspire"} G1_INSPIRE_FTP_CFG.spawn.activate_contact_sensors = True G1_INSPIRE_FTP_CFG.spawn.rigid_props.disable_gravity = True G1_INSPIRE_FTP_CFG.spawn.articulation_props.fix_root_link = True @@ -573,6 +570,8 @@ joint_pos={".*": 0.0}, joint_vel={".*": 0.0}, ) +# Create a new actuators dict to avoid shallow copy issues +G1_INSPIRE_FTP_CFG.actuators = G1_INSPIRE_FTP_CFG.actuators.copy() # Actuator configuration for arms (stability focused for manipulation) # Increased damping improves stability of arm movements G1_INSPIRE_FTP_CFG.actuators["arms"] = ImplicitActuatorCfg( @@ -609,3 +608,10 @@ damping=0.2, armature=0.001, ) +"""Configuration for the Unitree G1 Humanoid robot with Inspire 5fingers hand. + +The Unitree G1 URDF can be found here: https://github.com/unitreerobotics/unitree_ros/tree/master/robots/g1_description/g1_29dof_with_hand_rev_1_0.urdf +The Inspire hand URDF is available at: https://github.com/unitreerobotics/xr_teleoperate/tree/main/assets/inspire_hand +The merging code for the hand and robot can be found here: https://github.com/unitreerobotics/unitree_ros/blob/master/robots/g1_description/merge_g1_29dof_and_inspire_hand.ipynb, +Necessary modifications should be made to ensure the correct parent–child relationship. +""" diff --git a/source/isaaclab_assets/isaaclab_assets/robots/universal_robots.py b/source/isaaclab_assets/isaaclab_assets/robots/universal_robots.py index 1026e00a971..4adea5a90f0 100644 --- a/source/isaaclab_assets/isaaclab_assets/robots/universal_robots.py +++ b/source/isaaclab_assets/isaaclab_assets/robots/universal_robots.py @@ -18,7 +18,7 @@ import isaaclab.sim as sim_utils from isaaclab.actuators import ImplicitActuatorCfg from isaaclab.assets.articulation import ArticulationCfg -from isaaclab.utils.assets import ISAAC_NUCLEUS_DIR, ISAACLAB_NUCLEUS_DIR +from isaaclab.utils.assets import ISAAC_NUCLEUS_DIR ## # Configuration @@ -26,7 +26,7 @@ UR10_CFG = ArticulationCfg( spawn=sim_utils.UsdFileCfg( - usd_path=f"{ISAACLAB_NUCLEUS_DIR}/Robots/UniversalRobots/UR10/ur10_instanceable.usd", + usd_path=f"{ISAAC_NUCLEUS_DIR}/Robots/UniversalRobots/ur10/ur10.usd", rigid_props=sim_utils.RigidBodyPropertiesCfg( disable_gravity=False, max_depenetration_velocity=5.0, diff --git a/source/isaaclab_tasks/isaaclab_tasks/direct/franka_cabinet/franka_cabinet_env.py b/source/isaaclab_tasks/isaaclab_tasks/direct/franka_cabinet/franka_cabinet_env.py index 8b87e1bdb25..adaf13762cf 100644 --- a/source/isaaclab_tasks/isaaclab_tasks/direct/franka_cabinet/franka_cabinet_env.py +++ b/source/isaaclab_tasks/isaaclab_tasks/direct/franka_cabinet/franka_cabinet_env.py @@ -19,7 +19,7 @@ from isaaclab.sim.utils.stage import get_current_stage from isaaclab.terrains import TerrainImporterCfg from isaaclab.utils import configclass -from isaaclab.utils.assets import ISAAC_NUCLEUS_DIR, ISAACLAB_NUCLEUS_DIR +from isaaclab.utils.assets import ISAAC_NUCLEUS_DIR from isaaclab.utils.math import sample_uniform @@ -54,7 +54,7 @@ class FrankaCabinetEnvCfg(DirectRLEnvCfg): robot = ArticulationCfg( prim_path="/World/envs/env_.*/Robot", spawn=sim_utils.UsdFileCfg( - usd_path=f"{ISAACLAB_NUCLEUS_DIR}/Robots/FrankaEmika/panda_instanceable.usd", + usd_path=f"{ISAAC_NUCLEUS_DIR}/Robots/FrankaRobotics/FrankaEmika/panda_instanceable.usd", activate_contact_sensors=False, rigid_props=sim_utils.RigidBodyPropertiesCfg( disable_gravity=False,