Skip to content

Commit dd7736a

Browse files
committed
Fix waypoint follower logic
Signed-off-by: csy100886 <csy100886@gmail.com>
1 parent 9f52555 commit dd7736a

File tree

1 file changed

+19
-15
lines changed

1 file changed

+19
-15
lines changed

‎nav2_waypoint_follower/src/waypoint_follower.cpp‎

Lines changed: 19 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -34,17 +34,18 @@ WaypointFollower::WaypointFollower(const rclcpp::NodeOptions & options)
3434
{
3535
RCLCPP_INFO(get_logger(), "Creating");
3636

37-
declare_parameter("stop_on_failure", true);
38-
declare_parameter("loop_rate", 20);
39-
40-
declare_parameter("global_frame_id", "map");
41-
42-
nav2::declare_parameter_if_not_declared(
43-
this, std::string("waypoint_task_executor_plugin"),
44-
rclcpp::ParameterValue(std::string("wait_at_waypoint")));
45-
nav2::declare_parameter_if_not_declared(
46-
this, std::string("wait_at_waypoint.plugin"),
47-
rclcpp::ParameterValue(std::string("nav2_waypoint_follower::WaitAtWaypoint")));
37+
// Use declare_or_get_parameter for all parameters
38+
stop_on_failure_ = nav2::declare_or_get_parameter(this, "stop_on_failure", true);
39+
loop_rate_ = nav2::declare_or_get_parameter(this, "loop_rate", 20);
40+
global_frame_id_ = nav2::declare_or_get_parameter(
41+
this, "global_frame_id", std::string("map"));
42+
waypoint_task_executor_id_ = nav2::declare_or_get_parameter(
43+
this, "waypoint_task_executor_plugin", std::string("wait_at_waypoint"));
44+
45+
// Plugin type parameter
46+
nav2::declare_or_get_parameter(
47+
this, "wait_at_waypoint.plugin",
48+
std::string("nav2_waypoint_follower::WaitAtWaypoint"));
4849
}
4950

5051
WaypointFollower::~WaypointFollower()
@@ -58,10 +59,13 @@ WaypointFollower::on_configure(const rclcpp_lifecycle::State & state)
5859

5960
auto node = shared_from_this();
6061

61-
stop_on_failure_ = get_parameter("stop_on_failure").as_bool();
62-
loop_rate_ = get_parameter("loop_rate").as_int();
63-
waypoint_task_executor_id_ = get_parameter("waypoint_task_executor_plugin").as_string();
64-
global_frame_id_ = get_parameter("global_frame_id").as_string();
62+
// Parameters already declared in constructor, just get them
63+
stop_on_failure_ = nav2::declare_or_get_parameter(node, "stop_on_failure", true);
64+
loop_rate_ = nav2::declare_or_get_parameter(node, "loop_rate", 20);
65+
waypoint_task_executor_id_ = nav2::declare_or_get_parameter(
66+
node, "waypoint_task_executor_plugin", std::string("wait_at_waypoint"));
67+
global_frame_id_ = nav2::declare_or_get_parameter(
68+
node, "global_frame_id", std::string("map"));
6569

6670
callback_group_ = create_callback_group(
6771
rclcpp::CallbackGroupType::MutuallyExclusive,

0 commit comments

Comments
 (0)