Can we can close this issue now that users can choose which behavior they would like at run time?
Do you mean the defaults.allow_controller_activation_with_inactive_hardware and defaults.deactivate_controllers_on_hardware_self_deactivate parameters?
It seems to me like those don't fully address this Issue. I'm running ros2_control on jazzy with default parameters (i.e. allow_controller_activation_with_inactive_hardware = false and deactivate_controllers_on_hardware_self_deactivate = true, and observe the following:
When I manually deactivate a HardwareComponent (ros2 control set_hardware_component_state r6bot inactive),
- Any controllers using that component's interfaces stay active
- Consequently the interfaces stay claimed
When I manually de-activate the Controller, I can then no longer re-activate it (this is as expected).
Is there a reason to leave the controller active if a HardwareComponent becomes inactive due to a user command, rather than because it returned return_type::DEACTIVATE from one of its methods?
Originally posted by @T045T in #2508
Originally posted by @T045T in #2508