When I try modifying the scale of objects non-uniformly, the rotation matrix of these objects are no longer valid (ex: multiplied by its transpose is not the identity. Here’s an example
with rep_item:
rep.modify.pose(
position=rep.distribution.uniform(
(-0.5, -0.5, 1),
(0.5, 0.5, 1),
rotation=rep.distribution.uniform(
(-90, -180, -90), (90, 180, 90)),
scale=np.array([1, 0.5, 0.5]), # <---- non-uniform scaling
)
prim_path = get_node_targets(rep_item.node, "inputs:prims")[0]
prim = world.stage.GetPrimAtPath(prim_path)
object_pose = gf_mat_to_numpy(omni.usd.get_world_transform_matrix(prim)) # <--- Rotation matrix invalid