Skip to content

Commit f78bac5

Browse files
Use the new declare_or_get_parameter API for nav2_behaviors. (#5583)
Signed-off-by: Leander Stephen D'Souza <leanderdsouza1234@gmail.com>
1 parent 269d480 commit f78bac5

File tree

5 files changed

+38
-108
lines changed

5 files changed

+38
-108
lines changed

nav2_behaviors/include/nav2_behaviors/plugins/drive_on_heading.hpp

Lines changed: 9 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -246,23 +246,15 @@ class DriveOnHeading : public TimedBehavior<ActionT>
246246
throw std::runtime_error{"Failed to lock node"};
247247
}
248248

249-
nav2::declare_parameter_if_not_declared(
250-
node,
251-
"simulate_ahead_time", rclcpp::ParameterValue(2.0));
252-
node->get_parameter("simulate_ahead_time", simulate_ahead_time_);
253-
254-
nav2::declare_parameter_if_not_declared(
255-
node, this->behavior_name_ + ".acceleration_limit",
256-
rclcpp::ParameterValue(2.5));
257-
nav2::declare_parameter_if_not_declared(
258-
node, this->behavior_name_ + ".deceleration_limit",
259-
rclcpp::ParameterValue(-2.5));
260-
nav2::declare_parameter_if_not_declared(
261-
node, this->behavior_name_ + ".minimum_speed",
262-
rclcpp::ParameterValue(0.10));
263-
node->get_parameter(this->behavior_name_ + ".acceleration_limit", acceleration_limit_);
264-
node->get_parameter(this->behavior_name_ + ".deceleration_limit", deceleration_limit_);
265-
node->get_parameter(this->behavior_name_ + ".minimum_speed", minimum_speed_);
249+
simulate_ahead_time_ = node->declare_or_get_parameter(
250+
"simulate_ahead_time", 2.0);
251+
acceleration_limit_ = node->declare_or_get_parameter(
252+
this->behavior_name_ + ".acceleration_limit", 2.5);
253+
deceleration_limit_ = node->declare_or_get_parameter(
254+
this->behavior_name_ + ".deceleration_limit", -2.5);
255+
minimum_speed_ = node->declare_or_get_parameter(
256+
this->behavior_name_ + ".minimum_speed", 0.10);
257+
266258
if (acceleration_limit_ <= 0.0 || deceleration_limit_ >= 0.0) {
267259
RCLCPP_ERROR(this->logger_,
268260
"DriveOnHeading: acceleration_limit and deceleration_limit must be "

nav2_behaviors/plugins/assisted_teleop.cpp

Lines changed: 4 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -33,23 +33,10 @@ void AssistedTeleop::onConfigure()
3333
}
3434

3535
// set up parameters
36-
nav2::declare_parameter_if_not_declared(
37-
node,
38-
"projection_time", rclcpp::ParameterValue(1.0));
39-
40-
nav2::declare_parameter_if_not_declared(
41-
node,
42-
"simulation_time_step", rclcpp::ParameterValue(0.1));
43-
44-
nav2::declare_parameter_if_not_declared(
45-
node,
46-
"cmd_vel_teleop", rclcpp::ParameterValue(std::string("cmd_vel_teleop")));
47-
48-
node->get_parameter("projection_time", projection_time_);
49-
node->get_parameter("simulation_time_step", simulation_time_step_);
50-
51-
std::string cmd_vel_teleop;
52-
node->get_parameter("cmd_vel_teleop", cmd_vel_teleop);
36+
projection_time_ = node->declare_or_get_parameter("projection_time", 1.0);
37+
simulation_time_step_ = node->declare_or_get_parameter("simulation_time_step", 0.1);
38+
std::string cmd_vel_teleop = node->declare_or_get_parameter(
39+
"cmd_vel_teleop", std::string("cmd_vel_teleop"));
5340

5441
vel_sub_ = std::make_unique<nav2_util::TwistSubscriber>(
5542
node,

nav2_behaviors/plugins/spin.cpp

Lines changed: 4 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -49,25 +49,10 @@ void Spin::onConfigure()
4949
throw std::runtime_error{"Failed to lock node"};
5050
}
5151

52-
nav2::declare_parameter_if_not_declared(
53-
node,
54-
"simulate_ahead_time", rclcpp::ParameterValue(2.0));
55-
node->get_parameter("simulate_ahead_time", simulate_ahead_time_);
56-
57-
nav2::declare_parameter_if_not_declared(
58-
node,
59-
"max_rotational_vel", rclcpp::ParameterValue(1.0));
60-
node->get_parameter("max_rotational_vel", max_rotational_vel_);
61-
62-
nav2::declare_parameter_if_not_declared(
63-
node,
64-
"min_rotational_vel", rclcpp::ParameterValue(0.4));
65-
node->get_parameter("min_rotational_vel", min_rotational_vel_);
66-
67-
nav2::declare_parameter_if_not_declared(
68-
node,
69-
"rotational_acc_lim", rclcpp::ParameterValue(3.2));
70-
node->get_parameter("rotational_acc_lim", rotational_acc_lim_);
52+
simulate_ahead_time_ = node->declare_or_get_parameter("simulate_ahead_time", 2.0);
53+
max_rotational_vel_ = node->declare_or_get_parameter("max_rotational_vel", 1.0);
54+
min_rotational_vel_ = node->declare_or_get_parameter("min_rotational_vel", 0.4);
55+
rotational_acc_lim_ = node->declare_or_get_parameter("rotational_acc_lim", 3.2);
7156
}
7257

