10th ROS中话题通信自定义msg

一、前言

ROS 中通过 std_msgs 封装了一些原生的数据类型,比如:String、Int32、Int64、Char、Bool、Empty.... 但是,这些数据一般只包含一个 data 字段,结构的单一意味着功能上的局限性,当传输一些复杂的数据,比如: 激光雷达的信息(距离,角度,信号强度等各种数据类型的强度复合)... std_msgs 由于描述性较差而显得力不从心,这种场景下可以使用自定义的消息类型。

msgs只是简单的文本文件,每行具有字段类型和字段名称,可以使用的字段类型有:

  • int8, int16, int32, int64 (或者无符号类型: uint*)

  • float32, float64

  • string

  • time, duration

  • other msg files

  • variable-length array[] and fixed-length array[C]

ROS中还有一种特殊类型:Header,标头包含时间戳和ROS中常用的坐标帧信息。会经常看到msg文件的第一行具有Header标头

二、需求及流程

创建自定义消息,该消息包含人的信息:姓名、身高、年龄等。

流程:

  1. 按照固定格式创建 msg 文件
  2. 编辑配置文件
  3. 编译生成可以被 Python 或 C++ 调用的中间文件

三、实现

新建文件夹msg,并创建文件Person.msg,注意文件的后缀为.msg 


在msg中写入内容:

string name
int32 age
float32 height

 在package.xml和CMakeList.txt中配置:

在package.xml中:

 在cmakelist.txt中:

编译功能包

VSCode中  Ctrl+Shift+B

编译之后,生成头文件至此:

小提示:

当你点开Person.h发现报错,那是没问题的。若要解决这个误报,可以参考

https://blog.csdn.net/txr152111/article/details/119780657中的

0.先配置VSCode(为了代码提示和误抛异常)

加个路径即可。

ROS VSCode是一种在VSCode使用ROS和C++/Python编程语言的工具。为了在VSCode使用ROS和C++/Python编程语言,需要安装对应的插件,包括C/C++、Cmake Tools、Python和ROS四个插件。可以通过在VSCode的左边栏找到extension图标,搜索插件进行安装。此外,还可以安装一个简体文包以获得文界面。安装完成后,可以使用VSCode创建ROS功能包并编写C++文件。使用VSCode进行ROS开发可以提供更方便的代码编写和修改,以及函数跳转和查看等功能。如果想了解更多关于ROS VSCode的使用方法,可以参考相关文章和ROS官网上的对比文章。 #### 引用[.reference_title] - *1* [ROS入门(三)——VSCode安装和运行(c/python)](https://blog.csdn.net/Netceor/article/details/118667459)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [ROS安装vscode(详细有图)](https://blog.csdn.net/qq_45950023/article/details/125342619)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [使用VScode搭建ROS开发环境](https://blog.csdn.net/qq_42688495/article/details/107750466)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

是刃小木啦~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值