# ShareConfig **Repository Path**: CDalezyb/share-config ## Basic Information - **Project Name**: ShareConfig - **Description**: ROS2 开发中遇到一个问题:有多个包需要读取一些相同的参数和配置,而且项目中还有一些共用的utils文件。这个项目通过设置一个base_config 包,将配置文件和公用的头文件放在这个包中,给其他pkg复用。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-12-03 - **Last Updated**: 2025-02-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Demo 背景 + ROS2项目开发中存在以下需求:有多个包需要读取一些共同的配置项(以txt或者yaml形式存在),且依赖于一些公用的utils工具代码(C++ or Python)。 + Solution: 创建一个 base_config 包来“存放” 配置文件和公用的头文件。 + gitee address: [Gitee/CDale/ShareConfig](https://gitee.com/CDale/share-config) # 项目文件结构介绍以及配置方法 ## 1. **项目所有文件**
+ base_config 中存有配置文件和公用的头文件(示例为config1.txt和base_utils.hpp) + top 中使用 base_config 中的配置文件和头文件 + 使用```git clone https://gitee.com/CDale/share-config.git``` ## 2. **base_config配置** 1. CMakeLists ```cmake 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** 使用方法 1. CMakeLists ```cmake # 获取 base_config 包的安装路径 find_package(base_config REQUIRED) include_directories(${base_config_INCLUDE_DIRS}) message("Include dirs: ${base_config_INCLUDE_DIRS}") ``` 2. pack.xml 添加 base_config 依赖 3. launch 文件 ```python # get_package_share_directory 获取 base_config 在 install 文件夹下的路径 # os.path.join 寻找到 config1.txt 的绝对路径,并通过 parameter 传递给 ROS2 node os.path.join(get_package_share_directory('base_config'),"ConfigFiles","config1.txt") ```