Skip to content

Fix Franka assembly asset path#919

Open
cvolkcvolk wants to merge 4 commits into
mainfrom
cvolk/fix/franka-legacy-asset-path
Open

Fix Franka assembly asset path#919
cvolkcvolk wants to merge 4 commits into
mainfrom
cvolk/fix/franka-legacy-asset-path

Conversation

@cvolkcvolk

@cvolkcvolk cvolkcvolk commented Jul 16, 2026

Copy link
Copy Markdown
Collaborator

Summary

Fix Franka assembly asset path

Detailed description

  • The Franka path in the pinned Isaac Lab config is unavailable; the asset is available under FrankaEmika/Legacy.
  • Pin the Arena assembly robot configuration to the Legacy location.
  • Add a tripwire test that flags future upstream path updates and lists the cleanup steps.

Point the assembly configuration at the Legacy location used after the Isaac 6.0 asset migration.

Signed-off-by: Clemens Volk <cvolk@nvidia.com>
@greptile-apps

greptile-apps Bot commented Jul 16, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

This PR fixes a broken asset path for the Franka Panda assembly robot configuration after the Isaac 6.0 release moved the USD file into a Legacy subdirectory. It also adds the missing ISAACLAB_NUCLEUS_DIR import needed to construct that path.

  • Updates FRANKA_PANDA_ASSEMBLY_HIGH_PD_CFG.spawn.usd_path from the old Robots/FrankaEmika/panda_instanceable.usd location to Robots/FrankaEmika/Legacy/panda_instanceable.usd.
  • Adds from isaaclab.utils.assets import ISAACLAB_NUCLEUS_DIR so the f-string path resolves correctly at runtime.

Confidence Score: 5/5

Safe to merge — this is a single-file path correction with no logic changes.

The change updates one string path and adds its required import. No other files reference panda_instanceable.usd, so the fix is complete and self-contained. The rest of the assembly config (contact sensors, gravity, actuator tuning, initial pose) is untouched.

No files require special attention.

Important Files Changed

Filename Overview
isaaclab_arena_environments/mdp/robot_configs.py Updates Franka assembly config to use the new Isaac 6.0 asset path under FrankaEmika/Legacy/; adds the required ISAACLAB_NUCLEUS_DIR import.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    A["FRANKA_PANDA_HIGH_PD_CFG\nbase config from isaaclab_assets"] -->|copy| B["FRANKA_PANDA_ASSEMBLY_HIGH_PD_CFG"]
    B -->|spawn.usd_path| C["ISAACLAB_NUCLEUS_DIR +\nRobots/FrankaEmika/Legacy/panda_instanceable.usd"]
    B -->|activate_contact_sensors| D["Contact Sensors Enabled"]
    B -->|disable_gravity| E["Gravity Disabled"]
    B -->|actuator tuning| F["panda_shoulder / panda_forearm / panda_hand"]
    C --- OLD["OLD path - Isaac less than 6.0\nRobots/FrankaEmika/panda_instanceable.usd"]
    C --- NEW["NEW path - Isaac 6.0\nRobots/FrankaEmika/Legacy/panda_instanceable.usd"]
Loading
%%{init: {'theme': 'base', 'themeVariables': {"darkMode": true, "background": "#0d1117", "primaryColor": "#21262d", "primaryTextColor": "#e6edf3", "primaryBorderColor": "#8b949e", "lineColor": "#8b949e", "textColor": "#e6edf3", "edgeLabelBackground": "#161b22", "actorBkg": "#21262d", "actorBorder": "#8b949e", "actorTextColor": "#e6edf3", "actorLineColor": "#8b949e", "signalColor": "#8b949e", "signalTextColor": "#e6edf3", "noteBkgColor": "#373320", "noteBorderColor": "#d4a72c", "noteTextColor": "#f0e6c0", "labelBoxBkgColor": "#21262d", "labelBoxBorderColor": "#8b949e", "labelTextColor": "#e6edf3", "loopTextColor": "#e6edf3", "activationBkgColor": "#30363d", "activationBorderColor": "#8b949e"}}}%%
flowchart TD
    A["FRANKA_PANDA_HIGH_PD_CFG\nbase config from isaaclab_assets"] -->|copy| B["FRANKA_PANDA_ASSEMBLY_HIGH_PD_CFG"]
    B -->|spawn.usd_path| C["ISAACLAB_NUCLEUS_DIR +\nRobots/FrankaEmika/Legacy/panda_instanceable.usd"]
    B -->|activate_contact_sensors| D["Contact Sensors Enabled"]
    B -->|disable_gravity| E["Gravity Disabled"]
    B -->|actuator tuning| F["panda_shoulder / panda_forearm / panda_hand"]
    C --- OLD["OLD path - Isaac less than 6.0\nRobots/FrankaEmika/panda_instanceable.usd"]
    C --- NEW["NEW path - Isaac 6.0\nRobots/FrankaEmika/Legacy/panda_instanceable.usd"]
Loading

Reviews (1): Last reviewed commit: "Fix Franka assembly asset path" | Re-trigger Greptile

Comment thread isaaclab_arena_environments/mdp/robot_configs.py Outdated
@arena-review-bot

arena-review-bot Bot commented Jul 16, 2026

Copy link
Copy Markdown
Contributor

🤖 Isaac Lab-Arena Review Bot

Summary

This PR repoints the assembly Franka config from the upstream panda_instanceable.usd path (unavailable after the Isaac 6.0 asset migration) to the FrankaEmika/Legacy/ location, and adds a small tripwire test that fails when Isaac Lab changes its pinned path so the workaround gets cleaned up. The override lives in the right layer (isaaclab_arena_environments/mdp/robot_configs.py) and mirrors the existing usd_path override in embodiments/franka/franka.py; the assembly config was the only place inheriting the broken upstream path, so the fix is well-scoped. Clean and well-documented — the self-cleaning tripwire with explicit cleanup steps is good hygiene for a temporary workaround.

Findings

None. Copyright years are correct for modified files, the deferred isaaclab imports in the tripwire test follow convention, and the non-sim test is correctly written as a plain test rather than wrapped in the sim harness.

Test Coverage

The tripwire test is an unmarked Phase-1 test that only reads config values, so the inner/outer sim pattern is (correctly) not used. The actual Legacy asset path is exercised by the existing assembly sim tests. Reasonable coverage for the change.

Verdict

Ship it

Preserve future Isaac Lab asset paths and add a tripwire that prompts removal of the temporary workaround when the pinned config changes.

Signed-off-by: Clemens Volk <cvolk@nvidia.com>
Keep the Legacy asset override explicit and make the path-change failure identify the exact cleanup steps.

Signed-off-by: Clemens Volk <cvolk@nvidia.com>
Signed-off-by: Clemens Volk <cvolk@nvidia.com>
@cvolkcvolk

This comment was marked as outdated.

@alexmillane alexmillane enabled auto-merge (squash) July 16, 2026 17:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants