Driver for ROS operation of UR usage doubts


Right now, we are controlling the robot through the RTDE interface in python. Basically, we receive state informaciton (position, velocity and force), and send linear and rotation speed commands which are included in a speedl call in Polyscope to have velocity control.

And we are taking a look at the new ROS driver you released.
If we understand correctly, this new driver uses RTDE in the external PC to send and receive stuff defined in the recipes here:
(Universal_Robots_ROS_Driver/ur_robot_driver/resources at master · UniversalRobots/Universal_Robots_ROS_Driver · GitHub)

Then, a URcap called external control is working on PolyScope. Position control is available either from ROS or UR controllers.

So, does this allow to use/load any other program on Polyscope or rather the external control URCap blocks the teach pendant?
Could other URCaps be working alongside this one?

Would there be any chance to do velocity control? Maybe sending speedl URScript commands? But if I’m sending URScripts commands, does the sue of this driver make sense?

Thanks and best regards ,

The purpose of the “External Control” URCap is to enable “ad hoc” remote control from ROS.
I.e. that you are executing a normal program with other nodes and URCaps, and when the program hits the External Control program node, the external ROS PC can command the robot, before the program continues.
In this way enabling co-existence with ROS and regular PolyScope commands.

Thanks for the quick answer Jacob.

Just another thing, since the ROS driver is using RTDE, could we still used it somehow?
Can we add values into the input/output recipe or add other recipes?


As Jacob already mentioned, the URCap program node is meant as a drop-in into existing programs.

Velocity control (joint based) is currently under development, if you want to have a peek, you can use the development branch of this: Note, that this is not finished yet, especially the velocity based trajectory controllers should be used with care.

Regarding your latest question: Adding additional fields to the recipies also requires creating parsers and publishes in the ROS code. We will add general-purpose publishers in the future so adding additional RTDE output fields should be easy to do.


Hello, my question is very much related to this topic: I understand that the URCap can be used along with other ployscope commands, so I can have a complex program that, at a certain point, gets to the external control node. However, when my program hits the external control node it never continues with its tasks, is like in a loop.
Any hints on how to use it properly?

Thank you very much

The external control node stays active as long as a client is connected to it. When using the ur_robot_driver, you can use the hand_back_control service to make the polyscope program continue.

Entering anothe external_control node inside your program will reconnect to the existing driver just like the first one.

1 Like

Great! Thank you very much!