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使用教程
资源编排(Resource Orchestration)是一种简单易用的云计算资源管理和自动化运维服务。用户通过模板描述多个云计算资源的依赖关系、配置等,并自动完成所有资源的创建和配置,以达到自动化部署、运维等目的。编排模板同时也是一种标准化的资源和应用交付方式,并且可以随时编辑修改,使基础设施即代码(Infrastructure as Code)成为可能。 产品详情:https://www.aliyun.com/product/ros/
相关文章
|
3月前
|
Unix Java C++
ROS快速入门使用
ROS快速入门使用
56 0
ROS快速入门使用
|
4月前
|
机器人 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
165 0
ROS学习-写一个简单的Publisher和Subscriber
|
C++ 计算机视觉 Python
ROS快速入门第二讲——ROS的Publisher发布者
ROS快速入门第二讲——ROS的Publisher发布者
134 0
ROS快速入门第二讲——ROS的Publisher发布者
|
C++ Python
ROS快速入门第一讲——ROS的工作空间创建
ROS快速入门第一讲——ROS的工作空间创建
240 0
ROS快速入门第一讲——ROS的工作空间创建
|
存储 C++ Python
ROS入门笔记(十):编写与测试简单的消息发布器和订阅器(C++)
ROS入门笔记(十):编写与测试简单的消息发布器和订阅器(C++)
420 0
ROS入门笔记(十):编写与测试简单的消息发布器和订阅器(C++)
|
C++ Python
【古月21讲】ROS入门系列(2)——发布者Publisher、订阅者Subscriber的编程实现+自定义话题消息编程实现
【古月21讲】ROS入门系列(2)——发布者Publisher、订阅者Subscriber的编程实现+自定义话题消息编程实现
428 0
【古月21讲】ROS入门系列(2)——发布者Publisher、订阅者Subscriber的编程实现+自定义话题消息编程实现
|
1月前
|
Ubuntu 机器人 Linux
|
8天前
|
XML 算法 自动驾驶
ROS进阶:使用URDF和Xacro构建差速轮式机器人模型
【11月更文挑战第7天】本篇文章介绍的是ROS高效进阶内容,使用URDF 语言(xml格式)做一个差速轮式机器人模型,并使用URDF的增强版xacro,对机器人模型文件进行二次优化。

推荐镜像

更多