ROS入门学习之topic

ROS通信方式之Topic

ROS的不同node之间进行通信有以下几种方式:

  1. Topic(主题)
  2. Service(服务)
  3. Parameter Service(参数服务器)
  4. Actionlib(动作库)

下面先介绍Topic通信

Topic

Topic是什么样的?

Node间通过publish-subscribe机制通信,Node A把信息发送到Topic,然后Node B从这个Topic接收。每个Topic可以从多个Node接收信息,也可以有多个Node从这个Topic获得信息。

Topic
Topic是ROS中的一种异步通信方式,什么是异步通信呢,简单来说,Node A发送消息(publish)和Node B接收消息(subscribe)没有时间上的连续性,即不是接连发生的。

Topic的格式要求

Message, 是topic内容的数据类型(类),它规定了要发送的信息由哪些组成,定义在*msg文件中。
基本msg包括bool, int8, int16, int32, int64(以及uint), float32, float64, string, time, duration, header, 可变长度数组array[], 固定长度数组array[C]等
示例如下:
.msg

Topic的有关操作

列出当前所有的Topic

    restopiclist

显示某个topic的属性信息

    rostopic info / topic_name

显示某个topic的内容

    rostopic echo / topic_name

向某个topic发布内容

    rostopic pub / topic_name

msg文件的有关操作

列出系统上所有msg

    rosmsg list

显示某个msg的内容

    rosmsg show / msg_name
posted @ 2020-11-08 21:20  知舟  阅读(1127)  评论(0)    收藏  举报