Nav2 Navigation Stack - jazzy  jazzy
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 parmaeter 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)
 
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)
 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 retreive 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 setDynamicParamCallback (T &setting, const std::string &name)
 Set a parameter to a dynamic parameter callback. More...
 
std::mutex * getLock ()
 Get mutex lock for changing parameters. More...
 
template<typename T >
void addDynamicParamCallback (const std::string &name, T &&callback)
 Set a parameter to a dynamic parameter callback. 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_
 
bool verbose_ {false}
 
std::unordered_map< std::string, std::function< get_param_func_t > > get_param_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 parmaeter changes.

Definition at line 41 of file parameters_handler.hpp.

Constructor & Destructor Documentation

◆ ParametersHandler()

mppi::ParametersHandler::ParametersHandler ( const rclcpp_lifecycle::LifecycleNode::WeakPtr &  parent)
explicit

Constructor for mppi::ParametersHandler.

Parameters
parentWeak ptr to node

Definition at line 20 of file parameters_handler.cpp.

Member Function Documentation

◆ addDynamicParamCallback()

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

Set a parameter to a dynamic parameter callback.

Parameters
nameName of parameter
callbackParameter callback

Definition at line 182 of file parameters_handler.hpp.

Referenced by mppi::critics::CostCritic::initialize(), and setDynamicParamCallback().

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 188 of file parameters_handler.hpp.

◆ addPreCallback()

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

Set a callback to process before parameter changes.

Parameters
callbackCallback function

Definition at line 194 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 249 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 51 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 111 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 200 of file parameters_handler.hpp.

◆ getParamGetter()

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

◆ setDynamicParamCallback()

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

Set a parameter to a dynamic parameter callback.

Parameters
settingParameter
nameName of parameter

Definition at line 227 of file parameters_handler.hpp.

References addDynamicParamCallback().

Here is the call graph for this function:

◆ 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 218 of file parameters_handler.hpp.


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