ROS话题通信

news/2024/12/24 8:08:22/文章来源:https://www.cnblogs.com/lzcnblogs/p/18401443

# 发布方
# 以发布订阅的方式实现不同节点之间数据交互的通讯模式,用于不断更新的、少逻辑处理的数据传输场景
impoosyt rospy
from std_msgs.msg import String# 初始化ROS节点(命门)
rospy.init_node("talker_1")
# 实例化发布者对象
pub_1 = rospy.Publisher("chatter", String, queue_size=10) # 主体名称、消息类别、队列大小
# 组织被发布数据,编写逻辑发布数据
msg = String()
msg_front = "hello_laobiao"
count = 0
# 设置循环频率
rate =rospy.Rate(1)
while not rospy.is_shutdown():msg.data = msg_front + str(count) # 拼接字符串
    pub_1.publish(msg)rate.sleep()rospy.loginfo("写出的数据:%s", msg.data) # 打印字符串count += 1# 订阅方
imort rospy
from std_msgs.msg import Stringdef doMsg(msg):rospy.loginfo("hello_too_laobiao:#s", msg.data)# 初始化ROS节点(命名)
rospy.init_node("listener_1")
# 实例化订阅者对象
sub_1 = rospy.Subscriber("chatter", String, doMsg, queue_size=10)
# 设置循环调用回调函数
rospy.spin()

 

连接与通信:

1、Listener 接收到 Talker 的确认消息后,使用 TCP 尝试与 Talker 建立网络连接;

2、成功连接之后,Talker 开始向 Listener 发布话题消息数据;

3、至此,完成了 Talker 向 Listener 发布消息的过程;Master 在这个阶段并不参与两者之间的数据传递;

4、需要注意,有可能多个 Talker 连接一个 Listener,也有可能是一个 Talker 连接上多Listener。

 

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

(14)DDS基本原理与FPGA实现

基本概念 DDS(Direct Digital Synthesizer),即数字合成器,是一种把一系列数字信号通过D/A转换器转化成模拟信号的数字合成技术 DDS的实现有两种方式:查表法和计算法,下面将主要介绍DDS查表法的FPGA实现 查表法:预先在ROM中存放不同相位对应的幅度序列,通过相位累加器的…

入门指南 | Datavines 安装部署篇

摘要:本文主要介绍基于源码部署 Datavines 和执行检查作业,内容主要分为以下几个部分:平台介绍 快速部署 运行数据质量检查作业Datavines 的目标是成为更好的数据可观测性领域的开源项目,为更多的用户去解决元数据管理和数据质量管理中遇到的问题。在此我们真诚欢迎更多的贡…

VUE0003:Naive UI库:滑动条,单选,多选组件

1,滑动条,单选,多选组件 <template><n-scrollbar class="show-scrollbar"><n-space class="map-setting" vertical><n-space style="flex-flow: row; align-items: center;"><n-text class="color-white&quo…

图特征工程实践指南:从节点中心性到全局拓扑的多尺度特征提取

图结构在多个领域中扮演着重要角色,它能有效地模拟实体间的连接关系,通过从图中提取有意义的特征,可以获得宝贵的信息提升机器学习算法的性能。 本文将介绍如何利用NetworkX在不同层面(节点、边和整体图)提取重要的图特征。 本文将以NetworkX库中提供的Zachary网络作为示例…

软件工程个人第一次作业

软件工程作业📖📖 🚗预览课程 软件工程作业要求 要求作业目标 熟悉github与博客园,并且掌握最基础的操作。编辑博客页面,感受AGIC的生成效果学号 1022013111. 个人logo生成任务🐱 使用搭载DALL-E3的Coplit尝试生成logo的演示过程 ![]设计思路: graph TD A[薛定谔的猫…

git 推送本地文件

引言 参考文章:Git操作全流程介绍Git 的工作流程如下所示:1. 创建仓库 1.1 新建 gitee 仓库 在 gitee 中创建一个仓库 HelloWorld,如下所示:1.2 初始化本地仓库 假设本机有一个 MyCode 文件夹,进入该文件夹目录下,在该处打开 git bash。,输入命令将该文件夹初始化为 git…

Redis 哨兵模式搭建

1.Redis: Redis是一款基于内存的非关系型数据库(5种类型String 哈希 List Set Zset) 可能会发生的故障(缓存击穿:某热点数据或者没有缓存的时候 直接打到数据库上、缓存穿透:大量请求查询不存在的数据,直接打到数据库上、缓存雪崩:缓存过期或者不存在 打到数据库上) 持久化R…

mysql在linux安装

在Linux上安装MySQL 5.7版本的步骤可以分为多个部分,包括下载、安装、配置以及启动MySQL服务。以下是一个详细的步骤指南: 一、下载MySQL 5.7安装包 访问MySQL官方网站: 前往MySQL官方网站下载适用于Linux的MySQL 5.7安装包。通常,你会找到如mysql-5.7.xx-linux-glibc2.xx-…

洛谷P3128 [USACO15DEC] Max Flow P 树上差分

传送门:P3128 [USACO15DEC] Max Flow P 首先要学会差分qwq 题目意思: 给定一个节点数为 \(n\) 的树,有 \(m\) 次操作。 每次操作给你两个数 \(s\) 和 \(t\),你需要在 \(s\) 到 \(t\) 的路径所经过点的运输压力 \(+1\)。 求最后运输压力最大的点的压力。 思路: 发现 \(s\) …

洛谷 P3034 Cow Photography G/S——题解

洛谷P3034题解传送锚点摸鱼环节 [USACO11DEC] Cow Photography G/S 题面翻译 题目描述 今天的奶牛们特别调皮!Farmer John 想做的只是给排成一排的奶牛拍照,但是在他拍下照片之前,奶牛们一直在移动。 具体地说,FJ 有 \(N\) 头奶牛(\(1 \leq N \leq 20\,000\)),每头奶牛都…

记一次.net使用httpclient中代码中使用response.EnsureSuccessStatusCode()引发的误会

1.问题背景 有一个拉取第三方数据存储到本地的需求,使用.net开发,使用httpClient发送post请求。第三方接口里面会校验我们发送的json数据,如果我们的数据格式不正确会抛出异常。 2.返回的结果不同? 第一步,我用postman做了测试,对方的接口可以调用,正确和错误都可以返回…

等保安全设备配置

这篇文章带你了解等保2.0 二级和三级安全设备配置!本文介绍了不同等级的等保规划设计,包括二级等保(基础版)、三级等保(基础版、增强版、豪华版)。其中,各版本均需配备主机杀毒软件和日志审计系统等,增强版和豪华版还需增加 IPS、Anti-DDoS 等。此外,文章还提到内网安…