Incompatibe xform ops for USD file for online data generation

I’m loading in an asset for synthetic data generation. However, after loading in the asset, IsaacSim reports that it is unable to determine the xform ops for the object. I am then unable to translate or otherwise move the object.

In the tutorial for replicator Online Data Generation, an asset is loaded in using load_single_asset as detailed in the tutorial. I have been unable to test this with shapenet, but in trying to adapt this with my own USD assets, I receive this warning and sometimes it complains about unknown constants:

2022-03-26 06:49:12 [11,068ms] [Warning] [omni.usd] Warning: in _GetOrAddCommonXformOps at line 886 of /buildAgent/work/ca6c508eae419cf8/USD/pxr/usd/usdGeom/xformCommonAPI.cpp -- Could 
not determine xform ops for incompatible xformable </World/Asset/mesh0>

2022-03-26 06:49:12 [11,083ms] [Warning] [rtx.neuraylib.plugin] [MDLC:COMPILER]   1.0   MDLC   comp warn : /home/djones/proj/boxnet_v2/src/data/digital_asset_library/Box_Collection_01/02_Exchange_Data/OmniUe4Function.mdl(1203,14): C182 unused constant 'B' 
...

This error occurs when trying to call UsdGeom.XformCommonAPI(asset).SetTranslate((x, -box_min_y, z)). Assuming it was my assets not being in line with this XformCommonAPI, I tried using one of the assets from omniverse provided by IsaacSim only to run into the same problem:


In this screenshot, you can see that the dolly isn’t on top of the ground, despite there being code to translate the model such that it will not be clipping the ground this way.

Here is a 79-line minimal script that reproduces this issue. I have no trouble using load_single_asset with a blank world using the GUI and doesn’t report anything about not being able to determine xform ops, so I’m really at a loss as to why this is happening.

1 Like