Well, thanks so much for your replies~ @rthaker
But I’m still confused about some concepts(eg. time step/substep/frame rate) and settings(Time Steps Per Second/Min Simulation Frame Rate/Time Codes Per Second/UI FPS Limit/Use Fixed Time Stepping/Frame Rate(Movie Capture)) in Omniverse Isaac Sim. And some settings are as following pictures.
According to omniverse docs(physics-scene and physics-settings), I got the following explanation about the two key settings(Time Steps Per Second/Min Simulation Frame Rate) for simulation control.
Based on the explanation in the two web links, I draw the graph about the workflow of omniverse simulation below, so could you check whether I’m right and correct my understanding about the concepts?
In regard to the workflow graph, what I learned from the omniverse official docs and forums are listed below:
(1) Time Steps Per Second is the setting for physics engine(PhysX) update frequency of simulation scene contents(kinematics and dynamics, eg. collisions) and the update frequency keeps up with the clock real time line.
(2) Min Simulation Frame Rate is the setting for rendering update frequency of simulation scene contents and every frame may consumes the specified(Time Steps Per Second divided by Min Simulation Frame Rate) time steps at most. And setting Min Simulation Frame Rate equals to Time Steps Per Second will make simulation rendering synchronizes with physics engine stepping with same update frequency.
(3) Delta time is coming from every time step of physics engine, and the delta time is variable(about equals to 1 divied by Time Steps Per Second) due to the realtime payload of physics engine as well as simulation content complexity. But the setting can be fixed in rendering setting(Use Fixed Time Stepping).
So am I right?
Then what I’m working on is motor and driver simulation like MATLAB Simulink, the simulation scheme is shown in following picture.
Isaac Sim Stage and OmniGraph node are posted below.
And I need to increase the update frequency of OmniGraph node(MaxonMotorModel and MaxonMotoerDriver) to 200KHz for the simulation, but the node inputs(motor velocity) update only about 100Hz coming from physics engine updating(Time Steps Per Second) even if node updating frequency could reach 200KHz with inner for loop.
What can I do to achieve 200KHz as higher as possible and accomplish the simulation? As far as I know, something could be done for the goal as following:
(1) Set the Time Steps Per Second as higher as possible for reaching 200KHz, but I’m not sure whether this setting could work and something strange will happen. If this could work, so how to configure the simulation settings?
(2) According to some posts in the Nvidia forums put, running in headless mode or multi-thread with GPUs may work. Is this a right way?
(3) Also another post reviews and feedbacks from nvidia official employe which provide the USDRT API for high update frequency, but I have no idea about this method and whether it’s a feasible way.
I’m greatly appreciated and expectant for your reply~