Demo 背景
ROS2项目开发中存在以下需求:有多个包需要读取一些共同的配置项(以txt或者yaml形式存在),且依赖于一些公用的utils工具代码(C++)。 Solution: 创建一个 base_config 包来“存放” 配置文件和公用的头文件。 gitee address: Gitee/CDale/ShareConfig
项目文件结构介绍以及配置方法
1. 项目所有文件
base_config 中存有配置文件和公用的头文件(示例为config1.txt和base_utils.hpp) top 中使用 base_config 中的配置文件和头文件 使用git clone https://gitee.com/CDale/share-config.git
2. base_config配置
CMakeLists
install(DIRECTORY ConfigFiles DESTINATION share/${PROJECT_NAME}) # 头文件的install 方式和 ConfigFiles 以及launch 不同
# 并不安装到 share下, 而是安装到base_config的根目录下
# 这样才可以通过 find_package 和 include_directories 找到
install(DIRECTORY include DESTINATION )
# 这个也是
ament_export_include_directories(include)
3.top 使用方法
CMakeLists
# 获取 base_config 包的安装路径
find_package(base_config REQUIRED)
include_directories(${base_config_INCLUDE_DIRS})
message("Include dirs: ${base_config_INCLUDE_DIRS}")
pack.xml 添加 base_config 依赖 launch 文件
os. path. join( get_package_share_directory( 'base_config' ) , "ConfigFiles" , "config1.txt" )