|
| 1 | +.. _ros2_controller_vs_driver: |
| 2 | + |
| 3 | +ROS 2 integration paths |
| 4 | +======================= |
| 5 | + |
| 6 | +There are different paths to use a Universal Robots arm with ROS 2. |
| 7 | + |
| 8 | +ROS 2 on the robot |
| 9 | +------------------ |
| 10 | + |
| 11 | +.. image:: /_static/images/ros2_urscript.png |
| 12 | + :alt: URScript for a subscruber |
| 13 | + :align: right |
| 14 | + :width: 400px |
| 15 | + |
| 16 | +1. Starting with PolyScope X v10.7.0 the robots have builtin ROS 2 support that allows some amount |
| 17 | + of interaction with the robot without the need of any ROS 2 driver. In particular, the robot |
| 18 | + publishes a lot of status information and offers services for example to control the robot's |
| 19 | + I/O ports. See the `Topics and Services overview |
| 20 | + <https://docs.universal-robots.com/polyscopex-ros2/v10.7/Appendix/Appendix%202.html>`_ for more |
| 21 | + information. |
| 22 | + |
| 23 | + |
| 24 | +2. Starting with PolyScope X v10.7.0 there is basic URScript support for ROS 2. This allows |
| 25 | + publishing to and subscribing from ROS 2 topics directly in URScript as well as calling ROS 2 |
| 26 | + services and actions from URScript. See `Basic Usage in URScript |
| 27 | + <https://docs.universal-robots.com/polyscopex-ros2/v10.7/Basic%20Usage%20in%20URScript.html>`_ |
| 28 | + for details on that. |
| 29 | + |
| 30 | +.. note:: |
| 31 | + |
| 32 | + The builtin ROS 2 support will only be compatible with the ROS distribution running on the |
| 33 | + robot. For example, PolyScope 10.7.0 is running ROS 2 Humble. It should not be used with |
| 34 | + any other distribution. |
| 35 | + |
| 36 | +Control the robot from an external ROS 2 application |
| 37 | +---------------------------------------------------- |
| 38 | + |
| 39 | +.. image:: ur_tutorials/my_robot_cell/doc/view_workspace.png |
| 40 | + :alt: Visualizing a robot workspace using ROS 2 |
| 41 | + :align: right |
| 42 | + :width: 400px |
| 43 | + |
| 44 | +To control your robot using ROS 2, you can utilize the :ref:`ur_robot_driver`, an Open-Source ROS 2 driver that is maintained by Universal Robots and offers full compatibility with `ros2_control |
| 45 | +<https://control.ros.org>`_. This driver allows you to visualize the robot's state in RViz and control its motions through ROS 2. It supports CB3, e-Series, and PolyScope X robots. |
| 46 | + |
| 47 | +By leveraging the ROS 2 driver, you can build your own application on the ROS framework. This includes integrating drivers for other hardware components, incorporating sensors, and utilizing ready-to-use software functionalities such as collision-aware path planning. |
| 48 | + |
| 49 | +The ROS 2 driver communicates with the robot using the :ref:`ur_client_library`. |
| 50 | + |
| 51 | +Build your own external application using the C++ library |
| 52 | +--------------------------------------------------------- |
| 53 | + |
| 54 | +With the standalone C++ library ":ref:`ur_client_library`" you can control a UR robot from a remote |
| 55 | +application. It offers a lot of the functionality that traditionally the robot's teach pendant |
| 56 | +would be used for. This includes |
| 57 | + |
| 58 | +- Controlling the robot's power state |
| 59 | +- Controlling the robot's motion |
| 60 | +- Controlling the robot's I/O ports |
| 61 | +- Access to low-level interfaces such as the Primary Interface, Dashboard Interface and the |
| 62 | + Realtime Data Exchange (RTDE). |
0 commit comments