头文件:
注意:在使用函数 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)