OpenUSD orientXYZ and rotateXYZ with same degrees have different result

Isaac Sim Version

4.2.0

Isaac Lab Version (if applicable)

None

Operating System

Ubuntu 24.04
Ubuntu 22.04
Ubuntu 20.04
Windows 11
Windows 10
Other (please specify):

GPU Information

  • Model: RTX 4070 TI Super
  • Driver Version: 550

Topic Description

Here are 3 cubes with the same transformation that i exported from houdini to .usda (readable format):

  • 1 with a tranform matrix4d
  • 1 with a rotateXYZ (euler angles): (5, 10, 15)
  • 1 with an orientXYZ (quaternion): (0.987228, 0.0317164, 0.0919997, 0.126137)

As you can see in omniverse all cubes have the same orientation but omniverse converts the WXYZ components of the quaternion by default to ZYX. There is no option to change this. You should see (5,10,15) instead of (2.301, 10.932, 14.342)

Here are the calculated quaternions with euler angles 5,10,15 (X,Y,Z):

XYZ: (0.9862358505202384, 0.05444693224342944, 0.08065606284759969, 0.1336748975829986)
ZYX: (0.9872282881762724, 0.03171637284819485, 0.0919996771632968, 0.12613658517555598)

Files

Below you can find the .usda with all 3 cubes in with each a different transform in:
omniverse_cubes.zip (196.5 KB)

Screenshots or Videos

In the following video you can see what I mean:

Is the problem simply that the values from “Display Orient As Euler Angles” are incorrect for the “cube_orient” cube? Or are there other issues? How do you tell the cubes are not overlapping?

@VickNV, Sorry I removed the “(no overlapping boxes)” from the title, avoiding confusion.

All 3 boxes have the same orientation, but the issue is that the cube with the “orient” (quaternion) is displayed as Euler ZYX instead of the normal XYZ. In the video you can see when selecting the cube with the “orient” attribute, the Euler angles are not (5,10,15) but something else. This is because omniverse interprets the quaternion as ZYX.

The solution to this problem is that the default display is XYZ instead of ZYX with the option where you can choose the rotation order, like you can do with the cube using only Euler angles. Currently there is no option to set the default in the settings or change the display order in the inspector.

@benjamin.yde I believe this is a bug. Take a look at Simplychenable comment here to my question:

The post you linked, mentioned the same problem, but it does not resolve the problem at all.
When you use the orient attribute, the rotation order of the quat is in ZYX and not XYZ…
You “solution” of this post just avoids using an orient and proposes using TRS instead using euler angels.
To solve the issue there are 2 solutions:

  • Change the default orient/quat >> euler conversion to XYZ instead of the ZYX.
  • Add an option to the orient/quat to change the Euler rotation order so you can switch from ZYX to XYZ.
    → + add an option in the preferences to make this a default.