Left ArrowBack to discussions page
guiolpeiguiolpei Posts: 5 Recruit
Technical information:

- UR5e robot with SN 20195590010 and URSoftware
- Robotiq 2F-85 gripper with firmware GC3-1.4.4 connected to the wrist tool connection.
- Gripper URCap version UCG-


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.


  • guiolpeiguiolpei Posts: 5 Recruit
    Thank you for the answer, it works perfectly!

    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?
  • bcastetsbcastets Vacuum Beta tester Posts: 156 Handy
    If you have a program running on the robot and if you want to remote control the gripper in the same time I think the best is to use modbus registers a tread and modbus register of the robot.

    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.

  • guiolpeiguiolpei Posts: 5 Recruit
    To check if I have understood correctly:
    1. I have to define 4 MODBUS registers in the UR robot: 3 for gripper control (SpeedForcePosition) and 1 for execution (Trigger).
    2. I have to define a thread in the robot program that checks the Trigger parameter. If it has the value of 1, it executes the grasp with the 3 parameters in the other registers, and then resets the Trigger parameter to 0. Is this compatible with the main program using the blocking External Control command for ROS execution?
    3. From the PC I can modify the registers and update their values and the Trigger parameter to produce grasps.
    Do you have a working example of this using the gripper?

    Where can I find an example of MODBUS communication with the robot accessing registers from an outside PC?
  • bcastetsbcastets Vacuum Beta tester Posts: 156 Handy
    My proposal is not related to ros. It is just a method to control the gripper through gripper urcap from outside when a ur program is running on the robot.

    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:
Sign In or Register to comment.
Left ArrowBack to discussions page