From 7a447930486f31d58d689825ed83e3e86c9ccc6e Mon Sep 17 00:00:00 2001 From: Dominic Reber Date: Thu, 28 May 2026 09:50:59 +0200 Subject: [PATCH 1/4] fix(controllers): write command interfaces on deactivation --- source/modulo_controllers/src/ControllerInterface.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/source/modulo_controllers/src/ControllerInterface.cpp b/source/modulo_controllers/src/ControllerInterface.cpp index 569ae91f..e465c876 100644 --- a/source/modulo_controllers/src/ControllerInterface.cpp +++ b/source/modulo_controllers/src/ControllerInterface.cpp @@ -195,7 +195,14 @@ rclcpp_lifecycle::node_interfaces::LifecycleNodeInterface::CallbackReturn Contro rclcpp_lifecycle::node_interfaces::LifecycleNodeInterface::CallbackReturn ControllerInterface::on_deactivate(const rclcpp_lifecycle::State&) { try { - return on_deactivate(); + if (auto ret = on_deactivate(); ret != CallbackReturn::SUCCESS) { + return ret; + } + if (write_command_interfaces(rclcpp::Duration(0s)) != controller_interface::return_type::OK) { + RCLCPP_ERROR(get_node()->get_logger(), "Failed to write command interfaces on deactivation."); + return CallbackReturn::ERROR; + } + return CallbackReturn::SUCCESS; } catch (const std::exception& ex) { RCLCPP_ERROR_STREAM(get_node()->get_logger(), ex.what()); } From 279bea96fd39ac7053f66b41106c3f0dafb55c1d Mon Sep 17 00:00:00 2001 From: Dominic Reber Date: Thu, 28 May 2026 11:44:22 +0200 Subject: [PATCH 2/4] chore: version and ci --- .github/workflows/build-release.yaml | 30 ++++----------------------- aica-package.toml | 2 +- source/modulo_components/package.xml | 2 +- source/modulo_controllers/package.xml | 2 +- source/modulo_core/package.xml | 2 +- source/modulo_utils/package.xml | 2 +- 6 files changed, 9 insertions(+), 31 deletions(-) diff --git a/.github/workflows/build-release.yaml b/.github/workflows/build-release.yaml index 5f340d02..91e30347 100644 --- a/.github/workflows/build-release.yaml +++ b/.github/workflows/build-release.yaml @@ -3,24 +3,12 @@ name: Build and release on: push: branches: - - main + - patch/v5.4.2 jobs: - check-version: - name: Check if the version has been updated - outputs: - has_changed: ${{ steps.check.outputs.has_changed }} - version: ${{ steps.check.outputs.version }} - runs-on: ubuntu-latest - steps: - - uses: aica-technology/.github/.github/actions/check-version-toml@v1.0.2 - id: check - with: - package_path: . metadata: name: Get metadata - needs: check-version runs-on: ubuntu-latest outputs: image_name: ${{ steps.ensure-image.outputs.image_name }} @@ -34,19 +22,9 @@ jobs: image_name: aica-technology/modulo - run: | - CREATE_TAG=false - GIT_TAG="" - if [ ${{ needs.check-version.outputs.has_changed }} = 'true' ]; then - CREATE_TAG=true - GIT_TAG="v${{ needs.check-version.outputs.version }}" - if [[ "${GIT_TAG}" == *"-"* ]]; then - IMAGE_TAGS="${GIT_TAG}",rolling - else - IMAGE_TAGS=latest,"${GIT_TAG}",rolling - fi - else - IMAGE_TAGS=rolling - fi + IMAGE_TAGS=latest,"${GIT_TAG}",rolling + CREATE_TAG=true + GIT_TAG="v5.4.2" echo "Image tags: ${IMAGE_TAGS}" echo "Create tag: ${CREATE_TAG}" echo "Git tag: ${GIT_TAG}" diff --git a/aica-package.toml b/aica-package.toml index 788bdc93..0baae5b9 100644 --- a/aica-package.toml +++ b/aica-package.toml @@ -1,7 +1,7 @@ #syntax=ghcr.io/aica-technology/package-builder:v1.4.0 [metadata] -version = "5.4.1" +version = "5.4.2" description = "Modular ROS 2 extension library for dynamic composition of components and controllers with the AICA robotics framework" [metadata.collection] diff --git a/source/modulo_components/package.xml b/source/modulo_components/package.xml index 49515b1f..09edeec9 100644 --- a/source/modulo_components/package.xml +++ b/source/modulo_components/package.xml @@ -2,7 +2,7 @@ modulo_components - 5.4.1 + 5.4.2 Modulo base classes that wrap ROS 2 Nodes as modular components for the AICA application framework Baptiste Busch Enrico Eberhard diff --git a/source/modulo_controllers/package.xml b/source/modulo_controllers/package.xml index fc77d99c..75b191b0 100644 --- a/source/modulo_controllers/package.xml +++ b/source/modulo_controllers/package.xml @@ -1,7 +1,7 @@ modulo_controllers - 5.4.1 + 5.4.2 Interface class for modulo controllers Enrico Eberhard Dominic Reber diff --git a/source/modulo_core/package.xml b/source/modulo_core/package.xml index 9ea4af09..9b8f7a3c 100644 --- a/source/modulo_core/package.xml +++ b/source/modulo_core/package.xml @@ -2,7 +2,7 @@ modulo_core - 5.4.1 + 5.4.2 Modulo Core communication and translation utilities for interoperability with AICA Control Libraries Baptiste Busch Enrico Eberhard diff --git a/source/modulo_utils/package.xml b/source/modulo_utils/package.xml index 015a7cb4..c5d552be 100644 --- a/source/modulo_utils/package.xml +++ b/source/modulo_utils/package.xml @@ -2,7 +2,7 @@ modulo_utils - 5.4.1 + 5.4.2 Modulo utils package for shared test fixtures Dominic Reber GPLv3 From b951d3c0a2d15936ab90aba044b2b4bf796b6b72 Mon Sep 17 00:00:00 2001 From: Dominic Reber Date: Thu, 28 May 2026 11:45:47 +0200 Subject: [PATCH 3/4] docs: changelog --- CHANGELOG.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index b3a84561..77369bb1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,7 @@ Release Versions: +- [5.2.2](#542) - [5.4.1](#541) - [5.4.0](#540) - [5.3.0](#530) @@ -26,6 +27,13 @@ Release Versions: - [2.1.1](#211) - [2.1.0](#210) +## 5.4.2 + +### May 28th, 2026 + +Version 5.4.2 is a patch release that fixes a bug in the controller base class where the joint commands would not be +written back to the hardware after deactivation. + ## 5.4.1 ### April 8th, 2026 From 4a59e342201ab6b3ac6e940fb6c2d6064c72e819 Mon Sep 17 00:00:00 2001 From: Dominic Reber <71256590+domire8@users.noreply.github.com> Date: Thu, 28 May 2026 11:46:58 +0200 Subject: [PATCH 4/4] fix: tags --- .github/workflows/build-release.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-release.yaml b/.github/workflows/build-release.yaml index 91e30347..b4a0d804 100644 --- a/.github/workflows/build-release.yaml +++ b/.github/workflows/build-release.yaml @@ -22,7 +22,7 @@ jobs: image_name: aica-technology/modulo - run: | - IMAGE_TAGS=latest,"${GIT_TAG}",rolling + IMAGE_TAGS=latest,"${GIT_TAG}" CREATE_TAG=true GIT_TAG="v5.4.2" echo "Image tags: ${IMAGE_TAGS}"