DoF - a Robotiq Community
Warning sign
The Dof Community was shut down in June 2023. This is a read-only archive.
If you have questions about Robotiq products please reach our support team.

I'm using the Adaptive Gripper 2-FINGER 85 (new version) with USB connection using the ROS package.  It is working properly, but I cannot find a way to control the fingers continuously.  What I want to do is control the finger positions continuously based on the sensors like a tactile sensor.

I adjusted the parameters of serial communication (especially the timeout parameter), and somehow I could control the fingers continuously, but the movement was slow and not smooth.

My question is how can I program the gripper for continuous finger control?

Many thanks!


@akihikoy 200Hz is the maximum you can obtain if you do direct Modbus RTU communication, the USB converter most probably slow this down.

Also, controlling the Gripper at such speed will most probably give you a weird behavior. The Gripper is developped so that you send close / open / move commands and wait for a feedback. Non-stop movement command at this pace will probably gives you a shaky movement. 

First thing you should do is have a PID loop that dampens the movement you are doing.  Know that the motion as an acceleration ramp. So if you always ask for very small movement you will never reach the cruising speed (the speed we spec is for a full stroke), thus your slow motion. For example, we usually recommend to have at least 2.4 mm of clearance on a part to get that speed up so that the object detection works. Smaller movement then this = gripper still accelerating and no object feedback & bad force control.

Also know that the Gripper has an embedded function similar to what you are doing. The Gripper has a "re-grasp" function were it will detect if parts are slipping out by applying on continuous small pressure. When it detects the parts are slipping (fingers are closing or opening on it) it automatically moves. That function is turned off if you use force setting to 0. That function could probably be in conflict with what you are doing.