What do Unit Converter Utility work? Does USD have absolute size information?

Default units of Isaac Sim is meter, while other Omniverse apps as centimeter.

I used USD Unit Converter, because I want to edit a USD file made at Create in Isaac Sim with maintaining same scale.

https://docs.omniverse.nvidia.com/app_isaacsim/app_isaacsim/ext_omni_isaac_unit_converter.html

First, I made a cube has 1 x 1 x 1 cm with Create.


But after I opened that file with Isaac Sim and applied Unit Converter (enter “New Meters per Unit” and press “PROCESS”), Measure Tool still showed 100 x 100 x 100 cm.

Is Unit Converter what changes scale of objects in a lump?
If I want to edit USD in Isaac Sim with same scale with other Omniverse apps, I should transform magnification as x 0.01 for each objects?
Additionally, USD has no absolute size information?
I think a object in USD file shows different absolute sizes for each Omniverse apps.

Thank you for your kindly support.

1 Like

Here is additional information.

I made that cube with Creo Parametric, and export to Create via Creo Connector.
Then I saved exported cube as USD file.

After I submitted above post, I made 1 x 1 x 1 cm cube with Create.
I opened this file with Isaac Sim, it showed 1 x 1 x 1 cm without Unit Converter.
With CAD Converter to import PRT file made at Creo, it showed same size both in Create and Isaac Sim.

As a result, USD maintain absolute size information, but it is lost through PTC Creo connector.

Then, I still can’t understand what Unit Converter do.

As for the Unit Converter let me tag @rgasoto for comments.

But in general the convertor and units work on the USD metersPerUnit metadata. Each USD file does have metersPerUnit settings that define in what units that file is. The USD converter and in next release MetricsAssembler will try to convert based on the metersPerUnit of the current stage and the input USD file.

So it is important that the exported fills in the right metersPerUnit - units in which the asset was authored so that the converter knows how to convert.

You can see the metersPerUnit if you in the layer window select the root layer, then in properties panel you will see the metersPerUnit (for m its 1, for cm its 0.01).

This is the units/size information USD does have, there is no absolute value, all the values should be authored with respect to the USD file metersPerUnit setting.

For next release we plan to release MetricsAssembler extension that will try to detect mismatched units and will try to add correction both to sizes and physics parameters like velocity, density etc. As far as I know this should the IsaacSim converter already do, so maybe the metersPerUnit information is not right.

Regards,
Ales

Thank you @AlesBorovicka .

I verified Creo Connector and CAD importer again with attention to Meters Per Unit (MPU).

First, I made 10 mm x 10mm cube with Creo Parametric.


I exported that cube file from Creo to Omniverse (then, an USD file of cube was created under "localhost/Users/$username/SendToView/).
Then, I opened that USD file with Create, and I found MPU was 0.01 (so, each sides of the cube was 1 cm).

I opened the USD file with Isaac Sim, its MPU showed 1.0 (so, each sides of the cube was 100 cm).

After this, I entered value “0.01” into MPU of Isaac Sim, I found each sides of the cube became 1 cm.

So, I understood, as you said, in USD, absolute size of object was defined dependently on its MPU.

In addition, I saved that cube file as IGES by Creo Parametric.
And I imported the IGES file to Create and Isaac Sim via CAD importer.
Then, I found same phenomenon about MPU and size of the cube.


After this, I saved the file after importing the IGES file as USD with Create.
And I opened that USD file with Isaac Sim, I found MPU was 0.01.

I also found that MPU of an USD file saved as another file from generated USD file by Creo Connector wasn’t fixed between Create and Isaac Sim.


So, it can say that saving USD with Create maintains information of MPU, however, on the other hand, USD file which is generate by Creo Connector doesn’t have fixed information of MPU.
In conclusion, if you want to maintain size of object made by Creo between Create and Isaac Sim, you should set MPU directly, or use CAD Importer and save USD file with Create.

I think, Creo Connector may have room for improvement about MPU.
And also I’m looking forward to Metrics Assembler.

Best regards,