Our current problem with Isaac Sim is that the simulation time is too slow and does not match the real-time speed of our robot. It was recommended that we change the Min Simulation Frame Rate. We are looking to use 60 FPS. The posting How to speed up simulation in Isaac-Sim says use the API call world.set_min_simulation_frame_rate(frame_rate). Unfortunately our ~/.local/share/ov/pkg/isaac_sim-2022.2.0/exts/omni.isaac.core/omni/isaac/core/world/world.py does not contain this function. I have tried setting the frame rate via this API call: world.set_simulation_dt(physics_dt=(1/60), rendering_dt=(1/60)), but this has no effect on the values that are in the Isaac Sim UI.
In the Isaac Sim UI both Window->Physics->Settings->[Min Simulation Frame Rate] and Edit->Preferences->Rendering->[UI FPS Limit] always have the value 240, no matter what values we place in our start-up script for physics_dt or rendering_dt. If I change these values in the UI, this seems to have no effect on the currently loaded simulation. Is there another API call to make that will allow control over these two frame rate values ?
Thanks for any help.
Hi @david.bellis - May I know why you are using the older version of Isaac Sim? the latest is Isaac Sim 2022.2.1. There is one more release coming up in the first half of October.
Now to answer to your question, the Isaac Sim API does not currently provide a direct method to set the “Min Simulation Frame Rate” or the “UI FPS Limit” through a script. These settings are typically adjusted manually through the Isaac Sim UI.
However, you can control the simulation speed by adjusting the physics time step (dt). The physics time step is the duration of time that passes in the simulation for each step of the physics engine. By default, Isaac Sim runs the physics engine at 60 steps per second, which corresponds to a time step of 1/60 seconds. If your simulation is running slower than real-time, you can try decreasing the physics time step to speed up the simulation.
Here’s how you can set the physics time step in your script:
from omni.physx import _physx
_physx.get_physx_interface().set_timestep(1/120) # for 120 FPS
Please note that decreasing the physics time step will increase the speed of the simulation, but it may also decrease the accuracy of the physics simulation. If your simulation involves complex physics interactions, you may need to find a balance between simulation speed and accuracy.
As for the “UI FPS Limit”, this setting controls the frame rate of the Isaac Sim UI and does not affect the speed of the physics simulation. Currently, there is no API to set this limit programmatically. You can try adjusting this setting manually in the Isaac Sim UI to see if it improves the performance of the UI.