Hello,
I am trying to get the object_id of points generated by the RTX Lidar by doing the following:
render_product = rep.create.render_product(lidar.GetPath(), [1,1])
annotator = rep.AnnotatorRegistry.get_annotator("RtxSensorCpuIsaacCreateRTXLidarScanBuffer",
init_params={"outputObjectId": True,
"transformPoints": True,
"keepOnlyPositiveDistance": True})
annotator.attach(render_product)
annotators.append(annotator)
writer = rep.writers.get("RtxLidarDebugDrawPointCloudBuffer")
writer.attach(render_product)
extracted_data = annotator.get_data()
pointcloud_positions = extracted_data["data"]
instance_ids = extracted_data["objectId"]
for i, instance_id in enumerate(np.unique(instance_ids)):
prim_path =acquire_syntheticdata_interface().get_uri_from_instance_segmentation_id(instance_id)
I realized that I am getting for instance_id = 0 a lot of points pertaining to different instances. In the example below, I only have in a .usd scene a single instance. Yet, instance_ids = extracted_data[“objectId”] gave me 2 instances [0, 1].
When I plotted the points pertaining to both instances 0 and 1, I got the following:
These points should have the same instance ID as they are the same instance.
How can this issue be solved?
Best,
Anthony