Get Output Double Register
SUMMARY
Get Output Double Register reads the current value of an output double-precision floating-point register on the robot controller. These RTDE registers provide a general-purpose float communication channel between the robot program and external systems.
Valid register IDs are in the lower range (18–22) or upper range (42–46).
SUPPORTED ROBOTS
This skill is currently supported on Universal Robots only. Calling this method on other robot brands will raise a NotImplementedError.
The Skill
value = robot.get_output_double_register(output_id=18)The Code
Example: Read an Output Double Register
Connect to the robot, read register 18, and log its value.
from loguru import logger
from telekinesis.synapse.robots.manipulators import universal_robots
robot_ip = "192.168.1.2" # replace with your robot's IP
robot = universal_robots.UniversalRobotsUR10E()
# Connect
robot.connect(ip=robot_ip)
val = robot.get_output_double_register(18)
logger.info(f"Output double register 18: {val:.6f}")
# Disconnect
robot.disconnect()The Explanation of the Code
get_output_double_register reads the double-precision float value stored in the specified RTDE output double register. These registers are written by the URScript program and read by RTDE clients. They are commonly used to communicate measured values, sensor readings, or computed quantities from the robot program to an external supervisor.
How to Tune the Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
output_id | int | — | RTDE output double register ID. Valid values: 18–22 (lower range) or 42–46 (upper range). |
Return Value
| Type | Description |
|---|---|
float | Current double-precision float value stored in the specified output register. |
Where to Use the Skill
- Robot-to-supervisor communication — Read float values written by a URScript program
- Sensor relay — Pass sensor readings computed in URScript back to Python
When Not to Use the Skill
Do not use Get Output Double Register when:
- You need an integer register — use Get Output Int Register instead

