ROS1——ROS自定义消息格式配置相关

在使用ROS时,其自带的消息格式已经使开发人员很方便,但是仍然避免不了会有一些特别的消息需要自己去定义,此时,就需要了解ROS中如何编写配置自定义消息格式。

1、新建filename.msg文件

首先,需要在本功能包pkg_name(功能包名,可自定义)下新建msg文件,并在msg文件下新建filename.msg(filename是文件名,可自定义)。

2、补充消息内容

在自定义消息文件中,我们最常用的是float32,float64,float32[]等,他们都在std_msgs标准消息格式下,当然也可以引用其他消息类型,比如geometry_msgs/Pose
举例:

float32 heigh
float32[] arr;
geometry_msgs/Pose pose

3、配置CMakeList.txt文件

1find_package(catkin REQUIRED COMPONENTS
  roscpp
  rospy
  std_msgs ##自定义消息类型filename.msg中引用的标准消息
  geometry_msgs ##自定义消息类型filename.msg中引用的标准消息
  message_generation ##消息生成必加
)2)
## Generate messages in the 'msg' folder
add_message_files(
  FILES
  filename.msg ##新建的消息文件名
)3)
## Generate added messages and services with any dependencies listed here
generate_messages( 
#添加所依赖的消息类型
  DEPENDENCIES
  std_msgs ##
  geometry_msgs ##
)4catkin_package(
#  INCLUDE_DIRS include
#  LIBRARIES wgs84toenu
  CATKIN_DEPENDS roscpp rospy std_msgs message_runtime
#  DEPENDS system_lib
)

4、配置package.xml文件

添加这两句

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

5、在本功能包pkg_name下使用filename.msg

#include<pkg_name/filename.h>//调用头文件
pkg_name::filename fn;//定义该类型变量,接下来就可以使用了

6、在其他功能包pkg2_name下使用filename.msg

(1)配置pkg2_name的CMakeList.txt文件

1find_package(catkin REQUIRED COMPONENTS
  roscpp
  rospy
  std_msgs
  pkg_name ##将包含filename.msg的功能包放进来
)2add_dependencies(${PROJECT_NAME}_node 
                  ${${PROJECT_NAME}_EXPORTED_TARGETS} 
                  ${catkin_EXPORTED_TARGETS}
                  pkg_name_gencpp ##调用同一工作空间的自定义消息类型时注明依赖关系,防止发生头文件找不到的报错
                  )

(2)配置pkg2_name的package.xml文件

添加:

  <build_depend>pkg_name</build_depend>
  <exec_depend>pkg_name</exec_depend>

(2)在pkg2_name中使用filename.msg

#include<pkg_name/filename.h>//调用头文件
pkg_name::filename fn_;//定义该类型变量,接下来就可以使用了

结束

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值