Stable grasping in Isaac Sim

Isaac Sim Version 5.1.0

Operating System Windows 11

Hello! I have a question related to this issue: Slippery gripper despite changing the material property . I used the modified asset Collected_testing_gripper_with_friction.zip to test the grasping, but I can see that it is still quite unstable, and the object slips away if the gripper moves just a bit faster. As suggested before, I tried to modify Physical Materials and set different values of frictions, but even extremely high values (e.g. 10 for dynamic and static friction) did not stabilize the grip. In the real world, this gripper can hold the object very firmly i.e., it does not slip even if it touches just the upper part of the object (fingers not fully envelop the object). Also, I noticed that in the provided .usd the mass is set to 0.001 which seems to be a very small unrealistic value. Increasing the mass even to 0.01 is already enough to make the object slip even at slow lift.

How can a stable behavior of very firm holding be simulated by just forces, i.e., without the surface gripper?

Are you using velocity commands for the gripper? It works way better than position commands, see topic

Thank you for the update. I can see that you created a reworked gripper and there are some instructions for enhanced stability. I downloaded 2f140_reworked.zip and followed steps 2-7 to create an exact same setup and test the stability. Here is the .usd file that I got after following steps 2-7:

2f140_reworked_after_steps_2_7.zip (1.6 MB)

However, I can see that the grasping still seems quite unstable as the object slips if the lifting speed is a bit faster. Also, when applying a realistic closing speed, the finger pads may penetrate the object and cause instabilities. For such a simple case of gripping a cube perfectly aligned with the finger pads of the gripper, I think it would be great to see a really stable performance without too many assumptions on the speed of the gripper and etc. Because with meshes more complex than a cube the performance is expected to degrade and if it is already not so stable for a cube, then manipulating complex objects seems impossible, but actually, these adaptive grippers were made to handle better, such complex objects.

Here are some additional considerations:

  1. The real maximum operational speed of this gripper in the real world is that it can close (from open to fully closed) in around 0.5 seconds. As finger_joint in the simulation has a max limit of 45°, the maximum real-world closing speed (corresponding to the simulation) should be around 90°/s. In your reply, you mention that it is important to set an appropriate closing speed and provide an example 8 rad/s (or 458°/s, which is very fast and higher than the real-world closing speed), which might be a typo because I can see that in the video, you set 8°/s. 8°/s is ok and can be used as a workaround, but just noting that in comparison with the real-world maximum speed it is 10 times lower and it would be strange to see the grasping to work well with 8°/s, but not work with, for example, 32°/s closing speed. I think it would indicate that something is wrong, maybe a suboptimal choice of some parameters or a more general problem with the simulator, or something else.
  2. We consider a very simple, idealized case because the cube is positioned to align perfectly with the fingerpads of the gripper and is also the simplest object to grasp. In order to enable grasping of more complex objects, a perfect grasp of a cube with no slipping at various moving speeds of the gripper seems to be important.

Try to reduce the physics timestep and increase the friction if the cube slips when lifting speed is faster.

Thank you for the suggestion. So far, I have tried to increase both static and dynamic friction up to different values, even unrealistically high, like 10.0, but it does not seem to help. Also, I’m not doing it from scratch, I’m using examples and .usd files that in previous topics on this forum are considered a solution, though it seems to be a very particular solution, not generalizing to different objects.

I also tried changing the physics timestep and number of iterations of the solver for position/velocity, and none of these seem to be working. There’s no actual robustness in the grasp; even if after careful tuning of parameters, it works for an object with its specific parameters, but then completely fails, for instance, for a slightly different mass e.g. a 1-gram vs. a 10-gram object, while in reality any object up to 2kg can be managed easily.

Thanks for the feedback, it’s challenging to generalize a tuned scenario to a similar one and it always requires to re-tune after the parameters are changed.

It seems like a serious limitation, though, to have a gripper that can properly grasp only one simple type of object with carefully tuned parameters, but if the object is just a little bit different, to re-tune the parameters

Thanks for the feedbacks! I am going to close this topic. If you want to discuss more on this, please create a discussion on the GitHub repo discussions.