Skip to content

Robotiq gripper

Mahdi Khoramshahi edited this page Jun 22, 2018 · 10 revisions

Robotiq gripper

The robotiq gripper is controlled over tcp with a regular network cable to the controller. You can set gripping force, speed etc.

You can use it either as a on/off gripper or move both fingers to a specific position, in incremental values in the interval (0-255), where 255 is completely closed.

Connections

Connect the gripper to the control box if not already connected.

The control box needs 24V provided externally. Currently, we are using a lab-style variable voltage power supply. Be careful to not accidentally change the voltage! This should be replaced by a dedicated 24V power supply. There is now a 24V power supply permanently connected to the control box.

From the controller, connect a ethernet cable from ETH0 to an available network port on your computer. The IP of the gripper is 192.168.1.11, so for the connection on you PC you can set e.g. 192.168.1.2.

Make sure you can ping the controller before you continue.

ROS

ros-industrial provides communication classes and easy-to-use rosnodes to control the gripper from your application.

Get it from the official repository: Robotiq and ROS/Robotiq

quick installation

$ git clone https://github.com/ros-industrial/robotiq.git

make sure to checkout to the right branch (most likely the indigo branch)

get the following dependencies.

$ rosdep install robotiq_modbus_tcp
$ sudo apt-get install ros-indigo-soem

Quick test

(First terminal) run

$ rosrun robotiq_s_model_control SModelTcpNode.py 192.168.1.11

(Second terminal) run

$ rosrun robotiq_s_model_control SModelSimpleController.py

(Third terminal - optional) run

$ rosrun robotiq_s_model_control SModelStatusListener.py

In the controller (second terminal), first send "a" to active the gripper.

Then check close and open by sending "c" and "o".

More details can be found here

Getting help

The serial number of our gripper is: C-3671. We have the modbus/tcp version of the control box. drivers and online documentation can be found at Robotiq's support site

Controller wirings

Follow the last column since we have 2-Finger 85. alt text

Wrapper

A higher-level wrapper for our Robotiq S model can be found here

  • Be careful to use the correct branch of git repositories (i.e., indigo at the moment)

how to use the interface

You need to include this library in headers #include <grasp_interface/rs_gripper_interface.h>

#include <grasp_interface/rs_gripper_interface.h>

and you can define a pointer for the interface as follows:

std::unique_ptr<RSGripperInterface> gripper_;

Then, in your cpp file, first you can initialize as follows:

gripper_.reset(new RSGripperInterface(false));
ROS_INFO("[node-name] activating, wait 4 sec ...");
gripper_->activate();
ros::Duration(3.0).sleep();
gripper_->setSpeed(250);
gripper_->setPosition(128);
ros::Duration(1.0).sleep();

Then you can open and close the gripper by sending the proper positions like:

gripper_->setPosition(250); // to close
ros::Duration(0.8).sleep(); // wait
...
gripper_->setPosition(0); // to open
ros::Duration(0.8).sleep(); // wait

Troubleshooting

If you are getting a solid red led on the gripper, the chances are that the gripper is not nicely mounted on its plate (i.e., the connectors are not connected!). To solve this, you should use the screws to tighten up the gripper to its plate.