Hi,
I want to perform some simulation tasks of robot manipulation.
Is there a way to load some objects in the dataset (such as YCB, etc.) to Isaac Sim
Hi…
It is possible to import assets to Isaac Sim.
There is a section about it in the documentation: Importing Assets into Kit
Also, the next example shows how to import and setup the apple form YCB dataset in Isaac Sim.
-
Unzip and copy the 013_apple folder to Isaac Sim / Nucleus
-
Select Import on the top-left side of the Content tab and choose the 3D file to be imported (supported formats are: FBX, OBJ, GLTF, and LXO)
- Adjust some parameters and press Import. The name wrote bellow Create Folder checkbox will be the name of the exported folder in omni:/Isaac path
- Open the created USD asset (omni:/Isaac/apple/textured.usd), select the Root XForm and adjust some visual parameters; like X, Y, Z scale to 100.00 (maybe there are some differences with the scale units between the USD and the OBJ object, I don’t know, just I’m guessing). Note: the
F
key center the selected object in the viewport
- Adjust some physics properties to allow interaction in the simulation. In this previous post there is some discussion about setup the PhysicsAPI , CollisionAPI , MassAPI:mass components. Also, change (or not) the mass and the mesh collision. Then Save/Save As… the changes. Note: to visualize the mesh set the “Show collision shapes” to “Selected” on the PhysX debug windows (Menu: Physics > PhysX Debug Window)
Finally, the next image shows how the imported and configured apple falls into the bin (ur10_bin_filling.usd stage)
Thank you for detailed answer, it looks great!
Hi,
Sorry to interrupt again.
I followed your steps and it looks good, now I want to know is there a way to import assets in batches instead of manually importing each asset? Need to write a script?
Hi…
As far as I know, there is not anything related to import assets via scripting in the Kit Programming Manual.
But, after doing some search I found the extension folder that contains the code of the Asset Import:
/isaac-sim/_build/target-deps/kit_sdk_release/_build/linux-x86_64/release/extensions/extensions-other/omni/assetimport
Even when the core of this package is a human unreadable compiled file (_assetconverter.cpython-36m-x86_64-linux-gnu.so
), there is some desciption in assetconverter/__init__.py
file (Note: I haven’t tested this code so I don’t know how it works)
"""This module contains bindings to omniverse_asset_converter.dll interface.
The function convert asset file which identify by `in_filename` to usd file which identify
by `out_filename`. Currently, only fbx and obj are fully tested.
>>> import assetconverter
>>> import asyncio
>>> with assetconverter.OmniAssetConverter(in_filename, out_filename) as future:
>>> status = assetconverter.OmniConverterStatus.eOK
>>> while True:
status = assetconverter.omniConverterCheckFutureStatus(future)
if status == assetconverter.OmniConverterStatus.eInProgress:
await asyncio.sleep(0.1)
else:
break
if status == assetconverter.OmniConverterStatus.eOK:
pass # Handle success
else:
pass # Handle failure
"""
I hope this is useful to you…