File System
New/Clean Stage
await omni.usd.get_context().new_stage_async()
await omni.kit.app.get_app().next_update_async()
Call with corountine:
asyncio.ensure_future(self._create_moveit_sample())
Open stage with USD file
success, error = await omni.usd.get_context().open_stage_async(usd_path)
if not success:
raise Exception(f"Failed to open usd file: {error}")
Close stage
(result, err) = await omni.usd.get_context().close_stage_async()
# Assert result == True
Reopen stage
(result, err) = await omni.usd.get_context().reopen_stage_async()
Save stage
tmp_file_path = os.path.join(tmpdirname, "tmp.usda")
(result, err, saved_layers) = await omni.usd.get_context().save_as_stage_async(tmp_file_path)
# or
(result, err, saved_layers) = await omni.usd.get_context().save_stage_async()
# result == True
Export stage
(result, err) = await omni.usd.get_context().export_as_stage_async(tmp_file_path)
Get Server
from omni.isaac.core.utils.nucleus import find_nucleus_server
# import carb
result, nucleus_server_path = find_nucleus_server()
# if result is False:
# carb.log_error("Could not find nucleus server with /Isaac folder")
Import asset .usd
issac-sim
from omni.isaac.core.utils.prims import create_prim
# Add a distant light
create_prim("/DistantLight", "DistantLight", attributes={"intensity":500})
# Add an object from server
create_prim(prim_path="/background", usd_path=self._nucleus_path + "/Isaac/Environments/Simple_Room/simple_room.usd")
# Add an asset from usd_path
prim = create_prim(prim_path = "/Mesh", usd_path=usd_path, scale = np.array([10,10,10]), semantic_label = "mustard")
create
omni.kit.commands.execute(
"CreatePrim",
prim_path="/World/defaultLight",
prim_type="DistantLight",
select_new_prim=False,
attributes={pxr.UsdLux.Tokens.angle: 1.0, pxr.UsdLux.Tokens.intensity: 500},
create_default_xform=True,
)
get server and traverse files
default_server = carb.settings.get_settings().get("/isaac/nucleus/default")
carb.log_info("default_server: " + str(default_server))
path = "http://localhost:8080/omniverse://127.0.0.1/NVIDIA/Materials/"
carb.log_info(f"Collecting files for {path}")
result, entries = omni.client.list(path)
for e in entries:
print("result: ", e.relative_path)