22 #include "nav2_waypoint_follower/parameter_handler.hpp"
24 namespace nav2_waypoint_follower
27 using nav2::declare_parameter_if_not_declared;
28 using rcl_interfaces::msg::ParameterType;
31 const nav2::LifecycleNode::SharedPtr & node,
32 const rclcpp::Logger & logger)
35 params_.stop_on_failure = node->declare_or_get_parameter(
"stop_on_failure",
true);
36 params_.loop_rate = node->declare_or_get_parameter(
"loop_rate", 20);
37 params_.waypoint_task_executor_id =
38 node->declare_or_get_parameter(
"waypoint_task_executor_plugin",
39 std::string(
"wait_at_waypoint"));
40 params_.global_frame_id = node->declare_or_get_parameter(
"global_frame_id", std::string(
"map"));
41 nav2::declare_parameter_if_not_declared(
42 node, std::string(
"wait_at_waypoint.plugin"),
43 rclcpp::ParameterValue(std::string(
"nav2_waypoint_follower::WaitAtWaypoint")));
44 params_.waypoint_task_executor_type = nav2::get_plugin_type_param(
46 params_.waypoint_task_executor_id);
50 const std::vector<rclcpp::Parameter> & parameters)
52 rcl_interfaces::msg::SetParametersResult result;
53 result.successful =
true;
54 for (
const auto & parameter : parameters) {
55 const auto & param_type = parameter.get_type();
56 const auto & param_name = parameter.get_name();
59 if (param_name.find(
'.') != std::string::npos) {
62 if (param_type == ParameterType::PARAMETER_INTEGER) {
63 if (parameter.as_int() <= 0) {
65 logger_,
"The value of parameter '%s' is incorrectly set to %ld, "
66 "it should be >0. Ignoring parameter update.",
67 param_name.c_str(), parameter.as_int());
68 result.successful =
false;
77 const std::vector<rclcpp::Parameter> & parameters)
79 for (
const auto & parameter : parameters) {
80 const auto & param_type = parameter.get_type();
81 const auto & param_name = parameter.get_name();
82 if (param_name.find(
'.') != std::string::npos) {
86 if (param_type == ParameterType::PARAMETER_INTEGER) {
87 if (param_name ==
"loop_rate") {
88 params_.loop_rate = parameter.as_int();
90 }
else if (param_type == ParameterType::PARAMETER_BOOL) {
91 if (param_name ==
"stop_on_failure") {
92 params_.stop_on_failure = parameter.as_bool();
Handles parameters and dynamic parameters for Planner Server.
void updateParametersCallback(const std::vector< rclcpp::Parameter > ¶meters) override
Apply parameter updates after validation This callback is executed when parameters have been successf...
rcl_interfaces::msg::SetParametersResult validateParameterUpdatesCallback(const std::vector< rclcpp::Parameter > ¶meters) override
Validate incoming parameter updates before applying them. This callback is triggered when one or more...
ParameterHandler(const nav2::LifecycleNode::SharedPtr &node, const rclcpp::Logger &logger)
Constructor for nav2_waypoint_follower::ParameterHandler.