Isaac Simulator) Physics settings (min simulation frame rate) & physics_scene (time steps per second)

Hi, I’m trying to publish the imu data using omnigraph in Isaac Simulator.

So, I handled the parameters like below figure.

  • Physics Settings : Min Simulation Frame Rate (240)
  • PhysicsScene : Time Steps Per Second (240)

After that, I can publish the imu sensor data to 240 hz. But Like below video, the robot vibrates too much when it stop especially.

Is there any solution to fix this vibration problem?
Please help me!

@AlesBorovicka I’m really sorry for tagging you… But I eagly want to solve this problem… for our work. So Would you give me some advice for this problem?

Is there any solution to solve this problem?
Thank you so much… :)

Hi,
No worries, I am here to help :-)
What robot are you using? I tried to repro with Kaya robot, but I did not see this problem.
So with the settings - min frame rate 240 and time steps per seconds 240 PhysX is doing one simulation step at this frequency. However the rest of the update loop is still running at the variable step.
The problem might be caused by two issues:

  1. PhysX is having a problem to simulate at this frequency, you can try to change the values to 60 to see if the problem persists. One can also play with GPU vs CPU simulation or TGS vs PGS solver toggles. If you open Window->Simulation->Debug you can override the settings there for quick testing
  2. Something else is touching the camera transformation at a different rate, you can try in the rendering settings set the fixed rate to 240 and enforce the fixed rate.

What robot are you using? I can try to repro this issue and see what can be done. Sorry for the trouble.
Regards,
Ales

Thank you so much for reply me!

Now, I use the carter_v1 ( two wheel model ) like below figure.
image

In my case, I handled the above two parameters. to 240 in the multi-robot hospital example scene. In that case, when the simulation starts, the robot vibrates a lot even though the robot stopped. And also when i use the “teleop_twist_keyboard” method to navigate the robot and use the “j”/“l” buttons, also the robot vibrates alot while it rotating left/right.

And when i set the above two parameters to ~ 90, the robot does not vibrate. But over 90, the robot starts to vibrate a lot. But because I’m trying to publish the imu sensor data to over 200hz, so i couldn’t decrease both parameter to under 200… T…T

Thank you so much!

Thanks I was able to reproduce the issue. It looks like to be related to cylinders being simulated as custom geometry. Please change the behavior of the cylinders to use convex approximation instead, this can be done in the physics settings:

Please give it a shot, this seems to now simulate correctly to me.

Hope that helps.
Ales

That method solved this problem!!

I uncheck the “Cylinders As Custom Geometry” in Collision, and then the robots does not vibrate!

Thank you so much… :)

And then I want to ask you what is the purpose of that function?
When do we have to use that function (cylinders as custom geometry) ?

So a custom cylinder is simulated differently the a convex approximation. There are situations where the cylinder behavior is better because its not just approximated.
To illustrate the different behavior I would recommend you to check our Custom Cylinder demo, see Window->Simulation->demos then custom cylinder demo.
The custom cylinder contacts are computed based on a combination of capsule and box collisions and produce expected behavior on the edges, it rolls nicely. But its a CPU only feature for now and seems like to still have some side effects. I did created internal ticket for the PhysX SDK team to investigate further.
Regards,
Ales

1 Like

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.