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:
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: https://github.com/UniversalRobots/Universal_Robots_ROS_Driver/tree/velocity_interface 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.