‘Invalid prim ‘null prim’' error

Isaac Sim Version

4.2.0

Operating System

Ubuntu 22.04

GPU Information

  • Model: NVIDIA RTX A500
  • Driver Version: 550.120

Error in ‘pxrInternal_v0_22__pxrReserved__::UsdPrim::_ApplyAPI’ at line 450 in file /builds/omniverse/usd-ci/USD/pxr/usd/usd/prim.cpp : ‘Invalid prim ‘null prim’’

Description

I am getting this error. I am trying to generate synthetic dataset for wooden pallet and I am following Pose estimation dataset generation tutorial. I have made changes in posegeneration.py and dope_config.yaml and test_dope_config.yaml.

def _setup_train_objects(self):
        # Add the part to train the network on
        train_part_idx = 0
        for object in OBJECTS_TO_GENERATE:
            for prim_idx in range(object["num"]):
                part_name = "pallet"
                ref_path = "/home/kick/Downloads/wooden_pallet_models/pallet.usdz"
                print("\n" + "\n" + "\n" + ref_path + "\n" + "\n")
                prim_type = f"_{part_name[1:]}"
                print("\n" + "\n" + "\n" + prim_type + "\n" + "\n")
                if self.writer_helper == YCBVideoWriter and prim_type not in config_data["CLASS_NAME_TO_INDEX"]:
                    raise Exception(f"Train object {prim_type} is not in CLASS_NAME_TO_INDEX in config.yaml.")

                path = "/World/" + prim_type

                mesh_path = path + "/" + prim_type
                name = "train_part"
                self.train_part_mesh_path_to_prim_path_map[mesh_path] = path

                train_part = DynamicObject(
                    usd_path=ref_path,
                    prim_path="/World/_allet",
                    mesh_path="/World/_allet/Meshes",
                    name=name,
                    position=np.array([0.0, 0.0, 0.0]),
                    scale=config_data["TRAIN_PART_SCALE"],
                    mass=1.0,
                )

                train_part.prim.GetAttribute("physics:rigidBodyEnabled").Set(False)

                self.train_parts.append(train_part)

                # Add semantic information
                mesh_prim = world.stage.GetPrimAtPath(mesh_path)
                add_update_semantics(mesh_prim, prim_type)

                train_part_idx += 1

                if prim_idx == 0 and self.writer_helper == YCBVideoWriter:
                    # Save the vertices of the part in '.xyz' format. This will be used in one of PoseCNN's loss functions
                    coord_prim = world.stage.GetPrimAtPath(path)
                    self.writer_helper.save_mesh_vertices(mesh_prim, coord_prim, prim_type, self._output_folder)

Error Messages

Traceback (most recent call last):
  File "/home/kick/.local/share/ov/pkg/isaac-sim-4.2.0/standalone_examples/replicator/pose_generation/synthetic-dataset-generate-pallet.py", line 564, in <module>
    dataset = RandomScenario(
  File "/home/kick/.local/share/ov/pkg/isaac-sim-4.2.0/standalone_examples/replicator/pose_generation/synthetic-dataset-generate-pallet.py", line 168, in __init__
    self._setup_world()
  File "/home/kick/.local/share/ov/pkg/isaac-sim-4.2.0/standalone_examples/replicator/pose_generation/synthetic-dataset-generate-pallet.py", line 205, in _setup_world
    self._setup_train_objects()
  File "/home/kick/.local/share/ov/pkg/isaac-sim-4.2.0/standalone_examples/replicator/pose_generation/synthetic-dataset-generate-pallet.py", line 427, in _setup_train_objects
    add_update_semantics(mesh_prim, prim_type)
  File "/home/kick/.local/share/ov/pkg/isaac-sim-4.2.0/exts/omni.isaac.core/omni/isaac/core/utils/semantics.py", line 31, in add_update_semantics
    semantic_api = Semantics.SemanticsAPI.Apply(prim, "Semantics" + suffix)
pxr.Tf.ErrorException: 
	Error in 'pxrInternal_v0_22__pxrReserved__::UsdPrim::_ApplyAPI' at line 450 in file /builds/omniverse/usd-ci/USD/pxr/usd/usd/prim.cpp : 'Invalid prim 'null prim''

Files

related files

If I am doing something wrong please tell me and help me in this matter.

Please make sure that the mesh_path variable corresponds to the correct path of the mesh primitive.

Thank you it worked.
If someone is facing the same issue then instead of keeping the object on local system. I uploaded it on my localhost and then copied the url in and pasted it in ref_path.
then i opened the object in isaac sim then after selecting the object
prim_path was /scene.
and mesh_path was /scene/Meshes/Sketchfab_model/root/GLTF_SceneRootNode/Wooden_Pallet_0/Object_4/Object_0

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.