A C++ interface that uses the Real-Time Data Exchange (RTDE) interface of the robot for sending and receiving data. The interface can also by used with python, through the provided python bindings.
No widely available C++ interface that utilizes the RTDE of the UR’s exists or have been made public yet. Most of the available ROS interfaces lacks a lot of features or are very restricted in terms of control and has poor support for the new e-Series. This interface is meant to be usable with various robot frameworks, which is why the receive and control interface relies only on STL datatypes. One can choose to convert to STL types or simply rewrite the control and receive interfaces to the desired datatypes to avoid any overhead. The interface aims to make all the functions on the controller available externally in C++ and Python with bindings. Finally the plan is to make a more complete ROS1/ROS2 interface based on this project. However, I am aware of the effort towards making a new ROS interface mentioned here and perhaps this project could serve as an inspiration.
You can find project here: https://gitlab.com/sdurobotics/ur_rtde
Documentation with examples and API resides at:
Let me know what you think and feel free to contribute!
Thanks for sharing! Sounds like a useful tool, I’m looking forward to checking it out!