15 #include "nav2_mppi_controller/tools/parameters_handler.hpp"
21 const rclcpp_lifecycle::LifecycleNode::WeakPtr & parent, std::string & name)
24 auto node = node_.lock();
25 node_name_ = node->get_name();
26 logger_ = node->get_logger();
32 auto node = node_.lock();
33 if (on_set_param_handler_ && node) {
34 node->remove_on_set_parameters_callback(on_set_param_handler_.get());
36 on_set_param_handler_.reset();
41 auto node = node_.lock();
44 get_param(verbose_,
"verbose",
false);
46 on_set_param_handler_ = node->add_on_set_parameters_callback(
49 std::placeholders::_1));
52 rcl_interfaces::msg::SetParametersResult
54 std::vector<rclcpp::Parameter> parameters)
56 rcl_interfaces::msg::SetParametersResult result;
57 result.successful =
true;
60 std::lock_guard<std::mutex> lock(parameters_change_mutex_);
61 std::vector<rclcpp::Parameter> plugin_params;
62 for (
auto & param : parameters) {
63 const std::string & param_name = param.get_name();
64 if (param_name.find(name_ +
".") != 0) {
67 plugin_params.push_back(param);
70 if (!plugin_params.empty()) {
71 for (
auto & pre_cb : pre_callbacks_) {
75 for (
auto & param : plugin_params) {
76 const std::string & param_name = param.get_name();
77 if (
auto callback = get_param_callbacks_.find(param_name);
78 callback != get_param_callbacks_.end())
80 callback->second(param, result);
84 for (
auto & post_cb : post_callbacks_) {
89 if (!result.successful) {
90 RCLCPP_ERROR(logger_, result.reason.c_str());
rcl_interfaces::msg::SetParametersResult dynamicParamsCallback(std::vector< rclcpp::Parameter > parameters)
Dynamic parameter callback.
auto getParamGetter(const std::string &ns)
Get an object to retrieve parameters.
void start()
Starts processing dynamic parameter changes.
ParametersHandler()=default
Constructor for mppi::ParametersHandler.
~ParametersHandler()
Destructor for mppi::ParametersHandler.