你好,我是小鱼,最近疫情有些严重,大家一定要注重好个人防护。

你还记得ROS镇的故事吗?(ROS2子承父位、ROS镇长安详晚年!祈祷郑州平安!)后来ROS2镇长来了之后,王二订报的方式也发生了改变,让我们一起来看看吧。

1.讲个故事

李四是一名擅长写小说的作家,王二是一名喜欢看小说且单身多年的单身狗。王二最喜欢看李四写的《艳娘传奇》这个小说。

所以王二(Node)出于对《艳娘传奇》(Topic)的兴趣,订阅了(Subscribe)李四(Node)发布(Publish)的小说。

2.话题介绍

看完上面的内容,我们来总结一下,上面其实讲了一下ROS2中Topic通信方式。Topic是一种发布订阅模型。

订阅者(王二)需要通过订阅话题(艳娘传奇)来获取发布者(李四)的发布的《艳娘传奇》的具体内容。

李四王二通信模型还是一对一(一个发布者,一个订阅者)的模型,ROS2中其实是可以1对n,n对1,n对n的。

2.1话题通信有哪些需要注意的规则呢?

并且满足以下规则:

  • 话题名字是关键,订阅者必须知道话题的名称才能完成订阅;
  • 同一个人可以订阅多个话题,同时也可以发布多个话题,就像一本书的作者也可以是另外一本书的读者;
  • 同一个小说不能有多个作者(版权问题),但同一个话题可以有多个发布者。

3.topic工具

3.1 查看节点关系查看rqt_graph

ROS2作为一个强大的工具,在运行过程中,我们是可以通过命令来看到节点和节点之间的数据关系的。

运行我们的第二章中的你说我听小程序。依次打开三个终端,分别输入下面三个命令。

ros2 run demo_nodes_py listenerros2 run demo_nodes_cpp talkerrqt_graph

你可以看到下面这张图

3.1.1 rqt_graph

你可以改变一下,菜单栏的选项,看一看下面图的变化,感受一下rqt_graph工具的强大。

这是一个很重要的工具,小鱼在学习和使用ROS2中经常使用它,来看一看数据到底是怎么走到,它可以帮我们搞清楚一个节点的输入和输出是什么。

3.2 ros2 topic 指令

还记得上一节的ros2 node指令吗?ros2也支持很多强大的topic指令。可以使用下面的指令查看。

ros2 topic -h

这里小鱼先简单介绍一下,大家可以手动在终端输入这几个命令来尝试一下。

ros2 topic list 返回系统中当前活动的所有主题的列表

命令

ros2 topic list

结果

ros2 topic list -t 增加消息类型

命令

ros2 topic list -t

结果

ros2 topic echo 打印实时话题内容

命令

ros2 topic echo /chatter

结果

ros2 topic info 查看主题信息

命令

ros2 topic info  /chatter

结果

ros2 interface show 查看消息类型

上面一个告诉大家这个消息是std_msgs/msg/String,那String里面有什么呢?不妨来试一试。

命令

ros2 interface show std_msgs/msg/String

结果

ros2 topic pub arg 手动发布命令

命令

ros2 topic pub /chatter std_msgs/msg/String 'data: "123"'

结果

4.最后

如果大家想要了解更多的命令,可以到官网来看一看,下一节小鱼就会来带大家来手动写Python版本的话题通信。

References

[1] http://docs.ros.org/en/foxy/Tutorials/Topics/Understanding-ROS2-Topics.html


我是小鱼,一名机器人算法工程师。

目前在做公众号,欢迎大家关注!

王二是如何看到李四的《艳娘传奇》的,快来了解一下ROS2的话题机制吧!相关推荐

  1. 戏说cosplay武媚娘传奇

    最近热播武媚娘传奇,对于我而言,最大的看点就是看范爷怎么塑造这个"女皇"形象,刚一开始演真是寄予厚望啊,选对人了啊!!请的演员也还可以,背景服饰不用说,很是不错,看前些日子出现的& ...

  2. 玩手游《武媚娘传奇》,和女神范冰冰重回大唐

    国际女神范冰冰又出新作啦!在湖南卫视金鹰独播剧场最新热播的历史大剧<武媚娘传奇>中,无数的宅男宅女又一次为她的惊世容颜所倾倒.而据此重金打造的手游手游<武媚娘传奇>也不失时机地 ...

  3. 问小鱼如何看?小米机器人之铁蛋!

    大家好,我是早上被雨淋了肚子痛了一天的加班鱼. 昨晚临睡时,看到群里在讨论小米的机器人,原来雷总发布会上亮相了一个机器狗名字叫铁蛋. 既然是小米,价格肯定是低的,9999,依然是得了穷病的小鱼买不起的 ...

  4. 《动手学ROS2》4.6ROS2自定义话题接口

    本系列教程作者:小鱼 公众号:鱼香ROS QQ交流群:139707339 教学视频地址:小鱼的B站 完整文档地址:鱼香ROS官网 版权声明:如非允许禁止转载与商业用途. 4.3.2 自定义话题接口 本 ...

  5. 新生代农民工小鱼:今天来介绍一下ROS2的节点

    ROS2节点介绍 大家好,我是新生代农民工小鱼,小鱼的<动手学ROS2>视频教程大纲已经定下来了.很快就可以和大家见面,今天分享一篇教程中的一篇文章,关于ROS2节点的介绍的.有兴趣的小伙 ...

  6. 《动手学ROS2》4.7ROS2服务介绍

    本系列教程作者:小鱼 公众号:鱼香ROS QQ交流群:139707339 教学视频地址:小鱼的B站 完整文档地址:鱼香ROS官网 版权声明:如非允许禁止转载与商业用途. 4.4 ROS2服务介绍 大家 ...

  7. 《动手学ROS2》4.4话题小练习-李三借钱吃麻辣烫

    本系列教程作者:小鱼 公众号:鱼香ROS QQ交流群:139707339 教学视频地址:小鱼的B站 完整文档地址:鱼香ROS官网 版权声明:如非允许禁止转载与商业用途. 4.2.3 话题通信小练习之李 ...

  8. 《动手学ROS2》4.3ROS2话题通信(C++)

    本系列教程作者:小鱼 公众号:鱼香ROS QQ交流群:139707339 教学视频地址:小鱼的B站 完整文档地址:鱼香ROS官网 版权声明:如非允许禁止转载与商业用途. 4.2.2 ROS2话题通信( ...

  9. 使用Python玩转ROS2参数

    大家好,我是可爱的小鱼 .鱼香ROS网站快要做完了,很快就可以和大家见面了~ 本节小鱼带你一起学习使用Python将李四节点中小写说timer周期变成一个可以动态修改的参数. 1.代码编写 打开vsc ...

最新文章

  1. 初学者学用Github
  2. 如果我们预先得知未来某一刻会因为此刻的决定而失败,那是否还会继续努力?
  3. boost::endian::endian_store的用法测试程序
  4. Hello Python程序演练
  5. linux安装spec编译器,RPM包制作之Spec文件参数详解
  6. 【渝粤教育】国家开放大学2018年秋季 0109-21T公司财务 参考试题
  7. 网易校园招聘历年经典面试题汇总:C++研发岗
  8. 我的docker随笔15:MySQL启动时自动创建数据库
  9. Bootloader之BareBox 之路(1)--安装
  10. RHCE学习12LVS负载均衡详解
  11. mysql 查询之聚合查询
  12. java matcher方法_Java正则表达式入坑指南:正则表达式使用的类有哪些吗?
  13. If you insist running as root, then set the environment variable RUN_AS_USER=root
  14. Linux查看mpp数据库地址,Linux环境搭建DM8 MPP双节点集群
  15. jdt eclipse_Eclipse JDT语言服务器项目
  16. PageOffice中如何调用ZoomSeal签章系统中的印章
  17. 手机接收短信验证码生成(纯数字)
  18. 韩顺平java-枚举和注解异常包装类
  19. gioneem5Android版本,金立M5 Plus(金立GN8001) 版本线刷包
  20. linux全角半角切换,教您输入法全角和半角怎么切换

热门文章

  1. linux下挂载光驱方法,Linux下光驱挂载技巧
  2. 一元函数积分学2_不定积分的分部积分法
  3. 【大数据千人会微信群20140827期交流纪要】傅志华-大数据如何在企业落地
  4. Hadoop3.x版本安装及其应用部署
  5. ros python 控制手柄数据发布频率
  6. Faas,又一个未来?
  7. word 去除 文字 浅灰色背景
  8. 如何破解游戏包中的素材与3D模型
  9. Java学习-面向对象进阶二
  10. ffmpeg 之 hls