Exclude relation anchors from background collision meshes - #1003
Conversation
8395ab9 to
b367580
Compare
Greptile SummaryExcludes anchored object-reference subtrees when aggregating parent USD geometry into background collision meshes.
Confidence Score: 5/5The PR appears safe to merge; no concrete changed-code failure remains. The exclusion path preserves scene-object identity, uses correctly delimited absolute USD subtree paths, and separates cached meshes by their exclusion sets. Important Files Changed
Flowchart%%{init: {'theme': 'neutral'}}%%
flowchart LR
A[Anchored ObjectReference] --> B[Resolve parent USD prim path]
B --> C[Collect exclusions by parent asset]
C --> D[Passive collision discovery]
D --> E[Fixed background mesh aggregation]
E --> F[USD mesh extraction]
C --> G[Cache key: USD path + scale + exclusions]
F --> H[Background collision mesh without anchor subtree]
Reviews (1): Last reviewed commit: "Exclude relation anchors from background..." | Re-trigger Greptile |
🤖 Isaac Lab-Arena Review BotSummaryThis PR stops anchored object references from being counted twice in placement collision — once as their own anchor collision mesh and again inside the aggregated background mesh — by threading per-object USD subtree exclusions from the solver interface down through mesh extraction. The change is well-layered (pxr imports stay deferred, exclusions live in the domain/relations layer), the cache key correctly incorporates exclusions, subtree matching avoids prefix false-positives ( Findings🔵 usd_helpers.py:369 — When exclusions remove every mesh from a background, the new Test CoverageStrong. New coverage spans exclusion propagation ( VerdictShip it — the one finding is an open design question, not a blocker. |
zhx06
left a comment
There was a problem hiding this comment.
LGTM! The only nit is the comments from the arena review bot, whether excluding all meshes should be treated as an error. Everything else looks good.
Avoid conflicting On and mesh-collision constraints by omitting anchored object-reference subtrees when aggregating background geometry. Signed-off-by: Qian Lin <qianl@nvidia.com>
Treat exhaustive anchor exclusions as a valid empty background while preserving cached extraction failures for strict background handling. Signed-off-by: Qian Lin <qianl@nvidia.com>
b367580 to
7ca4caa
Compare
Summary
Exclude anchored references from background meshes
Detailed description
Command to run:
/isaac-sim/python.sh isaaclab_arena/evaluation/policy_runner.py --viz kit --policy_type zero_action --num_episodes 20 --disable_fabric --device cpu --env_graph_spec_yaml isaaclab_arena_environments/kitchen_bench/replicator_kitchen_peninsula_mustard_bowl.yam
Before:
[RelationSolver] solve: 3635.3 ms | batch=50 | objects=3 optimizable + 2 anchors | no-overlap pairs=9 | iters=600 (6.06 ms/iter)
[placement] Validated 50 candidate layout(s); passed per check: on_relation=0/50, next_to=34/50, not_next_to=50/50, face_to=50/50, no_overlap=34/50
After:
[RelationSolver] solve: 3392.7 ms | batch=50 | objects=3 optimizable + 2 anchors | no-overlap pairs=9 | iters=600 (5.65 ms/iter)
[placement] Validated 50 candidate layout(s); passed per check: on_relation=35/50, next_to=35/50, not_next_to=50/50, face_to=50/50, no_overlap=47/50