Isaac Simulation Gate issue

Isaac Sim Version

5.1.0

Operating System

Ubuntu 24.04

GPU Information

  • Model: NVIDIA GeForce RTX 3070
  • Driver Version: 545.29.06

Topic Description

I want to use the Isaac Simulation Gate node to control camera FPS.

Detailed Description

I created an Action Graph based on this tutorial. According to the documentation, a Simulation Gate step size of 2 means that downstream nodes should be ticked every other frame. However, in my case this parameter does not seem to have any effect: whether I set it to 2 or any other value, I still observe almost the same publishing frequency. How can I actually change the publish rate using this parameter?

Steps to Reproduce

  • Create an Action Graph with On Tick, Isaac Simulation Gate, Isaac Create Render Product, and ROS Camera Helper nodes

  • Launch the simulation

  • Compare the frequency and timestamps of the image publisher with other topics that are not behind the Simulation Gate (in my case, the clock message)Screenshots or Videos

ros2 topic hz output for camera publisher and clock

@liubimov.maksim.s did you set use_sim_time to true in the terminal that you checked the ros2 topic hz? Could you please show the timestamp in the published message as well?

Yes, I tried use_sim_time. It affects the absolute value of frequency, but the frequency is still similar to other topics without the simulation gate. The results and timestamps are shown below. For these screenshots, I set step = 5 in the simulation gate configuration

@liubimov.maksim.s thanks! I am able to replicate this issue. Let me reach out to the internal team.

@liubimov.maksim.s The simulation gate node here won’t effectively do anything since the helper nodes setup the complicated post process graphs automatically and are only meant to run once. If the helper nodes are ticked a second time they will simply return (as the post process graphs has already been created).
You can try opening the PostProcess SDG graph in the background. Explained in this section: ROS2 Setting Publish Rates — Isaac Sim Documentation

Could you try again with the simulation gate node that’s setup in the SDG post process graph?

Ok, I’ll try it soon

Thanks, I see how frameSkipCount affects the SDG graph. Just to confirm: does the camera rendering still run every render frame, with only ROS publishing being skipped?

I plan to run the simulation at 100 Hz with many cameras and am concerned about performance. Is there a way to reduce the actual camera render rate, or is rendering always performed every frame?

Yes. frameSkipCount only affects the ROS publishing rate.

If you want the camera rendering rate to be different from the simulation frame rate, It likely wouldn’t be real time anymore. If you are fine with that then the best thing to do is to run Isaac Sim in standalone and set physics dt, rendering dt, etc. It will run slower wall clock but the simulation stepping clock would be accurate.

You can also refer to this handbook for Isaac Sim optimization Isaac Sim Performance Optimization Handbook — Isaac Sim Documentation

Thanks for the clarification. This approach also works for my use case: I have several devices with different frame rates, so adjusting the simulator frame rate and using frameSkipCount for the others is acceptable for me

Thank you for the explanation and the reference!