Skip to content

Commit 3df4147

Browse files
authored
Landing page (#9)
Add a landing page and a page explaining the different ROS 2 integration paths.
1 parent 5fb05fd commit 3df4147

File tree

5 files changed

+109
-10
lines changed

5 files changed

+109
-10
lines changed

_static/images/ros2_driver.jpeg

79.4 KB
Loading

_static/images/ros2_urscript.png

33.9 KB
Loading

conf.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919

2020
# -- Project information -----------------------------------------------------
2121

22-
project = "Universal Robots ROS 2 Documentation"
22+
project = "Universal Robots ROS 2 Driver Documentation"
2323
copyright = "2024, Universal Robots A/S"
2424
author = "Universal Robots A/S"
2525

@@ -141,8 +141,8 @@
141141
latex_documents = [
142142
(
143143
master_doc,
144-
"ur_documentation.tex",
145-
"ur\\_documentation Documentation",
144+
"ur_ros2_driver_documentation.tex",
145+
"UR ROS 2 Driver Documentation",
146146
"Universal Robots A/S",
147147
"manual",
148148
),
@@ -153,7 +153,7 @@
153153

154154
# One entry per manual page. List of tuples
155155
# (source start file, name, description, authors, manual section).
156-
man_pages = [(master_doc, "ur_documentation", "ur_documentation Documentation", [author], 1)]
156+
man_pages = [(master_doc, "ur_ros2_driverdocumentation", "UR ROS 2 Driver Documentation", [author], 1)]
157157

158158

159159
# -- Options for Texinfo output ----------------------------------------------
@@ -164,7 +164,7 @@
164164
texinfo_documents = [
165165
(
166166
master_doc,
167-
"ur_documentation",
167+
"ur_ros2_driver_documentation",
168168
"ur_documentation Documentation",
169169
author,
170170
"ur_documentation",
@@ -203,7 +203,7 @@
203203
html_context = {
204204
"display_github": True,
205205
"github_user": "UniversalRobots",
206-
"github_repo": "Universal_Robots_ROS2_Documentation",
206+
"github_repo": "Universal_Robots_ROS_Documentation",
207207
"github_version": repos_file_branch + "/",
208208
"conf_py_path": "/",
209209
"source_suffix": source_suffix,
@@ -215,4 +215,4 @@
215215
'css/ur_theme.css',
216216
]
217217

218-
github_url = "https://github.com/UniversalRobots/Universal_Robots_ROS2_Documentation"
218+
github_url = "https://github.com/UniversalRobots/Universal_Robots_ROS_Documentation"

doc/ros2_controller_vs_driver.rst

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
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).

index.rst

Lines changed: 40 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,45 @@
11
.. _documentation_home:
22

3-
Welcome to the Universal Robots ROS 2 documentation!
4-
====================================================
3+
Welcome to the Universal Robots ROS 2 driver documentation
4+
==========================================================
55

6-
This repositorycontains documentation and ROS 2 packages for Universal Robots.
6+
7+
.. image:: _static/images/ros2_driver.jpeg
8+
:alt: UR ROS 2 driver
9+
:align: right
10+
:width: 600px
11+
12+
13+
This documentation covers everything around the Open-Source ROS (Robot Operating System) 2 driver packages
14+
for Universal Robots manipulators and the standalone Universal Robots Client Library (C++).
15+
16+
With those packages it is possible to control a Universal Robots arm from an external application
17+
either directly using a C++ API (see :ref:`ur_client_library`) or using ROS 2 (see :ref:`ur_robot_driver`).
18+
19+
This allows developing robot applications where one or more UR robots are a part of the complete
20+
application. Some key use cases are:
21+
22+
- **External Monitoring and Control**: It allows you to monitor and control UR robots from an
23+
external application. This can be useful for tasks like external vision systems for part
24+
detection or external user interfaces to control robot programs.
25+
26+
- **Ease of Use**: The *ur_client_library* has minimal external dependencies, primarily relying on standard
27+
C++ libraries, making it straightforward to integrate and maintain.
28+
29+
- **Integration with ROS / ROS 2**: The *ur_client_library* serves as the foundation for the ROS 2
30+
driver, making it easier to integrate UR robots into ROS-based systems. ROS supports multiple
31+
programming languages, primarily C++ and Python, making it easier to integrate with other
32+
systems and tools. It also allows for communication between different nodes, enabling complex
33+
robotic systems. The Universal Robots ROS packages offer everything from Visualization, over
34+
simulation up to controlling a real robot bridging the great work of the ROS community with
35+
Universal Robots manipulators.
36+
37+
38+
.. note::
39+
There is also builtin ROS 2 support for PolyScope X robots, see the `PolyScope X ROS 2 documentation <https://docs.universal-robots.com/polyscopex-ros2/v10.7/index.html>`_ and / or :ref:`ros2_controller_vs_driver` for details.
40+
41+
Table of Contents
42+
-----------------
743

844
.. toctree::
945
:titlesonly:
@@ -18,3 +54,4 @@ This repositorycontains documentation and ROS 2 packages for Universal Robots.
1854
Tutorial examples <doc/ur_tutorials/tutorial_index.rst>
1955
doc/migration_notes.rst
2056
doc/build_status
57+
doc/ros2_controller_vs_driver

0 commit comments

Comments
 (0)