1. 描述
正常定义 msg 目录是这样的
seivl@seivl-Default-string:~/ivfc/seivl_ivfc_ws/src/common_msgs$ tree -L 2.
├── CMakeLists.txt
├── package.xml
├── msg
└── cloud_info.msg
那我的程序中有很多的模块, 想要把每个模块的功能包区分开,怎么整呢
大概做成这样的目录:
├── CMakeLists.txt
├── package.xml
├── planning_msg
│ └── planning_info.msg
├── perception_msg
└── perception_info.msg
2. 实现
需要修改的地方主要在 CMakeLists.txt
这里
cmake_minimum_required(VERSION 2.8.3)
project(common_msgs)
find_package(catkin REQUIRED COMPONENTS
message_generation
geometry_msgs
std_msgs
nav_msgs
)
add_message_files(
DIRECTORY msg
FILES
cloud_info.msg
)
# 添加的
add_message_files(
DIRECTORY test_msg
FILES
test_info.msg
)
generate_messages(
DEPENDENCIES
geometry_msgs
std_msgs
nav_msgs
)
catkin_package(
CATKIN_DEPENDS
message_runtime
message_generation
geometry_msgs
std_msgs
nav_msgs
)
include_directories(
${catkin_INCLUDE_DIRS}
)
需要自己添加一下:
add_message_files(
DIRECTORY test_msg
FILES
test_info.msg
)
其中:
DIRECTORY
后面表示的是文件夹的名字 test_msg
FILES
后面表示的是这个文件夹里的 msg 的名字 test_info.msg