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.
I was working on a feature using
rclcpp_lifecycle::LifecycleNodeto declare a parameter when I noticed that thedeclare_parameterAPI on the lifecycle node interface does not include theignore_overridesflag as does the version inrclcpp::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(missingignore_overridesargument)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.