From 2d026bc4638e38c728cc635bc0f3c14b875a547b Mon Sep 17 00:00:00 2001 From: "Felix Exner (fexner)" Date: Wed, 9 Oct 2024 11:58:07 +0200 Subject: [PATCH 01/13] [moveit] Add config for trajectory execution and disable execution monitoring by default (#1132) With the scaled JTC execution time monitoring doesn't make much sense as long as MoveIt is not aware of the trajectory scaling. --- ur_moveit_config/config/moveit_controllers.yaml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/ur_moveit_config/config/moveit_controllers.yaml b/ur_moveit_config/config/moveit_controllers.yaml index 34e4194c7..a55d0d486 100644 --- a/ur_moveit_config/config/moveit_controllers.yaml +++ b/ur_moveit_config/config/moveit_controllers.yaml @@ -1,6 +1,12 @@ # MoveIt uses this configuration for controller management moveit_controller_manager: moveit_simple_controller_manager/MoveItSimpleControllerManager +trajectory_execution: + allowed_execution_duration_scaling: 1.2 + allowed_goal_duration_margin: 0.5 + allowed_start_tolerance: 0.01 + execution_duration_monitoring: false # Not much use when using the scaled JTC + moveit_simple_controller_manager: controller_names: - scaled_joint_trajectory_controller From 988b151598217a7f79dd14b729cf04a37f1cabf9 Mon Sep 17 00:00:00 2001 From: "Felix Exner (fexner)" Date: Thu, 10 Oct 2024 11:42:24 +0200 Subject: [PATCH 02/13] Add note about TEM (#1136) --------- Co-authored-by: G.A. vd. Hoorn --- .../config/moveit_controllers.yaml | 2 +- ur_moveit_config/doc/index.rst | 18 ++++++++++++++++++ ur_robot_driver/doc/usage/move.rst | 12 ++++++++++++ 3 files changed, 31 insertions(+), 1 deletion(-) diff --git a/ur_moveit_config/config/moveit_controllers.yaml b/ur_moveit_config/config/moveit_controllers.yaml index a55d0d486..57e276b7f 100644 --- a/ur_moveit_config/config/moveit_controllers.yaml +++ b/ur_moveit_config/config/moveit_controllers.yaml @@ -5,7 +5,7 @@ trajectory_execution: allowed_execution_duration_scaling: 1.2 allowed_goal_duration_margin: 0.5 allowed_start_tolerance: 0.01 - execution_duration_monitoring: false # Not much use when using the scaled JTC + execution_duration_monitoring: false # May lead to unexpectedly aborted goals with scaled JTC moveit_simple_controller_manager: controller_names: diff --git a/ur_moveit_config/doc/index.rst b/ur_moveit_config/doc/index.rst index d23eefa9b..7d2ad19e1 100644 --- a/ur_moveit_config/doc/index.rst +++ b/ur_moveit_config/doc/index.rst @@ -23,3 +23,21 @@ interaction using Now you should be able to use the MoveIt Plugin in rviz2 to plan and execute trajectories with the robot as explained `here `_. + +.. note:: + The MoveIt configuration provided here has Trajectory Execution Monitoring (TEM) *disabled*, as the + Scaled Joint Trajectory Controller may cause trajectories to be executed at a lower velocity + than they were originally planned by MoveIt. MoveIt's TEM however is not aware of this + deliberate slow-down due to scaling and will in most cases unnecessarily (and unexpectedly) + abort goals. + + Until this incompatibility is resolved, the default value for ``execution_duration_monitoring`` + is set to ``false``. Users who wish to temporarily (re)enable TEM at runtime (for use with + other, non-scaling controllers) can do so using the ROS 2 parameter services supported by + MoveIt. + + .. literalinclude:: ../config/moveit_controllers.yaml + :language: yaml + :start-at: trajectory_execution: + :end-at: execution_duration_monitoring + :caption: moveit_controllers.yaml diff --git a/ur_robot_driver/doc/usage/move.rst b/ur_robot_driver/doc/usage/move.rst index 6abe1bf6e..e51b6c7fe 100644 --- a/ur_robot_driver/doc/usage/move.rst +++ b/ur_robot_driver/doc/usage/move.rst @@ -67,4 +67,16 @@ To test the driver with the example MoveIt-setup, first start the driver as desc Now you should be able to use the MoveIt Plugin in rviz2 to plan and execute trajectories with the robot as explained `here `_. +.. note:: + The MoveIt configuration provided here has Trajectory Execution Monitoring (TEM) *disabled*, as the + Scaled Joint Trajectory Controller may cause trajectories to be executed at a lower velocity + than they were originally planned by MoveIt. MoveIt's TEM however is not aware of this + deliberate slow-down due to scaling and will in most cases unnecessarily (and unexpectedly) + abort goals. + + Until this incompatibility is resolved, the default value for ``execution_duration_monitoring`` + is set to ``false``. Users who wish to temporarily (re)enable TEM at runtime (for use with + other, non-scaling controllers) can do so using the ROS 2 parameter services supported by + MoveIt. + For more details, please see :ref:`ur_moveit_config`. From ff3ce2190696b5b738f2c3d675d37ecfd6e8a2ba Mon Sep 17 00:00:00 2001 From: "Felix Exner (fexner)" Date: Thu, 10 Oct 2024 11:55:02 +0200 Subject: [PATCH 03/13] Readme update hosted docs (#1137) * Update doc links from README to use separate doc * Add a URL check to CI This way we should find our earlier if a link breaks. * Update link check to have ignore patterns * Fix array handling --- .github/helpers/check_urls.sh | 67 +++++++++++++++++++++++++++++++ .github/workflows/check_links.yml | 19 +++++++++ README.md | 18 ++++----- 3 files changed, 95 insertions(+), 9 deletions(-) create mode 100755 .github/helpers/check_urls.sh create mode 100644 .github/workflows/check_links.yml diff --git a/.github/helpers/check_urls.sh b/.github/helpers/check_urls.sh new file mode 100755 index 000000000..f7222d115 --- /dev/null +++ b/.github/helpers/check_urls.sh @@ -0,0 +1,67 @@ +#!/bin/bash + +set -e + +IGNORE_FILES="" +IGNORE_PATTERNS="" + +while getopts ":f:d:p:" opt; do + case "${opt}" in + f) + IGNORE_FILES="${OPTARG}";; + d) + IGNORE_DIRS="${OPTARG}";; + p) + IGNORE_PATTERNS="${OPTARG}";; + \?) + echo "Invalid option -$OPTARG" + exit;; + esac +done + +read -r -a ignore_files <<<"$IGNORE_FILES" +read -r -a ignore_dirs <<<"$IGNORE_DIRS" +read -r -a ignore_patterns <<<"$IGNORE_PATTERNS" + +IGNORE_FILES_ARG="" +for item in "${ignore_files[@]}"; do + IGNORE_FILES_ARG="$IGNORE_FILES_ARG --exclude=$item" +done +IGNORE_DIRS_ARG="" +for item in "${ignore_dirs[@]}"; do + IGNORE_DIRS_ARG="$IGNORE_DIRS_ARG --exclude-dir=$item" +done + +#Find URLs in code: +urls=$(grep -oP '(http|ftp|https):\/\/([a-zA-Z0-9_-]+(?:(?:\.[a-zA-Z0-9_-]+)+))([a-zA-Z0-9_.,@?^=%&:\/~+#-]*[a-zA-Z0-9_@?^=%&\/~+#-])?' -rI $IGNORE_FILES_ARG $IGNORE_DIRS_ARG) + +fail_counter=0 + +FAILED_LINKS=() +for item in $urls; do +# echo $item + skip=0 + for pattern in "${ignore_patterns[@]}"; do + [[ "$item" =~ $pattern ]] && skip=1 + done + + if [[ $skip == 1 ]]; then + echo "SKIPPING $item" + continue + fi + + filename=$(echo "$item" | cut -d':' -f1) + url=$(echo "$item" | cut -d':' -f2-) + echo -n "Checking $url from file $filename" + if ! curl --head --silent --fail "$url" 2>&1 > /dev/null; then + echo -e " \033[0;31mNOT FOUND\033[32m\n" + FAILED_LINKS+=("$url from file $filename") + ((fail_counter=fail_counter+1)) + else + printf " \033[32mok\033[0m\n" + fi +done + +echo "Failed files:" +printf '%s\n' "${FAILED_LINKS[@]}" +exit $fail_counter diff --git a/.github/workflows/check_links.yml b/.github/workflows/check_links.yml new file mode 100644 index 000000000..ba1800e00 --- /dev/null +++ b/.github/workflows/check_links.yml @@ -0,0 +1,19 @@ +name: Check Links +on: + workflow_dispatch: + pull_request: + push: + branches: + - main + +jobs: + check_links: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: Check URLs + run: | + .github/helpers/check_urls.sh \ + -d ".git build CMakeModules debian" \ + -f "package.xml ursim_docker.rst" \ + -p "vnc\.html" diff --git a/README.md b/README.md index 2413a2f11..5888b857f 100644 --- a/README.md +++ b/README.md @@ -103,24 +103,24 @@ For getting started, you'll basically need three steps: ```bash sudo apt-get install ros-rolling-ur ``` - See the [installation instructions](https://docs.ros.org/en/ros2_packages/rolling/api/ur_robot_driver/installation/installation.html) for more details and source-build instructions. + See the [installation instructions](https://docs.universal-robots.com/Universal_Robots_ROS2_Documentation/doc/ur_robot_driver/ur_robot_driver/doc/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/rolling/api/ur_robot_driver/installation/robot_setup.html) + robot](https://docs.universal-robots.com/Universal_Robots_ROS2_Documentation/doc/ur_robot_driver/ur_robot_driver/doc/installation/robot_setup.html) and [create a program for external - control](https://docs.ros.org/en/ros2_packages/rolling/api/ur_robot_driver/installation/install_urcap_e_series.html). + control](https://docs.universal-robots.com/Universal_Robots_ROS2_Documentation/doc/ur_robot_driver/ur_robot_driver/doc/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/rolling/api/ur_robot_driver/installation/robot_setup.html#extract-calibration-information). + [here](https://docs.universal-robots.com/Universal_Robots_ROS2_Documentation/doc/ur_robot_driver/ur_robot_driver/doc/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/rolling/api/ur_robot_driver/usage.html#usage-with-official-ur-simulator) + robot](https://docs.universal-robots.com/Universal_Robots_ROS2_Documentation/doc/ur_robot_driver/ur_robot_driver/doc/usage/simulation.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/rolling/api/ur_robot_driver/usage.html) for + documentation](https://docs.universal-robots.com/Universal_Robots_ROS2_Documentation/doc/ur_robot_driver/ur_robot_driver/doc/usage/toc.html) for details. ```bash @@ -129,7 +129,7 @@ For getting started, you'll basically need three steps: ros2 launch ur_robot_driver ur_control.launch.py ur_type:=ur5e robot_ip:=192.168.56.101 ``` -4. Unless started in [headless mode](https://docs.ros.org/en/ros2_packages/rolling/api/ur_robot_driver/ROS_INTERFACE.html#headless-mode): Run the external_control program by **pressing `play` on the teach pendant**. +4. Unless started in [headless mode](https://docs.universal-robots.com/Universal_Robots_ROS2_Documentation/doc/ur_robot_driver/ur_robot_driver/doc/operation_modes.html#headless-mode): Run the external_control program by **pressing `play` on the teach pendant**. ## MoveIt! support @@ -142,9 +142,9 @@ Watch MoveIt in action with the Universal Robots ROS2 driver: *The video shows free-space trajectory planning around a modeled collision scene object using the MoveIt2 MotionPlanning widget for Rviz2.* See the [MoveIt! -section](https://docs.ros.org/en/ros2_packages/rolling/api/ur_robot_driver/usage.html#using-moveit) +section](https://docs.universal-robots.com/Universal_Robots_ROS2_Documentation/doc/ur_robot_driver/ur_robot_driver/doc/usage/move.html#using-moveit) of the [Usage -guide](https://docs.ros.org/en/ros2_packages/rolling/api/ur_robot_driver/usage.html) for details. +guide](https://docs.universal-robots.com/Universal_Robots_ROS2_Documentation/doc/ur_robot_driver/ur_robot_driver/doc/usage/toc.html) for details. ## Expected Changes in the Near Future From 5a160fde7e86f223131e1241f9d951c4dce3c123 Mon Sep 17 00:00:00 2001 From: Felix Exner Date: Thu, 10 Oct 2024 13:49:26 +0200 Subject: [PATCH 04/13] Update changelogs for upcoming release --- ur/CHANGELOG.rst | 3 +++ ur_calibration/CHANGELOG.rst | 3 +++ ur_controllers/CHANGELOG.rst | 7 +++++++ ur_dashboard_msgs/CHANGELOG.rst | 3 +++ ur_moveit_config/CHANGELOG.rst | 6 ++++++ ur_robot_driver/CHANGELOG.rst | 11 +++++++++++ 6 files changed, 33 insertions(+) diff --git a/ur/CHANGELOG.rst b/ur/CHANGELOG.rst index de92d7836..edf0dbbc0 100644 --- a/ur/CHANGELOG.rst +++ b/ur/CHANGELOG.rst @@ -2,6 +2,9 @@ Changelog for package ur ^^^^^^^^^^^^^^^^^^^^^^^^ +Forthcoming +----------- + 2.4.10 (2024-09-11) ------------------- * Update maintainers team (`#1088 `_) diff --git a/ur_calibration/CHANGELOG.rst b/ur_calibration/CHANGELOG.rst index 9171c0e94..f167a79f1 100644 --- a/ur_calibration/CHANGELOG.rst +++ b/ur_calibration/CHANGELOG.rst @@ -2,6 +2,9 @@ Changelog for package ur_calibration ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Forthcoming +----------- + 2.4.10 (2024-09-11) ------------------- * Update maintainers team (`#1088 `_) diff --git a/ur_controllers/CHANGELOG.rst b/ur_controllers/CHANGELOG.rst index 1ff840740..616d1c911 100644 --- a/ur_controllers/CHANGELOG.rst +++ b/ur_controllers/CHANGELOG.rst @@ -2,6 +2,13 @@ Changelog for package ur_controllers ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Forthcoming +----------- +* Allow setting the analog output domain when setting an analog IO (`#1123 `_) +* Service to get software version of robot (`#964 `_) +* Improve usage documentation (`#1110 `_) +* Contributors: Felix Exner (fexner), URJala, Rune Søe-Knudsen + 2.4.10 (2024-09-11) ------------------- * Updated get_state to get_lifecycle_state (`#1087 `_) diff --git a/ur_dashboard_msgs/CHANGELOG.rst b/ur_dashboard_msgs/CHANGELOG.rst index ef254ed51..545d7245a 100644 --- a/ur_dashboard_msgs/CHANGELOG.rst +++ b/ur_dashboard_msgs/CHANGELOG.rst @@ -2,6 +2,9 @@ Changelog for package ur_dashboard_msgs ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Forthcoming +----------- + 2.4.10 (2024-09-11) ------------------- * Update maintainers team (`#1088 `_) diff --git a/ur_moveit_config/CHANGELOG.rst b/ur_moveit_config/CHANGELOG.rst index 8b388c94d..77139783b 100644 --- a/ur_moveit_config/CHANGELOG.rst +++ b/ur_moveit_config/CHANGELOG.rst @@ -2,6 +2,12 @@ Changelog for package ur_moveit_config ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Forthcoming +----------- +* Add note about TEM (`#1136 `_) +* [moveit] Add config for trajectory execution and disable execution monitoring by default (`#1132 `_) +* Contributors: Felix Exner (fexner), G.A. vd. Hoorn + 2.4.10 (2024-09-11) ------------------- diff --git a/ur_robot_driver/CHANGELOG.rst b/ur_robot_driver/CHANGELOG.rst index cd6502c5b..90d38f188 100644 --- a/ur_robot_driver/CHANGELOG.rst +++ b/ur_robot_driver/CHANGELOG.rst @@ -1,3 +1,14 @@ +Forthcoming +----------- +* Add note about TEM (`#1136 `_) +* Allow setting the analog output domain when setting an analog IO (`#1123 `_) +* Service to get software version of robot (`#964 `_) +* Add passthrough interfaces for joints (`#1121 `_) +* Fix for Controller Switching Issue and Refactor Controller Spawning (`#1093 `_) +* Improve usage documentation (`#1110 `_) +* Assure the description is loaded as string (`#1106 `_) +* Contributors: Chen Chen, Felix Exner (fexner), URJala + 2.4.10 (2024-09-11) ------------------- * Fix for forward_velocity_controller test (`#1076 `_) From 912f9acf0a991a36c06f8cb6cedb358d1729c11b Mon Sep 17 00:00:00 2001 From: Felix Exner Date: Thu, 10 Oct 2024 13:50:42 +0200 Subject: [PATCH 05/13] 2.4.11 --- ur/CHANGELOG.rst | 4 ++-- ur/package.xml | 2 +- ur_calibration/CHANGELOG.rst | 4 ++-- ur_calibration/package.xml | 2 +- ur_controllers/CHANGELOG.rst | 4 ++-- ur_controllers/package.xml | 2 +- ur_dashboard_msgs/CHANGELOG.rst | 4 ++-- ur_dashboard_msgs/package.xml | 2 +- ur_moveit_config/CHANGELOG.rst | 4 ++-- ur_moveit_config/package.xml | 2 +- ur_robot_driver/CHANGELOG.rst | 4 ++-- ur_robot_driver/package.xml | 2 +- 12 files changed, 18 insertions(+), 18 deletions(-) diff --git a/ur/CHANGELOG.rst b/ur/CHANGELOG.rst index edf0dbbc0..40a5a0689 100644 --- a/ur/CHANGELOG.rst +++ b/ur/CHANGELOG.rst @@ -2,8 +2,8 @@ Changelog for package ur ^^^^^^^^^^^^^^^^^^^^^^^^ -Forthcoming ------------ +2.4.11 (2024-10-10) +------------------- 2.4.10 (2024-09-11) ------------------- diff --git a/ur/package.xml b/ur/package.xml index cb6c5df62..9776068af 100644 --- a/ur/package.xml +++ b/ur/package.xml @@ -2,7 +2,7 @@ ur - 2.4.10 + 2.4.11 Metapackage for universal robots Felix Exner Vincenzo Di Pentima diff --git a/ur_calibration/CHANGELOG.rst b/ur_calibration/CHANGELOG.rst index f167a79f1..c238a1ac5 100644 --- a/ur_calibration/CHANGELOG.rst +++ b/ur_calibration/CHANGELOG.rst @@ -2,8 +2,8 @@ Changelog for package ur_calibration ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -Forthcoming ------------ +2.4.11 (2024-10-10) +------------------- 2.4.10 (2024-09-11) ------------------- diff --git a/ur_calibration/package.xml b/ur_calibration/package.xml index f5b2d2294..ffb3ea094 100644 --- a/ur_calibration/package.xml +++ b/ur_calibration/package.xml @@ -1,7 +1,7 @@ ur_calibration - 2.4.10 + 2.4.11 Package for extracting the factory calibration from a UR robot and change it such that it can be used by ur_description to gain a correct URDF Felix Exner diff --git a/ur_controllers/CHANGELOG.rst b/ur_controllers/CHANGELOG.rst index 616d1c911..f03c398b3 100644 --- a/ur_controllers/CHANGELOG.rst +++ b/ur_controllers/CHANGELOG.rst @@ -2,8 +2,8 @@ Changelog for package ur_controllers ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -Forthcoming ------------ +2.4.11 (2024-10-10) +------------------- * Allow setting the analog output domain when setting an analog IO (`#1123 `_) * Service to get software version of robot (`#964 `_) * Improve usage documentation (`#1110 `_) diff --git a/ur_controllers/package.xml b/ur_controllers/package.xml index 98f304df8..ff043c640 100644 --- a/ur_controllers/package.xml +++ b/ur_controllers/package.xml @@ -2,7 +2,7 @@ ur_controllers - 2.4.10 + 2.4.11 Provides controllers that use the speed scaling interface of Universal Robots. Felix Exner diff --git a/ur_dashboard_msgs/CHANGELOG.rst b/ur_dashboard_msgs/CHANGELOG.rst index 545d7245a..07523b667 100644 --- a/ur_dashboard_msgs/CHANGELOG.rst +++ b/ur_dashboard_msgs/CHANGELOG.rst @@ -2,8 +2,8 @@ Changelog for package ur_dashboard_msgs ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -Forthcoming ------------ +2.4.11 (2024-10-10) +------------------- 2.4.10 (2024-09-11) ------------------- diff --git a/ur_dashboard_msgs/package.xml b/ur_dashboard_msgs/package.xml index ff12608c6..e391ffea5 100644 --- a/ur_dashboard_msgs/package.xml +++ b/ur_dashboard_msgs/package.xml @@ -2,7 +2,7 @@ ur_dashboard_msgs - 2.4.10 + 2.4.11 Messages around the UR Dashboard server. Felix Exner diff --git a/ur_moveit_config/CHANGELOG.rst b/ur_moveit_config/CHANGELOG.rst index 77139783b..c3315718a 100644 --- a/ur_moveit_config/CHANGELOG.rst +++ b/ur_moveit_config/CHANGELOG.rst @@ -2,8 +2,8 @@ Changelog for package ur_moveit_config ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -Forthcoming ------------ +2.4.11 (2024-10-10) +------------------- * Add note about TEM (`#1136 `_) * [moveit] Add config for trajectory execution and disable execution monitoring by default (`#1132 `_) * Contributors: Felix Exner (fexner), G.A. vd. Hoorn diff --git a/ur_moveit_config/package.xml b/ur_moveit_config/package.xml index 1fd61259a..41d151b70 100644 --- a/ur_moveit_config/package.xml +++ b/ur_moveit_config/package.xml @@ -2,7 +2,7 @@ ur_moveit_config - 2.4.10 + 2.4.11 An example package with MoveIt2 configurations for UR robots. diff --git a/ur_robot_driver/CHANGELOG.rst b/ur_robot_driver/CHANGELOG.rst index 90d38f188..4279ea6d0 100644 --- a/ur_robot_driver/CHANGELOG.rst +++ b/ur_robot_driver/CHANGELOG.rst @@ -1,5 +1,5 @@ -Forthcoming ------------ +2.4.11 (2024-10-10) +------------------- * Add note about TEM (`#1136 `_) * Allow setting the analog output domain when setting an analog IO (`#1123 `_) * Service to get software version of robot (`#964 `_) diff --git a/ur_robot_driver/package.xml b/ur_robot_driver/package.xml index 852177bfe..d813106a5 100644 --- a/ur_robot_driver/package.xml +++ b/ur_robot_driver/package.xml @@ -2,7 +2,7 @@ ur_robot_driver - 2.4.10 + 2.4.11 The new driver for Universal Robots UR3, UR5 and UR10 robots with CB3 controllers and the e-series. Felix Exner From 6255cff6dee37cb2f3a6fd524b04ee0e544296f3 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 14 Oct 2024 08:51:50 +0200 Subject: [PATCH 06/13] Auto-update pre-commit hooks (#1147) Co-authored-by: github-actions[bot] --- .pre-commit-config.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 52077980f..fab25cebd 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -33,13 +33,13 @@ repos: # Python hooks - repo: https://github.com/asottile/pyupgrade - rev: v3.17.0 + rev: v3.18.0 hooks: - id: pyupgrade args: [--py36-plus] - repo: https://github.com/psf/black - rev: 24.8.0 + rev: 24.10.0 hooks: - id: black args: ["--line-length=100"] From 980d2f62bc148d38574cd82d356b3068ebf02eb9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 14 Oct 2024 08:53:45 +0200 Subject: [PATCH 07/13] Bump actions/checkout from 2 to 4 (#1148) Bumps [actions/checkout](https://github.com/actions/checkout) from 2 to 4. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v2...v4) --- updated-dependencies: - dependency-name: actions/checkout dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/check_links.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/check_links.yml b/.github/workflows/check_links.yml index ba1800e00..bdf3b4ebc 100644 --- a/.github/workflows/check_links.yml +++ b/.github/workflows/check_links.yml @@ -10,7 +10,7 @@ jobs: check_links: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 - name: Check URLs run: | .github/helpers/check_urls.sh \ From 09cedfb6cc696d325ec454edbfd551f12bd81a29 Mon Sep 17 00:00:00 2001 From: "Felix Exner (fexner)" Date: Mon, 14 Oct 2024 13:29:38 +0200 Subject: [PATCH 08/13] Revert "Add passthrough interfaces for joints (#1121)" (#1151) This reverts commit 3068607b1de03a6e6a4687a3da51b694449794a6. --- .../include/ur_robot_driver/hardware_interface.hpp | 5 ----- ur_robot_driver/src/hardware_interface.cpp | 13 ++----------- 2 files changed, 2 insertions(+), 16 deletions(-) diff --git a/ur_robot_driver/include/ur_robot_driver/hardware_interface.hpp b/ur_robot_driver/include/ur_robot_driver/hardware_interface.hpp index 48b5405af..ea0558736 100644 --- a/ur_robot_driver/include/ur_robot_driver/hardware_interface.hpp +++ b/ur_robot_driver/include/ur_robot_driver/hardware_interface.hpp @@ -197,11 +197,6 @@ class URPositionHardwareInterface : public hardware_interface::SystemInterface double get_robot_software_version_bugfix_; double get_robot_software_version_build_; - // Passthrough trajectory controller interface values - urcl::vector6d_t passthrough_trajectory_positions_; - urcl::vector6d_t passthrough_trajectory_velocities_; - urcl::vector6d_t passthrough_trajectory_accelerations_; - // payload stuff urcl::vector3d_t payload_center_of_gravity_; double payload_mass_; diff --git a/ur_robot_driver/src/hardware_interface.cpp b/ur_robot_driver/src/hardware_interface.cpp index e742ac7a6..8dcba3995 100644 --- a/ur_robot_driver/src/hardware_interface.cpp +++ b/ur_robot_driver/src/hardware_interface.cpp @@ -96,9 +96,9 @@ URPositionHardwareInterface::on_init(const hardware_interface::HardwareInfo& sys system_interface_initialized_ = 0.0; for (const hardware_interface::ComponentInfo& joint : info_.joints) { - if (joint.command_interfaces.size() != 5) { + if (joint.command_interfaces.size() != 2) { RCLCPP_FATAL(rclcpp::get_logger("URPositionHardwareInterface"), - "Joint '%s' has %zu command interfaces found. 5 expected.", joint.name.c_str(), + "Joint '%s' has %zu command interfaces found. 2 expected.", joint.name.c_str(), joint.command_interfaces.size()); return hardware_interface::CallbackReturn::ERROR; } @@ -256,15 +256,6 @@ std::vector URPositionHardwareInterface::e command_interfaces.emplace_back(hardware_interface::CommandInterface( info_.joints[i].name, hardware_interface::HW_IF_VELOCITY, &urcl_velocity_commands_[i])); - - command_interfaces.emplace_back(hardware_interface::CommandInterface(info_.joints[i].name, "passthrough_position", - &passthrough_trajectory_positions_[i])); - - command_interfaces.emplace_back(hardware_interface::CommandInterface(info_.joints[i].name, "passthrough_velocity", - &passthrough_trajectory_velocities_[i])); - - command_interfaces.emplace_back(hardware_interface::CommandInterface( - info_.joints[i].name, "passthrough_acceleration", &passthrough_trajectory_accelerations_[i])); } // Obtain the tf_prefix from the urdf so that we can have the general interface multiple times // NOTE using the tf_prefix at this point is some kind of workaround. One should actually go through the list of gpio From 394afa052e97065f5b166252f14b8786269209b1 Mon Sep 17 00:00:00 2001 From: Felix Exner Date: Mon, 14 Oct 2024 13:58:47 +0200 Subject: [PATCH 09/13] Prepare changelogs for upcoming release --- ur/CHANGELOG.rst | 3 +++ ur_calibration/CHANGELOG.rst | 3 +++ ur_controllers/CHANGELOG.rst | 3 +++ ur_dashboard_msgs/CHANGELOG.rst | 3 +++ ur_moveit_config/CHANGELOG.rst | 3 +++ ur_robot_driver/CHANGELOG.rst | 5 +++++ 6 files changed, 20 insertions(+) diff --git a/ur/CHANGELOG.rst b/ur/CHANGELOG.rst index 40a5a0689..cdbf44541 100644 --- a/ur/CHANGELOG.rst +++ b/ur/CHANGELOG.rst @@ -2,6 +2,9 @@ Changelog for package ur ^^^^^^^^^^^^^^^^^^^^^^^^ +Forthcoming +----------- + 2.4.11 (2024-10-10) ------------------- diff --git a/ur_calibration/CHANGELOG.rst b/ur_calibration/CHANGELOG.rst index c238a1ac5..ddb290250 100644 --- a/ur_calibration/CHANGELOG.rst +++ b/ur_calibration/CHANGELOG.rst @@ -2,6 +2,9 @@ Changelog for package ur_calibration ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Forthcoming +----------- + 2.4.11 (2024-10-10) ------------------- diff --git a/ur_controllers/CHANGELOG.rst b/ur_controllers/CHANGELOG.rst index f03c398b3..418448282 100644 --- a/ur_controllers/CHANGELOG.rst +++ b/ur_controllers/CHANGELOG.rst @@ -2,6 +2,9 @@ Changelog for package ur_controllers ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Forthcoming +----------- + 2.4.11 (2024-10-10) ------------------- * Allow setting the analog output domain when setting an analog IO (`#1123 `_) diff --git a/ur_dashboard_msgs/CHANGELOG.rst b/ur_dashboard_msgs/CHANGELOG.rst index 07523b667..0eed04e48 100644 --- a/ur_dashboard_msgs/CHANGELOG.rst +++ b/ur_dashboard_msgs/CHANGELOG.rst @@ -2,6 +2,9 @@ Changelog for package ur_dashboard_msgs ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Forthcoming +----------- + 2.4.11 (2024-10-10) ------------------- diff --git a/ur_moveit_config/CHANGELOG.rst b/ur_moveit_config/CHANGELOG.rst index c3315718a..293fe9f14 100644 --- a/ur_moveit_config/CHANGELOG.rst +++ b/ur_moveit_config/CHANGELOG.rst @@ -2,6 +2,9 @@ Changelog for package ur_moveit_config ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Forthcoming +----------- + 2.4.11 (2024-10-10) ------------------- * Add note about TEM (`#1136 `_) diff --git a/ur_robot_driver/CHANGELOG.rst b/ur_robot_driver/CHANGELOG.rst index 4279ea6d0..e7bb35331 100644 --- a/ur_robot_driver/CHANGELOG.rst +++ b/ur_robot_driver/CHANGELOG.rst @@ -1,3 +1,8 @@ +Forthcoming +----------- +* Revert "Add passthrough interfaces for joints (`#1121 `_)" (`#1151 `_) +* Contributors: Felix Exner (fexner) + 2.4.11 (2024-10-10) ------------------- * Add note about TEM (`#1136 `_) From b875c8c1fa3212ad88cd939835224e22a743a2de Mon Sep 17 00:00:00 2001 From: Felix Exner Date: Mon, 14 Oct 2024 13:58:55 +0200 Subject: [PATCH 10/13] 2.4.12 --- ur/CHANGELOG.rst | 4 ++-- ur/package.xml | 2 +- ur_calibration/CHANGELOG.rst | 4 ++-- ur_calibration/package.xml | 2 +- ur_controllers/CHANGELOG.rst | 4 ++-- ur_controllers/package.xml | 2 +- ur_dashboard_msgs/CHANGELOG.rst | 4 ++-- ur_dashboard_msgs/package.xml | 2 +- ur_moveit_config/CHANGELOG.rst | 4 ++-- ur_moveit_config/package.xml | 2 +- ur_robot_driver/CHANGELOG.rst | 4 ++-- ur_robot_driver/package.xml | 2 +- 12 files changed, 18 insertions(+), 18 deletions(-) diff --git a/ur/CHANGELOG.rst b/ur/CHANGELOG.rst index cdbf44541..654fb364e 100644 --- a/ur/CHANGELOG.rst +++ b/ur/CHANGELOG.rst @@ -2,8 +2,8 @@ Changelog for package ur ^^^^^^^^^^^^^^^^^^^^^^^^ -Forthcoming ------------ +2.4.12 (2024-10-14) +------------------- 2.4.11 (2024-10-10) ------------------- diff --git a/ur/package.xml b/ur/package.xml index 9776068af..ff9649a3d 100644 --- a/ur/package.xml +++ b/ur/package.xml @@ -2,7 +2,7 @@ ur - 2.4.11 + 2.4.12 Metapackage for universal robots Felix Exner Vincenzo Di Pentima diff --git a/ur_calibration/CHANGELOG.rst b/ur_calibration/CHANGELOG.rst index ddb290250..e530ded6e 100644 --- a/ur_calibration/CHANGELOG.rst +++ b/ur_calibration/CHANGELOG.rst @@ -2,8 +2,8 @@ Changelog for package ur_calibration ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -Forthcoming ------------ +2.4.12 (2024-10-14) +------------------- 2.4.11 (2024-10-10) ------------------- diff --git a/ur_calibration/package.xml b/ur_calibration/package.xml index ffb3ea094..34614287a 100644 --- a/ur_calibration/package.xml +++ b/ur_calibration/package.xml @@ -1,7 +1,7 @@ ur_calibration - 2.4.11 + 2.4.12 Package for extracting the factory calibration from a UR robot and change it such that it can be used by ur_description to gain a correct URDF Felix Exner diff --git a/ur_controllers/CHANGELOG.rst b/ur_controllers/CHANGELOG.rst index 418448282..54cbfbc8b 100644 --- a/ur_controllers/CHANGELOG.rst +++ b/ur_controllers/CHANGELOG.rst @@ -2,8 +2,8 @@ Changelog for package ur_controllers ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -Forthcoming ------------ +2.4.12 (2024-10-14) +------------------- 2.4.11 (2024-10-10) ------------------- diff --git a/ur_controllers/package.xml b/ur_controllers/package.xml index ff043c640..df7e87413 100644 --- a/ur_controllers/package.xml +++ b/ur_controllers/package.xml @@ -2,7 +2,7 @@ ur_controllers - 2.4.11 + 2.4.12 Provides controllers that use the speed scaling interface of Universal Robots. Felix Exner diff --git a/ur_dashboard_msgs/CHANGELOG.rst b/ur_dashboard_msgs/CHANGELOG.rst index 0eed04e48..e6ce20ad2 100644 --- a/ur_dashboard_msgs/CHANGELOG.rst +++ b/ur_dashboard_msgs/CHANGELOG.rst @@ -2,8 +2,8 @@ Changelog for package ur_dashboard_msgs ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -Forthcoming ------------ +2.4.12 (2024-10-14) +------------------- 2.4.11 (2024-10-10) ------------------- diff --git a/ur_dashboard_msgs/package.xml b/ur_dashboard_msgs/package.xml index e391ffea5..2298b9814 100644 --- a/ur_dashboard_msgs/package.xml +++ b/ur_dashboard_msgs/package.xml @@ -2,7 +2,7 @@ ur_dashboard_msgs - 2.4.11 + 2.4.12 Messages around the UR Dashboard server. Felix Exner diff --git a/ur_moveit_config/CHANGELOG.rst b/ur_moveit_config/CHANGELOG.rst index 293fe9f14..cdd17bffd 100644 --- a/ur_moveit_config/CHANGELOG.rst +++ b/ur_moveit_config/CHANGELOG.rst @@ -2,8 +2,8 @@ Changelog for package ur_moveit_config ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -Forthcoming ------------ +2.4.12 (2024-10-14) +------------------- 2.4.11 (2024-10-10) ------------------- diff --git a/ur_moveit_config/package.xml b/ur_moveit_config/package.xml index 41d151b70..bbc2435b2 100644 --- a/ur_moveit_config/package.xml +++ b/ur_moveit_config/package.xml @@ -2,7 +2,7 @@ ur_moveit_config - 2.4.11 + 2.4.12 An example package with MoveIt2 configurations for UR robots. diff --git a/ur_robot_driver/CHANGELOG.rst b/ur_robot_driver/CHANGELOG.rst index e7bb35331..b68fb1753 100644 --- a/ur_robot_driver/CHANGELOG.rst +++ b/ur_robot_driver/CHANGELOG.rst @@ -1,5 +1,5 @@ -Forthcoming ------------ +2.4.12 (2024-10-14) +------------------- * Revert "Add passthrough interfaces for joints (`#1121 `_)" (`#1151 `_) * Contributors: Felix Exner (fexner) diff --git a/ur_robot_driver/package.xml b/ur_robot_driver/package.xml index d813106a5..ffd8f5bdb 100644 --- a/ur_robot_driver/package.xml +++ b/ur_robot_driver/package.xml @@ -2,7 +2,7 @@ ur_robot_driver - 2.4.11 + 2.4.12 The new driver for Universal Robots UR3, UR5 and UR10 robots with CB3 controllers and the e-series. Felix Exner From 39ff78f20c1c8c781a8492f0c7ac36c8cf1a749f Mon Sep 17 00:00:00 2001 From: "Felix Exner (fexner)" Date: Mon, 14 Oct 2024 17:02:00 +0200 Subject: [PATCH 11/13] [SJTC] Make scaling interface optional (#1145) * [SJTC] Make scaling interface optional This way, the controller can be used on systems, where no scaling interface is available (e.g. GZ). The upstream version in ros2_controllers will have the same behavior. * Move logging to function that's only called once --- .../scaled_joint_trajectory_controller.hpp | 7 ++++- .../scaled_joint_trajectory_controller.cpp | 31 +++++++++++++++---- 2 files changed, 31 insertions(+), 7 deletions(-) diff --git a/ur_controllers/include/ur_controllers/scaled_joint_trajectory_controller.hpp b/ur_controllers/include/ur_controllers/scaled_joint_trajectory_controller.hpp index 75a450547..58bd12426 100644 --- a/ur_controllers/include/ur_controllers/scaled_joint_trajectory_controller.hpp +++ b/ur_controllers/include/ur_controllers/scaled_joint_trajectory_controller.hpp @@ -37,6 +37,8 @@ #ifndef UR_CONTROLLERS__SCALED_JOINT_TRAJECTORY_CONTROLLER_HPP_ #define UR_CONTROLLERS__SCALED_JOINT_TRAJECTORY_CONTROLLER_HPP_ +#include +#include #include "angles/angles.h" #include "joint_trajectory_controller/joint_trajectory_controller.hpp" #include "joint_trajectory_controller/trajectory.hpp" @@ -73,9 +75,12 @@ class ScaledJointTrajectoryController : public joint_trajectory_controller::Join }; private: - double scaling_factor_{}; + double scaling_factor_{ 1.0 }; realtime_tools::RealtimeBuffer time_data_; + std::optional> scaling_state_interface_ = + std::nullopt; + std::shared_ptr scaled_param_listener_; scaled_joint_trajectory_controller::Params scaled_params_; }; diff --git a/ur_controllers/src/scaled_joint_trajectory_controller.cpp b/ur_controllers/src/scaled_joint_trajectory_controller.cpp index 27303c1ea..0fdb5c6c6 100644 --- a/ur_controllers/src/scaled_joint_trajectory_controller.cpp +++ b/ur_controllers/src/scaled_joint_trajectory_controller.cpp @@ -50,6 +50,12 @@ controller_interface::CallbackReturn ScaledJointTrajectoryController::on_init() // Create the parameter listener and get the parameters scaled_param_listener_ = std::make_shared(get_node()); scaled_params_ = scaled_param_listener_->get_params(); + if (!scaled_params_.speed_scaling_interface_name.empty()) { + RCLCPP_INFO(get_node()->get_logger(), "Using scaling state from the hardware from interface %s.", + scaled_params_.speed_scaling_interface_name.c_str()); + } else { + RCLCPP_INFO(get_node()->get_logger(), "No scaling interface set. This controller will not use speed scaling."); + } return JointTrajectoryController::on_init(); } @@ -58,7 +64,10 @@ controller_interface::InterfaceConfiguration ScaledJointTrajectoryController::st { controller_interface::InterfaceConfiguration conf; conf = JointTrajectoryController::state_interface_configuration(); - conf.names.push_back(scaled_params_.speed_scaling_interface_name); + + if (!scaled_params_.speed_scaling_interface_name.empty()) { + conf.names.push_back(scaled_params_.speed_scaling_interface_name); + } return conf; } @@ -70,17 +79,27 @@ controller_interface::CallbackReturn ScaledJointTrajectoryController::on_activat time_data.period = rclcpp::Duration::from_nanoseconds(0); time_data.uptime = get_node()->now(); time_data_.initRT(time_data); + + // Set scaling interfaces + if (!scaled_params_.speed_scaling_interface_name.empty()) { + auto it = std::find_if(state_interfaces_.begin(), state_interfaces_.end(), [&](auto& interface) { + return (interface.get_name() == scaled_params_.speed_scaling_interface_name); + }); + if (it != state_interfaces_.end()) { + scaling_state_interface_ = *it; + } else { + RCLCPP_ERROR(get_node()->get_logger(), "Did not find speed scaling interface in state interfaces."); + } + } + return JointTrajectoryController::on_activate(state); } controller_interface::return_type ScaledJointTrajectoryController::update(const rclcpp::Time& time, const rclcpp::Duration& period) { - if (state_interfaces_.back().get_name() == scaled_params_.speed_scaling_interface_name) { - scaling_factor_ = state_interfaces_.back().get_value(); - } else { - RCLCPP_ERROR(get_node()->get_logger(), "Speed scaling interface (%s) not found in hardware interface.", - scaled_params_.speed_scaling_interface_name.c_str()); + if (scaling_state_interface_.has_value()) { + scaling_factor_ = scaling_state_interface_->get().get_value(); } if (get_lifecycle_state().id() == lifecycle_msgs::msg::State::PRIMARY_STATE_INACTIVE) { From 980e7fbf9940870e1d9b35944c2a84a51eb0dc39 Mon Sep 17 00:00:00 2001 From: URJala <159417921+URJala@users.noreply.github.com> Date: Tue, 15 Oct 2024 20:48:20 +1100 Subject: [PATCH 12/13] README: Center family photo (#1122) Increased size of family photo --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 5888b857f..e9b22049e 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # Universal Robots ROS2 Driver Universal Robots has become a dominant supplier of lightweight, robotic manipulators for industry, as well as for scientific research and education. -
Universal Robot family
+
Universal Robot family
This is one of the very first ROS2 manipulator drivers. Some of the new features are enabled by ROS2 and include decreased latency, improved security, and more flexibility regarding middleware configuration. The package contains launch files to quickly get started using the driver as a standalone version or in combination with MoveIt2 From 961dedd47a6ffbb712cd22b853592ea8daebe615 Mon Sep 17 00:00:00 2001 From: "Felix Exner (fexner)" Date: Wed, 16 Oct 2024 13:12:02 +0200 Subject: [PATCH 13/13] Pass `use_sim_time` to MoveIt's RViz instance (#1144) When running with sim_time, we need to pass that to the RViz instance, as well. --- ur_moveit_config/launch/ur_moveit.launch.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/ur_moveit_config/launch/ur_moveit.launch.py b/ur_moveit_config/launch/ur_moveit.launch.py index 40851c8d5..f6ec537bb 100644 --- a/ur_moveit_config/launch/ur_moveit.launch.py +++ b/ur_moveit_config/launch/ur_moveit.launch.py @@ -175,6 +175,9 @@ def generate_launch_description(): moveit_config.planning_pipelines, moveit_config.joint_limits, warehouse_ros_config, + { + "use_sim_time": use_sim_time, + }, ], )