Skip to content

Prevent API gaps between Node and LifecycleNode #898

Open
@bpwilcox

Description

@bpwilcox

I was working on a feature using rclcpp_lifecycle::LifecycleNode to declare a parameter when I noticed that the declare_parameter API on the lifecycle node interface does not include the ignore_overrides flag as does the version in rclcpp::Node. It seems that in addition to this, there are a handful of functions that have yet to be implemented in the lifecycle node. From a brief comparison (I didn't check all the signatures so there could be other differences), I found these functions that are missing:

  • get_fully_qualified_name()
  • declare_parameter (missing ignore_overrides argument)
  • add_on_set_parameters_callback(OnParametersSetCallbackType callback);
  • remove_on_set_parameters_callback(const OnSetParametersCallbackHandle * const handler);
  • get_sub_namespace()
  • get_effective_namespace()
  • create_sub_node()
  • assert_liveliness()

I think some PRs to implement the above functions and close the gap on the common node API is a solution, but I also would propose a discussion on a common interface by which these nodes must abide. Apparently these APIs can go out of sync with new changes, so I'd like to hear thoughts on how to better synchronize these Node classes.

Metadata

Metadata

Assignees

Labels

backlogenhancementNew feature or requestquestionFurther information is requested

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions