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.
__private_variable

Dear DoF,

I'm trying to get a full control stack running in ROS, hosted on a computer in the same network as the UR5e and Robotiq 2f-85 gripper. The gripper is connected to the UR5e wrist using the gripper coupling (GRP-ES-CPL-062).

I installed the official Robotiq gripper URcap and could control the gripper from the pendant. I removed this urcap and installed 
rs485-1.0.urcap (as they cannot work together) to forward the /dev/ttyTool port over TCP on port 54321. I restarted the UR5e every time to remove all uncertainties related to lingering processes. I could ssh into the UR5e and check the process with htop which confirmed the forwarded device and the port number:

./socat tcp-l:54321,reuseaddr,fork file:/dev/ttyTool,nonblock,raw,waitlock=/var/run/tty
On the ROS side I successfully launched the tool_communication script with the following command:
rosrun ur_robot_driver tool_communication _robot_ip:=192.168.1.123 _device_name:=/tmp/ttyGripper
This announced the following:
Remote device is available at '/tmp/ttyGripper'
Starting socat with the following command:
socat pty,link=/tmp/ttyGripper,raw,ignoreeof,waitslave tcp:192.168.1.123:54321
Now, by using a modbus driver for the gripper, which works when the gripper is connected directly to the computer, nothing happens... messages seem to be sent, but not received/processed on the robot side. If I set another IP or port the connection fails immediately with an obvious error message.

If I pkill socat on the UR5e then the tool_communication ROS script exits, leading me to believe that the link is actually functional. This process is immediately restarted on the UR5e.

I have two questions that might be relevant:
  1. Is the /dev/ttyTool the right device that points to the gripper? Is there a way to check it?
  2. How come the baud rate is never mentioned anywhere in the socat command? It seems relevant... the gripper is configured with 115200.
Would anybody have an idea on how to proceed? Did I miss a step? Maybe some kind or reset could help?

Another approach I am studying is to use the Robotiq gripper urcap and sending commands over TCP, port 63352. However, it seems this is not meant for the MODBUS messages, I don't know what messages it accepts yet... but I'm not above writing another ROS driver for this if it works.