Using ur_rtde with UR7e + PolyScope X

Hi all,

I’m currently working with a UR7e robot running PolyScope X, and I’m trying to use the ur_rtde interface for real-time control (e.g., servoJ / RTDEControlInterface).

However, I’m confused about compatibility with PolyScope X.

From what I understand:

  • ur_rtde has not been fully tested with PolyScope X
  • ExternalControl URCap (PolyScope X version) seems to be required

My questions are:

  1. Has anyone successfully used ur_rtde with PolyScope X?
  2. Do I need to run the External Control URCap program on the teach pendant?
  3. Can ur_rtde work standalone, or must I use ROS2 (ur_robot_driver)?
  4. What communication is required for External Control (socket / control loop)?
  5. Is direct servoJ via RTDE still supported in PolyScope X?

My goal is to use a custom Python pipeline (not ROS if possible) to send real-time joint commands.

Any advice or working examples would be greatly appreciated.

Thanks!

hi!
did you find answer to ANY of the questions? they are highly relevant to me as well.

Hi @yuvalarbiv ,

I contacted UR Support directly and they were able to help to get it working. There is more setup needed for the client and server connection process.

Hi @nabeel.olusekun

Can you please guide me with the steps to do so? I’ve been struggling with it for quite a while.

Thanks!

Which version are you using?

I just got a new UR10e today, with 10.13 installed, and tested quickly: connected it to my pc, configuring IP manually on both sides, enabled RTDE under Settings → Security → Services, and let a simple cmd line c# application run, using UnderAutomation’s .net library. They also offer a python version. In the long run you will need a license, but if you just want to try RTDE, or if your idea’s will work, you can use 30 days of free trial.

Here my c# CLI application I used for the test:

using UnderAutomation.UniversalRobots;
using UnderAutomation.UniversalRobots.Rtde;


UR robot = new();
var param = new ConnectParameters("192.168.100.100");

param.Rtde.Enable = true;

param.Rtde.Frequency = 500;

param.Rtde.OutputSetup.Add(RtdeOutputData.ActualTcpPose);

robot.Connect(param);


while (true)
{

    Thread.Sleep(1000);
    var tcpPose = robot.Rtde.OutputDataValues.ActualTcpPose;
    Console.WriteLine($"RTDE OK - TCP X = {tcpPose}");
}

U don’t need to install any urcap (in an earlier post ExternalControl URCap was mentioned, which is in my understanding mainly relevant for ROS stuff).