Skip to content

Commit 1e48ae3

Browse files
mergify[bot]Felix Exner (fexner)
andauthored
Move installation instructions to subpage (backport #870) (#884)
* Move installation instructions to subpage (#870) Apparently, having the build instructions so prominent on the main page seems to motivate people to build from source instead of installing the binary packages. This change simplifies the main repo page in order to show how to install and quickstart directly, linking to the full instructions from our sphinx doc. * More explicit copy_paste example This example should be ready-to-go when using the URSim example. * Make things equal to main branch --------- Co-authored-by: Felix Exner (fexner) <[email protected]>
1 parent 2d3c0a4 commit 1e48ae3

File tree

3 files changed

+122
-108
lines changed

3 files changed

+122
-108
lines changed

README.md

Lines changed: 50 additions & 108 deletions
Original file line numberDiff line numberDiff line change
@@ -13,84 +13,68 @@ The driver is compatible across the entire line of UR robots -- from 3 kg payloa
1313
Check also [presentations and videos](ur_robot_driver/doc/resources/README.md) about this driver.
1414

1515

16-
## Build Status
16+
## Release Status
1717

1818
<table width="100%">
1919
<tr>
2020
<th>ROS2 Distro</th>
21-
<th>Foxy</th>
22-
<th>Galactic</th>
21+
<th>Foxy (EOL)</th>
22+
<th>Galactic (EOL)</th>
2323
<th>Humble</th>
24+
<th>Iron</th>
2425
<th>Rolling</th>
2526
</tr>
2627
<tr>
2728
<th>Branch</th>
2829
<td><a href="https://github.com/UniversalRobots/Universal_Robots_ROS2_Driver/tree/foxy">foxy</a></td>
2930
<td><a href="https://github.com/UniversalRobots/Universal_Robots_ROS2_Driver/tree/galactic">galactic</a></td>
3031
<td><a href="https://github.com/UniversalRobots/Universal_Robots_ROS2_Driver/tree/humble">humble</a></td>
32+
<td><a href="https://github.com/UniversalRobots/Universal_Robots_ROS2_Driver/tree/iron">iron</a></td>
3133
<td><a href="https://github.com/UniversalRobots/Universal_Robots_ROS2_Driver/tree/main">main</a></td>
3234
</tr>
3335
<tr>
34-
<th>Build Status</th>
36+
<th>Release status</th>
3537
<td>
3638
<a href="https://github.com/UniversalRobots/Universal_Robots_ROS2_Driver/actions/workflows/foxy-binary-build.yml?query=event%3Aschedule++">
3739
<img src="https://github.com/UniversalRobots/Universal_Robots_ROS2_Driver/actions/workflows/foxy-binary-build.yml/badge.svg?event=schedule"
3840
alt="Foxy Binary Build"/>
3941
</a> <br />
40-
<a href="https://github.com/UniversalRobots/Universal_Robots_ROS2_Driver/actions/workflows/foxy-semi-binary-build.yml?query=event%3Aschedule++">
41-
<img src="https://github.com/UniversalRobots/Universal_Robots_ROS2_Driver/actions/workflows/foxy-semi-binary-build.yml/badge.svg?event=schedule"
42-
alt="Foxy Semi-Binary Build"/>
43-
</a>
4442
</td>
4543
<td>
4644
<a href="https://github.com/UniversalRobots/Universal_Robots_ROS2_Driver/actions/workflows/galactic-binary-build.yml?query=event%3Aschedule++">
4745
<img src="https://github.com/UniversalRobots/Universal_Robots_ROS2_Driver/actions/workflows/galactic-binary-build.yml/badge.svg?event=schedule"
4846
alt="Galactic Binary Build"/>
4947
</a> <br />
50-
<a href="https://github.com/UniversalRobots/Universal_Robots_ROS2_Driver/actions/workflows/galactic-semi-binary-build.yml?query=event%3Aschedule++">
51-
<img src="https://github.com/UniversalRobots/Universal_Robots_ROS2_Driver/actions/workflows/galactic-semi-binary-build.yml/badge.svg?event=schedule"
52-
alt="Galactic Semi-Binary Build"/>
53-
</a>
5448
</td>
5549
<td>
56-
<a href="https://github.com/UniversalRobots/Universal_Robots_ROS2_Driver/actions/workflows/humble-binary-build.yml?query=event%3Aschedule++">
57-
<img src="https://github.com/UniversalRobots/Universal_Robots_ROS2_Driver/actions/workflows/humble-binary-build.yml/badge.svg?event=schedule"
58-
alt="Humble Binary Build"/>
59-
</a> <br />
60-
<a href="https://github.com/UniversalRobots/Universal_Robots_ROS2_Driver/actions/workflows/humble-semi-binary-build.yml?query=event%3Aschedule++">
61-
<img src="https://github.com/UniversalRobots/Universal_Robots_ROS2_Driver/actions/workflows/humble-semi-binary-build.yml/badge.svg?event=schedule"
62-
alt="Humble Semi-Binary Build"/>
63-
</a>
50+
<a href='https://build.ros2.org/job/Hbin_uJ64__ur_calibration__ubuntu_jammy_amd64__binary/'><img src='https://build.ros2.org/job/Hbin_uJ64__ur_calibration__ubuntu_jammy_amd64__binary/badge/icon?subject=ur_calibration'></a><br/>
51+
<a href='https://build.ros2.org/job/Hbin_uJ64__ur_controllers__ubuntu_jammy_amd64__binary/'><img src='https://build.ros2.org/job/Hbin_uJ64__ur_controllers__ubuntu_jammy_amd64__binary/badge/icon?subject=ur_controllers'></a>
52+
<a href='https://build.ros2.org/job/Hbin_uJ64__ur_dashboard_msgs__ubuntu_jammy_amd64__binary/'><img src='https://build.ros2.org/job/Hbin_uJ64__ur_dashboard_msgs__ubuntu_jammy_amd64__binary/badge/icon?subject=ur_dashboard_msgs'></a>
53+
<a href='https://build.ros2.org/job/Hbin_uJ64__ur_moveit_config__ubuntu_jammy_amd64__binary/'><img src='https://build.ros2.org/job/Hbin_uJ64__ur_moveit_config__ubuntu_jammy_amd64__binary/badge/icon?subject=ur_moveit_config'></a>
54+
<a href='https://build.ros2.org/job/Hbin_uJ64__ur_robot_driver__ubuntu_jammy_amd64__binary/'><img src='https://build.ros2.org/job/Hbin_uJ64__ur_robot_driver__ubuntu_jammy_amd64__binary/badge/icon?subject=ur_robot_driver'></a>
6455
</td>
6556
<td>
66-
<a href="https://github.com/UniversalRobots/Universal_Robots_ROS2_Driver/actions/workflows/rolling-binary-build.yml?query=branch%3Amain+">
67-
<img src="https://github.com/UniversalRobots/Universal_Robots_ROS2_Driver/actions/workflows/rolling-binary-build.yml/badge.svg?branch=main"
68-
alt="Rolling Binary Build"/>
69-
</a> <br />
70-
<a href="https://github.com/UniversalRobots/Universal_Robots_ROS2_Driver/actions/workflows/rolling-semi-binary-build.yml?query=branch%3Amain+">
71-
<img src="https://github.com/UniversalRobots/Universal_Robots_ROS2_Driver/actions/workflows/rolling-semi-binary-build.yml/badge.svg?branch=main"
72-
alt="Rolling Semi-Binary Build"/>
73-
</a>
57+
<a href='https://build.ros2.org/job/Ibin_uJ64__ur_calibration__ubuntu_jammy_amd64__binary/'><img src='https://build.ros2.org/job/Ibin_uJ64__ur_calibration__ubuntu_jammy_amd64__binary/badge/icon?subject=ur_calibration'></a><br/>
58+
<a href='https://build.ros2.org/job/Ibin_uJ64__ur_controllers__ubuntu_jammy_amd64__binary/'><img src='https://build.ros2.org/job/Ibin_uJ64__ur_controllers__ubuntu_jammy_amd64__binary/badge/icon?subject=ur_controllers'></a>
59+
<a href='https://build.ros2.org/job/Ibin_uJ64__ur_dashboard_msgs__ubuntu_jammy_amd64__binary/'><img src='https://build.ros2.org/job/Ibin_uJ64__ur_dashboard_msgs__ubuntu_jammy_amd64__binary/badge/icon?subject=ur_dashboard_msgs'></a>
60+
<a href='https://build.ros2.org/job/Ibin_uJ64__ur_moveit_config__ubuntu_jammy_amd64__binary/'><img src='https://build.ros2.org/job/Ibin_uJ64__ur_moveit_config__ubuntu_jammy_amd64__binary/badge/icon?subject=ur_moveit_config'></a>
61+
<a href='https://build.ros2.org/job/Ibin_uJ64__ur_robot_driver__ubuntu_jammy_amd64__binary/'><img src='https://build.ros2.org/job/Ibin_uJ64__ur_robot_driver__ubuntu_jammy_amd64__binary/badge/icon?subject=ur_robot_driver'></a>
62+
</td>
63+
<td>
64+
<a href='https://build.ros2.org/job/Rbin_uJ64__ur_calibration__ubuntu_jammy_amd64__binary/'><img src='https://build.ros2.org/job/Rbin_uJ64__ur_calibration__ubuntu_jammy_amd64__binary/badge/icon?subject=ur_calibration'></a><br/>
65+
<a href='https://build.ros2.org/job/Rbin_uJ64__ur_controllers__ubuntu_jammy_amd64__binary/'><img src='https://build.ros2.org/job/Rbin_uJ64__ur_controllers__ubuntu_jammy_amd64__binary/badge/icon?subject=ur_controllers'></a>
66+
<a href='https://build.ros2.org/job/Rbin_uJ64__ur_dashboard_msgs__ubuntu_jammy_amd64__binary/'><img src='https://build.ros2.org/job/Rbin_uJ64__ur_dashboard_msgs__ubuntu_jammy_amd64__binary/badge/icon?subject=ur_dashboard_msgs'></a>
67+
<a href='https://build.ros2.org/job/Rbin_uJ64__ur_moveit_config__ubuntu_jammy_amd64__binary/'><img src='https://build.ros2.org/job/Rbin_uJ64__ur_moveit_config__ubuntu_jammy_amd64__binary/badge/icon?subject=ur_moveit_config'></a>
68+
<a href='https://build.ros2.org/job/Rbin_uJ64__ur_robot_driver__ubuntu_jammy_amd64__binary/'><img src='https://build.ros2.org/job/Rbin_uJ64__ur_robot_driver__ubuntu_jammy_amd64__binary/badge/icon?subject=ur_robot_driver'></a>
7469
</td>
7570
</tr>
7671
</table>
7772

73+
The table above shows the build status for each package of this repo from the [ROS buildfarm](https://build.ros2.org/). For end-of-life (EOL) distributions the nightly binary builds from our CI are shown. EOL distributions will receive no more updates and may be lacking features.
7874

79-
**NOTE**: There are two build stages checking current and future compatibility of the driver.
80-
81-
1. Binary builds - against released packages (main and testing) in ROS distributions. Shows that direct local build is possible.
82-
83-
Uses repos file: `src/Universal_Robots_ROS2_Driver/Universal_Robots_ROS2_Driver-not-released.<ros-distro>.repos`
84-
85-
1. Semi-binary builds - against released core ROS packages (main and testing), but the immediate dependencies are pulled from source.
86-
Shows that local build with dependencies is possible and if fails there we can expect that after the next package sync we will not be able to build.
87-
88-
Uses repos file: `src/Universal_Robots_ROS2_Driver/Universal_Robots_ROS2_Driver.repos`
89-
90-
Each of these stages also performs integration tests using ursim. In order to execute these tests locally, they have to be enabled:
91-
```
92-
colcon build --packages-select ur_robot_driver --cmake-args -DUR_ROBOT_DRIVER_BUILD_INTEGRATION_TESTS=On
93-
```
75+
A more [detailed build status](ci_status.md) shows the state of all CI workflows inside this repo.
76+
Please note that the detailed view is intended for developers, while the one here should give end
77+
users an overview of the current released state.
9478

9579

9680
## Packages in the Repository:
@@ -105,83 +89,45 @@ Each of these stages also performs integration tests using ursim. In order to ex
10589

10690
Deprecation: The `ur_bringup` package is deprecated and will be removed from Iron Irwini on.
10791

92+
## System Requirements
93+
94+
Please see the [requirements for the Universal_Robots_Client_Library](https://github.com/UniversalRobots/Universal_Robots_Client_Library#requirements), as this driver is build on top of Universal_Robots_Client_Library.
95+
10896
## Getting Started
10997

11098
For getting started, you'll basically need three steps:
11199

112-
1. **Install the driver** (see below). You can either install this driver from binary packages or build it from source. We recommend a
113-
binary package installation unless you want to join development and submit changes.
100+
1. **Install the driver**
101+
```bash
102+
sudo apt-get install ros-humble-ur
103+
```
104+
See the [installation instructions](https://docs.ros.org/en/ros2_packages/humble/api/ur_robot_driver/installation/installation.html) for more details and source-build instructions.
114105

115106
2. **Start & Setup the robot**. Once you've installed the driver, [setup the
116107
robot](https://docs.ros.org/en/ros2_packages/humble/api/ur_robot_driver/installation/robot_setup.html)
108+
and [create a program for external
109+
control](https://docs.ros.org/en/ros2_packages/humble/api/ur_robot_driver/installation/install_urcap_e_series.html).
117110

118-
Please do this step carefully and extract the calibration as explained
119-
[here](https://docs.ros.org/en/ros2_packages/humble/api/ur_robot_driver/installation/robot_setup.html#extract-calibration-information).
120-
Otherwise the TCP's pose will not be correct inside the ROS ecosystem.
121-
122-
If no real robot is required, you can [use a simulated
123-
robot](https://docs.ros.org/en/ros2_packages/humble/api/ur_robot_driver/usage.html#usage-with-official-ur-simulator)
124-
that will behave almost exactly like the real robot.
111+
Please do this step carefully and extract the calibration as explained
112+
[here](https://docs.ros.org/en/ros2_packages/humble/api/ur_robot_driver/installation/robot_setup.html#extract-calibration-information).
113+
Otherwise the TCP's pose will not be correct inside the ROS ecosystem.
125114

115+
If no real robot is required, you can [use a simulated
116+
robot](https://docs.ros.org/en/ros2_packages/humble/api/ur_robot_driver/usage.html#usage-with-official-ur-simulator)
117+
that will behave almost exactly like the real robot.
126118

127119
3. **Start the driver**. See the [usage
128120
documentation](https://docs.ros.org/en/ros2_packages/humble/api/ur_robot_driver/usage.html) for
129121
details.
130122

131-
### Install from binary packages
132-
1. [Install ROS2](https://docs.ros.org/en/humble/Installation/Ubuntu-Install-Debians.html). This
133-
branch supports only ROS2 Humble. For other ROS2 versions, please see the respective
134-
branches.
135-
2. Install the driver using
123+
```bash
124+
# Replace ur5e with one of ur3, ur3e, ur5, ur5e, ur10, ur10e, ur16e, ur20, ur30
125+
# Replace the IP address with the IP address of your actual robot / URSim
126+
ros2 launch ur_robot_driver ur_control.launch.py ur_type:=ur5e robot_ip:=192.168.56.101
136127
```
137-
sudo apt-get install ros-${ROS_DISTRO}-ur
138-
```
139-
140-
### Build from source
141-
Before building from source please make sure that you actually need to do that. Building from source
142-
might require some special treatment, especially when it comes to dependency management.
143-
Dependencies might change from time to time. Upstream packages (such as the library) might change
144-
their features / API which require changes in this repo. Therefore, this repo's source builds might
145-
require upstream repositories to be present in a certain version as otherwise builds might fail.
146-
Starting from scratch following exactly the steps below should always work, but simply pulling and
147-
building might fail occasionally.
148-
149-
1. [Install ROS2](https://docs.ros.org/en/humble/Installation/Ubuntu-Install-Debians.html).
150-
branch supports only ROS2 Humble. For other ROS2 versions, please see the respective
151-
branches.
152-
153-
Once installed, please make sure to actually [source ROS2](https://docs.ros.org/en/humble/Tutorials/Beginner-CLI-Tools/Configuring-ROS2-Environment.html#source-the-setup-files) before proceeding.
154128

155-
3. Make sure that `colcon`, its extensions and `vcs` are installed:
156-
```
157-
sudo apt install python3-colcon-common-extensions python3-vcstool
158-
```
129+
4. Unless started in [headless mode](https://docs.ros.org/en/ros2_packages/humble/api/ur_robot_driver/ROS_INTERFACE.html#headless-mode): Run the external_control program by **pressing `play` on the teach pendant**.
159130

160-
4. Create a new ROS2 workspace:
161-
```
162-
export COLCON_WS=~/workspace/ros_ur_driver
163-
mkdir -p $COLCON_WS/src
164-
```
165-
166-
5. Clone relevant packages, install dependencies, compile, and source the workspace by using:
167-
```
168-
cd $COLCON_WS
169-
git clone -b humble https://github.com/UniversalRobots/Universal_Robots_ROS2_Driver.git src/Universal_Robots_ROS2_Driver
170-
vcs import src --skip-existing --input src/Universal_Robots_ROS2_Driver/Universal_Robots_ROS2_Driver-not-released.${ROS_DISTRO}.repos
171-
rosdep update
172-
rosdep install --ignore-src --from-paths src -y
173-
colcon build --cmake-args -DCMAKE_BUILD_TYPE=Release
174-
source install/setup.bash
175-
```
176-
177-
6. When consecutive pulls leads to build errors, please make sure to update the upstream packages before
178-
filing an issue:
179-
```
180-
cd $COLCON_WS
181-
vcs import src --skip-existing --input src/Universal_Robots_ROS2_Driver/Universal_Robots_ROS2_Driver-not-released.${ROS_DISTRO}.repos
182-
rosdep update
183-
rosdep install --ignore-src --from-paths src -y
184-
```
185131

186132
## MoveIt! support
187133

@@ -197,16 +143,12 @@ section](https://docs.ros.org/en/ros2_packages/humble/api/ur_robot_driver/usage.
197143
of the [Usage guide](https://docs.ros.org/en/ros2_packages/humble/api/ur_robot_driver/usage.html)
198144
for details.
199145

200-
## Expected Changes in the Near Future
201-
202-
- Trajectory control currently only supports position commands. In the future, velocity control will be added.
203146

204147

205148
## Contributor Guidelines
206-
Code is auto-formatted with clang-format 14 whenever a git commit is made. Please ensure these dependencies are installed:
149+
pre-commit is used to run a couple of checks before committing. To install it, run:
207150
```
208151
pip3 install pre-commit
209-
sudo apt install clang-format-14
210152
```
211153

212154
Prepare the pre-commit formatting to run like this:
Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
Installation of the ur_robot_driver
2+
===================================
3+
4+
You can either install this driver from binary packages as shown above or build it from source. We
5+
recommend a binary package installation unless you want to join development and submit changes.
6+
7+
Install from binary packages
8+
----------------------------
9+
10+
1. `Install ROS2 <https://docs.ros.org/en/rolling/Installation/Ubuntu-Install-Debians.html>`_. This
11+
branch supports only ROS2 Rolling. For other ROS2 versions, please see the respective branches.
12+
2. Install the driver using
13+
14+
.. code-block:: bash
15+
16+
sudo apt-get install ros-${ROS_DISTRO}-ur
17+
18+
19+
Build from source
20+
-----------------
21+
22+
Before building from source please make sure that you actually need to do that. Building from source
23+
might require some special treatment, especially when it comes to dependency management.
24+
Dependencies might change from time to time. Upstream packages (such as the library) might change
25+
their features / API which require changes in this repo. Therefore, this repo's source builds might
26+
require upstream repositories to be present in a certain version as otherwise builds might fail.
27+
Starting from scratch following exactly the steps below should always work, but simply pulling and
28+
building might fail occasionally.
29+
30+
1. `Install ROS2 <https://docs.ros.org/en/rolling/Installation/Ubuntu-Install-Debians.html>`_. This
31+
branch supports only ROS2 Rolling. For other ROS2 versions, please see the respective branches.
32+
33+
Once installed, please make sure to actually `source ROS2 <https://docs.ros.org/en/rolling/Tutorials/Beginner-CLI-Tools/Configuring-ROS2-Environment.html#source-the-setup-files>`_ before proceeding.
34+
35+
3. Make sure that ``colcon``, its extensions and ``vcs`` are installed:
36+
37+
.. code-block:: bash
38+
39+
sudo apt install python3-colcon-common-extensions python3-vcstool
40+
41+
42+
4. Create a new ROS2 workspace:
43+
44+
.. code-block:: bash
45+
46+
export COLCON_WS=~/workspace/ros_ur_driver
47+
mkdir -p $COLCON_WS/src
48+
49+
5. Clone relevant packages, install dependencies, compile, and source the workspace by using:
50+
51+
.. code-block:: bash
52+
53+
cd $COLCON_WS
54+
git clone https://github.com/UniversalRobots/Universal_Robots_ROS2_Driver.git src/Universal_Robots_ROS2_Driver
55+
vcs import src --skip-existing --input src/Universal_Robots_ROS2_Driver/Universal_Robots_ROS2_Driver-not-released.${ROS_DISTRO}.repos
56+
rosdep update
57+
rosdep install --ignore-src --from-paths src -y
58+
colcon build --cmake-args -DCMAKE_BUILD_TYPE=Release
59+
source install/setup.bash
60+
61+
6. When consecutive pulls lead to build errors it is possible that you'll have to build an upstream
62+
package from source, as well. See the [detailed build status](ci_status.md). When the binary builds are red, but
63+
the semi-binary builds are green, you need to build the upstream dependencies from source. The
64+
easiest way to achieve this, is using the repos file:
65+
66+
.. code-block:: bash
67+
68+
cd $COLCON_WS
69+
vcs import src --skip-existing --input src/Universal_Robots_ROS2_Driver/Universal_Robots_ROS2_Driver.${ROS_DISTRO}.repos
70+
rosdep update
71+
rosdep install --ignore-src --from-paths src -y

ur_robot_driver/doc/installation/toc.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ This chapter explains how to install the ``ur_robot_driver``
99
:maxdepth: 4
1010
:caption: Contents:
1111

12+
installation
1213
real_time
1314
robot_setup
1415
install_urcap_cb3

0 commit comments

Comments
 (0)