diff --git a/isaaclab_arena/assets/object_base.py b/isaaclab_arena/assets/object_base.py index 7fe86a7ca..9e2cbc7a8 100644 --- a/isaaclab_arena/assets/object_base.py +++ b/isaaclab_arena/assets/object_base.py @@ -204,7 +204,7 @@ def get_object_pose(self, env: ManagerBasedEnv, is_relative: bool = True) -> tor Returns: The pose of the object in each environment. The shape is (num_envs, 7). - The order is (x, y, z, qw, qx, qy, qz). + The order is (x, y, z, qx, qy, qz, qw). """ # We require that the asset has been added to the scene under its name. assert self.name in env.unwrapped.scene.keys(), f"Asset {self.name} not found in scene" diff --git a/isaaclab_arena/relations/object_placer.py b/isaaclab_arena/relations/object_placer.py index 7d54db27d..802cc4156 100644 --- a/isaaclab_arena/relations/object_placer.py +++ b/isaaclab_arena/relations/object_placer.py @@ -78,7 +78,7 @@ def place( placement (one layout per env). result_per_env: When True (default), each environment gets a distinct layout. When False, a single best layout is solved and applied - identically to all environments (useful for deterministic evaluation). + identically to all environments. Returns: PlacementResult when a single layout is produced (num_envs=1 or diff --git a/isaaclab_arena/relations/relations.py b/isaaclab_arena/relations/relations.py index 569fbd9ee..7faa0cf58 100644 --- a/isaaclab_arena/relations/relations.py +++ b/isaaclab_arena/relations/relations.py @@ -125,7 +125,7 @@ class NoCollision(Relation): Note: Loss computation is handled by NoCollisionLossStrategy in relation_loss_strategies.py. - NOTE: RelationSolver._compute_total_loss iterates every relation on every object with no + TODO(zhx06): RelationSolver._compute_total_loss iterates every relation on every object with no deduplication. If both A.add_relation(NoCollision(B)) and B.add_relation(NoCollision(A)) are present, loss is computed twice. Bidirectional NoCollision can also make the relation graph cyclic and cause issues when creating the environment. Deduplication and/or