Joint velocities are high when the joint link is in contact and the joint is not rotating
When a torque is applied on a joint and the joint link is in contact with an object such that the joint is stationary, the joint velocity is non-zero and can be quite large depending on the force.
I did a simple test using the sandia hands grabbing a cylinder. I've attached a screenshot of the state of the robot. On the joints left_f0_j1 and left_f0_j2 I applied an open loop force of 1.0 Nm using joint->setForce(0, 1.0) in a model plugin.
For this test I set the damping of the fingers to 0.1 and disabled the velocity limits. The physics are done using the standard parameters.
When the finger contacts the cyclinder and is in a steady state, the angle is constant and the corresponding joint velocity should also be zero. However, the joint angles and velocities in steady state are
left_f0_j1 - Angle: 0.9 rad - Velocity: 5 rad/s left_f0_j2 - Angle: 1 rad - Velocity: 8 rad/s
I've attached the graphs of the test over 6 seconds to this bug report as well.
If P(I)D control is used to control the finger angle, it can easily become unstable when the finger hits an object. Depending how the velocity limits are implemented this could also lead to instabilities.
All tests are done using the gazebo_1.5 branch.