Minimum setup required on robot before using URx python library

Excuse me, we’ve just bought a new UR5e robot. I have used a UR5 before, but never done the full setup procedure for a new one. Our plan is to have it controlled from a python program on a PC with a dedicated ethernet cable between the two. This would use a python library called URx which I’ve had previous experience with, i don’t know whether it is made by Universal Robots or not, but I know it worked well before. But I don’t know what settings this needs on the robot’s end setting up first. I guess it requires enabling the ethernet interface via the teach pendant, and setting IP details, but does it need anything else? Does it require settings up anything else? The manual supplied with the robot seems mostly aimed at use within specific industrial processes, whereas we are setting this up as a research robot, so our goal is to make it an end-effector, so to speak, for code running on a PC of ours, the manual doesn’t seem to say much about the general workflow to establish a robot-to-pc connection or then anything which clearly links to the URx library’s function names.
Thank you

That library is created by Sintef Manufacturing:

As I’ve heard that library is quite popular amongst UR robots users, does anyone here know about this question’s answer, or will I need to contact Sintef?

TLDR: This library would require setting the network settings, and putting the robot in remote control mode.

I just dug into their source code. That library uses UR’s Secondary and Real-Time interfaces (Reference).

Be aware that these interfaces require the robot to be in remote control mode and won’t work in local mode (Using the pendant).

UR has some pretty great interfaces that aren’t too hard to use for controlling from a PC. I’d recommend these over any library that you’re not sure about. There are tons of examples on the forums too.

Reading robot data/status: RTDE (UR has python examples)
Sending scripting language commands: Primary Real-Time client (UR has socket examples)
Play/Pause/Stop/Anything you would press on the pendant: Dashboard Server (Works with Python socket, UR has some examples)
High-level server/client communication: XMLRPC (Python server, robot script has built in xmlrpc_factory client script commands).

Everything else is about as reliable as the company maintaining it.

Thank you for your detailed response.

Does the library’s use of secondary and real-time interfaces loose it any useful features? Does it bypass things like the early “pre”-self-collision detection or the way the robot will stop motion if it detects too much force on it (I don’t think these were on the UR5 I used years ago, but they are on this one and they’re really useful to have).

Does placing the robot in remote control mode prevent the pendant interface from working? I recall that the pendant still showed robot position and let you use the move interface on the pendant, and the freedrive button on the back, to take control of the arm at times when the python script was not issuing it commands.

Can you give links to libraries (for python, C, or other common languages… I only used python before as that was what the library was for) which use the various interfaces you listed? Preferably they would work for both a Windows 10 PC or a Linux Ubuntu PC to act as the PC controlling the arm (we have PCs with both OS around, and at times may want to control the arm from either, depending what else it is working with).

Thank you again

Does the library’s use of secondary and real-time interfaces loose it any useful features? Does it bypass things like the early “pre”-self-collision detection or the way the robot will stop motion if it detects too much force on it

Nope, power and force limiting are still very much enabled

Does placing the robot in remote control mode prevent the pendant interface from working? I recall that the pendant still showed robot position and let you use the move interface on the pendant, and the freedrive button on the back, to take control of the arm at times when the python script was not issuing it commands.

It’s not hard to switch it from remote control to automatic or manual if you need to. In remote control mode, The pendant still works but I believe you only have access to the log screen and the IO control screen. Freedrive button is also disabled, but you can trigger it with an external button or a script command. It’s mostly intended for remote operation with a PLC/External control. In Automatic/Manual you can see a view of the robot and use the move screen.

The manual for the robot has a table that shows what works and what doesn’t in remote control

Can you give links to libraries (for python, C, or other common languages… I only used python before as that was what the library was for) which use the various interfaces you listed? Preferably they would work for both a Windows 10 PC or a Linux Ubuntu PC to act as the PC controlling the arm (we have PCs with both OS around, and at times may want to control the arm from either, depending what else it is working with).

I’ve never gone outside the Python standard libraries (socket, xmlrpc, etc). Check out URs examples and it shouldn’t be too hard to get what you want.