Nav2 Navigation Stack - kilted  kilted
ROS 2 Navigation Stack
Public Types | Public Member Functions | Protected Member Functions | Static Protected Member Functions | Protected Attributes | List of all members
mppi::ParametersHandler Class Reference

Handles getting parameters and dynamic parameter changes. More...

#include <nav2_mppi_controller/include/nav2_mppi_controller/tools/parameters_handler.hpp>

Collaboration diagram for mppi::ParametersHandler:
Collaboration graph
[legend]

Public Types

using get_param_func_t = void(const rclcpp::Parameter &param, rcl_interfaces::msg::SetParametersResult &result)
 
using post_callback_t = void()
 
using pre_callback_t = void()
 

Public Member Functions

 ParametersHandler ()=default
 Constructor for mppi::ParametersHandler.
 
 ParametersHandler (const rclcpp_lifecycle::LifecycleNode::WeakPtr &parent, std::string &name)
 Constructor for mppi::ParametersHandler. More...
 
 ~ParametersHandler ()
 Destructor for mppi::ParametersHandler.
 
void start ()
 Starts processing dynamic parameter changes.
 
rcl_interfaces::msg::SetParametersResult dynamicParamsCallback (std::vector< rclcpp::Parameter > parameters)
 Dynamic parameter callback. More...
 
auto getParamGetter (const std::string &ns)
 Get an object to retrieve parameters. More...
 
template<typename T >
void addPostCallback (T &&callback)
 Set a callback to process after parameter changes. More...
 
template<typename T >
void addPreCallback (T &&callback)
 Set a callback to process before parameter changes. More...
 
template<typename T >
void setParamCallback (T &setting, const std::string &name, ParameterType param_type=ParameterType::Dynamic)
 Set a parameter to a dynamic parameter callback. More...
 
std::mutex * getLock ()
 Get mutex lock for changing parameters. More...
 
template<typename T >
void addParamCallback (const std::string &name, T &&callback)
 register a function to be called when setting a parameter More...
 

Protected Member Functions

template<typename SettingT , typename ParamT >
void getParam (SettingT &setting, const std::string &name, ParamT default_value, ParameterType param_type=ParameterType::Dynamic)
 Gets parameter. More...
 
template<typename ParamT , typename SettingT , typename NodeT >
void setParam (SettingT &setting, const std::string &name, NodeT node) const
 Set a parameter. More...
 

Static Protected Member Functions

template<typename T >
static auto as (const rclcpp::Parameter &parameter)
 Converts parameter type to real types. More...
 

Protected Attributes

std::mutex parameters_change_mutex_
 
rclcpp::Logger logger_ {rclcpp::get_logger("MPPIController")}
 
rclcpp::node_interfaces::OnSetParametersCallbackHandle::SharedPtr on_set_param_handler_
 
rclcpp_lifecycle::LifecycleNode::WeakPtr node_
 
std::string node_name_
 
std::string name_
 
bool verbose_ {false}
 
std::unordered_map< std::string, std::function< get_param_func_t > > get_param_callbacks_
 
std::unordered_map< std::string, std::function< get_param_func_t > > get_pre_callbacks_
 
std::vector< std::function< pre_callback_t > > pre_callbacks_
 
std::vector< std::function< post_callback_t > > post_callbacks_
 

Detailed Description

Handles getting parameters and dynamic parameter changes.

Definition at line 41 of file parameters_handler.hpp.

Constructor & Destructor Documentation

◆ ParametersHandler()

mppi::ParametersHandler::ParametersHandler ( const rclcpp_lifecycle::LifecycleNode::WeakPtr &  parent,
std::string &  name 
)
explicit

Constructor for mppi::ParametersHandler.

Parameters
parentWeak ptr to node

Definition at line 20 of file parameters_handler.cpp.

Member Function Documentation

◆ addParamCallback()

template<typename T >
void mppi::ParametersHandler::addParamCallback ( const std::string &  name,
T &&  callback 
)

register a function to be called when setting a parameter

The callback function is expected to behave as follows. Successful parameter changes should not interfere with the result parameter. Unsuccessful parameter changes should set the result.successful = false The result.reason should have "\n" appended if not empty before appending the reason that setting THIS parameter has failed.

Parameters
nameName of parameter
callbackParameter callback

Definition at line 193 of file parameters_handler.hpp.

Referenced by mppi::critics::CostCritic::initialize().

Here is the caller graph for this function:

◆ addPostCallback()

template<typename T >
void mppi::ParametersHandler::addPostCallback ( T &&  callback)

Set a callback to process after parameter changes.

Parameters
callbackCallback function

Definition at line 199 of file parameters_handler.hpp.

Referenced by mppi::Optimizer::getParams().

Here is the caller graph for this function:

◆ addPreCallback()

template<typename T >
void mppi::ParametersHandler::addPreCallback ( T &&  callback)

Set a callback to process before parameter changes.

Parameters
callbackCallback function

Definition at line 205 of file parameters_handler.hpp.

◆ as()

template<typename T >
auto mppi::ParametersHandler::as ( const rclcpp::Parameter &  parameter)
staticprotected

Converts parameter type to real types.

Parameters
parameterParameter to convert into real type
Returns
parameter as a functional type

Definition at line 270 of file parameters_handler.hpp.

◆ dynamicParamsCallback()

rcl_interfaces::msg::SetParametersResult mppi::ParametersHandler::dynamicParamsCallback ( std::vector< rclcpp::Parameter >  parameters)

Dynamic parameter callback.

Parameters
parameterParameter changes to process
Returns
Set Parameter Result

Definition at line 53 of file parameters_handler.cpp.

Referenced by start().

Here is the caller graph for this function:

◆ getLock()

std::mutex* mppi::ParametersHandler::getLock ( )
inline

Get mutex lock for changing parameters.

Returns
Pointer to mutex

Definition at line 113 of file parameters_handler.hpp.

◆ getParam()

template<typename SettingT , typename ParamT >
void mppi::ParametersHandler::getParam ( SettingT &  setting,
const std::string &  name,
ParamT  default_value,
ParameterType  param_type = ParameterType::Dynamic 
)
protected

Gets parameter.

Parameters
settingReturn Parameter type
nameParameter name
default_valueDefault parameter value
param_typeType of parameter (dynamic or static)

Definition at line 211 of file parameters_handler.hpp.

References setParamCallback().

Here is the call graph for this function:

◆ getParamGetter()

auto mppi::ParametersHandler::getParamGetter ( const std::string &  ns)
inline

◆ setParam()

template<typename ParamT , typename SettingT , typename NodeT >
void mppi::ParametersHandler::setParam ( SettingT &  setting,
const std::string &  name,
NodeT  node 
) const
protected

Set a parameter.

Parameters
settingReturn Parameter type
nameParameter name
nodeNode to set parameter via

Definition at line 226 of file parameters_handler.hpp.

◆ setParamCallback()

template<typename T >
void mppi::ParametersHandler::setParamCallback ( T &  setting,
const std::string &  name,
ParameterType  param_type = ParameterType::Dynamic 
)

Set a parameter to a dynamic parameter callback.

Parameters
settingParameter
nameName of parameter
param_typeType of parameter (dynamic or static)

Definition at line 235 of file parameters_handler.hpp.

Referenced by getParam().

Here is the caller graph for this function:

The documentation for this class was generated from the following files: