From f8e1f1ec6568610eba9dc0cce561113ec3a0fae2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Darko=20Luki=C4=87?= Date: Wed, 21 Aug 2024 11:36:57 +0200 Subject: [PATCH 1/6] Prepare for version 2023.1.3 (#960) * Prepare for version 2023.1.3 * add release date --- webots_ros2/CHANGELOG.rst | 2 +- webots_ros2/package.xml | 2 +- webots_ros2/setup.py | 2 +- webots_ros2_control/CHANGELOG.rst | 2 +- webots_ros2_control/package.xml | 2 +- webots_ros2_driver/CHANGELOG.rst | 2 +- webots_ros2_driver/package.xml | 2 +- webots_ros2_epuck/package.xml | 2 +- webots_ros2_epuck/setup.py | 2 +- webots_ros2_importer/package.xml | 2 +- webots_ros2_importer/setup.py | 2 +- webots_ros2_mavic/package.xml | 2 +- webots_ros2_mavic/setup.py | 2 +- webots_ros2_msgs/package.xml | 2 +- webots_ros2_tesla/package.xml | 2 +- webots_ros2_tesla/setup.py | 2 +- webots_ros2_tests/package.xml | 2 +- webots_ros2_tests/setup.py | 2 +- webots_ros2_tiago/package.xml | 2 +- webots_ros2_tiago/setup.py | 2 +- webots_ros2_turtlebot/package.xml | 2 +- webots_ros2_turtlebot/setup.py | 2 +- webots_ros2_universal_robot/CHANGELOG.rst | 2 +- webots_ros2_universal_robot/package.xml | 2 +- webots_ros2_universal_robot/setup.py | 2 +- 25 files changed, 25 insertions(+), 25 deletions(-) diff --git a/webots_ros2/CHANGELOG.rst b/webots_ros2/CHANGELOG.rst index 6f9da25a3..302cf70b3 100644 --- a/webots_ros2/CHANGELOG.rst +++ b/webots_ros2/CHANGELOG.rst @@ -2,7 +2,7 @@ Changelog for package webots_ros2 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -2023.1.3 (2024-XX-XX) +2023.1.3 (2024-08-07) ------------------ * Added support for ROS 2 Jazzy. * Make webots_ros2_driver scripts executable. diff --git a/webots_ros2/package.xml b/webots_ros2/package.xml index 7163e37ce..f9a3a2e07 100644 --- a/webots_ros2/package.xml +++ b/webots_ros2/package.xml @@ -2,7 +2,7 @@ webots_ros2 - 2023.1.2 + 2023.1.3 Interface between Webots and ROS2 Cyberbotics diff --git a/webots_ros2/setup.py b/webots_ros2/setup.py index 85b7b225f..fa07b43c9 100644 --- a/webots_ros2/setup.py +++ b/webots_ros2/setup.py @@ -6,7 +6,7 @@ setup( name=package_name, - version='2023.1.2', + version='2023.1.3', packages=[package_name], data_files=[ ('share/' + package_name, ['package.xml']), diff --git a/webots_ros2_control/CHANGELOG.rst b/webots_ros2_control/CHANGELOG.rst index c591533a2..82892c556 100644 --- a/webots_ros2_control/CHANGELOG.rst +++ b/webots_ros2_control/CHANGELOG.rst @@ -2,7 +2,7 @@ Changelog for package webots_ros2_control ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -2023.1.3 (2024-XX-XX) +2023.1.3 (2024-08-07) ------------------ * Added support for the new `ros2_control` API affecting resource_manager and controller_manager. diff --git a/webots_ros2_control/package.xml b/webots_ros2_control/package.xml index 4075f21ec..29a2b9e98 100644 --- a/webots_ros2_control/package.xml +++ b/webots_ros2_control/package.xml @@ -2,7 +2,7 @@ webots_ros2_control - 2023.1.2 + 2023.1.3 ros2_control plugin for Webots Cyberbotics http://wiki.ros.org/webots_ros2 diff --git a/webots_ros2_driver/CHANGELOG.rst b/webots_ros2_driver/CHANGELOG.rst index 4e5e563de..a39755599 100644 --- a/webots_ros2_driver/CHANGELOG.rst +++ b/webots_ros2_driver/CHANGELOG.rst @@ -2,7 +2,7 @@ Changelog for package webots_ros2_driver ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -2023.1.3 (2024-XX-XX) +2023.1.3 (2024-08-07) ------------------ * Make webots_ros2_driver scripts executable. * Fixed the produced URDF to also contain joint limits necessary for ros2_control. diff --git a/webots_ros2_driver/package.xml b/webots_ros2_driver/package.xml index b3b37e7e2..c170d205d 100644 --- a/webots_ros2_driver/package.xml +++ b/webots_ros2_driver/package.xml @@ -1,7 +1,7 @@ webots_ros2_driver - 2023.1.2 + 2023.1.3 Implementation of the Webots - ROS 2 interface Cyberbotics Apache License 2.0 diff --git a/webots_ros2_epuck/package.xml b/webots_ros2_epuck/package.xml index 6b5865239..6659c02f1 100644 --- a/webots_ros2_epuck/package.xml +++ b/webots_ros2_epuck/package.xml @@ -2,7 +2,7 @@ webots_ros2_epuck - 2023.1.2 + 2023.1.3 E-puck2 driver for Webots simulated robot Cyberbotics diff --git a/webots_ros2_epuck/setup.py b/webots_ros2_epuck/setup.py index 909593b2f..0f48e4f39 100644 --- a/webots_ros2_epuck/setup.py +++ b/webots_ros2_epuck/setup.py @@ -43,7 +43,7 @@ setup( name=package_name, - version='2023.1.2', + version='2023.1.3', packages=[package_name], data_files=data_files, install_requires=['setuptools', 'launch'], diff --git a/webots_ros2_importer/package.xml b/webots_ros2_importer/package.xml index 0fa401634..810e6571e 100644 --- a/webots_ros2_importer/package.xml +++ b/webots_ros2_importer/package.xml @@ -2,7 +2,7 @@ webots_ros2_importer - 2023.1.2 + 2023.1.3 This package allows to convert URDF and XACRO files into Webots PROTO files. Cyberbotics diff --git a/webots_ros2_importer/setup.py b/webots_ros2_importer/setup.py index eadaa32ad..dfe1db2de 100644 --- a/webots_ros2_importer/setup.py +++ b/webots_ros2_importer/setup.py @@ -10,7 +10,7 @@ setup( name=package_name, - version='2023.1.2', + version='2023.1.3', packages=[package_name, package_name + '.urdf2webots.urdf2webots'], data_files=data_files, install_requires=[ diff --git a/webots_ros2_mavic/package.xml b/webots_ros2_mavic/package.xml index 16b0f69fd..c2c87cb0d 100644 --- a/webots_ros2_mavic/package.xml +++ b/webots_ros2_mavic/package.xml @@ -2,7 +2,7 @@ webots_ros2_mavic - 2023.1.2 + 2023.1.3 Mavic 2 Pro robot ROS2 interface for Webots. Cyberbotics diff --git a/webots_ros2_mavic/setup.py b/webots_ros2_mavic/setup.py index 3ee86d42b..4ed5b7123 100644 --- a/webots_ros2_mavic/setup.py +++ b/webots_ros2_mavic/setup.py @@ -18,7 +18,7 @@ setup( name=package_name, - version='2023.1.2', + version='2023.1.3', packages=[package_name], data_files=data_files, install_requires=['setuptools', 'launch'], diff --git a/webots_ros2_msgs/package.xml b/webots_ros2_msgs/package.xml index 7668a61f7..80979475d 100644 --- a/webots_ros2_msgs/package.xml +++ b/webots_ros2_msgs/package.xml @@ -2,7 +2,7 @@ webots_ros2_msgs - 2023.1.2 + 2023.1.3 Services and Messages of the webots_ros2 packages. Cyberbotics diff --git a/webots_ros2_tesla/package.xml b/webots_ros2_tesla/package.xml index 8a959ff0c..038149e1e 100644 --- a/webots_ros2_tesla/package.xml +++ b/webots_ros2_tesla/package.xml @@ -2,7 +2,7 @@ webots_ros2_tesla - 2023.1.2 + 2023.1.3 Tesla ROS2 interface for Webots. Cyberbotics diff --git a/webots_ros2_tesla/setup.py b/webots_ros2_tesla/setup.py index 7b7871e23..5e503b704 100644 --- a/webots_ros2_tesla/setup.py +++ b/webots_ros2_tesla/setup.py @@ -18,7 +18,7 @@ setup( name=package_name, - version='2023.1.2', + version='2023.1.3', packages=[package_name], data_files=data_files, install_requires=['setuptools', 'launch'], diff --git a/webots_ros2_tests/package.xml b/webots_ros2_tests/package.xml index d326a98d4..224ccb4d8 100644 --- a/webots_ros2_tests/package.xml +++ b/webots_ros2_tests/package.xml @@ -2,7 +2,7 @@ webots_ros2_tests - 2023.1.2 + 2023.1.3 System tests for `webots_ros2` packages. Cyberbotics diff --git a/webots_ros2_tests/setup.py b/webots_ros2_tests/setup.py index 729f641b5..282ef3bbf 100644 --- a/webots_ros2_tests/setup.py +++ b/webots_ros2_tests/setup.py @@ -11,7 +11,7 @@ setup( name=package_name, - version='2023.1.2', + version='2023.1.3', packages=[package_name], data_files=data_files, install_requires=['setuptools', 'launch'], diff --git a/webots_ros2_tiago/package.xml b/webots_ros2_tiago/package.xml index 6d6dd1a73..77e8a91c8 100644 --- a/webots_ros2_tiago/package.xml +++ b/webots_ros2_tiago/package.xml @@ -2,7 +2,7 @@ webots_ros2_tiago - 2023.1.2 + 2023.1.3 TIAGo robots ROS2 interface for Webots. Cyberbotics diff --git a/webots_ros2_tiago/setup.py b/webots_ros2_tiago/setup.py index fc20d2895..bb5a19cdb 100644 --- a/webots_ros2_tiago/setup.py +++ b/webots_ros2_tiago/setup.py @@ -32,7 +32,7 @@ setup( name=package_name, - version='2023.1.2', + version='2023.1.3', packages=[], data_files=data_files, install_requires=['setuptools', 'launch'], diff --git a/webots_ros2_turtlebot/package.xml b/webots_ros2_turtlebot/package.xml index f1b4f8854..d90ce9740 100644 --- a/webots_ros2_turtlebot/package.xml +++ b/webots_ros2_turtlebot/package.xml @@ -2,7 +2,7 @@ webots_ros2_turtlebot - 2023.1.2 + 2023.1.3 TurtleBot3 Burger robot ROS2 interface for Webots. Cyberbotics diff --git a/webots_ros2_turtlebot/setup.py b/webots_ros2_turtlebot/setup.py index 95a217dfa..7dc5212cd 100644 --- a/webots_ros2_turtlebot/setup.py +++ b/webots_ros2_turtlebot/setup.py @@ -23,7 +23,7 @@ setup( name=package_name, - version='2023.1.2', + version='2023.1.3', packages=[package_name], data_files=data_files, install_requires=['setuptools', 'launch'], diff --git a/webots_ros2_universal_robot/CHANGELOG.rst b/webots_ros2_universal_robot/CHANGELOG.rst index b9ec0fd51..82eeedff7 100644 --- a/webots_ros2_universal_robot/CHANGELOG.rst +++ b/webots_ros2_universal_robot/CHANGELOG.rst @@ -2,7 +2,7 @@ Changelog for package webots_ros2_universal_robot ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -2023.1.3 (2024-XX-XX) +2023.1.3 (2024-08-07) ------------------ * Fixed passing the `robot_description` parameter to ros2_control. diff --git a/webots_ros2_universal_robot/package.xml b/webots_ros2_universal_robot/package.xml index 9ae4db8b1..a21630173 100644 --- a/webots_ros2_universal_robot/package.xml +++ b/webots_ros2_universal_robot/package.xml @@ -2,7 +2,7 @@ webots_ros2_universal_robot - 2023.1.2 + 2023.1.3 Universal Robot ROS2 interface for Webots. Cyberbotics diff --git a/webots_ros2_universal_robot/setup.py b/webots_ros2_universal_robot/setup.py index a5852bb87..c413c98ed 100644 --- a/webots_ros2_universal_robot/setup.py +++ b/webots_ros2_universal_robot/setup.py @@ -30,7 +30,7 @@ setup( name=package_name, - version='2023.1.2', + version='2023.1.3', packages=['webots_ros2_universal_robot'], data_files=data_files, install_requires=['setuptools', 'launch'], From 9fb41b1334b7a5bb7e10fafe1a43141df0512790 Mon Sep 17 00:00:00 2001 From: ad-daniel Date: Mon, 26 Aug 2024 04:10:37 +0000 Subject: [PATCH 2/6] Sync submodule --- .../webots/src/controller/c/robot.c | 42 ++++++++++++------- 1 file changed, 28 insertions(+), 14 deletions(-) diff --git a/webots_ros2_driver/webots/src/controller/c/robot.c b/webots_ros2_driver/webots/src/controller/c/robot.c index 8b32ca8c1..50616de66 100644 --- a/webots_ros2_driver/webots/src/controller/c/robot.c +++ b/webots_ros2_driver/webots/src/controller/c/robot.c @@ -1081,21 +1081,33 @@ static void wb_robot_cleanup_devices() { } } -static char *encode_robot_name(const char *robot_name) { +static char *encode_robot_name(const char *robot_name, int chars_used) { if (!robot_name) return NULL; char *encoded_name = percent_encode(robot_name); int length = strlen(encoded_name); // the robot name is used to connect to the libController and in this process there are indirect - // limitations such as QLocalServer only accepting strings up to 106 characters for server names, - // for these reasons if the robot name is bigger than an arbitrary length, a hashed version is used instead - if (length > 70) { // note: this threshold should be the same as in WbRobot.cpp + // limitations such as QLocalServer only accepting strings up to 91 characters long for server names + // on some platforms. + // Since the server name also contains the tmp path and that includes the user's username and, + // in the case of a Snap, the user's home directory, we need to limit the length of the encoded + // robot name based on the tmp path. If it is longer than that, then we compute a hashed version + // of the name and use as much of it as we can. If that would be less than 4 chars, we try to use + // 4 chars and hope we are on a platform where QLocalServer accepts longer names. 4 chars makes the + // chance of a name collision 1/65536. + // Note: It is critical that the same logic is used in WbRobot.cpp + int max_name_length = 91 - chars_used; + if (max_name_length < 4) + max_name_length = 4; + // Round down to the next multiple of 2 because it makes the code easier. + max_name_length = max_name_length / 2 * 2; + if (length > max_name_length) { char hash[21]; - char *output = malloc(41); + char *output = malloc(max_name_length + 1); SHA1(hash, encoded_name, length); free(encoded_name); - for (size_t i = 0; i < 20; i++) + for (size_t i = 0; i < max_name_length / 2 && i < 20; i++) sprintf((output + (2 * i)), "%02x", hash[i] & 0xff); return output; } @@ -1104,10 +1116,12 @@ static char *encode_robot_name(const char *robot_name) { } static char *compute_socket_filename(char *error_buffer) { - char *robot_name = encode_robot_name(wbu_system_getenv("WEBOTS_ROBOT_NAME")); const char *WEBOTS_INSTANCE_PATH = wbu_system_webots_instance_path(true); + char *robot_name = NULL; + const char *WEBOTS_ROBOT_NAME = wbu_system_getenv("WEBOTS_ROBOT_NAME"); char *socket_filename; - if (robot_name && robot_name[0] && WEBOTS_INSTANCE_PATH && WEBOTS_INSTANCE_PATH[0]) { + if (WEBOTS_ROBOT_NAME && WEBOTS_ROBOT_NAME[0] && WEBOTS_INSTANCE_PATH && WEBOTS_INSTANCE_PATH[0]) { + robot_name = encode_robot_name(WEBOTS_ROBOT_NAME, strlen(WEBOTS_INSTANCE_PATH) + strlen("ipc//intern")); #ifndef _WIN32 const int length = strlen(WEBOTS_INSTANCE_PATH) + strlen(robot_name) + 15; // "%sintern/%s/socket" socket_filename = malloc(length); @@ -1267,7 +1281,7 @@ static char *compute_socket_filename(char *error_buffer) { free(robot_name); const char *sub_string = strstr(&WEBOTS_CONTROLLER_URL[6], "/"); - robot_name = encode_robot_name(sub_string ? sub_string + 1 : NULL); + robot_name = encode_robot_name(sub_string ? sub_string + 1 : NULL, strlen(ipc_folder) + strlen("//extern")); if (robot_name) { #ifndef _WIN32 // socket file name is like: folder + robot_name + "/extern" @@ -1370,7 +1384,7 @@ static void compute_remote_info(char **host, int *port, char **robot_name) { snprintf(*host, host_length, "%s", &WEBOTS_CONTROLLER_URL[6]); sscanf(url_suffix, ":%d", port); const char *rn = strstr(url_suffix, "/"); - *robot_name = rn != NULL ? encode_robot_name(rn + 1) : NULL; + *robot_name = rn != NULL ? encode_robot_name(rn + 1, 0) : NULL; } int wb_robot_init() { // API initialization @@ -1462,11 +1476,11 @@ int wb_robot_init() { // API initialization retry -= 5; fprintf(stderr, "%s, pending until loading is done...\n", error_message); } else if (socket_filename) { + fprintf(stderr, + "The specified robot (at %s) is not in the list of robots with controllers, retrying for another %d " + "seconds...\n", + socket_filename, 50 - retry); free(socket_filename); - fprintf( - stderr, - "The specified robot is not in the list of robots with controllers, retrying for another %d seconds...\n", - 50 - retry); } else fprintf(stderr, "%s, retrying for another %d seconds...\n", error_message, 50 - retry); } From 14443c18fd956a203d03d86e5a891500e65a159f Mon Sep 17 00:00:00 2001 From: ad-daniel Date: Sat, 7 Sep 2024 04:10:59 +0000 Subject: [PATCH 3/6] Sync submodule --- webots_ros2_driver/webots/src/controller/c/supervisor.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/webots_ros2_driver/webots/src/controller/c/supervisor.c b/webots_ros2_driver/webots/src/controller/c/supervisor.c index b20574914..e7a6dc47a 100644 --- a/webots_ros2_driver/webots/src/controller/c/supervisor.c +++ b/webots_ros2_driver/webots/src/controller/c/supervisor.c @@ -2831,6 +2831,9 @@ const double *wb_supervisor_virtual_reality_headset_get_orientation() { } const char *wb_supervisor_field_get_name(WbFieldRef field) { + if (!check_field(field, __FUNCTION__, WB_NO_FIELD, false, NULL, false, false)) + return ""; + return field->name; } From 99762e09999ac4971dc42863cacbbddae6a860a4 Mon Sep 17 00:00:00 2001 From: Darko Lukic Date: Sun, 22 Dec 2024 00:19:16 +0100 Subject: [PATCH 4/6] option to compile ros2_control form source --- docker/Dockerfile | 28 +++++++++++++++++++++++----- docker/bashrc | 1 + 2 files changed, 24 insertions(+), 5 deletions(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index ea4de44c4..878d8215f 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -10,8 +10,8 @@ ARG ROS_DISTRO=jazzy ARG ROS_TESTING=0 ARG WEBOTS_VERSION=2023b -RUN userdel -r ubuntu && \ - useradd -d /${DOCKERUSER} -m \ +RUN if [ "${ROS_DISTRO}" != "humble" ]; then userdel -r ubuntu; fi +RUN useradd -d /${DOCKERUSER} -m \ -u ${UID} -U \ -s /usr/bin/bash \ -c "${DOCKERUSERCOMMENT}" ${DOCKERUSER} && \ @@ -28,10 +28,28 @@ RUN [ "$ROS_TESTING" -eq "1" ] && echo "deb [ signed-by=/usr/share/keyrings/ros2 RUN apt-get update && apt-get install -y \ ros-${ROS_DISTRO}-vision-msgs \ - ros-${ROS_DISTRO}-ros2-control \ - ros-${ROS_DISTRO}-ros2-controllers \ ros-${ROS_DISTRO}-xacro \ - gdb + ros-${ROS_DISTRO}-backward-ros \ + ros-${ROS_DISTRO}-control-msgs \ + ros-${ROS_DISTRO}-ackermann-msgs \ + ros-${ROS_DISTRO}-realtime-tools \ + ros-${ROS_DISTRO}-kinematics-interface \ + ros-${ROS_DISTRO}-kinematics-interface-kdl \ + ros-${ROS_DISTRO}-control-toolbox \ + gdb \ + git + +# Comment for compiled ros2_control +RUN apt-get update && apt-get install -y \ + ros-${ROS_DISTRO}-ros2-control \ + ros-${ROS_DISTRO}-ros2-controllers + +# Uncomment for compiled ros2_control +# RUN git clone --branch=${ROS_DISTRO} https://github.com/ros-controls/ros2_control.git /${DOCKERUSER}/ros2_libs_ws/src/ros2_control && \ +# git clone --branch=${ROS_DISTRO} https://github.com/ros-controls/ros2_controllers.git /${DOCKERUSER}/ros2_libs_ws/src/ros2_controllers && \ +# . /opt/ros/humble/setup.sh && \ +# cd /${DOCKERUSER}/ros2_libs_ws && \ +# colcon build --symlink-install COPY ./docker/bashrc /tmp/bashrc COPY ./docker/webots.conf /${DOCKERUSER}/.config/Cyberbotics/Webots-R${WEBOTS_VERSION}.conf diff --git a/docker/bashrc b/docker/bashrc index 0d5d7c1df..66cc3d3da 100644 --- a/docker/bashrc +++ b/docker/bashrc @@ -1,4 +1,5 @@ source /opt/ros/${ROS_DISTRO}/setup.bash +source ~/ros2_libs_ws/install/local_setup.bash source ~/ros2_ws/install/local_setup.bash alias cb='colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Debug' alias teleop='ros2 run teleop_twist_keyboard teleop_twist_keyboard --ros-args -p stamped:=true' From 4f63238bc639b76e02ddfe8a0585801b97327402 Mon Sep 17 00:00:00 2001 From: MNikoliCC <135981555+MNikoliCC@users.noreply.github.com> Date: Sun, 22 Dec 2024 00:26:37 +0100 Subject: [PATCH 5/6] Update GitHub artifacts action to v4 (#1014) * Update artifacts * fix controller manager (wip) * format * fix * fix * fix * disable automatic controller sync * format * format * format * format --------- Co-authored-by: Darko Lukic --- .github/workflows/sync_master_to_develop.yml | 6 ++++-- .github/workflows/test.yml | 2 +- .github/workflows/test_develop.yml | 2 +- webots_ros2_control/src/Ros2Control.cpp | 6 +++++- .../include/webots_ros2_driver/WebotsNode.hpp | 2 +- webots_ros2_driver/src/Driver.cpp | 5 ++++- webots_ros2_driver/src/WebotsNode.cpp | 4 +++- .../resource/ros2_control_abb_config.yaml | 1 - 8 files changed, 19 insertions(+), 9 deletions(-) diff --git a/.github/workflows/sync_master_to_develop.yml b/.github/workflows/sync_master_to_develop.yml index 67af01022..8017b5151 100644 --- a/.github/workflows/sync_master_to_develop.yml +++ b/.github/workflows/sync_master_to_develop.yml @@ -1,8 +1,10 @@ name: Branch synchronizer on: - schedule: - - cron: '0 04 * * *' + workflow_dispatch: + + # schedule: + # - cron: '0 04 * * *' jobs: sync-develop-with-master: diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 6cd8b0790..d9703d6c2 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -32,7 +32,7 @@ jobs: ROS_DISTRO: ${{matrix.ROS_DISTRO}} - name: Upload Artifact if: ${{ failure() }} - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v4 with: name: generic_artifacts_${{matrix.ROS_REPO}}_${{matrix.ROS_DISTRO}} path: /artifacts diff --git a/.github/workflows/test_develop.yml b/.github/workflows/test_develop.yml index 60e55bf5e..2faf8b138 100644 --- a/.github/workflows/test_develop.yml +++ b/.github/workflows/test_develop.yml @@ -31,7 +31,7 @@ jobs: ROS_DISTRO: ${{matrix.ROS_DISTRO}} - name: Upload Artifact if: ${{ failure() }} - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v4 with: name: generic_artifacts_develop_${{matrix.ROS_REPO}}_${{matrix.ROS_DISTRO}} path: /artifacts diff --git a/webots_ros2_control/src/Ros2Control.cpp b/webots_ros2_control/src/Ros2Control.cpp index d73d3bdc1..e610edc1c 100644 --- a/webots_ros2_control/src/Ros2Control.cpp +++ b/webots_ros2_control/src/Ros2Control.cpp @@ -152,7 +152,11 @@ namespace webots_ros2_control { // Controller Manager mExecutor = std::make_shared(); - mControllerManager.reset(new controller_manager::ControllerManager(std::move(resourceManager), mExecutor)); + + rclcpp::NodeOptions options = controller_manager::get_cm_node_options(); + options.arguments(node->get_node_options().arguments()); + mControllerManager.reset(new controller_manager::ControllerManager(std::move(resourceManager), mExecutor, + "controller_manager", node->get_namespace(), options)); // Update rate const int updateRate = mControllerManager->get_parameter("update_rate").as_int(); diff --git a/webots_ros2_driver/include/webots_ros2_driver/WebotsNode.hpp b/webots_ros2_driver/include/webots_ros2_driver/WebotsNode.hpp index 52dcd770a..57825fd0b 100644 --- a/webots_ros2_driver/include/webots_ros2_driver/WebotsNode.hpp +++ b/webots_ros2_driver/include/webots_ros2_driver/WebotsNode.hpp @@ -35,7 +35,7 @@ namespace webots_ros2_driver { class WebotsNode : public rclcpp::Node { public: - WebotsNode(std::string name); + WebotsNode(std::string name, rclcpp::NodeOptions &options); void init(); int step(); std::string urdf() const { return mRobotDescription; }; diff --git a/webots_ros2_driver/src/Driver.cpp b/webots_ros2_driver/src/Driver.cpp index 3ea1196d1..cf79908de 100644 --- a/webots_ros2_driver/src/Driver.cpp +++ b/webots_ros2_driver/src/Driver.cpp @@ -40,7 +40,10 @@ int main(int argc, char **argv) { for (char notAllowedChar : " -.)(") std::replace(robotName.begin(), robotName.end(), notAllowedChar, '_'); - std::shared_ptr node = std::make_shared(robotName); + rclcpp::NodeOptions nodeOptions; + nodeOptions.arguments(std::vector(argv + 1, argv + argc)); + std::shared_ptr node = + std::make_shared(robotName, nodeOptions); node->init(); // The parent process must be ros2 run. Declaring from launch file is deprecated. Remove with 2024.0.0. diff --git a/webots_ros2_driver/src/WebotsNode.cpp b/webots_ros2_driver/src/WebotsNode.cpp index 9a66ad4a2..62e5f1c71 100644 --- a/webots_ros2_driver/src/WebotsNode.cpp +++ b/webots_ros2_driver/src/WebotsNode.cpp @@ -50,7 +50,9 @@ namespace webots_ros2_driver { gShutdownSignalReceived = true; } - WebotsNode::WebotsNode(std::string name) : Node(name), mPluginLoader(gPluginInterfaceName, gPluginInterface) { + WebotsNode::WebotsNode(std::string name, rclcpp::NodeOptions &options) : + Node(name, options), + mPluginLoader(gPluginInterfaceName, gPluginInterface) { mRobotDescriptionParam = this->declare_parameter("robot_description", ""); mSetRobotStatePublisher = this->declare_parameter("set_robot_state_publisher", false); if (mRobotDescriptionParam != "") { diff --git a/webots_ros2_universal_robot/resource/ros2_control_abb_config.yaml b/webots_ros2_universal_robot/resource/ros2_control_abb_config.yaml index 901edc300..c4bb58034 100644 --- a/webots_ros2_universal_robot/resource/ros2_control_abb_config.yaml +++ b/webots_ros2_universal_robot/resource/ros2_control_abb_config.yaml @@ -26,4 +26,3 @@ abb/abb_joint_trajectory_controller: - position allow_partial_joints_goal: true - From be9c9ce2d9ddadde9ec8cd1a66c7c34c06054cba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Darko=20Luki=C4=87?= Date: Wed, 25 Dec 2024 23:45:34 +0100 Subject: [PATCH 6/6] Disable automatic controller syncs (#1020) * Disable automatic controller syncs * delete comments --- .github/workflows/libcontroller_updater.yml | 3 +-- .github/workflows/sync_master_to_develop.yml | 3 --- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/.github/workflows/libcontroller_updater.yml b/.github/workflows/libcontroller_updater.yml index 085bf33aa..7e5cba83d 100644 --- a/.github/workflows/libcontroller_updater.yml +++ b/.github/workflows/libcontroller_updater.yml @@ -1,8 +1,7 @@ name: Libcontroller Updater on: - schedule: - - cron: '0 04 * * *' + workflow_dispatch: jobs: automatic-libcontroller-sync: diff --git a/.github/workflows/sync_master_to_develop.yml b/.github/workflows/sync_master_to_develop.yml index 8017b5151..ff4f5001d 100644 --- a/.github/workflows/sync_master_to_develop.yml +++ b/.github/workflows/sync_master_to_develop.yml @@ -3,9 +3,6 @@ name: Branch synchronizer on: workflow_dispatch: - # schedule: - # - cron: '0 04 * * *' - jobs: sync-develop-with-master: runs-on: ubuntu-latest