ur_rtde_publisher

A ROS 2 package that provides a RTDE (Real Time Data Exchange) publisher for Universal Robots manipulators. The node connects to a robot’s IP via UR’s RTDE protocol, retrieves selected robot state variables (such as robot mode, safety status and timestamps), and exposes them as ROS 2 topics.

Note

This package is currently in an early development stage. At this point, we don’t make any guarantees about ROS API stability, so the interface types for published data might change in the future. Hence, this package is currently not available as a pre-built binary in any ROS distribution, and users need to build it from source.

Usage

The node is started using the provided launch file:

ros2 launch ur_rtde_publisher rtde_publisher.launch.xml \
  robot_ip:=192.168.56.101 \
  output_recipe:='["payload", "robot_mode"]' \
  rtde_frequency:=125

See the documentation’s Usage section for more details on how to run the node and verify its operation.

Parameters

  • robot_ip (string): IP address of the robot.

  • output_recipe (string[]): List of RTDE output variables to request and publish.

  • rtde_frequency (int, optional, default: 500): RTDE communication frequency in Hz.

  • tf_prefix (string, optional, default: ""): Optional prefix applied to the frame_id of stamped ROS 2 messages.

Architecture

The package follows the following structure:

  • rtde_publisher_node: Implements the ROS2 node. It handles parameters loading, RTDE connections setup, and the main publish loop.

  • rtde_publisher: Responsible for creating ROS publishers based on the RTDE recipe and the YAML mapping file.

  • rtde_converter: Contains utility functions to convert RTDE raw data types into ROS messages types.

Build status

Humble

Jazzy

Kilted

Rolling

Branch

jazzy

jazzy

main

main

Build status main

Humble Binary Main Jazzy Binary Main Kilted Binary Main Rolling Binary Main

Build status testing

Humble Binary Testing Jazzy Binary Testing Kilted Binary Testing Rolling Binary Testing

Overview