Home› Programming
Discussion
Back to discussions page
__private_variable
Posts: 1 Recruit
Gripper control from ROS over network using UR5e. |
418 views
|
Answered | |
/ Most recent by rrapi
in Programming
|
1 comment |

in Programming
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:
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:
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.
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/ttyOn 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/ttyGripperThis announced the following:
Remote device is available at '/tmp/ttyGripper'<br>Starting socat with the following command:<br>socat pty,link=/tmp/ttyGripper,raw,ignoreeof,waitslave tcp:192.168.1.123:54321Now, 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:
- Is the /dev/ttyTool the right device that points to the gripper? Is there a way to check it?
- How come the baud rate is never mentioned anywhere in the socat command? It seems relevant... the gripper is configured with 115200.
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.
I have the same problem, did you solve it?
I am trying to control the gripper but still did't succeed, even directly connected to PC or even directly connected to ur5e robot controller.
Could you please help me?
Thank you very much!!