【ROS2机器人入门到实战】ROS2话题入门

这篇具有很好参考价值的文章主要介绍了【ROS2机器人入门到实战】ROS2话题入门。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

ROS2话题入门

写在前面

  1. 当前平台文章汇总地址:ROS2机器人从入门到实战
  2. 获取完整教程及配套资料代码,请关注公众号<鱼香ROS>获取
  3. 教程配套机器人开发平台:两驱版| 四驱版
  4. 为方便交流,搭建了机器人技术问答社区:地址 fishros.org.cn

话题是ROS2中最常用的通信方式之一,话题通信采取的是订阅发布模型。

1.订阅发布模型

一个节点发布数据到某个话题上,另外一个节点就可以通过订阅话题拿到数据。

除了上述这种一个节点发布,一个节点接受的形式外,ROS2话题通信其实还可以是1对n,n对1,n对n的。

1对n

n对1(同一个话题可以有多个发布者)

n对n

还有一种就是ROS2节点可以订阅本身发布的话题

2. 消息接口

为了方便发送者和接收者进行数据的交换,ROS2帮我们在数据传递时做好了消息的序列化和反序列化(有关消息序列化相关内容请参考本章基础篇),而且ROS2的消息序列化与反序列化通信是可以做到跨编程语言、跨平台和跨设备之间的。

ROS2如何做到跨编程语言、跨平台和跨设备之间的数据收发呢?这就得益于通过定义消息接口文件了。

因为跨平台和设备实现较为复杂,小鱼这里简单说一下如何实现跨语言的。当我们定义好消息接口后,ROS2会根据消息接口内容生成不同语言的接口类,在不同编程语言中调用相同的类即可实现无感的消息序列化和反序列化。

通过对消息接口介绍,相信你肯定能猜到这样一条规则:同一个话题,所有的发布者和接收者必须使用相同消息接口

3. ROS2话题工具

3.1 GUI工具
3.1.1 RQT工具之rqt_graph

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

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

ros2 run demo_nodes_py listener
ros2 run demo_nodes_cpp talker
rqt_graph

你将看到下面这张图

鱼香ros,机器人,ROS2,话题

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

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

3.2 CLI工具

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

ros2 topic -h

鱼香ros,机器人,ROS2,话题

本着学以致用的目的,小鱼先对比较常用的几个命令进行介绍,其他的我们用到的时候小鱼再介绍(现在介绍反而不好理解)。

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

命令

ros2 topic list

结果

鱼香ros,机器人,ROS2,话题

3.2.2 ros2 topic list -t 增加消息类型

命令

ros2 topic list -t

结果

鱼香ros,机器人,ROS2,话题

3.2.3 ros2 topic echo <topic_name> 打印实时话题内容

命令

ros2 topic echo /chatter

结果

鱼香ros,机器人,ROS2,话题

3.2,4 ros2 topic info <topic_name> 查看主题信息

命令

ros2 topic info  /chatter

结果

鱼香ros,机器人,ROS2,话题

3.2.5 ros2 interface show 查看消息类型

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

命令

ros2 interface show std_msgs/msg/String

结果

鱼香ros,机器人,ROS2,话题

3.2.6 ros2 topic pub <topic_name> <msg_type> arg 手动发布命令

关闭发布者,我们受到来发布

命令

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

结果

鱼香ros,机器人,ROS2,话题

4.最后

了解完话题,下一节小鱼就会带大家来动手写一写话题通信代码。

参考链接:Understanding ROS 2 topics — ROS 2 Documentation: Humble documentation文章来源地址https://www.toymoban.com/news/detail-761176.html

到了这里,关于【ROS2机器人入门到实战】ROS2话题入门的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【ROS2机器人入门到实战】

    当前平台文章汇总地址:ROS2机器人从入门到实战 获取完整教程及配套资料代码,请关注公众号鱼香ROS获取 教程配套机器人开发平台:两驱版| 四驱版 为方便交流,搭建了机器人技术问答社区:地址 fishros.org.cn 第 1 章 ROS2介绍与安装 基础篇-Linux基础 1.Linux与Ubuntu系统介绍 2.在

    2024年02月16日
    浏览(55)
  • 【ROS2机器人入门到实战】4.ROS2初体验

    当前平台文章汇总地址:ROS2机器人从入门到实战 获取完整教程及配套资料代码,请关注公众号鱼香ROS获取 教程配套机器人开发平台:两驱版| 四驱版 为方便交流,搭建了机器人技术问答社区:地址 fishros.org.cn 通过几个简单的小例子来体验ROS2软件库和工具集。 游戏内容:很

    2024年02月04日
    浏览(73)
  • 【ROS2机器人入门到实战】3.动手安装ROS2

    当前平台文章汇总地址:ROS2机器人从入门到实战 获取完整教程及配套资料代码,请关注公众号鱼香ROS获取 教程配套机器人开发平台:两驱版| 四驱版 为方便交流,搭建了机器人技术问答社区:地址 fishros.org.cn 到了这一节,终于可以开始安装ROS2了。安装ROS2本来是一件比较麻

    2024年02月13日
    浏览(59)
  • 【ROS2机器人入门到实战】2.ROS与ROS2对比

    当前平台文章汇总地址:ROS2机器人从入门到实战 获取完整教程及配套资料代码,请关注公众号鱼香ROS获取 教程配套机器人开发平台:两驱版| 四驱版 为方便交流,搭建了机器人技术问答社区:地址 fishros.org.cn 经过上一节的学习,相信你已经对ROS和ROS2的发展有了一定的了解

    2024年02月04日
    浏览(48)
  • 【ROS2机器人入门到实战】2.ROS2功能包与工作空间

    当前平台文章汇总地址:ROS2机器人从入门到实战 获取完整教程及配套资料代码,请关注公众号鱼香ROS获取 教程配套机器人开发平台:两驱版| 四驱版 为方便交流,搭建了机器人技术问答社区:地址 fishros.org.cn 大家好,我是小鱼~上一节小鱼给大家介绍了一下节点,运行一个

    2024年01月23日
    浏览(55)
  • 【ROS2机器人入门到实战】地图保存与编辑

    当前平台文章汇总地址:ROS2机器人从入门到实战 获取完整教程及配套资料代码,请关注公众号鱼香ROS获取 教程配套机器人开发平台:两驱版| 四驱版 为方便交流,搭建了机器人技术问答社区:地址 fishros.org.cn 可以看到有下面的用法 我们的地图话题为map,文件名字我们用f

    2024年02月03日
    浏览(68)
  • 【ROS2机器人入门到实战】Colcon使用进阶

    当前平台文章汇总地址:ROS2机器人从入门到实战 获取完整教程及配套资料代码,请关注公众号鱼香ROS获取 教程配套机器人开发平台:两驱版| 四驱版 为方便交流,搭建了机器人技术问答社区:地址 fishros.org.cn 基础篇中小鱼带你用gcc编译了ROS2节点。对你来说,使用CMake(GC

    2024年02月02日
    浏览(56)
  • 【ROS2机器人入门到实战】使用RCLCPP编写节点

    当前平台文章汇总地址:ROS2机器人从入门到实战 获取完整教程及配套资料代码,请关注公众号鱼香ROS获取 教程配套机器人开发平台:两驱版| 四驱版 为方便交流,搭建了机器人技术问答社区:地址 fishros.org.cn 节点需要存在于功能包当中、功能包需要存在于工作空间当中。所

    2024年02月02日
    浏览(99)
  • 【ROS2机器人入门到实战】tf2介绍

    当前平台文章汇总地址:ROS2机器人从入门到实战 获取完整教程及配套资料代码,请关注公众号鱼香ROS获取 教程配套机器人开发平台:两驱版| 四驱版 为方便交流,搭建了机器人技术问答社区:地址 fishros.org.cn TF即 变换 的英文单词 TransForm 的缩写。所以 ROS 和 ROS2 中的 TF 就是

    2024年02月03日
    浏览(48)
  • 【ROS2机器人入门到实战】使用API进行导航

    当前平台文章汇总地址:ROS2机器人从入门到实战 获取完整教程及配套资料代码,请关注公众号鱼香ROS获取 教程配套机器人开发平台:两驱版| 四驱版 为方便交流,搭建了机器人技术问答社区:地址 fishros.org.cn Navigation 2 对外提供了动作服务用于导航调用。动作通信是 ROS 2 四

    2024年02月03日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包