Skip to content

Conversation

saikishor
Copy link
Member

This PR proposes a way to deactivate the whole controller chain when one of the controllers in the chain is deactivated as a result of it returning ERROR in the update cycle.

For instance, for the following example, if the controller B fails, then it is deactivated automatically, but all the other controllers are left dangling, and they are left to track an invalid reference, this might lead to a catastrophic behaviour, this is especially true when you are tracking a velocity, force, or torque references. The idea is to bring down the whole chain along with it.

graph LR;
    A-->B;
    B-->C;
    B-->D;
    D-->E;
Loading

@saikishor saikishor added backport-jazzy Triggers PR backport to ROS 2 jazzy. backport-kilted Triggers PR backport to ROS 2 kilted. labels Oct 15, 2025
Copy link

codecov bot commented Oct 15, 2025

Codecov Report

❌ Patch coverage is 96.85714% with 11 lines in your changes missing coverage. Please review.
✅ Project coverage is 89.49%. Comparing base (6cbb5f0) to head (b58dded).

Files with missing lines Patch % Lines
controller_manager/src/controller_manager.cpp 86.15% 2 Missing and 7 partials ⚠️
...ontroller_manager/test/test_controller_manager.cpp 99.29% 2 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##           master    #2681      +/-   ##
==========================================
+ Coverage   89.33%   89.49%   +0.15%     
==========================================
  Files         151      151              
  Lines       17138    17468     +330     
  Branches     1435     1449      +14     
==========================================
+ Hits        15311    15633     +322     
- Misses       1245     1249       +4     
- Partials      582      586       +4     
Flag Coverage Δ
unittests 89.49% <96.85%> (+0.15%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

Files with missing lines Coverage Δ
.../include/controller_manager/controller_manager.hpp 97.36% <ø> (ø)
...ger/include/controller_manager/controller_spec.hpp 100.00% <ø> (ø)
...chainable_controller/test_chainable_controller.cpp 87.91% <100.00%> (ø)
...chainable_controller/test_chainable_controller.hpp 100.00% <ø> (ø)
...ontroller_manager/test/test_controller_manager.cpp 96.43% <99.29%> (+0.88%) ⬆️
controller_manager/src/controller_manager.cpp 76.60% <86.15%> (+0.19%) ⬆️

... and 1 file with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@saikishor saikishor force-pushed the deactivate/full/controller_chain/update_failure branch from 199e749 to e1db65b Compare October 16, 2025 07:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backport-jazzy Triggers PR backport to ROS 2 jazzy. backport-kilted Triggers PR backport to ROS 2 kilted.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant