Ros中怎么自定义消息参考先前的博客,在这里主要介绍怎么在同一个包下或者不同包之间进行消息调用。
1、同一个包下调用自定义消息包
(1)同一个包下调用msg是指在当前包下(如autoware_msgs)建立了msg文件夹,并且在当前包的devel下生成了相应的消息定义头文件。在src文件中调用时只需要包含头文件,就可以以类的形式进行使用。
#include"autoware_msgs/DetectedObjectArray.h"
void chatterCallback(const autoware_msgs::DetectedObjectArray &msg){
//..........
}
2、同一个工作空间下调用消息包
例如要让ob_reader包调用autoware_msgs包的消息。
(1)修改ob_reader的package.xml文件
#加入下列两行
<build_depend>autoware_msgs</build_depend>
<exec_depend>autoware_msgs</exec_depend>
(2)修改ob_reader的CmakeList文件
find_package(catkin REQUIRED COMPONENTS
autoware_msgs
)
include_directories(include ${
catkin_INCLUDE_DIRS})
整体cmakelist文件如下,做参考
cmake_minimum_required(VERSION 3.0.2)
project(ob_reader)
## Compile as C++11, supported in ROS Kinetic and newer
# add_compile_options(-std=c++11)
## Find catkin macros and libraries
## if COMPONENTS list like find_package(catkin REQUIRED COMPONENTS xyz)
## is used, also find other catkin packages
find_package(catkin REQUIRED COMPONENTS
geometry_msgs
roscpp
rospy
sensor_msgs
std_msgs
autoware_msgs
)
include_directories(include ${
catkin_INCLUDE_DIRS})
## System dependencies are found with CMake's conventions
# find_package(Boost REQUIRED COMPONENTS system)
## Uncomment this if the package has a setup.py. This macro ensures
## modules and global scripts declared therein get installed
## See http://ros.org/doc/api/

最低0.47元/天 解锁文章
949

被折叠的 条评论
为什么被折叠?



