That makes sense. But what I don’t understand, is why the object positions and/or orientations change at all.
I position the objects with the before mentioned functions and when I afterwards check the current position with the following code, they are at the specified position:
matrix: Gf.Matrix4d = omni.usd.get_world_transform_matrix(prim)
translate: Gf.Vec3d = matrix.ExtractTranslation()
rotate: Gf.Vec3d = matrix.ExtractRotationQuat()
After that, I create the fixed joints and don’t move the objects afterward or anything like that.
What I would expect for the fixed joints is to hold the relative positions that the objects had, right before I created the fixed joints. But instead, the position is different.
Do I have to initialize the joints differently or position the objects in a different way?