《精通ROS机器人编程(原书第2版) 》 —1.4.3 ROS消息
1.4.3 ROS消息
ROS 节点可以读/写不同类型的数据。这些数据使用一种简化的消息描述语言来表示,也被称为ROS消息。根据这些数据类型的描述与说明,可以为其他语言的消息类型生成相应的源码。
ROS消息对数据类型的描述与说明存储在当前软件包msg文件夹下的“.msg”文件中。尽管ROS框架提供了大量用于特定机器人的消息,但开发人员依然可以在其节点内定义自己的消息类型。
消息的定义可以由两种类型组成:字段(field)和常量(constant)。字段又可以分为字段类型和字段名。字段类型是传输消息的数据类型,字段名即它的名称。常量在消息文件中定义了一个常量值。
下面是消息定义的示例:
第一部分是字段类型,第二部分是字段名。字段类型即数据类型,字段名可用于访问消息中的值。例如,我们可以使用 msg.number访问消息中number的值。
下表列出了可以在消息中直接使用的部分内置数据类型:
还有一些为了满足特定应用需求的消息,例如通用几何信息 (geometry_msgs) 或传感器信息(sensor_msgs)互换。还有一种特殊类型的ROS消息,称为消息头。消息头可以附加一些特殊信息,如时间戳、参考坐标(或frame_id),以及序列号。使用消息头,我们将获得带编号的消息,可以更清楚地知道当前的消息是由谁发送的。消息头中的信息主要用于发送数据,如机器人关节变换(TF)数据 。下面是消息头的示例:
rosmsg 命令工具可用于检查消息头和字段类型。下面的命令有助于查看具体某一消息的消息头:
这行命令会输出示例中的消息头。后面的章节,我们将进一步了解rosmsg命令,并学习如何使用自定义消息。
- 点赞
- 收藏
- 关注作者
评论(0)