You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
For both methods, it seems that we only get contacts from the last physics step, instead of accumulating all the contacts from all the physics steps of the last sim step.
This can lead to problems because if two objects penetrate and then de-penetrate within the same sim step, no contact will be detected.
We have a contact subscription system, but it's currently only used for the Attached state
RigidContactAPI has false positives
contact sensor reports contact, GUI shows contact, but the impulses from RigidContactAPI are all zeros.
The text was updated successfully, but these errors were encountered:
Consider this scenario -
while all three objects are clearly touching/contacting each other, the RigidContactView gives all zeros for both impulse and contact. Even if we wake all objects after they fall asleep, we would still get the same result.
Now consider this assisted grasping scenario -
when the robot fingers get in contact with the red cube, we would get non-zero impulse and valid contact data from RigidContactView (GripperRigidContactAPI in this specific case). That is exactly how assisted grasping is established. However, once the cube is grasped and things settle, we would again get zero impulse and contact data.
There are essentially three stages of a contact:
Contact occurs (obj A moves to touch obj B)
Contact continues (obj A keeps touching obj B)
Contact ends (obj A moves away from obj B)
Presumably, the RigidContactView only gives valid data during stage 1. This is perfectly fine for assisted grasping, as AG is checked per physics step. However, this is not fine for some of our other use cases, e.g. ToggleOn state checking, as continual contact is required. This would explain why our ToggleOn test is so flaky.
There are currently three ways we deal with contact:
Contact report events subscribed by our Simulator instance
We can do something in the _on_contact callback when any contact happens
Current usage:
attachment
RigidContactAPI implemented with RigidContactView
This only works during initial contact, not when objects are settled
The text was updated successfully, but these errors were encountered: