Skip to content

Conversation

@matthewtrepte
Copy link
Contributor

Description

Rebasing and testing out Steven Feng's unify assets change - #3608

Type of change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (existing functionality will not work without user modification)
  • Documentation update

Screenshots

Please attach before and after screenshots of the change if applicable.

Checklist

  • I have read and understood the contribution guidelines
  • I have run the pre-commit checks with ./isaaclab.sh --format
  • I have made corresponding changes to the documentation
  • 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

stevfeng and others added 9 commits December 29, 2025 22:10
- Update test_utils_queries.py to use ISAAC_NUCLEUS_DIR with correct paths
- Fix G1 Inspire Hand path to use ISAAC_NUCLEUS_DIR/Robots/Unitree/G1_29dof/
- Remove unused stage_utils imports from test files
- Ensure consistent path naming (ANYmal-C -> anymal_c, etc.)
@github-actions github-actions bot added the asset New asset feature or request label Dec 29, 2025
@greptile-apps
Copy link
Contributor

greptile-apps bot commented Dec 29, 2025

Greptile Summary

Migrated Isaac Lab asset paths from ISAACLAB_NUCLEUS_DIR to ISAAC_NUCLEUS_DIR to unify with Isaac Sim's asset structure. This changes all robot USD paths to reference the shared Isaac Sim asset repository on the Nucleus server.

Key Changes:

  • All robot configurations now use ISAAC_NUCLEUS_DIR (Isaac/Robots/) instead of ISAACLAB_NUCLEUS_DIR (Isaac/IsaacLab/Robots/)
  • Updated directory structures for ANYmal variants (ANYmal-B → anymal_b, ANYmal-C → anymal_c, ANYmal-D → anymal_d)
  • Franka Panda path updated to Robots/FrankaRobotics/FrankaEmika/
  • Unitree G1 paths updated to specify DOF variants (G1G1_23dof, G1_29dof)
  • Humanoid28 moved to Robots/IsaacSim/Humanoid28/
  • All test files, demos, and task environments updated consistently
  • Removed unused ISAACLAB_NUCLEUS_DIR imports where no longer needed

Asset Path Pattern:

  • Before: {ISAACLAB_NUCLEUS_DIR}/Robots/[Manufacturer]/[Model]/[file].usd
  • After: {ISAAC_NUCLEUS_DIR}/Robots/[Manufacturer]/[model]/[file].usd

The migration is systematic and comprehensive, touching all robot assets, examples, and tests.

Confidence Score: 4/5

  • This PR is safe to merge after verifying that the new asset paths exist on the Nucleus server
  • The changes are purely path migrations with no logic modifications. All updates are consistent and systematic. Score is 4 (not 5) because this depends on the corresponding assets being available at the new paths on the Nucleus server, which cannot be verified from the code alone
  • Verify that all new asset paths exist on the Nucleus server before merging, particularly the reorganized paths for ANYmal variants, G1 DOF-specific paths, and the FrankaRobotics directory structure

Important Files Changed

Filename Overview
source/isaaclab/isaaclab/sim/spawners/init.py Updated documentation examples to use new ISAAC_NUCLEUS_DIR paths instead of ISAACLAB_NUCLEUS_DIR
source/isaaclab_assets/isaaclab_assets/robots/franka.py Migrated Franka Panda asset path from ISAACLAB_NUCLEUS_DIR to ISAAC_NUCLEUS_DIR/Robots/FrankaRobotics/FrankaEmika
source/isaaclab_assets/isaaclab_assets/robots/anymal.py Migrated all ANYmal variants (B, C, D) to ISAAC_NUCLEUS_DIR with updated directory structure (lowercase names)
source/isaaclab_assets/isaaclab_assets/robots/unitree.py Migrated all Unitree robots (A1, Go1, Go2, H1, G1, G1_29DOF) to ISAAC_NUCLEUS_DIR with updated paths for G1 variants
source/isaaclab/test/sim/test_spawn_from_files.py Updated test cases to use new ISAAC_NUCLEUS_DIR path for Franka Panda robot
source/isaaclab/test/deps/isaacsim/check_legged_robot_clone.py Unified isaaclab and oige asset paths to both use ISAAC_NUCLEUS_DIR for ANYmal-C

Sequence Diagram

sequenceDiagram
    participant User as User Code
    participant Config as Robot Config
    participant Assets as isaaclab.utils.assets
    participant Spawner as sim_utils.UsdFileCfg
    participant NucleusServer as Nucleus Server
    participant Stage as USD Stage

    User->>Config: Import robot configuration
    Config->>Assets: Use ISAAC_NUCLEUS_DIR constant
    Note over Assets: ISAAC_NUCLEUS_DIR = carb.settings<br/>/persistent/isaac/asset_root/cloud/Isaac
    Config->>Config: Build asset path<br/>(e.g., {ISAAC_NUCLEUS_DIR}/Robots/FrankaRobotics/FrankaEmika/panda.usd)
    User->>Spawner: Create UsdFileCfg with usd_path
    Spawner->>Assets: check_file_path(usd_path)
    Assets->>NucleusServer: omni.client.stat(usd_path)
    NucleusServer-->>Assets: Return file status
    Assets-->>Spawner: File exists on Nucleus
    Spawner->>NucleusServer: Load USD from remote path
    NucleusServer-->>Spawner: USD file data
    Spawner->>Stage: Spawn prim at prim_path
    Stage-->>User: Robot instantiated
Loading

@greptile-apps
Copy link
Contributor

greptile-apps bot commented Dec 29, 2025

Greptile's behavior is changing!

From now on, if a review finishes with no comments, we will not post an additional "statistics" comment to confirm that our review found nothing to comment on. However, you can confirm that we reviewed your changes in the status check section.

This feature can be toggled off in your Code Review Settings by deselecting "Create a status check for each PR".

@pascal-roth
Copy link
Collaborator

what is the status with the combination of the assets?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

asset New asset feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants