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.

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.
p2

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

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,