A C++ interface for controlling and receiving data from a UR robot using the Real-Time Data Exchange (RTDE) interface of the robot. The interface can also be used with python, through the provided python bindings.
[!tip] Announcements
- PolyScopeX is now supported, when using the External Control UR Cap for PolyScopeX 🚀
- Control the robot joint torques directly using
directTorque()and get the robot Mass matrix, Jacobian, Coriolis and centrifugal forces. (From PolyScope 5.23)
- Fast and lightweight interface for programming UR robots.
- Uses the Real-Time Data Exchange (RTDE) of the robot.
- Execute with real-time priority on operating systems with a real-time kernel, see the Real-time Setup Guide
- Available on multiple platforms (Linux, Windows, macOS)
- Can be used from C++ and Python.
- Relies only on STL datatypes and can be used with various robot frameworks.
- Switchable register range (FieldBus / PLC [0..23] or external clients range [24..47])
- Use it with the UR's ExternalControl UR Cap, download it here see how to install it on the robot here. In order to setup ur_rtde for using it see here.
- Easy to install and setup.
Documentation with installation and build instructions, examples and API resides at https://sdurobotics.gitlab.io/ur_rtde/
If you use ur_rtde in your research, please cite this paper:
@inproceedings{10871000,
author={Lindvig, Anders Prier and Iturrate, Iñigo and Kindler, Uwe and Sloth, Christoffer},
booktitle={2025 IEEE/SICE International Symposium on System Integration (SII)},
title={ur_rtde: An Interface for Controlling Universal Robots (UR) using the Real-Time Data Exchange(RTDE)}, year={2025}, pages={1118-1123}, keywords={Protocols;Linux;C++ languages;System integration;Writing;Manipulators;Real-time systems;Libraries;Timing;MATLAB},
doi={10.1109/SII59315.2025.10871000}}
If you are on Ubuntu, you can install ur_rtde with:
sudo add-apt-repository ppa:sdurobotics/ur-rtde
sudo apt-get update
sudo apt install librtde librtde-dev
If you only want to the use the Python interface, you can install ur_rtde through pip:
pip3 install ur_rtde
| macOS Intel | macOS Apple Silicon | Windows 64bit | Windows 32bit | Windows Arm64 | manylinux x86_64 | manylinux i686 | manylinux aarch64 | manylinux ppc64le | manylinux s390x | |
|---|---|---|---|---|---|---|---|---|---|---|
| CPython 3.6 | ✅ | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ |
| CPython 3.7 | ✅ | ❌ | ✅ | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ |
| CPython 3.8 | ✅ | ❌ | ✅ | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ |
| CPython 3.9 | ✅ | ❌ | ✅ | ❌ | ✅¹ | ✅ | ✅ | ✅ | ✅ | ✅ |
| CPython 3.10 | ✅ | ❌ | ✅ | ❌ | ✅¹ | ✅ | ✅ | ✅ | ✅ | ✅ |
| CPython 3.11 | ✅ | ❌ | ✅ | ❌ | ✅¹ | ✅ | ✅ | ✅ | ✅ | ✅ |
| CPython 3.12 | ✅ | ❌ | ✅ | ❌ | ✅¹ | ✅ | ✅ | ✅ | ✅ | ✅ |
| PyPy 3.7 v7.3 | ✅ | ❌ | ✅ | ❌ | ❌ | ✅ | ✅ | ✅ | ❌ | ❌ |
| PyPy 3.8 v7.3 | ✅ | ❌ | ✅ | ❌ | ❌ | ✅ | ✅ | ✅ | ❌ | ❌ |
| PyPy 3.9 v7.3 | ✅ | ❌ | ✅ | ❌ | ❌ | ✅ | ✅ | ✅ | ❌ | ❌ |
¹ Windows arm64 support is experimental.
- All CB-Series from CB3/CB3.1 software 3.3
- All e-Series
Currently tested on:
- Ubuntu 20.04 (Focal Fossa)
- Ubuntu 22.04 (Jammy Jellyfish)
- Ubuntu 24.04 (Noble Numbat)
- macOS 15 (Sequoia)
- Windows 10 Pro x64
If you have any questions or suggestions to the interface, feel free to contact Anders Prier Lindvig anpl@mmmi.sdu.dk or create an issue here.
