diff --git a/README.md b/README.md
index 581e159f4..600fdd5ff 100644
--- a/README.md
+++ b/README.md
@@ -13,14 +13,15 @@ The driver is compatible across the entire line of UR robots -- from 3 kg payloa
Check also [presentations and videos](ur_robot_driver/doc/resources/README.md) about this driver.
-## Build Status
+## Release Status
ROS2 Distro |
- Foxy |
- Galactic |
+ Foxy (EOL) |
+ Galactic (EOL) |
Humble |
+ Iron |
Rolling |
@@ -28,69 +29,52 @@ Check also [presentations and videos](ur_robot_driver/doc/resources/README.md) a
foxy |
galactic |
humble |
+ iron |
main |
- Build Status |
+ Release status |
-
-
-
|
-
-
-
|
-
-
-
-
-
-
+
+
+
+
+
|
-
-
-
-
-
-
+
+
+
+
+
+ |
+
+
+
+
+
+
|
+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.
-**NOTE**: There are two build stages checking current and future compatibility of the driver.
-
-1. Binary builds - against released packages (main and testing) in ROS distributions. Shows that direct local build is possible.
-
- Uses repos file: `src/Universal_Robots_ROS2_Driver/Universal_Robots_ROS2_Driver-not-released..repos`
-
-1. Semi-binary builds - against released core ROS packages (main and testing), but the immediate dependencies are pulled from source.
- 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.
-
- Uses repos file: `src/Universal_Robots_ROS2_Driver/Universal_Robots_ROS2_Driver.repos`
-
-Each of these stages also performs integration tests using ursim. In order to execute these tests locally, they have to be enabled:
- ```
- colcon build --packages-select ur_robot_driver --cmake-args -DUR_ROBOT_DRIVER_BUILD_INTEGRATION_TESTS=On
- ```
+A more [detailed build status](ci_status.md) shows the state of all CI workflows inside this repo.
+Please note that the detailed view is intended for developers, while the one here should give end
+users an overview of the current released state.
## Packages in the Repository:
@@ -105,83 +89,45 @@ Each of these stages also performs integration tests using ursim. In order to ex
Deprecation: The `ur_bringup` package is deprecated and will be removed from Iron Irwini on.
+## System Requirements
+
+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.
+
## Getting Started
For getting started, you'll basically need three steps:
-1. **Install the driver** (see below). You can either install this driver from binary packages or build it from source. We recommend a
-binary package installation unless you want to join development and submit changes.
+1. **Install the driver**
+ ```bash
+ sudo apt-get install ros-humble-ur
+ ```
+ 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.
2. **Start & Setup the robot**. Once you've installed the driver, [setup the
robot](https://docs.ros.org/en/ros2_packages/humble/api/ur_robot_driver/installation/robot_setup.html)
+ and [create a program for external
+ control](https://docs.ros.org/en/ros2_packages/humble/api/ur_robot_driver/installation/install_urcap_e_series.html).
-Please do this step carefully and extract the calibration as explained
-[here](https://docs.ros.org/en/ros2_packages/humble/api/ur_robot_driver/installation/robot_setup.html#extract-calibration-information).
-Otherwise the TCP's pose will not be correct inside the ROS ecosystem.
-
-If no real robot is required, you can [use a simulated
-robot](https://docs.ros.org/en/ros2_packages/humble/api/ur_robot_driver/usage.html#usage-with-official-ur-simulator)
-that will behave almost exactly like the real robot.
+ Please do this step carefully and extract the calibration as explained
+ [here](https://docs.ros.org/en/ros2_packages/humble/api/ur_robot_driver/installation/robot_setup.html#extract-calibration-information).
+ Otherwise the TCP's pose will not be correct inside the ROS ecosystem.
+ If no real robot is required, you can [use a simulated
+ robot](https://docs.ros.org/en/ros2_packages/humble/api/ur_robot_driver/usage.html#usage-with-official-ur-simulator)
+ that will behave almost exactly like the real robot.
3. **Start the driver**. See the [usage
documentation](https://docs.ros.org/en/ros2_packages/humble/api/ur_robot_driver/usage.html) for
details.
-### Install from binary packages
-1. [Install ROS2](https://docs.ros.org/en/humble/Installation/Ubuntu-Install-Debians.html). This
- branch supports only ROS2 Humble. For other ROS2 versions, please see the respective
- branches.
-2. Install the driver using
+ ```bash
+ # Replace ur5e with one of ur3, ur3e, ur5, ur5e, ur10, ur10e, ur16e, ur20, ur30
+ # Replace the IP address with the IP address of your actual robot / URSim
+ ros2 launch ur_robot_driver ur_control.launch.py ur_type:=ur5e robot_ip:=192.168.56.101
```
- sudo apt-get install ros-${ROS_DISTRO}-ur
- ```
-
-### Build from source
-Before building from source please make sure that you actually need to do that. Building from source
-might require some special treatment, especially when it comes to dependency management.
-Dependencies might change from time to time. Upstream packages (such as the library) might change
-their features / API which require changes in this repo. Therefore, this repo's source builds might
-require upstream repositories to be present in a certain version as otherwise builds might fail.
-Starting from scratch following exactly the steps below should always work, but simply pulling and
-building might fail occasionally.
-
-1. [Install ROS2](https://docs.ros.org/en/humble/Installation/Ubuntu-Install-Debians.html).
- branch supports only ROS2 Humble. For other ROS2 versions, please see the respective
- branches.
-
- 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.
-3. Make sure that `colcon`, its extensions and `vcs` are installed:
- ```
- sudo apt install python3-colcon-common-extensions python3-vcstool
- ```
+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**.
-4. Create a new ROS2 workspace:
- ```
- export COLCON_WS=~/workspace/ros_ur_driver
- mkdir -p $COLCON_WS/src
- ```
-
-5. Clone relevant packages, install dependencies, compile, and source the workspace by using:
- ```
- cd $COLCON_WS
- git clone -b humble https://github.com/UniversalRobots/Universal_Robots_ROS2_Driver.git src/Universal_Robots_ROS2_Driver
- vcs import src --skip-existing --input src/Universal_Robots_ROS2_Driver/Universal_Robots_ROS2_Driver-not-released.${ROS_DISTRO}.repos
- rosdep update
- rosdep install --ignore-src --from-paths src -y
- colcon build --cmake-args -DCMAKE_BUILD_TYPE=Release
- source install/setup.bash
- ```
-
-6. When consecutive pulls leads to build errors, please make sure to update the upstream packages before
- filing an issue:
- ```
- cd $COLCON_WS
- vcs import src --skip-existing --input src/Universal_Robots_ROS2_Driver/Universal_Robots_ROS2_Driver-not-released.${ROS_DISTRO}.repos
- rosdep update
- rosdep install --ignore-src --from-paths src -y
- ```
## MoveIt! support
@@ -197,16 +143,12 @@ section](https://docs.ros.org/en/ros2_packages/humble/api/ur_robot_driver/usage.
of the [Usage guide](https://docs.ros.org/en/ros2_packages/humble/api/ur_robot_driver/usage.html)
for details.
-## Expected Changes in the Near Future
-
-- Trajectory control currently only supports position commands. In the future, velocity control will be added.
## Contributor Guidelines
-Code is auto-formatted with clang-format 14 whenever a git commit is made. Please ensure these dependencies are installed:
+pre-commit is used to run a couple of checks before committing. To install it, run:
```
pip3 install pre-commit
- sudo apt install clang-format-14
```
Prepare the pre-commit formatting to run like this:
diff --git a/ur_robot_driver/doc/installation/installation.rst b/ur_robot_driver/doc/installation/installation.rst
new file mode 100644
index 000000000..eed955798
--- /dev/null
+++ b/ur_robot_driver/doc/installation/installation.rst
@@ -0,0 +1,71 @@
+Installation of the ur_robot_driver
+===================================
+
+You can either install this driver from binary packages as shown above or build it from source. We
+recommend a binary package installation unless you want to join development and submit changes.
+
+Install from binary packages
+----------------------------
+
+1. `Install ROS2 `_. This
+ branch supports only ROS2 Rolling. For other ROS2 versions, please see the respective branches.
+2. Install the driver using
+
+ .. code-block:: bash
+
+ sudo apt-get install ros-${ROS_DISTRO}-ur
+
+
+Build from source
+-----------------
+
+Before building from source please make sure that you actually need to do that. Building from source
+might require some special treatment, especially when it comes to dependency management.
+Dependencies might change from time to time. Upstream packages (such as the library) might change
+their features / API which require changes in this repo. Therefore, this repo's source builds might
+require upstream repositories to be present in a certain version as otherwise builds might fail.
+Starting from scratch following exactly the steps below should always work, but simply pulling and
+building might fail occasionally.
+
+1. `Install ROS2 `_. This
+ branch supports only ROS2 Rolling. For other ROS2 versions, please see the respective branches.
+
+ Once installed, please make sure to actually `source ROS2 `_ before proceeding.
+
+3. Make sure that ``colcon``, its extensions and ``vcs`` are installed:
+
+ .. code-block:: bash
+
+ sudo apt install python3-colcon-common-extensions python3-vcstool
+
+
+4. Create a new ROS2 workspace:
+
+ .. code-block:: bash
+
+ export COLCON_WS=~/workspace/ros_ur_driver
+ mkdir -p $COLCON_WS/src
+
+5. Clone relevant packages, install dependencies, compile, and source the workspace by using:
+
+ .. code-block:: bash
+
+ cd $COLCON_WS
+ git clone https://github.com/UniversalRobots/Universal_Robots_ROS2_Driver.git src/Universal_Robots_ROS2_Driver
+ vcs import src --skip-existing --input src/Universal_Robots_ROS2_Driver/Universal_Robots_ROS2_Driver-not-released.${ROS_DISTRO}.repos
+ rosdep update
+ rosdep install --ignore-src --from-paths src -y
+ colcon build --cmake-args -DCMAKE_BUILD_TYPE=Release
+ source install/setup.bash
+
+6. When consecutive pulls lead to build errors it is possible that you'll have to build an upstream
+ package from source, as well. See the [detailed build status](ci_status.md). When the binary builds are red, but
+ the semi-binary builds are green, you need to build the upstream dependencies from source. The
+ easiest way to achieve this, is using the repos file:
+
+ .. code-block:: bash
+
+ cd $COLCON_WS
+ vcs import src --skip-existing --input src/Universal_Robots_ROS2_Driver/Universal_Robots_ROS2_Driver.${ROS_DISTRO}.repos
+ rosdep update
+ rosdep install --ignore-src --from-paths src -y
diff --git a/ur_robot_driver/doc/installation/toc.rst b/ur_robot_driver/doc/installation/toc.rst
index 926be1acd..2ee60aae8 100644
--- a/ur_robot_driver/doc/installation/toc.rst
+++ b/ur_robot_driver/doc/installation/toc.rst
@@ -9,6 +9,7 @@ This chapter explains how to install the ``ur_robot_driver``
:maxdepth: 4
:caption: Contents:
+ installation
real_time
robot_setup
install_urcap_cb3