Move Dexsuite procedural cuboids out of the shared object library - #1058
Move Dexsuite procedural cuboids out of the shared object library#1058qianl-nv wants to merge 4 commits into
Conversation
Keep Newton-only table/cube assets local to the Dexsuite lift example and construct them directly instead of registering them globally. Signed-off-by: Qian Lin <qianl@nvidia.com>
Keep Object/pxr off the environments package import path so pytest collection does not load USD before SimulationApp starts. Signed-off-by: Qian Lin <qianl@nvidia.com>
Share a Cuboid base, use Object's spawner_cfg path, and cache classes with lru_cache instead of manual nullable globals. Signed-off-by: Qian Lin <qianl@nvidia.com>
Stop presenting procedural_table/cube as AssetRegistry names and align the setup snippet with ArenaEnvironmentFactory.build(). Signed-off-by: Qian Lin <qianl@nvidia.com>
Greptile SummaryThe PR removes Dexsuite-specific procedural cuboids from the global asset registry so they are no longer exposed to environment-generation agents.
Confidence Score: 5/5The PR appears safe to merge with all in-repository consumers migrated away from the removed registry entries. The procedural assets retain their spawn properties and pose setup through the local Object subclasses, while searches found no remaining code or persisted configuration that requests the removed registry names. Important Files Changed
Flowchart%%{init: {'theme': 'neutral'}}%%
flowchart LR
Before[Global AssetRegistry] --> Agent[Agent-visible asset catalog]
Before --> Dexsuite[Dexsuite lift environment]
Local[Environment-local procedural_asset_classes] --> Dexsuite
Local -. not registered .-> Agent
Reviews (1): Last reviewed commit: "Document Dexsuite procedural assets as e..." | Re-trigger Greptile |
|
|
||
|
|
||
| @functools.lru_cache(maxsize=1) | ||
| def procedural_asset_classes() -> tuple[type[Object], type[Object]]: |
There was a problem hiding this comment.
🟡 Is this the right home for these cuboids?
They aren't really dexsuite-specific — test_physics_settle reuses ProceduralTable as a plain floor, so a core test now has to reach into a specific environment module to get one. Would a neutral, un-registered home read better? (I see the package __init__ auto-imports every module here, so such a module would need adding to _NON_ENVIRONMENT_MODULES to stay off the pxr import path — the lazy factory is a fair workaround for that constraint either way, just wondering about placement.)
| teleop_device=None, | ||
| rl_framework_entry_point="rsl_rl_cfg_entry_point", | ||
| rl_policy_cfg=dexsuite_rl_cfg_entry, | ||
| rl_policy_cfg=( |
There was a problem hiding this comment.
🔵 Snippet drifted from build()
The actual build() still passes teleop_device=None and keeps rl_policy_cfg=dexsuite_rl_cfg_entry, so this snippet no longer matches the file it documents. Worth re-syncing the two (or trimming the code the same way).
🤖 Isaac Lab-Arena Review BotSummaryCleanly moves the Newton-only procedural table/cube out of the shared object library (−91 lines from core Design, Boundaries & ScopeOne placement question (raised inline): Findings🟡 Test CoverageAdequate. Removing VerdictShip it — optionally address the two minor notes. |
Summary
Remove dexsuite procedure object from registry to avoid agent usage.
Detailed description