ROS快速入门第三讲——ROS的Subscriber订阅者

简介: ROS快速入门第三讲——ROS的Subscriber订阅者

ROS的Subscriber订阅者


什么是订阅者


接收信息,通过ROS Topic接收来自其它Node的信息,并通过回调函数处理

通常用于监测系统状态,如当机器人关节到达限位位置时触发运动中断

ROS Topic示例


Topic通信过程为:

  1. Publisher节点和Subscriber节点分别在Master进行注册
  2. Publisher发布Topic
  3. Subscriber在Master指挥下订阅Topic,从而建立起Pub-Sub之间的通信

Publisher Node Demo

#!/usr/bin/env python
#-- coding:UTF-8 --
import rospy
from std_msgs.msg import String
def push_msgs():
    rospy.init_node("push_node", anonymous=False)
    push_pub = rospy.Publisher("push", String, queue_size=10)
    rate = rospy.Rate(100)
    while not rospy.is_shutdown():
        msg = "hello world"
        push_pub.publish(msg)
        rospy.loginfo("send message %s", msg)
        rate.sleep()
if __name__ == "__main__":
    push_msgs()

Subscriber Node Demo

#!/usr/bin/env python
#-- coding:UTF-8 --
import rospy
from std_msgs.msg import String
def stringSubscriberCallback(data): #data的数据类型与Subscriber接收的Topic对应的消息类型一致
    rospy.loginfo('The contents of simple_topic: %s', data.data)
def stringSubscriber():
    rospy.init_node('sub_node', anonymous = False) #初始化ROS节点
    rospy.Subscriber('push', String, stringSubscriberCallback) #定义Subscriber对象
    rospy.spin()
if __name__ == "__main__":
    stringSubscriber()

运行一下就是下面的效果

6c0cd80cbed94fae91888f093dc81ea6.png


相关实践学习
使用ROS创建VPC和VSwitch
本场景主要介绍如何利用阿里云资源编排服务,定义资源编排模板,实现自动化创建阿里云专有网络和交换机。
ROS入门实践
本课程将基于基础设施即代码 IaC 的理念,介绍阿里云自动化编排服务ROS的概念、功能和使用方式,并通过实际应用场景介绍如何借助ROS实现云资源的自动化部署,使得云上资源部署和运维工作更为高效。
相关文章
|
Unix Java C++
ROS快速入门使用
ROS快速入门使用
487 0
ROS快速入门使用
|
机器人 Shell 开发者
`roslibpy`是一个Python库,它允许非ROS(Robot Operating System)环境(如Web浏览器、移动应用等)与ROS环境进行交互。通过使用`roslibpy`,开发者可以编写Python代码来远程控制ROS节点,发布和订阅话题,以及调用服务。
`roslibpy`是一个Python库,它允许非ROS(Robot Operating System)环境(如Web浏览器、移动应用等)与ROS环境进行交互。通过使用`roslibpy`,开发者可以编写Python代码来远程控制ROS节点,发布和订阅话题,以及调用服务。
|
数据安全/隐私保护 C++ Docker
|
存储
ROS学习-写一个简单的Publisher和Subscriber
ROS学习-写一个简单的Publisher和Subscriber
432 0
ROS学习-写一个简单的Publisher和Subscriber
|
C++ 计算机视觉 Python
ROS快速入门第二讲——ROS的Publisher发布者
ROS快速入门第二讲——ROS的Publisher发布者
263 0
ROS快速入门第二讲——ROS的Publisher发布者
|
C++ Python
ROS快速入门第一讲——ROS的工作空间创建
ROS快速入门第一讲——ROS的工作空间创建
485 0
ROS快速入门第一讲——ROS的工作空间创建
|
存储 C++ Python
ROS入门笔记(十):编写与测试简单的消息发布器和订阅器(C++)
ROS入门笔记(十):编写与测试简单的消息发布器和订阅器(C++)
661 0
ROS入门笔记(十):编写与测试简单的消息发布器和订阅器(C++)
|
C++ Python
【古月21讲】ROS入门系列(2)——发布者Publisher、订阅者Subscriber的编程实现+自定义话题消息编程实现
【古月21讲】ROS入门系列(2)——发布者Publisher、订阅者Subscriber的编程实现+自定义话题消息编程实现
654 0
【古月21讲】ROS入门系列(2)——发布者Publisher、订阅者Subscriber的编程实现+自定义话题消息编程实现
|
Ubuntu 机器人 Linux
|
自动驾驶 安全 机器人
ROS2:从初识到深入,探索机器人操作系统的进化之路
前言 最近开始接触到基于DDS的这个系统,是在稚晖君的机器人项目中了解和认识到。于是便开始自己买书学习起来,感觉挺有意思的,但是只是单纯的看书籍,总会显得枯燥无味,于是自己又开始在网上找了一些视频教程结合书籍一起来看,便让我对ROS系统有了更深的认识和理解。 ROS的发展历程 ROS诞生于2007年的斯坦福大学,这是早期PR2机器人的原型,这个项目很快被一家商业公司Willow Garage看中,类似现在的风险投资一样,他们投了一大笔钱给这群年轻人,PR2机器人在资本的助推下成功诞生。 2010年,随着PR2机器人的发布,其中的软件正式确定了名称,就叫做机器人操作系统,Robot Op
666 14

热门文章

最新文章

推荐镜像

更多
  • ros