7358
ResultStatus Spin::onRun(const std::shared_ptr<const SpinActionGoal> command)

nav2_behaviors/src/behavior_server.cpp

Lines changed: 12 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -31,26 +31,8 @@ BehaviorServer::BehaviorServer(const rclcpp::NodeOptions & options)
3131
"nav2_behaviors::DriveOnHeading",
3232
"nav2_behaviors::Wait"}
3333
{
34-
declare_parameter(
35-
"local_costmap_topic",
36-
rclcpp::ParameterValue(std::string("local_costmap/costmap_raw")));
37-
38-
declare_parameter(
39-
"global_costmap_topic",
40-
rclcpp::ParameterValue(std::string("global_costmap/costmap_raw")));
41-
42-
declare_parameter(
43-
"local_footprint_topic",
44-
rclcpp::ParameterValue(std::string("local_costmap/published_footprint")));
45-
46-
declare_parameter(
47-
"global_footprint_topic",
48-
rclcpp::ParameterValue(std::string("global_costmap/published_footprint")));
49-
5034
declare_parameter("cycle_frequency", rclcpp::ParameterValue(10.0));
51-
declare_parameter("behavior_plugins", default_ids_);
52-
53-
get_parameter("behavior_plugins", behavior_ids_);
35+
behavior_ids_ = declare_or_get_parameter("behavior_plugins", default_ids_);
5436
if (behavior_ids_ == default_ids_) {
5537
for (size_t i = 0; i < default_ids_.size(); ++i) {
5638
declare_parameter(default_ids_[i] + ".plugin", default_types_[i]);
@@ -63,12 +45,6 @@ BehaviorServer::BehaviorServer(const rclcpp::NodeOptions & options)
6345
declare_parameter(
6446
"global_frame",
6547
rclcpp::ParameterValue(std::string("map")));
66-
declare_parameter(
67-
"robot_base_frame",
68-
rclcpp::ParameterValue(std::string("base_link")));
69-
declare_parameter(
70-
"transform_tolerance",
71-
rclcpp::ParameterValue(0.1));
7248
}
7349

7450

@@ -140,16 +116,17 @@ void BehaviorServer::configureBehaviorPlugins()
140116

141117
void BehaviorServer::setupResourcesForBehaviorPlugins()
142118
{
143-
std::string local_costmap_topic, global_costmap_topic;
144-
std::string local_footprint_topic, global_footprint_topic;
145-
std::string robot_base_frame;
146-
double transform_tolerance;
147-
get_parameter("local_costmap_topic", local_costmap_topic);
148-
get_parameter("global_costmap_topic", global_costmap_topic);
149-
get_parameter("local_footprint_topic", local_footprint_topic);
150-
get_parameter("global_footprint_topic", global_footprint_topic);
151-
get_parameter("robot_base_frame", robot_base_frame);
152-
transform_tolerance = get_parameter("transform_tolerance").as_double();
119+
std::string local_costmap_topic = declare_or_get_parameter(
120+
"local_costmap_topic", std::string("local_costmap/costmap_raw"));
121+
std::string global_costmap_topic = declare_or_get_parameter(
122+
"global_costmap_topic", std::string("global_costmap/costmap_raw"));
123+
std::string local_footprint_topic = declare_or_get_parameter(
124+
"local_footprint_topic", std::string("local_costmap/published_footprint"));
125+
std::string global_footprint_topic = declare_or_get_parameter(
126+
"global_footprint_topic", std::string("global_costmap/published_footprint"));
127+
std::string robot_base_frame = declare_or_get_parameter(
128+
"robot_base_frame", std::string("base_link"));
129+
double transform_tolerance = declare_or_get_parameter("transform_tolerance", 0.1);
153130

154131
bool need_local_costmap = false;
155132
bool need_global_costmap = false;

nav2_behaviors/test/test_behaviors.cpp

Lines changed: 9 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -111,19 +111,15 @@ class BehaviorTest : public ::testing::Test
111111
node_lifecycle_ =
112112
std::make_shared<nav2::LifecycleNode>(
113113
"LifecycleBehaviorTestNode", rclcpp::NodeOptions());
114-
node_lifecycle_->declare_parameter(
115-
"local_costmap_topic",
116-
rclcpp::ParameterValue(std::string("local_costmap/costmap_raw")));
117-
node_lifecycle_->declare_parameter(
118-
"local_footprint_topic",
119-
rclcpp::ParameterValue(std::string("local_costmap/published_footprint")));
120-
121-
node_lifecycle_->declare_parameter(
122-
"global_costmap_topic",
123-
rclcpp::ParameterValue(std::string("global_costmap/costmap_raw")));
124-
node_lifecycle_->declare_parameter(
125-
"global_footprint_topic",
126-
rclcpp::ParameterValue(std::string("global_costmap/published_footprint")));
114+
115+
std::string local_costmap_topic = node_lifecycle_->declare_or_get_parameter(
116+
"local_costmap_topic", std::string("local_costmap/costmap_raw"));
117+
std::string local_footprint_topic = node_lifecycle_->declare_or_get_parameter(
118+
"local_footprint_topic", std::string("local_costmap/published_footprint"));
119+
std::string global_costmap_topic = node_lifecycle_->declare_or_get_parameter(
120+
"global_costmap_topic", std::string("global_costmap/costmap_raw"));
121+
std::string global_footprint_topic = node_lifecycle_->declare_or_get_parameter(
122+
"global_footprint_topic", std::string("global_costmap/published_footprint"));
127123

128124
tf_buffer_ = std::make_shared<tf2_ros::Buffer>(node_lifecycle_->get_clock());
129125
auto timer_interface = std::make_shared<tf2_ros::CreateTimerROS>(
@@ -132,13 +128,6 @@ class BehaviorTest : public ::testing::Test
132128
tf_buffer_->setCreateTimerInterface(timer_interface);
133129
tf_listener_ = std::make_shared<tf2_ros::TransformListener>(*tf_buffer_);
134130

135-
std::string local_costmap_topic, global_costmap_topic;
136-
std::string local_footprint_topic, global_footprint_topic;
137-
node_lifecycle_->get_parameter("local_costmap_topic", local_costmap_topic);
138-
node_lifecycle_->get_parameter("global_costmap_topic", global_costmap_topic);
139-
node_lifecycle_->get_parameter("local_footprint_topic", local_footprint_topic);
140-
node_lifecycle_->get_parameter("global_footprint_topic", global_footprint_topic);
141-
142131
std::shared_ptr<nav2_costmap_2d::CostmapSubscriber> local_costmap_sub_ =
143132
std::make_shared<nav2_costmap_2d::CostmapSubscriber>(
144133
node_lifecycle_, global_costmap_topic);

0 commit comments

Comments
 (0)