Hi,
I am simulating a 4-wheeled robot in Isaac Sim 2023.1.1. The movement is controlled via a articulation and differential controller which get a input linear velocity of 0.4 m/s. When i check the speed via the build in Inspect Physics tool it says that the robot moves with 0.4 m/s. However if i let the robot drive a given distance the robot takes approximately double the expected time.
The attached picture shows my setup. I measured a distance of 4 meter and let the robot drive the distance. I expect the robot to take 10 seconds but i takes ~19 seconds.
One thing that i found out is that, if i lower the amount of Physics Time Steps Per Second the simulation gets more accurate. With only 5 Steps per second the robot is able to move the 4 meters in almost 10 seconds. However this is not suitable as the robot now moves really jerkily.
What is happening is that you are getting a slower than realtime simulation - You can verify that by the FPS at the top being around 28-30fps. By default isaac sim simulations run at 60 steps per second, so you are running at about 50% realtime speed, which is consistent with ~19 seconds vs the expected 10 seconds.
There are other ways the simulation can be sped-up. Some of them are on experimental stage and you can access them through command line, but they may create some artifacts on the render and UI that can be confusing if you are not expecting them. If you are interested in trying that out please let me know.
Thank you for your explanation. My plan is to use Isaac Sim as a hardware-in-the-loop simulation of a robot that is coupled to the real robot. This would mean that the robot must show exactly the same behavior in the simulation as in reality. I have three questions in this regard:
does this mean that the FPS must always be higher than the number of simulation steps per second to avoid the simulated robot traveling a shorter distance than the real robot?
would a solution to this problem be to run the simulation on better hardware?
how do large simulations work, e.g. where several hundred logistics robots are simulated in a warehouse? Wouldn’t the same thing happen here?
It would be great if you could tell me the possible solutions you mentioned, as it is crucial for me that the robot in the simulation moves exactly as expected to synchronize the virtual and real world.