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
@codecov
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.60%. Comparing base (a2e56e4) to head (9eda38f).

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.46%   89.60%   +0.14%     
==========================================
  Files         152      152              
  Lines       17307    17637     +330     
  Branches     1434     1448      +14     
==========================================
+ Hits        15483    15804     +321     
- Misses       1246     1250       +4     
- Partials      578      583       +5     
Flag Coverage Δ
unittests 89.60% <96.85%> (+0.14%) ⬆️

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.29% <ø> (ø)
...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.22% <99.29%> (+0.88%) ⬆️
controller_manager/src/controller_manager.cpp 76.98% <86.15%> (+0.18%) ⬆️
🚀 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.

2 participants