URCaps External Control

Hello,

I’m trying to integrate the UR10e robot to ROS 2 Foxy on Ubuntu 20.04 with the Universal Robots ROS 2 Driver.

I’ve installed the externalcontrol-1.0.5.urcap file on to the UR10e local controller. https://github.com/UniversalRobots/Universal_Robots_ROS2_Driver/blob/foxy/ur_robot_driver/doc/install_urcap_e_series.md

Setup:

UR10e (URSoftware 5.11.9)

  • IP-address: 192.160.0.101
  • Subnet mask: 255.255.255.0

URCaps, External Control

  • Host IP: 192.160.0.100
  • Custom port: 50002 (Default - as guide, linked above, instructs)
  • Host name: tht-stationary02

PC (Ubuntu 20.04)

  • IP-address: 192.160.0.100
  • Subnet mask: 255.255.255.0
  • Firewall disabled (tht@tht-stationary02:~$ sudo ufw status verbose → Status: inactive)

I’m able to run the controllers from my computer, getting the right robot position when RViz launching, but not able to play the robot program (External Control)…?

Thank you for considering my request, I will be grateful for any help you can provide.

Problem solved! I hadn’t enabled Remote Control on the UR10e HMI… :sweat_smile:

Can you explain this a little more? I faced the same situation, but I could not find any Remote Control HMI in the teach pendant.

Hello,

I am having a similar issue while using ur_rtde library for external control of the robot (UR3e). I have the external control urcap uploaded on the teach pendant and it is in remote control mode. But the external control script doesn’t start automatically. I checked and the external control urcap is active (settings > system > urcaps). Am I supposed to manually start the script on the teach pendant? But that can’t be done since RTDE requires the robot to be in remote control mode.

**@aditi.verma and @weisheep

Have you solved the issue?**

Depends on the version of PolyScope you have on your controller. With PolyScope 5.x, you can just select “Remote Control” instead of “Local”, and RTDE should work. I tested this with our UR5e running PolyScope 5.11 and ur-rtde 1.6.2, and it works fine.

If you want to use the ur-rtde library with PolyScope X—well, that’s another story. With versions < X.11, there was no “Remote Control” option; with the update to X.11, this option came back. I tested the library only using “Remote Control”, and it works if you want to read something from the robot (e.g., joint angles) or work with I/Os. If you want to control the robot, the library doesn’t work—probably because you need to turn on the robot, which you cannot do from Remote Control because you’re in Automatic mode.

You should be able to run the program from the Dashboard Server (by the way, this is how it’s done in the ROS1 ur_robot_driver), but in PolyScope X the Dashboard Server is no longer available and has been replaced by the Robot API based on a RESTful API (this is also why the ROS1 driver doesn’t work with PolyScope X). I didn’t have the energy or will to implement that. The solution is to use the External Control URcapx.

With External Control, you need to install the URcapx, set the correct IP address of the computer, and run your Python code. In your script, you need to initialize rtde_control correctly: (1) set your RTDE frequency and (2) set the flag to FLAG_USE_EXT_UR_CAP.

rtde_frequency = 500.0
rtde_c = RTDEControl("127.0.0.1", rtde_frequency, RTDEControl.FLAG_USE_EXT_UR_CAP)

Then run your Python script, select “Update program” in your “External Control” command on the teach pendant, and run the program. It should work.