ROS话题通信总结2(自定义发布文本)

ROS话题通信总结2(自定义发布文本)


目录

ROS话题通信总结2(自定义发布文本)

前言:

一、ROS话题通信总结1:https://blog.csdn.net/qq_33001335/article/details/117121210?spm=1001.2014.3001.5502

二、msg是什么?

三、配置msg文件

1.定义msg文件

2.编辑配置文件

3.编译


前言:

  • 在 ROS 通信协议中,数据载体是一个较为重要组成部分,ROS 中通过 std_msgs 封装了一些原生的数据类型,比如:String、Int32、Int64、Char、Bool、Empty.... 但是,这些数据一般只包含一个 data 字段
  • 结构的单一意味着功能上的局限性,当传输一些复杂的数据,比如: 激光雷达的信息... std_msgs 由于描述性较差而显得力不从心,这种场景下可以使用自定义的消息类型

一、ROS话题通信总结1:https://blog.csdn.net/qq_33001335/article/details/117121210?spm=1001.2014.3001.5502

二、msg是什么?

  • msgs只是简单的文本文件,每行具有字段类型和字段名称,可以使用的字段类型有:
  • int8, int16, int32, int64 (或者无符号类型: uint*)

  • float32, float64

  • string

  • time, duration

  • other msg files

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

三、配置msg文件

1.定义msg文件

  • 1.于功能包下创建一个msg文件夹
  • 2.于msg文件夹添加一个.msg文件
  • 3.输入要输出的数据以及其对应的数据类型,如下图(我打算输出一个人的姓名.年龄.身高.)

2.编辑配置文件

  • 1.package.xml中添加编译依赖与执行依赖
<build_depend>message_generation</build_depend>#55行
<exec_depend>message_runtime</exec_depend>#64行
  • 2.CMakeLists.txt编辑 msg 相关配置
find_package(catkin REQUIRED COMPONENTS#对应代码10-15行
  roscpp
  rospy
  std_msgs
  message_generation
)
# 需要加入 message_generation,必须有 std_msgs
## 配置 msg 源文件#对应代码51-54行
add_message_files(
  FILES
  Person.msg#这个填你对应的.msg文件的名称
)
# 生成消息时依赖于 std_msgs#对应代码71-74行
generate_messages(
  DEPENDENCIES
  std_msgs
)
#执行时依赖#对应代码105-110行
catkin_package(
#  INCLUDE_DIRS include
#  LIBRARIES demo02_talker_listener
  CATKIN_DEPENDS roscpp rospy std_msgs message_runtime
#  DEPENDS system_lib
)

3.编译

编译后的中间文件查看:

C++ 需要调用的中间文件(.../工作空间/devel/include/包名/xxx.h)

Python 需要调用的中间文件(.../工作空间/devel/lib/python3/dist-packages/包名/msg)

到此完成自定义文本文件的配置

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值