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:
-
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?
-
Regarding the data ordering: Does the sequence of the points in the buffer strictly represent their generation/firing order?
-
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.
