Get_measured_joint_forces() gives wrong values if GPU is used instead of CPU

I’ve encountered an issue when using the get_measured_joint_forces() function in a setup with two rigid cubes connected via a fixed joint. The two cubes each have a mass of 1, and one is fixed to the world. Gravity is set to 9.8 m/s².

When I measure the joint forces without GPU simulation, the z-direction force is correctly measured as 9.8 N, which is expected due to gravity. However, after adding a ParticleSystem and switching to GPU computation, the same force measurement returns a value of -1.5258789e-05 instead of 9.8 N. The setup remains identical in both cases except for the inclusion of the ParticleSystem and GPU usage.

Steps to reproduce:

  1. Create two rigid cubes, each with a mass of 1.
  2. Fix one cube to the world.
  3. Connect the two cubes via a fixed joint.
  4. Use get_measured_joint_forces() to measure the joint forces:
  • Without GPU computation: z-force is measured as 9.8 N.
  • With GPU computation (after adding ParticleSystem): z-force is measured as -1.5258789e-05 instead of 9.8 N.

Is there an explanation for this discrepancy when using the GPU? Is there something I might be missing in terms of ParticleSystem or joint force measurement compatibility with GPU?

Thank you for your help!

1 Like

I have the same issue. Forces get reported correctly with CPU dynamics and are wrong with GPU dynamics. Is there any update on this?

Hi, sorry for the delay,

I tried the following setup.

I created a physics scene
I created a Shape cube, I added a mass API and a Rigid Body API
I did the same for cube_1

I then created a fixed joint with cube and World → fixing the cube to the world
I then created a second fixed joint connecting cube to cube_1

I then tried to execute get_measured_joint_forces but this is only available to articulations. I am using IsaacSim 4.5. How are you executing the function get_measured_joint_forces ? Are you executing it in the Script Editor of IsaacSim and what are the parameters?

Would you mind attaching a USD Stage with the aforementioned cubes and a script that executes the function in question?


Here is my Stage