Skip to content

Commit 007e7c6

Browse files
authored
Revert #4971 in Jazzy (#5640)
* Revert #4971 in Jazzy Signed-off-by: mini-1235 <[email protected]> * Add Signed-off-by: mini-1235 <[email protected]> --------- Signed-off-by: mini-1235 <[email protected]>
1 parent cd69813 commit 007e7c6

File tree

2 files changed

+27
-55
lines changed

2 files changed

+27
-55
lines changed

nav2_regulated_pure_pursuit_controller/include/nav2_regulated_pure_pursuit_controller/parameter_handler.hpp

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -94,14 +94,12 @@ class ParameterHandler
9494
* @brief Callback executed when a parameter change is detected
9595
* @param event ParameterEvent message
9696
*/
97-
void
98-
updateParametersCallback(std::vector<rclcpp::Parameter> parameters);
9997
rcl_interfaces::msg::SetParametersResult
100-
validateParameterUpdatesCallback(std::vector<rclcpp::Parameter> parameters);
98+
dynamicParametersCallback(std::vector<rclcpp::Parameter> parameters);
99+
101100
// Dynamic parameters handler
102101
std::mutex mutex_;
103-
rclcpp::node_interfaces::PostSetParametersCallbackHandle::SharedPtr post_set_params_handler_;
104-
rclcpp::node_interfaces::OnSetParametersCallbackHandle::SharedPtr on_set_params_handler_;
102+
rclcpp::node_interfaces::OnSetParametersCallbackHandle::SharedPtr dyn_params_handler_;
105103
Parameters params_;
106104
std::string plugin_name_;
107105
rclcpp::Logger logger_ {rclcpp::get_logger("RegulatedPurePursuitController")};

nav2_regulated_pure_pursuit_controller/src/parameter_handler.cpp

Lines changed: 24 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -192,75 +192,40 @@ ParameterHandler::ParameterHandler(
192192
params_.use_cost_regulated_linear_velocity_scaling = false;
193193
}
194194

195-
post_set_params_handler_ = node->add_post_set_parameters_callback(
195+
dyn_params_handler_ = node->add_on_set_parameters_callback(
196196
std::bind(
197-
&ParameterHandler::updateParametersCallback,
198-
this, std::placeholders::_1));
199-
on_set_params_handler_ = node->add_on_set_parameters_callback(
200-
std::bind(
201-
&ParameterHandler::validateParameterUpdatesCallback,
197+
&ParameterHandler::dynamicParametersCallback,
202198
this, std::placeholders::_1));
203199
}
204200

205201
ParameterHandler::~ParameterHandler()
206202
{
207203
auto node = node_.lock();
208-
if (post_set_params_handler_ && node) {
209-
node->remove_post_set_parameters_callback(post_set_params_handler_.get());
210-
}
211-
post_set_params_handler_.reset();
212-
if (on_set_params_handler_ && node) {
213-
node->remove_on_set_parameters_callback(on_set_params_handler_.get());
204+
if (dyn_params_handler_ && node) {
205+
node->remove_on_set_parameters_callback(dyn_params_handler_.get());
214206
}
215-
on_set_params_handler_.reset();
207+
dyn_params_handler_.reset();
216208
}
217-
rcl_interfaces::msg::SetParametersResult ParameterHandler::validateParameterUpdatesCallback(
218-
std::vector<rclcpp::Parameter> parameters)
219-
{
220-
rcl_interfaces::msg::SetParametersResult result;
221-
result.successful = true;
222-
for (auto parameter : parameters) {
223-
const auto & type = parameter.get_type();
224-
const auto & name = parameter.get_name();
225209

226-
if (type == ParameterType::PARAMETER_DOUBLE) {
227-
if (name == plugin_name_ + ".inflation_cost_scaling_factor" && parameter.as_double() <= 0.0) {
228-
RCLCPP_WARN(
229-
logger_, "The value inflation_cost_scaling_factor is incorrectly set, "
230-
"it should be >0. Ignoring parameter update.");
231-
result.successful = false;
232-
} else if (parameter.as_double() < 0.0) {
233-
RCLCPP_WARN(
234-
logger_, "The value of parameter '%s' is incorrectly set to %f, "
235-
"it should be >=0. Ignoring parameter update.",
236-
name.c_str(), parameter.as_double());
237-
result.successful = false;
238-
}
239-
} else if (type == ParameterType::PARAMETER_BOOL) {
240-
if (name == plugin_name_ + ".allow_reversing") {
241-
if (params_.use_rotate_to_heading && parameter.as_bool()) {
242-
RCLCPP_WARN(
243-
logger_, "Both use_rotate_to_heading and allow_reversing "
244-
"parameter cannot be set to true. Rejecting parameter update.");
245-
result.successful = false;
246-
}
247-
}
248-
}
249-
}
250-
return result;
251-
}
252-
void
253-
ParameterHandler::updateParametersCallback(
210+
rcl_interfaces::msg::SetParametersResult
211+
ParameterHandler::dynamicParametersCallback(
254212
std::vector<rclcpp::Parameter> parameters)
255213
{
214+
rcl_interfaces::msg::SetParametersResult result;
256215
std::lock_guard<std::mutex> lock_reinit(mutex_);
257216

258-
for (const auto & parameter : parameters) {
217+
for (auto parameter : parameters) {
259218
const auto & type = parameter.get_type();
260219
const auto & name = parameter.get_name();
261220

262221
if (type == ParameterType::PARAMETER_DOUBLE) {
263222
if (name == plugin_name_ + ".inflation_cost_scaling_factor") {
223+
if (parameter.as_double() <= 0.0) {
224+
RCLCPP_WARN(
225+
logger_, "The value inflation_cost_scaling_factor is incorrectly set, "
226+
"it should be >0. Ignoring parameter update.");
227+
continue;
228+
}
264229
params_.inflation_cost_scaling_factor = parameter.as_double();
265230
} else if (name == plugin_name_ + ".desired_linear_vel") {
266231
params_.desired_linear_vel = parameter.as_double();
@@ -318,12 +283,21 @@ ParameterHandler::updateParametersCallback(
318283
} else if (name == plugin_name_ + ".use_cancel_deceleration") {
319284
params_.use_cancel_deceleration = parameter.as_bool();
320285
} else if (name == plugin_name_ + ".allow_reversing") {
286+
if (params_.use_rotate_to_heading && parameter.as_bool()) {
287+
RCLCPP_WARN(
288+
logger_, "Both use_rotate_to_heading and allow_reversing "
289+
"parameter cannot be set to true. Rejecting parameter update.");
290+
continue;
291+
}
321292
params_.allow_reversing = parameter.as_bool();
322293
} else if (name == plugin_name_ + ".interpolate_curvature_after_goal") {
323294
params_.interpolate_curvature_after_goal = parameter.as_bool();
324295
}
325296
}
326297
}
298+
299+
result.successful = true;
300+
return result;
327301
}
328302

329303
} // namespace nav2_regulated_pure_pursuit_controller

0 commit comments

Comments
 (0)