Skip to content

Add support to nav2_utils::LifecycleNode #369

@nsh-bgl

Description

@nsh-bgl

Is your feature request related to a problem? Please describe.
Currently the package only provides support for rclcpp::Node and rclcpp_lifecycle::LifecycleNode. I would like to suggest adding support for nav2_utils::Lifecycle. I am primarily interested in the Bond connection concept introduced in this version of lifecycle nodes.

Describe the solution you'd like
Adding template specializations for nav2_utils::LifecycleNode in NodeCanopenDriver and relevant derived classes.
Adding a new class that inherits from both CanopenDriverInterface and nav2_utils::LifecycleNode

Describe alternatives you've considered
Perhaps adding bond functionality manually to each new driver node. (unpractical).
Creating a separate package that introduces a new child of NodeCanopenDriverInterface and a new child of CanopenDriverInterface. (Somewhat goes against the inheritance chain logic setup in this package as well as the templating of NodeCanopenDriverInterface classes).

Additional context
I saw comments in the code suggesting that NodeCanopenDriverInterface child classes should work with classes that inherit from rclcpp_lifecycle::LifecycleNode but I believe that template specialization is required to support new classes that inherit from rclcpp::Node or rclcpp_lifecycle::LifecycleNode.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions