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 67af01022..ff4f5001d 100644 --- a/.github/workflows/sync_master_to_develop.yml +++ b/.github/workflows/sync_master_to_develop.yml @@ -1,8 +1,7 @@ name: Branch synchronizer on: - schedule: - - cron: '0 04 * * *' + workflow_dispatch: 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/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' diff --git a/webots_ros2/CHANGELOG.rst b/webots_ros2/CHANGELOG.rst index 239f07505..7d2285f7f 100644 --- a/webots_ros2/CHANGELOG.rst +++ b/webots_ros2/CHANGELOG.rst @@ -6,7 +6,7 @@ Changelog for package webots_ros2 ------------------ * Created webots_ros2_husarion package. -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_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/CHANGELOG.rst b/webots_ros2_driver/CHANGELOG.rst index 7635f0992..2dd6fd701 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/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/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_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_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 5def4de94..4b75b4003 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/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 - 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'],