I had the same problem and tried different physics engine parameters and none of the approaches worked properly for me. I have changed the interia, PID gains, frictions, maxVel, minDepth and none of them worked properly for me. I also didn't want to use EffortJointInterface. Therefore, I decided to not waste more time on having a realistic grasp in gazebo simulator (of course you can have a realistic grasp in a real robot using this approach). Instead, I have used the following approach.
• When the gripper fingers are closed enough to hold the object, you can attach the object's link, and the finger tips link with a fixed link dynamically. As an example, you can use this package for your purpose. This way there is no need for changing the JointInterface or controller type. In order to have a more realistic grasp, you can also use the contact_points published by the gazebo.
I had the same problem and tried different physics engine parameters and none of the approaches worked properly for me. I have changed the interia, PID gains, frictions, maxVel, minDepth and none of them worked properly for me. I also didn't want to use EffortJointInterface. Therefore, I decided to not waste more time on having a realistic grasp in gazebo simulator (of course you can have a realistic grasp in a real robot using this approach). Instead, I have used the following approach.
• When the gripper fingers are closed enough to hold the object, you can attach the object's link, and the finger tips link with a fixed link joint dynamically. As an example, you can use this package for your purpose. This way there is no need for changing the JointInterface or controller type. In order to have a more realistic grasp, you can also use the contact_points published by the gazebo.