0
$\begingroup$

we have a ur5 robot equipped with a onrobot rg2 gripper both which are connected to a common router. The ip of the robot is 192.168.0.100 and I interface with the robot on the ip 192.168.0.101 through ethernet.

I use the external control urcap for controlling the robot.

To interface with the gripper I have installed the onrobot urcap which also seems to interface correctly when operating through the pendant.

The problem - When I use ethernet to interface the gripper seems to disconnect with the robot and does not show being connected in the pendant, whereas If I disconnect the gripper reappears, It seems to be an ip sharing issue where ur robot can interface simultaneously with the computer and the gripper. The gripper does not even show up as a different client on the network.

So I wanted to know a way to do that.

I am not using ros and interfacing with the robot directly using urscript.

I am using the below repo example https://github.com/UniversalRobots/Universal_Robots_ExternalControl_URCap/tree/master/examples/simple_external_control_server

Questions)

  1. Is there any way I can interface with the gripper and robot simultaneously either as one or differently?
  2. Is this an ip sharing issue or a driver issue?
$\endgroup$

1 Answer 1

1
$\begingroup$

Here use this library I developed to communicate with onRobot grippers with the Universal Robots (robots) through the standard m8 tool connector.

[email protected]:RyanPaulMcKenna/onRobot.git

https://pypi.org/project/onRobot/

Can pip install like so:

pip install onRobot

and use like so:

import onRobot.gripper as gripper

# Default id is zero, if you have multiple grippers, 
# see logs in UR Teach Pendant to know which is which :)
rg_id = 0
rg_gripper = gripper.RG2(rg_id)

rg_width = rg_gripper.get_rg_width()
pregrasp_width = 100

# force and width units described in onRobot RG2 Manual
target_width = 15.66
target_force = 40.00

if (rg_wdith == pregrasp_width):
    rg_gripper.rg_grip(target_width, target_force)

epsilon = 0.05 # Just an example of reasonable error may not be realistic. 
grip_success = abs(rg_gripper.get_rg_width() - target_width) < epsilon

$\endgroup$
0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.