Custom ROS2 RTX Radar Omnigraph Node: Data only publishes correctly after Simulation Reset/Replay

Isaac Sim Version
5.0.0

Operating System

Ubuntu 22.04

GPU Information

  • Model: NVIDIA GeForce RTX 3090
  • Driver Version: 570.190

Topic Description

Custom ROS2 RTX Radar Omnigraph Node only publishes data correctly after Simulation Reset/Replay.

Detailed Description

I am developing a custom extension and a custom OmniGraph node to publish RTX Radar data to a ROS2 PointCloud. My custom node logic is designed to function similarly to the standard ROS2 RTX Lidar Helper node.

I have encountered an issue where the radar data fails to publish correctly on the first run of the simulation. It only publishes a single point (Width: 1, Height: 1). However, if I stop the simulation and immediately play it again (Reset/Replay), the data streams perfectly with the expected point cloud density.

Setup & Environment:

  • Isaac Sim Version: 5.0

  • ROS Version: ROS2 Humble

  • OS: Ubuntu 22.04

Action Graph Configuration: My Action Graph is set up as follows:

  1. On Playback Tick triggers the execution.

  2. Isaac Create Render Product is called.

  3. Custom Radar Node (Input: Render Product Path, Output: ROS2 Publisher).

The Radar Prim is correctly attached to the Render Product camera.

Observed Behavior (See Attached Video):

  1. First Play: When I press Play, ros2 topic echo /scan returns a message with width: 1, height: 1, and an empty/zeroed data array. It seems the render buffer is not being accessed correctly or is empty.

  2. Stop & Replay: I stop the simulation and press Play again without changing anything.

  3. Result: The ROS2 topic immediately begins flooding with correct, dense radar data.

EDIT 1: With a fresh environment if i just attach on playback tick with create render product node, and give the radar prim to the render product node. And later after i play and stop / reset the simulation and then attach my custom omnigraph node, It start to give the data in very first iteration of attaching the custom node. (May be this observation helps)

Questions:

  1. Is there a specific initialization flag or “warm-up” frame count required for the Isaac Create Render Product node before a downstream custom node can access its data?

  2. Why does the Render Product appear to return a valid but empty (1x1) buffer on the first cold start, but a populated buffer on a warm start?

  3. Are there recommended checks I should add to my custom node to ensure the Render Product pointer is actually ready to serve data before I attempt to publish?

Any insights on ensuring the data is available on the very first frame would be appreciated.

Screenshots or Videos

I have attached the video clearly showing the issue.

@zhengwang @VickNV

@samarth.shukla do you observe the same issue on Isaac Sim 5.1?

@zhengwang for 5.1 it is worst, here (5.0) atleast we were able to find the pattern but on 5.1 data comes very random, without changing anything (therefore we shifted from 5.1 to 5.0).

The same custom node and action graph worked when we tried to change the OmniRadar to OmniLidar, and in Writer we also changed RTXRadar RTXLidar. Rest all the code was same and this time it worked.

For case of radar this issue is coming. And this is coming from very start that when there is no data being published on that case annotator is not giving data, this has been verifed.

Is this issue something of renderer or hydra texture or version specific ?

@samarth.shukla I don’t really see this issue with RTX lidar. Could you please share your file with your customized radar node so we can take a look.

Thank you @Zhengwang , Yes this issue doesn’t come with Lidar as i mentioned, with current custom node for radar if we just change the radar sensor input → Lidar sensor input and RTXRadar writer → RTXLidar writer. It worked succesfully on one go.

I can’t share the customized radar node file as it is internal IP, until release. But to reproduce the same issue, I would suggest if you want to replicate you can use the RTXLidarHelper node and change the sensor type OmniLidar → OmniRadar and changing the writer name from RTXLidar → RTXRadar. you can replicate the whole process.

I will also urge you to go with both 5.0 and 5.1 and check behavior on both the cases.

Thank you

Thanks @samarth.shukla. I am able to replicate your issue. But I am not sure if this “hack” of ROS2 RTX Lidar Helper is the correct way to do it. Let me reach out to the internal team

Thanks @zhengwang but what we have understand that is not the issue of the node. Its been coming when we create create render product. But it is good you are able reproduce this.

@samarth.shukla the internal team is able to replicate this issue with 5.1 as well. A suggestion from the internal team: could you please try with zero-frame delay?

Thank you, sure will try and update you