ros 自定义多个 msg

文章目录

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

Guess you like

Origin blog.csdn.net/qq_35632833/article/details/121566799