Skip to content

Controllers stay active after manual deactivation of hardware component #3444

Description

@christophfroehlich

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    persistentIssue won't get marked as stale

    Type

    No type

    Projects

    Status
    Needs discussion

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions