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.