IsaacSim2023.1.1: Access Point cloud data of RTX Lidar

Hello,

I can success to get the Point cloud data on rtx_lidar.py demo based on below link with IsaacSim2022.2.1.
Thank you!

I can get the Point cloud 3D-raw data like below.

p1

But I cannot get the Point cloud data with IsaacSim2023.1.1 from this link guide.
I found ActionGraph Structure is changed on IsaacSim2023.1.1,
Then I tried to change the code like below for new ActionGraph Structure of IsaacSim2023.1.1.

But I cannot get the Point cloud data because of Error Lile below.

Question:
Are there anyone success to get the Point cloud data with IsaacSim2023.1.1?

I would appreciate if you check the behavior with IsaacSim2023.1.1.


Best regards,

@mat-h i am not as experienced with Isaac Sim, but i came across these docs and not sure if they are relevant:

https://docs.omniverse.nvidia.com/isaacsim/latest/features/sensors_simulation/isaac_sim_sensors_rtx_based_lidar/annotator_descriptions.html#annotators

https://docs.omniverse.nvidia.com/isaacsim/latest/features/sensors_simulation/isaac_sim_sensors_rtx_based_lidar.html#how-they-work

Hi,

Thank you very much for your feedback.
I also checked below links.
RTX Lidar Synthetic Data — Omniverse IsaacSim latest documentation 3
RTX Lidar Sensor — Omniverse IsaacSim latest documentation 2

But it seems to be not included how to get point cloud data and out to console(terminal) of IsaacSim2023.1.1 samples like below.
https://docs.omniverse.nvidia.com/isaacsim/latest/features/sensors_simulation/isaac_sim_sensors_rtx_based_lidar.html#how-they-work

So, I would appreciate if you tell us how to get the point cloud data of like below example IsaccSim2023.1.1.
https://docs.omniverse.nvidia.com/isaacsim/latest/features/sensors_simulation/isaac_sim_sensors_rtx_based_lidar.html#how-they-work


Best regards,

The PointCloudData output is now called ‘data’ to standardize it with our other annotators. And it is now a pointer to the point cloud data instead of a vector to avoid extra data copies.

Here is an example of how you would create a lidar and get the point cloud data from it, based on the How They Work section of the docs.

import omni.kit.commands
from pxr import Gf
import omni.replicator.core as rep
lidar_config = "Example_Rotary"

# Create The Camera
_, sensor = omni.kit.commands.execute(
    "IsaacSensorCreateRtxLidar",
    path="/sensor",
    parent=None,
    config=lidar_config,
    translation=(0, 0, 1.0),
    orientation=Gf.Quatd(1,0,0,0),
)
# Create and Attach a render product to the camera
render_product = rep.create.render_product(sensor.GetPath(), [1, 1])


# Create Annotator to read the data from with annotator.get_data()
annotator = rep.AnnotatorRegistry.get_annotator("RtxSensorCpuIsaacCreateRTXLidarScanBuffer")
annotator.attach(render_product)

# This is the new part, it actually gets the data from the annotator and prints the point cloud data.
# When the data changes, you have to fetch it again, i.e. every frame if you want it.

data = annotator.get_data()
print(data["data"])

Hi,

Thank you very much for your kindness.
I really appreciate your help.

I’d like to check the behavior with your feedback.

Best regards,

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