笔记94:ROS2 中的 declare_parameter() 和 get_parameter() 函数

头文件:


注意:在使用函数 Node 定义节点时,要先包含头文件:

#include "rclcpp/rclcpp.hpp"

a

a

a

declare_parameter() 函数:


函数作用:在 ROS2 中,函数 declare_parameter() 用于声明节点所需的参数,并指定参数的类型和默认值;声明的参数都是该节点特有的;

函数原型:

template<typename T>
void declare_parameter(const std::string& name,
                       const T& default_value,
                       const rclcpp::ParameterOptions& options = rclcpp::ParameterOptions());

函数参数:

  • name:参数名称,为字符串类型;
  • default_value:参数的默认值,支持任何 C++ 数据类型,因为这个参数的类型由函数模板决定,而函数模板 T 可以设定为任何值;
  • options:参数选项,用于配置参数的行为,例如是否允许重新映射;

举例:

declare_parameter<int>("count", 0);
declare_parameter<std::string>("name", "unknown");
declare_parameter<bool>("enabled", false);
#include "rclcpp/rclcpp.hpp"

class MyNode : public rclcpp::Node {
public:
    MyNode(const std::string& name) : Node(name) {
        // 声明一个名为 "count" 的整数参数,默认值为 0,并允许重新映射
        rclcpp::ParameterOptions options;
        options.allow_remapping = true;
        declare_parameter<int>("count", 0, options);
    }
};

a

a

a

get_parameter() 函数:


函数作用:get_parameter() 函数用于从 ROS 参数服务器中检索参数值;get_parameter() 函数通常在节点的构造函数或初始化函数中使用,以获取所需的配置参数,它还可以用于运行时动态地检索参数值;

  • 参数服务器是一个存储和检索 ROS 参数的集中式系统;
  • 参数可以用于配置节点、发布消息或订阅主题;

函数原型:

template <typename T>
bool get_parameter(const std::string& param_name, T& value, T default_value = T());

函数参数:

  • param_name:是要检索的参数的名称;
  • value:用于存储检索到的参数值的引用;
  • default_value:是可选的默认值,如果参数不存在则使用该值;

举例:

int param_value;
get_parameter("my_int_param", param_value, 10)

相关推荐

  1. 关于ros回旋函数

    2024-06-08 02:56:05       30 阅读
  2. ros2/ros1cmakelists.txt文件解释

    2024-06-08 02:56:05       54 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-08 02:56:05       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-08 02:56:05       100 阅读
  3. 在Django里面运行非项目文件

    2024-06-08 02:56:05       82 阅读
  4. Python语言-面向对象

    2024-06-08 02:56:05       91 阅读

热门阅读

  1. Python笔记 - generator方法

    2024-06-08 02:56:05       34 阅读
  2. Elixir学习笔记——模块和函数

    2024-06-08 02:56:05       29 阅读
  3. Skins

    Skins

    2024-06-08 02:56:05      29 阅读
  4. DolphinScheduler调度系统

    2024-06-08 02:56:05       30 阅读
  5. 【高频】如何优化一个SQL语句

    2024-06-08 02:56:05       26 阅读
  6. 适配器模式 Adapter

    2024-06-08 02:56:05       30 阅读
  7. 深度学习之梯度缩放介绍

    2024-06-08 02:56:05       25 阅读
  8. 第 10 章 nodelet(自学二刷笔记)

    2024-06-08 02:56:05       28 阅读
  9. 【C++刷题】优选算法——位运算

    2024-06-08 02:56:05       31 阅读
  10. Matlab速通知识点(半小时速通)

    2024-06-08 02:56:05       28 阅读