ros消息类型,即是ros话题的格式,可视为ros的数据类型,基本上是指同一个意思。ros消息类型是基于C++基本类型封装为.msg文件实现,rosmsg指令用于消息管理。
一. ros预定义的消息类型
所谓预定义消息类型是可以直接引用,不需要自己实现,ros自定义数据类型通常包括两类,一类是在 std_msgs 包下,包含基本数据类型,例如字符型、整型以及浮点型等;一类是在 common_msgs 包下,包含常用的数据类型、例如传感器数据类型、导航数据类型以及几何数据类型等。
1. 基本数据类型
基本数据类型位于 std_msgs包,在ROS 话题篇,我们使用了ros字符串类型 std_msgs/String,就是一种基本类型,可使用 rosls 查看其消息文件路径:
rosls std_msgs/msg/String.msg
如图:
使用 roscat 通过消息文件查看其具体实现:
roscat std_msgs String.msg
如图:
也可直接使用 rosmsg 查看其具体实现:
rosmsg show std_msgs/String
如图:
可以通过 rosmsg 查看 ros 所有的基本数据类型:
rosls std_msgs/msg/
也可以通过如下网页查看:http://wiki.ros.org/std_msgswiki.ros.org
2. 常用数据类型
常用数据类型基本上是基于基本数据类型封装而成,按照功能,封装在不同的包内,例如图像数据封装在 sensor_msgs包 下,通过 rosls 和 rosmsg 指令查看如下:
rosls sensor_msgs/msg/Image.msg
rosmsg show sensor_msgs/Image
如图:
除了图像基本数据外,还包含一个消息类型:std_msgs/Header,此消息类型包含三项:序列号, 时间戳 以及 帧id&#