|
| 1 | +ur_rtde_publisher |
| 2 | +================= |
| 3 | + |
| 4 | +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 <https://docs.universal-robots.com/tutorials/communication-protocol-tutorials/rtde-guide.html>`_, retrieves selected robot state variables (such as robot mode, safety status and timestamps), and exposes them as ROS 2 topics. |
| 5 | + |
| 6 | +.. note:: |
| 7 | + |
| 8 | + This package is currently in an early development stage. At this point, we don't make any |
| 9 | + guarantees about ROS API stability, so the interface types for published data might change in the |
| 10 | + future. Hence, this package is currently not available as a pre-built binary in any ROS |
| 11 | + distribution, and users need to :ref:`build it from source <ur_rtde_pub/installation>`. |
| 12 | + |
| 13 | +Usage |
| 14 | +----- |
| 15 | + |
| 16 | +The node is started using the provided launch file: |
| 17 | + |
| 18 | +.. code-block:: bash |
| 19 | +
|
| 20 | + ros2 launch ur_rtde_publisher rtde_publisher.launch.xml \ |
| 21 | + robot_ip:=192.168.56.101 \ |
| 22 | + output_recipe:='["payload", "robot_mode"]' \ |
| 23 | + rtde_frequency:=125 |
| 24 | +
|
| 25 | +See the documentation's :ref:`ur_rtde_pub/usage` section for more details on how to run the node and verify its operation. |
| 26 | + |
| 27 | +Parameters |
| 28 | +^^^^^^^^^^ |
| 29 | + |
| 30 | +* ``robot_ip`` (string): IP address of the robot. |
| 31 | +* ``output_recipe`` (string[]): List of RTDE output variables to request and publish. |
| 32 | +* ``rtde_frequency`` (int, optional, default: ``500``): RTDE communication frequency in Hz. |
| 33 | +* ``tf_prefix`` (string, optional, default: ``""``): Optional prefix applied to the ``frame_id`` of stamped ROS 2 messages. |
| 34 | + |
| 35 | +Architecture |
| 36 | +------------ |
| 37 | + |
| 38 | +The package follows the following structure: |
| 39 | + |
| 40 | +* **rtde_publisher_node:** Implements the ROS2 node. It handles parameters loading, RTDE connections setup, and the main publish loop. |
| 41 | +* **rtde_publisher:** Responsible for creating ROS publishers based on the RTDE recipe and the YAML mapping file. |
| 42 | +* **rtde_converter:** Contains utility functions to convert RTDE raw data types into ROS messages types. |
| 43 | + |
| 44 | +Build status |
| 45 | +------------ |
| 46 | + |
| 47 | +.. list-table:: |
| 48 | + :widths: 20 20 20 20 20 |
| 49 | + :header-rows: 1 |
| 50 | + |
| 51 | + * - |
| 52 | + - Humble |
| 53 | + - Jazzy |
| 54 | + - Kilted |
| 55 | + - Rolling |
| 56 | + * - Branch |
| 57 | + - `jazzy <https://github.com/UniversalRobots/RTDE_ROS2_Publisher/tree/jazzy>`_ |
| 58 | + - `jazzy <https://github.com/UniversalRobots/RTDE_ROS2_Publisher/tree/jazzy>`_ |
| 59 | + - `main <https://github.com/UniversalRobots/RTDE_ROS2_Publisher/tree/main>`_ |
| 60 | + - `main <https://github.com/UniversalRobots/RTDE_ROS2_Publisher/tree/main>`_ |
| 61 | + * - Build status main |
| 62 | + - .. image:: https://github.com/UniversalRobots/RTDE_ROS2_Publisher/actions/workflows/humble_binary_main.yml/badge.svg?event=schedule |
| 63 | + :target: https://github.com/UniversalRobots/RTDE_ROS2_Publisher/actions/workflows/humble_binary_main.yml?query=event%3Aschedule++ |
| 64 | + :alt: Humble Binary Main |
| 65 | + - .. image:: https://github.com/UniversalRobots/RTDE_ROS2_Publisher/actions/workflows/jazzy_binary_main.yml/badge.svg?event=schedule |
| 66 | + :target: https://github.com/UniversalRobots/RTDE_ROS2_Publisher/actions/workflows/jazzy_binary_main.yml?query=event%3Aschedule++ |
| 67 | + :alt: Jazzy Binary Main |
| 68 | + - .. image:: https://github.com/UniversalRobots/RTDE_ROS2_Publisher/actions/workflows/kilted_binary_main.yml/badge.svg?event=schedule |
| 69 | + :target: https://github.com/UniversalRobots/RTDE_ROS2_Publisher/actions/workflows/kilted_binary_main.yml?query=event%3Aschedule++ |
| 70 | + :alt: Kilted Binary Main |
| 71 | + - .. image:: https://github.com/UniversalRobots/RTDE_ROS2_Publisher/actions/workflows/rolling_binary_main.yml/badge.svg?event=schedule |
| 72 | + :target: https://github.com/UniversalRobots/RTDE_ROS2_Publisher/actions/workflows/rolling_binary_main.yml?query=event%3Aschedule++ |
| 73 | + :alt: Rolling Binary Main |
| 74 | + * - Build status testing |
| 75 | + - .. image:: https://github.com/UniversalRobots/RTDE_ROS2_Publisher/actions/workflows/humble_binary_testing.yml/badge.svg?event=schedule |
| 76 | + :target: https://github.com/UniversalRobots/RTDE_ROS2_Publisher/actions/workflows/humble_binary_testing.yml?query=event%3Aschedule++ |
| 77 | + :alt: Humble Binary Testing |
| 78 | + - .. image:: https://github.com/UniversalRobots/RTDE_ROS2_Publisher/actions/workflows/jazzy_binary_testing.yml/badge.svg?event=schedule |
| 79 | + :target: https://github.com/UniversalRobots/RTDE_ROS2_Publisher/actions/workflows/jazzy_binary_testing.yml?query=event%3Aschedule++ |
| 80 | + :alt: Jazzy Binary Testing |
| 81 | + - .. image:: https://github.com/UniversalRobots/RTDE_ROS2_Publisher/actions/workflows/kilted_binary_testing.yml/badge.svg?event=schedule |
| 82 | + :target: https://github.com/UniversalRobots/RTDE_ROS2_Publisher/actions/workflows/kilted_binary_testing.yml?query=event%3Aschedule++ |
| 83 | + :alt: Kilted Binary Testing |
| 84 | + - .. image:: https://github.com/UniversalRobots/RTDE_ROS2_Publisher/actions/workflows/rolling_binary_testing.yml/badge.svg?event=schedule |
| 85 | + :target: https://github.com/UniversalRobots/RTDE_ROS2_Publisher/actions/workflows/rolling_binary_testing.yml?query=event%3Aschedule++ |
| 86 | + :alt: Rolling Binary Testing |
0 commit comments