Home› Programming
Discussion
Back to discussions page
guiolpei
Posts: 5 Recruit
Remotely controlling Robotiq 2F-85 gripper connected to wrist |
423 views
|
Answered | |
/ Most recent by bcastets
in Programming
|
5 comments |

in Programming
Technical information:
- UR5e robot with SN 20195590010 and URSoftware 5.6.0.90886.
- Robotiq 2F-85 gripper with firmware GC3-1.4.4 connected to the wrist tool connection.
- Gripper URCap version UCG-1.8.0.1
Issue:
Gripper can be correctly operated using scripts in Robot Program, such as "rq_open()", "rq_close()", etc.
Same behavior is attempted from an external PC using socket connection, but fails to work.
The robot is Remote Control mode, other scripts commands such as popups and analog port activation work through socket, while rq_* commands do not work.
Possible workaround:
Control gripper using Robotiq driver through an external cable connected to PC.
- UR5e robot with SN 20195590010 and URSoftware 5.6.0.90886.
- Robotiq 2F-85 gripper with firmware GC3-1.4.4 connected to the wrist tool connection.
- Gripper URCap version UCG-1.8.0.1
Issue:
Gripper can be correctly operated using scripts in Robot Program, such as "rq_open()", "rq_close()", etc.
Same behavior is attempted from an external PC using socket connection, but fails to work.
The robot is Remote Control mode, other scripts commands such as popups and analog port activation work through socket, while rq_* commands do not work.
Possible workaround:
Control gripper using Robotiq driver through an external cable connected to PC.
Tagged:
Please have a look to the following posts:
https://dof.robotiq.com/discussion/1987/how-to-control-robotiq-product-through-port-30002-on-universal-robot/p1
https://dof.robotiq.com/discussion/1649/control-gripper-via-ur-controller-client-interface#latest
We are using External Control URCap to control the robot from a Linux PC using ROS, and executing any of the functions in the script causes the main program to stop.
I guess this is because the communication uses 'physical time' through sleep() and sync() functions. There is no chance of including this into a secondary program neither.
Is there a way to avoid this?
Can the program execution be restarted using URScript?
You can make a thread which monitor some modbus registers which you use to control the gripper. If the thread detect change in the modbus register then it can send corresponding command to the gripper.
You could have for example 4 registers. Speed, Force, Position and Trigger. The tread monitor Trigger. If trigger is 0 nothing happen. If trigger is 1 the tread turn it back to 0 and execute a gripper command using the Speed, Force and Position saved in registers.
Then you can modify robot modbus register from you PC and remote control the gripper.
If you want to make modbus rtu communication from outside. There is a modbus rtu urcap in ur ros package which may be helpfull.
I would recommend that you check this conversation listing few option to control a gripper from a pc through ut controller:
https://dof.robotiq.com/discussion/1962/programming-options-ur16e-2f-85#latest