Isaac Read RTX Lidar Data Node

Hi!

I try to implement a method to get 3d bounding box informations in a lidar pointcloud. However, I encountered the node from RTX Lidar Node Descriptions — Omniverse Robotics documentation and found the output of object ID’s, but do not know what it should represent? Is there a mapping from object ID to prim object? If yes, then I can easily compute the bounding box, knowing which points hit which objects in the scene.

Best regards,
Christof

Can anyone help me here?

Hi there,

sorry for the delayed reply, I have internally forwarded the question to the relevant person. Until then, can you check if the Instance ID coincides with the Object Id? If so, you could read out the mapping from there.

Update: the instance id mapping is different, I will loop back once I have an answer.

Update 2: the instance segmentation id is the same as the object id.

Would the pointcloud, or the 3d bbox annotator work as a temporary workaround?

Best,
Andrei

okay, thank you!

I have already tried the 3d bbox annotator, but I was not able to achieve any results. The data in the dictionary was always empty, so I guess it is not working for lidar pointclouds.

Is it intended to work out-of-the-box for lidar pointclouds? Maybe there is bug somewhere that a connection in the omnigraph is not there anymore

@ahaidu Any new information?

Hi there,

it seems the object_id is the same as the instance segmentation id. Using this function you can for example get the prim path:

from omni.syntheticdata._syntheticdata import acquire_syntheticdata_interface
def object_id_to_prim_path(object_id):
    """Given an ObjectId get a Prim Path

    Args:
        object_id (int): object id, like form a RTX Lidar return

    Returns:
        prim path string
    """
    return acquire_syntheticdata_interface().get_uri_from_instance_segmentation_id(object_id)
1 Like

Thank you!

I will try it out and come back to you if everything has worked as expected.

Hi @ahaidu, your example code helped me out aswell. I was trying to add node Read RTX Lidar Data Node to the post process graph using python.

Something like this is working for Debug Draw Point Cloud which is shown in the standalone examples.

writer = rep.writers.get("RtxLidar" + "DebugDrawPointCloud")
writer.attach([render_product_path])

can you please share an example how i could do a similar thing for Read RTX Lidar Data Node