《精通ROS机器人编程(原书第2版) 》 —1.4.3 ROS消息

举报
华章计算机 发表于 2020/02/10 13:49:35 2020/02/10
【摘要】 本节书摘来自华章计算机《精通ROS机器人编程(原书第2版) 》 一书中第1章,第1.4.3节,作者是[印度]郎坦·约瑟夫(Lentin Joseph)[意大利]乔纳森·卡卡切(Jonathan Cacace),张新宇 张志杰 等译 。

1.4.3 ROS消息

ROS 节点可以读/写不同类型的数据。这些数据使用一种简化的消息描述语言来表示,也被称为ROS消息。根据这些数据类型的描述与说明,可以为其他语言的消息类型生成相应的源码。

ROS消息对数据类型的描述与说明存储在当前软件包msg文件夹下的“.msg”文件中。尽管ROS框架提供了大量用于特定机器人的消息,但开发人员依然可以在其节点内定义自己的消息类型。

消息的定义可以由两种类型组成:字段(field)和常量(constant)。字段又可以分为字段类型和字段名。字段类型是传输消息的数据类型,字段名即它的名称。常量在消息文件中定义了一个常量值。

下面是消息定义的示例:

 image.png

第一部分是字段类型,第二部分是字段名。字段类型即数据类型,字段名可用于访问消息中的值。例如,我们可以使用 msg.number访问消息中number的值。

下表列出了可以在消息中直接使用的部分内置数据类型:

image.png

 

还有一些为了满足特定应用需求的消息,例如通用几何信息 (geometry_msgs) 或传感器信息(sensor_msgs)互换。还有一种特殊类型的ROS消息,称为消息头。消息头可以附加一些特殊信息,如时间戳、参考坐标(或frame_id),以及序列号。使用消息头,我们将获得带编号的消息,可以更清楚地知道当前的消息是由谁发送的。消息头中的信息主要用于发送数据,如机器人关节变换(TF)数据 。下面是消息头的示例:

 image.png

rosmsg 命令工具可用于检查消息头和字段类型。下面的命令有助于查看具体某一消息的消息头:

 image.png

这行命令会输出示例中的消息头。后面的章节,我们将进一步了解rosmsg命令,并学习如何使用自定义消息。


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。