首页 > 其他分享 >ROS话题通信

ROS话题通信

时间:2024-09-07 11:03:07浏览次数:6  
标签:String 话题 通信 Listener rospy Talker msg ROS

# 发布方
# 以发布订阅的方式实现不同节点之间数据交互的通讯模式,用于不断更新的、少逻辑处理的数据传输场景
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 String

def 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。

 

标签:String,话题,通信,Listener,rospy,Talker,msg,ROS
From: https://www.cnblogs.com/lzcnblogs/p/18401443

相关文章

  • TCP通信(三次握手、四次挥手)
    三次握手与四次挥手1.三次握手第一次握手都由客户端发起在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接。服务器必须准备好接受外来的连接。这通过调用socket、bind和listen函数来完成,称为被动打开(passiveopen)。第一次握手:客户通过调用connect进......
  • 修复Microsoft Visual C++ 2015中msvcp140_ATOMIC_WAIT.dll缺失的5大策略
    在电脑使用过程中,我们经常会遇到一些错误提示,其中之一就是“msvcp140_ATOMIC_WAIT.dll丢失”。这个错误提示通常出现在运行某些程序或游戏时,给使用者带来了很大的困扰。那么,如何解决这个问题呢?一,原因分析msvcp140_ATOMIC_WAIT.dll是MicrosoftVisualC++2015运行时库的一部......
  • 进程间通信(IPC):概念、分类与信号机制(2)
    文章目录进程间通信(IPC):概念、分类与信号机制引言IPC的分类信号机制信号周期信号的产生信号的发送信号的接收信号处理示例IPC的其他方法管道通信消息队列共享内存套接字通信服务器端代码客户端代码优点与缺点优点缺点结论进程间通信(IPC):概念、分类与信号机制引言......
  • 【IEEE出版-武汉理工主办】第五届计算机工程与智能通信国际研讨会(ISCEIC 2024)
    第五届计算机工程与智能通信国际研讨会(ISCEIC2024)将于2024年11月8-10日在中国武汉举行。本次会议围绕计算机与通信领域的热点和难点,深入探索计算机工程和智能通信的最前沿技术,分享典型研究案例,促进该领域的科学创新。**往届均已见刊检索,最快会后4个月EI检索*【IEEE出版】......
  • 西门子s7通信协议
    西门子s7通信协议S7Comm(S7Communication)是西门子专有的协议,是西门子S7通讯协议簇里的一种。S7通信协议是西门子S7系列PLC内部集成的一种通信协议,是S7系列PLC的精髓所在。它是一种运行在传输层之上的(会话层/表示层/应用层)、经过特殊优化的通信协议,其信息传输可以基于MPI网络、......
  • [已解决] [HiveCatalog]Kerberos GSS initiate failed, No valid credentials provide
    问题说明部署一个连接Hive的Java应用程序,遇到这个Kerberos报错的问题,查了一天,记录一下问题现象KerberosGSSinitiatefailedNovalidcredentialsprovided(Mechanismlevel:AttempttoobtainnewINITIATEcredentialsfailed!(null))CannotreadfromSystem.injav......
  • IM开发者的零基础通信技术入门(十四):高铁上无线上网有多难?一文即懂!
    【来源申明】本文引用了微信公众号“鲜枣课堂”的《坐高铁手机没信号?原因远比你想的要复杂!》文章内容。为了更好的内容呈现,本文在引用和收录时内容有改动,转载时请注明原文来源信息,尊重原作者的劳动。1、系列文章引言1.1适合谁来阅读?本系列文章尽量使用最浅显易懂的文字、图片......
  • ros 多线程模式
    ros::spin()的作用在ROS中,ros::spin()的主要作用是:让ROS节点持续运行,并处理所有注册的回调函数。在内部,它不断地检查ROS网络中的消息、服务请求,并调用相应的回调函数来处理它们。内部原理事件循环(EventLoop):ros::spin()进入一个事件循环。这个循环不断地......
  • 通信中的防倒灌电路设计
    在电子设计中,防倒灌电路是确保电路稳定性和安全性的关键一环。它能够防止电流从一个电源供应的器件倒灌至另一个未供电的器件。尽管倒灌现象看似简单,但它可能引发一系列系统异常,甚至导致元器件损坏,尤其是当串行通信的器件电源状态不一致时。因此,设计防倒灌电路成为硬件设计......
  • 深入理解通信模型
    深入理解通信模型OSI七层模型主要目的OSI七层模型的主要目的是为解决不同网络互连时所遇到的兼容性问题,通过七个层次化的结构模型使不同的系统、不同的网络之间实现可靠的通信主要功能物理层:单位比特,定义物理连接和电信号传输,如电缆、连接器等数据链路层:单位帧,分MAC子......