ROS2 “通信方式” 参数服务器

news2024/11/26 11:42:38

为什么加“通信方式”引号,因为我觉得他就不算通信,最多最多就是一个动态加载参数方式

所以ros通信方式就三种,topic service  action  别犟,犟就是你对!

常用的 param参数方法如下:

# declare_parameter 声明和初始化一个参数

# describe_parameter(name) 通过参数名字获取参数的描述

# get_parameter 通过参数名字获取一个参数

# set_parameter 设置参数的值

1、代码创建

paramter_test.cpp

#include <chrono>
#include "rclcpp/rclcpp.hpp"

class ParametersNode : public rclcpp::Node
{
public:
    // 构造函数,有一个参数为节点名称
    explicit ParametersNode(std::string name) : Node(name)
    {
        RCLCPP_INFO(this->get_logger(), "node start:%s.", name.c_str());
        this->declare_parameter("rcl_log_level", 0);     /*声明参数*/
        this->get_parameter("rcl_log_level", log_level); /*获取参数*/
        /*设置日志级别*/
        this->get_logger().set_level((rclcpp::Logger::Level)log_level);
        using namespace std::literals::chrono_literals;
        timer_ = this->create_wall_timer(500ms, std::bind(&ParametersNode::timer_callback, this));
    }

private:
    int                          log_level;
    rclcpp::TimerBase::SharedPtr timer_;

    void timer_callback()
    {
        this->get_parameter("rcl_log_level", log_level); /*获取参数*/
        /*设置日志级别*/
        this->get_logger().set_level((rclcpp::Logger::Level)log_level);
        std::cout << "*****************" << std::endl;
        RCLCPP_DEBUG(this->get_logger(), "DEBUG LOG!");
        RCLCPP_INFO(this->get_logger(), "INFO LOG!");
        RCLCPP_WARN(this->get_logger(), "WARN LOG!");
        RCLCPP_ERROR(this->get_logger(), "ERROR LOG!");
        RCLCPP_FATAL(this->get_logger(), "FATAL LOG!");
    }
};

int main(int argc, char** argv)
{
    rclcpp::init(argc, argv);
    /*创建对应节点的共享指针对象*/
    auto node = std::make_shared<ParametersNode>("parameter_node");
    /* 运行节点,并检测退出信号*/
    rclcpp::spin(node);
    rclcpp::shutdown();
    return 0;
}

2、测试

正常启动:

ros2 run param_moudle paramter_node

启动前更新参数:

ros2 run param_moudle paramter_node --ros-args -p rcl_log_level:=10

运行中更改参数:

ros2 param set /parameter_node rcl_log_level 50

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2210480.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于Java的旅游网站管理系统—计算机毕业设计源码39235

摘 要 信息化社会内需要与之针对性的信息获取途径&#xff0c;但是途径的扩展基本上为人们所努力的方向&#xff0c;由于站在的角度存在偏差&#xff0c;人们经常能够获得不同类型信息&#xff0c;这也是技术最为难以攻克的课题。针对旅游网站等问题&#xff0c;对旅游网站进行…

项目计划书,项目经理日常文档,项目管理计划,项目总体实施计划,总体测试计划,总体运维计划,总体开发计划(word原件获取)

项目开发计划包括项目描述、项目组织、成本预算、人力资源估算、设备资源计划、沟通计划、采购计划、风险计划、项目过程定义及项目的进度安排和里程碑、质量计划、数据管理计划、度量和分析计划、监控计划和培训计划等。 软件资料清单列表部分文档&#xff1a; 工作安排任务书…

Shuffle Net系列详解 (4) Shuffle Net V2实践部分讲解 for pytorch版本

Shuffle Net 系列 实践部分1.文件划分2.Block(差异文件)3.Network(差异文件)3.总结 实践部分 在看代码之前先叠加一个甲&#xff0c;本文并未跑出来这个实验结果。实验条件有限&#xff0c;论文中采用的ImageNet dataset 数据集有些太大了。后续会出一个简化版本的代码进行实践…

探索Spring Cloud Config:构建高可用的配置中心

目录 认识Spring Cloud ConfigConfig Server读取配置文件步骤1&#xff1a;&#xff08;1&#xff09;创建config-server项目&#xff08;2&#xff09;在config-server中开启Config Server功能&#xff08;3&#xff09;在config-server配置文件进行相关配置&#xff08;4&…

深入理解 Transformer:构建先进 NLP 模型的关键技术

目录 一、Transformer 为何如此重要&#xff1f;二、Transformer 的核心组成部分1. 注意力机制2. 位置编码3. 前馈神经网络 三、Transformer 的训练方法1. 无监督预训练2. 有监督微调 四、Transformer 的应用场景五、总结与展望 在自然语言处理&#xff08;NLP&#xff09;的领…

【JAVA-数据结构】二叉树

这篇是二叉树相关内容。 1. 树型结构 1.1 概念 树是一种非线性的数据结构&#xff0c;它是由n&#xff08;n>0&#xff09;个有限结点组成一个具有层次关系的集合。朝把它叫做树是因为它看起来像一棵倒挂的树&#xff0c;也就是说它是根朝上&#xff0c;而叶下的。它具有以…

外卖点餐系统小程序的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;外卖员管理&#xff0c;餐厅管理&#xff0c;用户管理&#xff0c;菜品分类管理&#xff0c;菜品信息管理&#xff0c;外卖订单管理&#xff0c;订单配送管理 微信端账号功能包括&#xff1a;系统首页…

