Skip to content

Commit 8c5f342

Browse files
committed
improve test cases, edit docstring
Signed-off-by: zhx06 <zihaox@nvidia.com>
1 parent 33f861a commit 8c5f342

5 files changed

Lines changed: 6 additions & 16 deletions

File tree

isaaclab_arena/relations/relation_solver.py

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,8 @@ class MeshPairEntry(NamedTuple):
5555
anchor_pos: torch.Tensor | None # (3,) world position, or None for non-anchors
5656
anchor_yaw: float
5757
centers_local: torch.Tensor # (S, 3) sphere centers in subject-local frame
58-
radii: torch.Tensor # (S,) sphere radii
59-
subject_bbox_min: torch.Tensor # (B, 3) subject bbox min corners, B = batch_size
58+
radii: torch.Tensor # (S,)
59+
subject_bbox_min: torch.Tensor # (B, 3) subject bbox min corners
6060
subject_bbox_max: torch.Tensor # (B, 3)
6161
obstacle_bbox_min: torch.Tensor # (B, 3) obstacle bbox min corners
6262
obstacle_bbox_max: torch.Tensor # (B, 3)
@@ -480,14 +480,13 @@ def _compute_no_overlap_loss_mesh(
480480
state: RelationSolverState,
481481
debug: bool,
482482
) -> torch.Tensor:
483-
"""Per-env sphere-to-SDF penetration loss; iterates envs, calls the multi-mesh kernel per batch."""
483+
"""Per-env sphere-to-SDF penetration loss."""
484484
device = state.device
485485
total_loss = torch.zeros(state.batch_size, device=device, dtype=torch.float32)
486486
clearance_m = self.params.clearance_m
487487
slope = self._no_collision_strategy.slope
488488

489-
# Per-env loop (not batched like AABB): per-env yaw and active-pair masking each produce a
490-
# different sphere subset before the kernel launch, so envs cannot be collapsed into one call.
489+
# Per-env loop (not batched like AABB): per-env yaw and active-pair masking produce a different sphere subset per env.
491490
for b in range(state.batch_size):
492491
for cache in (self._mesh_cache_forward, self._mesh_cache_reverse):
493492
if cache is None:

isaaclab_arena/relations/warp_mesh_manager.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,7 @@ def warn_sdf_sentinel(self, sdf_values: torch.Tensor) -> None:
144144

145145
def get_collision_mesh(self, obj: ObjectBase) -> trimesh.Trimesh | None:
146146
"""Return the cached collision mesh, extracting from USD on first access."""
147+
# ObjectBase doesn't guarantee usd_path; only Object subclasses set it.
147148
usd_path = getattr(obj, "usd_path", None)
148149
if usd_path is None:
149150
return obj.get_collision_mesh()

isaaclab_arena/tests/test_mesh_collision.py

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -304,7 +304,6 @@ def test_centers_in_target_frame_applies_both_yaws():
304304

305305
@requires_warp
306306
def test_object_placer_mesh_mode_end_to_end():
307-
"""ObjectPlacer.place() with CollisionMode.MESH returns a valid result."""
308307
from isaaclab_arena.relations.object_placer import ObjectPlacer
309308
from isaaclab_arena.relations.object_placer_params import ObjectPlacerParams
310309

@@ -442,7 +441,6 @@ def test_mesh_sdf_backward_gradient():
442441

443442
@requires_warp
444443
def test_solver_mesh_batch_size_two():
445-
"""Solver MESH mode handles batch_size > 1 (both envs solved independently)."""
446444
table = _make_table()
447445
a = _make_cylinder("cyl_a")
448446
b = _make_cylinder("cyl_b")
@@ -478,7 +476,6 @@ def test_solver_mesh_batch_size_two():
478476

479477
@requires_warp
480478
def test_broadphase_skips_separated_pairs():
481-
"""Separated objects have lower mesh loss than overlapping ones (broadphase filters pairs)."""
482479
table = _make_table()
483480
a = _make_cylinder("a", radius=0.03)
484481
b = _make_cylinder("b", radius=0.03)

isaaclab_arena/tests/test_object_placer_reproducibility.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -306,7 +306,6 @@ def test_random_yaw_init_applied_yaw_matches_selected_candidate():
306306

307307

308308
def test_random_yaw_init_composes_marker_yaw():
309-
"""orientations dict carries total yaw (marker + sampled); applied pose matches it."""
310309
marker_yaw = math.pi / 6
311310
solver_params = RelationSolverParams(max_iters=10, verbose=False)
312311
desk, box1, box2 = _create_test_objects()

isaaclab_arena/tests/test_usd_scale_helpers.py

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -99,12 +99,7 @@ def _test_extract_trimesh_translated_child_nonuniform_scale(simulation_app):
9999

100100

101101
def _test_bbox_translated_child_nonuniform_scale(simulation_app):
102-
"""BBox uses ComputeLocalBound * scale (post-transform scale on root-local extents).
103-
104-
For a child translated +1 with verts ±0.5: root-local bound X=[0.5, 1.5], * scale_x=2 → [1.0, 3.0].
105-
Note: mesh path scales per-prim verts first → X=[0.0, 2.0]. These differ for translated children
106-
under non-uniform scale. AABB is conservative (larger), which is safe for collision checks.
107-
"""
102+
"""AABB is conservative vs mesh path for translated children under non-uniform scale."""
108103
import tempfile
109104

110105
from pxr import Gf, Usd, UsdGeom
@@ -181,7 +176,6 @@ def _test_bbox_translated_child_nonuniform_scale(simulation_app):
181176

182177

183178
def _test_both_paths_agree_origin_prim(simulation_app):
184-
"""For an origin-centered single prim, mesh and bbox agree exactly."""
185179
import tempfile
186180

187181
from pxr import Gf, Usd, UsdGeom

0 commit comments

Comments
 (0)