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.
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?
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.
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?
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?
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.