Mesh non-collision loss optimization - #998
Conversation
0aa5c17 to
fc939b4
Compare
🤖 Isaac Lab-Arena Review BotSummaryThis PR rewrites Findings🟡 Warning: relation_solver_params.py:58 — 🟡 Warning: arena_env_builder.py:101 — the default builder path ( Test CoverageGood. VerdictMinor fixes needed — confirm/revert the two |
Greptile SummaryThe PR batches mesh collision SDF work across candidates to replace many serial Warp launches with one dense query and adds a serial-reference equivalence test.
Confidence Score: 4/5The PR appears safe to merge, with the non-blocking caveat that solver profiling should remain opt-in to avoid unsolicited timing output in normal runs. The batched mesh-collision path preserves the investigated loss, gradient, cache, and yaw behavior, but the configuration changes enable profiling diagnostics for routine relation solves. Files Needing Attention: isaaclab_arena/relations/relation_solver_params.py, isaaclab_arena/environments/arena_env_builder.py Important Files Changed
Flowchart%%{init: {'theme': 'neutral'}}%%
flowchart LR
A[Batch candidate positions and pair metadata] --> B[Compute batched yaw-aware AABB overlap]
B --> C[Transform all sphere centers into obstacle frames]
C --> D[Single dense multi-mesh SDF launch]
D --> E[Mask inactive pairs]
E --> F[Scatter sphere penetration by pair]
F --> G[Per-candidate no-overlap loss]
Reviews (1): Last reviewed commit: "Cleanup unused MeshPairCache data" | Re-trigger Greptile |
5c81e90 to
993e7a3
Compare
Retire the obsolete serial no-overlap reference and its profiling controls now that the batched implementation is the only supported path. Move serial oracle to unit test and add regression testing Cleanup unused MeshPairCache data
993e7a3 to
7c8ede9
Compare
Summary
Batch mesh collision SDF queries to reduce solver time from 55s to 4s for the droid kitchen scene.
Detailed description
Tests
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/droid_pick_and_place_lightwheel_kitchen.yaml
with solver logging enabled should see
[RelationSolver] solve: 3715.2 ms | batch=50 | objects=3 optimizable + 3 anchors | no-overlap pairs=12 | iters=600 (6.19 ms/iter)
vs baseline
[RelationSolver] solve: 56006.8 ms | batch=50 | objects=3 optimizable + 3 anchors | no-overlap pairs=12 | iters=600 (93.34 ms/iter)