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。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
2022-09-07 HTTP/1.1 的性能
2022-09-07 HTTP 优缺点