Bug Report: A bug occurred while using the RigidObject.set_external_force_and_torque() function

Isaac Sim Version

4.2.0

Isaac Lab Version (if applicable)

1.2

Operating System

Ubuntu 22.04

GPU Information

  • Model: 4090
  • Driver Version: 535.129.03

Topic Description

Detailed Description

When I use the RigidObject.set_external_force_and_torque() function in stages according to the simulation time, I can control the object well in the first stage, but when I enter the second stage from the first stage, the object receives the force and torque of the second stage first and can control the movement of the object well. But after a while can not control, the object seems to be subjected to the first stage of the force and torque, and will continue to superimpose this force and torque, making the acceleration of the object more and more. It feels like the cache of forces and moments in this function is not cleared

Screenshots or Videos

Phenomenon vedio:

Specific values (force and torque is input, object velocity is output):
Where 10-30 is the first stage, 30-90 is the second stage


As can be seen from step 50 onwards, the function does not control the object. This feels like a superposition of the first phase values

Additional Information

What I’ve Tried

At first, I thought it was a problem caused by too many decimal places in the input value. Later, after controlling it to 3 decimal places, the phenomenon slowed down, but it still occurred. Then continue to reduce the decimal place, the effect is minimal.

Thank you for posting this. This is being investigated by the Isaac Lab team, and tracked in this issue. Please use the Isaac Lab issues for these reports. Thanks.

Hello, I may know the cause of this, because when force and torque are used together, it will cause this bug. This bug does not occur when using force alone, or when using torque alone. Hope this phenomenon can help you solve this bug!

I don’t mean that force and torque can’t both be assigned and used in RigidObject.set_external_force_and_torque(). For example, it worked fine when I set up force and torque in phase 1 and accelerated the ball with RigidObject.set_external_force_and_torque on the x and y linear and z angular velocities. However, in the second stage, when you set up force and torque and slow down the balls with RigidObject.set_external_force_and_torque, it can develop this bug. This bug occurs when the angular velocity of the Z-axis is too large and it is slowed down. When the Z-axis angular velocity is small, there is no such bug.