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
It is possible to import assets to Isaac Sim.
There is a section about it in the documentation: Importing Assets into Kit
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
Fkey 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!
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?
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:
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…