4.ROS编程学习:自定义话题消息与c++调用

目录

一.消息类型功能包简介

二.自定义话题消息

三.c++调用自定义消息类型

1.准备工作

2.发布方实现

3.发布方的CMakeList.txt配置

4.订阅方实现

5.订阅方的CMakeList.txt配置

6.rosrun发布者与订阅者,给出计算图


一.消息类型功能包简介

ROS的元功能包common_msgs提供了多种消息类型:
std_msgs——标准数据类型

geometry_msgs——几何学数据类型

sensor_msgs——传感器数据类型

在一些情况下需要针对自己的机器人应用设计特定的消息类型。

二.自定义话题消息

功能包中的msg文件夹中就是自定义的消息类型文件。msg文件夹在功能包根目录下。

创建文件夹msg,创建文件Person.msg:

 定义一个描述个人信息的消息类型:

string name
int32 age
float32 height

为了使用这些自定义消息类型,需要编译msg文件。

在package.xml文件中添加功能包依赖:

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

在CMakeLists.txt文件。

编译时依赖:加入message_generation

find_package(catkin REQUIRED COMPONENTS
  roscpp
  rospy
  std_msgs
  message_generation
)

运行时依赖:取消注释并加入message_runtime

catkin_package(
#  INCLUDE_DIRS include
#  LIBRARIES sub_pub
 CATKIN_DEPENDS roscpp rospy std_msgs message_runtime
#  DEPENDS system_lib
)

加入文件:

add_message_files(
  FILES
  Person.msg
)

自定义消息类型文件的依赖:

generate_messages(
  DEPENDENCIES
  std_msgs
)

回到工作空间根目录,编译工作空间

catkin_make

编译后的中间文件:可以找到Person.h头文件,和Person.py中的python类。

C++ 需要调用的中间文

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值