ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

无人驾驶-ROS-message

2021-11-12 13:31:58  阅读:238  来源: 互联网

标签:无人驾驶 ros 自定义 msgs 数据类型 消息 msg message ROS


无人驾驶-ROS-message

ros消息类型,即是ros话题的格式,可视为ros的数据类型,基本上是指同一个意思。ros消息类型是基于C++基本类型封装为.msg文件实现,rosmsg指令用于消息管理。

一、ros预定义的消息类型

所谓预定义消息类型是可以直接引用,不需要自己实现,ros自定义数据类型通常包括两类,一类是在 std_msgs 包下,包含基本数据类型,例如字符型、整型以及浮点型等;一类是在 common_msgs 包下,包含常用的数据类型、例如传感器数据类型、导航数据类型以及几何数据类型等。

1.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/

1.2 常用数据类型

常用数据类型基本上是基于基本数据类型封装而成,按照功能,封装在不同的包内,例如图像数据封装在 sensor_msgs包 下,通过 rosls 和 rosmsg 指令查看如下:

rosls sensor_msgs/msg/Image.msg
rosmsg show sensor_msgs/Image

除了图像基本数据外,还包含一个消息类型:std_msgs/Header,此消息类型包含三项:序列号, 时间戳 以及 帧id, 帧id表示消息类别,例如 camera,表示相机数据;序列号表示是第几帧数据,时间戳常用语与其他消息做同步使用。基本上所有的常用数据类型都会包含此数据类型。

1.3 自定义消息类型

虽然ros提供了较为丰富的预定义消息类型,但是在实际开发中,经常需要自己定义合适的数据类型以满足自己的需求,下面通过创建两个节点,介绍下如何自定义消息,以及如何使用自定义消息。

(1)创建自定义消息

roscd beginner_tutorials/
mkdir msg
touch msg/Num.msg

Num.msg文件内容如下:

int32 a
int32 b

至此我们创建了一个自定义消息。

(2)配置package.xml
在 package.xml 文件中添加如下三行,使用任何自定义消息,都必须使用这三行。

<build_depend>message_generation</build_depend>
<build_export_depend>message_runtime</build_export_depend>
<exec_depend>message_runtime</exec_depend>

第一行表示编译时依赖,第二行导出依赖,即其他包中程序可以使用本消息,第三行表示运行时依赖。

(3)配置CMakeLists.txt

将 message_generation 加入到 find_package(), find_package() 要与 package.xml 文件中的 build_depend 一致,表示编译时依赖的包。将 Num.msg 加入 add_message_files(),表示要编译的消息文件。放开 generate_messages(),表示生成消息头文件。将 message_runtime 加入 catkin_package() 表示导出运行时依赖。

1.4 检测自定义消息是否完成

rosmsg show beginner_tutorials/Num

输出:

int32 a
int32 b

表示自定义消息成功。在这一步我们还没有编译消息文件,下一步编译消息文件。

1.5 编译消息文件

catkin_make

二、ROS常用消息

ros_msgs:http://wiki.ros.org/common_msgs?distro=noetic#sensor_msgs

2.1 geometry_msgs

geometry_msgs数据总结: ROS_geometry_msgs

2.2 nav_msgs

nav_msgs数据总结: ROS_nav_msgs

2.3 sensor_msgs

sensor_msgs数据总结: ROS_sensor_msgs

链接

  1. https://zhuanlan.zhihu.com/p/94338630

标签:无人驾驶,ros,自定义,msgs,数据类型,消息,msg,message,ROS
来源: https://blog.csdn.net/weixin_47012067/article/details/121286011

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有