ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

Hey Alba,

the fingers are controlled by a cascade of position and current controller. The position error is compensated by increasing the current on the motor (current controller) in order to accelerate it. As the target position of the grasp is most likely inside the object you want to grasp the finger can not reach that target and ramps up the current to get there. That is the desired behaviour as this allows you to exert force on an object. If you do not do this, the fingers would not exert force on the object and in turn would not be able to hold it.

You can read out the actual current values via the drivers API , more specifically the get_current call. Currently the ROS node does not publish the current values but it is a feature I am planning to add.

You could disable the channel, however the fingers would go limb and you would loose the object. Another option is to set the target position of the finger to the current position is has when the object is grasped. This will keep the finger in place, only exerting force when it is pushed out of this position. This might however result in a very loose grip.

Hope this answers your questions. Best Regards Georg