Java项目实战II基于Java+Spring Boot+MySQL的智能物流管理系统 (源码+数据库+文档)

目录 一、前言 二、技术介绍 三、系统实现 四、文档参考 五、核心代码 六、源码获取 全栈码农以及毕业设计实战开发&#xff0c;CSDN平台Java领域新星创作者&#xff0c;专注于大学生项目实战开发、讲解和毕业答疑辅导。获取源码联系方式请查看文末 一、前言 随着电子商…

人、机不同的学习机理

在人机协同的过程中&#xff0c;断点&#xff08;或称为障碍点&#xff09;是指可能导致人机合作效率下降、决策失误或任务失败的关键环节。以下是一些常见的断点及其影响&#xff1a;人类和机器之间的信息传递不畅&#xff0c;可能导致误解或遗漏关键信息&#xff0c;技术术语…

YOLO11改进|注意力机制篇|引入三重注意力机制Triplet Attention

目录 一、【Triplet Attention】注意力机制1.1【Triplet Attention】注意力介绍1.2【Triplet Attention】核心代码 二、添加【Triplet Attention】注意力机制2.1STEP12.2STEP22.3STEP32.4STEP4 三、yaml文件与运行3.1yaml文件3.2运行成功截图 一、【Triplet Attention】注意力机…

ARM嵌入式学习--第二天

-指令流水线 -基础知识 1.流水线技术通过多个功能部件并行工作来缩短程序执行时间&#xff0c;提高处理器的效率和吞吐率 2.增加流水线级数&#xff0c;可以简化流水线的各级逻辑&#xff0c;进一步提高了处理器的性能 3.以三级流水线分析&#xff1a; pc代表程序计数器&#x…

Graph Contrastive Learning 图对比学习GCL

Preamble GCL主要任务&#xff1a;学习一个编码器&#xff0c;可以编码出结构和结点特征信息&#xff0c;得到一个低维的表达 早期大部分GNN模型都是有监督的训练 自监督学习主要分成两种&#xff1a;生成式&#xff08;用已有信息去预测自己的其他信息&#xff09; and 对…

C++学习笔记----9、发现继承的技巧(一)---- 使用继承构建类(1)

在前面的章节中&#xff0c;你学到了继承关系是一种真实世界对象以层次存在的模式。在编程世界中&#xff0c;当需要写一个类基于其构建&#xff0c;或进行细微的修改的另一个类时&#xff0c;那种模式就有了关系。完成这个目标的一个方式是拷贝一个类的代码粘贴到另一个类中。…

一个月学会Java 第14天 内部类

Day14 内部类 类有外边的public class&#xff0c;然后还有一个文件多个的class&#xff0c;但是有没有想过&#xff0c;class可以作为成员也就是类内部的类&#xff0c;甚至作为方法内部的属性也就是类内部的方法的内部出现。除了这两个&#xff0c; 还有直接对着上节课讲的抽…

GeoScene Pro教程(008):GeoScenePro数据查询和检索

文章目录 1、工具分类2、数据常用工具2.1 加载数据2.2 查询需求2.2.1 按照属性查询查询1:人口大于300万的城市有哪些查询2:自治州有哪些查询3:城市名字中带有“荆”的有哪些补充2.2.2 按照位置查询需求2:导出湖北省境内的铁路数据需求3:武汉市共有多少条铁路2.2.3 空间连接…

48 Redis

48 Redis 前言 Redis&#xff08;Remote Dictionary Server )&#xff0c;即远程字典服务。是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库&#xff0c;并提供多种语言的API。 redis会周期性的把更新的数据写入磁盘或者把修改操…

RTSP与ONVIF协议的区别及其在EasyCVR视频汇聚平台中的应用

在视频监控和物联网设备领域&#xff0c;RTSP&#xff08;Real Time Streaming Protocol&#xff09;和ONVIF&#xff08;Open Network Video Interface Forum&#xff09;是两个重要的协议&#xff0c;它们各自在视频流的传输和控制上发挥着不同的作用&#xff0c;并在实际应用…

网络安全之XXE攻击

0x01 什么是 XXE 个人认为&#xff0c;XXE 可以归结为一句话&#xff1a;构造恶意 DTD 介绍 XXE 之前&#xff0c;我先来说一下普通的 XML 注入&#xff0c;这个的利用面比较狭窄&#xff0c;如果有的话应该也是逻辑漏洞。 既然能插入 XML 代码&#xff0c;那我们肯定不能善罢…

基于Nodemcu的手机控制小车

基于Nodemcu的手机控制小车 一、项目说明二、项目材料三、代码与电路设计四、轮子和车体五、电路连接六、使用方法 一、项目说明 嗨&#xff0c;机器人项目制造者们&#xff01;在这个项目中&#xff0c;我制作了这辆简单但快速的遥控车&#xff0c;它可以通过智能手机控制&am…

gaussdb 主备版本8 SQL参考 学习

SQL参考 1 数据类型 1.1 货币类型 1.1.1 货币类型存储带有固定小数精度的货币金额。 1.2 布尔类型 1.2.1 true&#xff1a;真 1.2.2 false&#xff1a;假 1.2.3 null&#xff1a;未知&#xff08;unknown&#xff09; 1.3 日期/时间类型 1.3.1 DATE 输出格式&#xff1a;仅支…