RTX Lidar Scan Buffer: Timestamp count is half of the point cloud size

Hi everyone,

I am using the IsaacCreateRTXLidarScanBuffer annotator to extract LiDAR data in Isaac Sim, and I’ve encountered an issue regarding the data alignment between timestamps and point cloud entries.

Observed Behavior:

The number of timestamps returned in the buffer is exactly half the number of points in the point cloud.

My code:

        sensor_attributes = {
            "omni:sensor:Core:scanRateBaseHz": 10,
            "omni:sensor:Core:maxReturns": 1,
        }
        self.my_lidar = LidarRtx(
            prim_path="/robot/chassis_link/sensors/XT_32/lidar",
            translation=np.array([0.0, 0.0, 0.0]),
            orientation=np.array([1.0, 0.0, 0.0, 0.0]),
            config_file_name="HESAI XT32 SD10",
            **sensor_attributes,
        )    
        self.my_lidar.attach_annotator(
            "IsaacCreateRTXLidarScanBuffer",
            outputIntensity=True,
            outputTimestamp=True,
        )

My Questions:

  1. Is this discrepancy caused by the Dual Return (e.g., Strongest and Last return) configuration? Does a single laser pulse firing generate one timestamp but two separate distance points?

  2. Regarding the data ordering: Does the sequence of the points in the buffer strictly represent their generation/firing order?

  3. Is it safe to assume a 1-to-2 mapping between timestamps and points? Specifically, can I simply map the $i$-th timestamp to both the $(2i)$-th and $(2i+1)$-th points in the data array?

Any clarification on how the RTX Lidar internal buffer structures this data would be greatly appreciated.

Let me reach out to the internal team for your questions

Hi, is there any progress on this issue??
I met 8225 points with 4112 timestamps

I also encountered this problem, do you solve it?

We are able to replicate this issue and the internal team is investigating it. Thanks for your patience!

Hello @zhengwang please keep us informed about the investigation. It’s a critical issue for our projects. Really appreciate your help on this matter!

Hi @j.silhouette Could you please try with zero-frame delay to see if that fixes it?

Hi @zhengwang , I tried the suggested method, but no luck: half of points number is still observed. For example:
”Error publishing point cloud: could not broadcast input array from shape (673,) into shape (1346,)”

I meet the same problem with timestamp,

The number of timestamps is less than the number of points or intensity values (around 2n or 2n+1).

How can I correctly obtain a full single scan?

Currently, I detect a full scan using the condition:
(max_az - min_az) > 350

However, the resulting PCD file still appears to be incorrect.

I am using “Lidar/XT32_SD10”

Hi, is there any progress?