ROS2创建 base 包用于其他模块的参数配置和头文件依赖

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配置

  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}")
  1. pack.xml 添加 base_config 依赖
  2. 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")
相关推荐
悠哉悠哉愿意1 天前
【ROS2学习笔记】URDF 机器人建模
笔记·学习·机器人·ros2
悠哉悠哉愿意2 天前
【ROS2学习笔记】 TF 坐标系
笔记·学习·ros2
悠哉悠哉愿意2 天前
【ROS2学习笔记】RViz 三维可视化
笔记·学习·机器人·ros2
悠哉悠哉愿意3 天前
【ROS2学习笔记】分布式通信
笔记·学习·ros2
悠哉悠哉愿意3 天前
【ROS2学习笔记】rqt 模块化可视化工具
笔记·学习·机器人·ros2
悠哉悠哉愿意4 天前
【ROS2学习笔记】Gazebo 仿真与 XACRO 模型
笔记·学习·机器人·ros2
悠哉悠哉愿意4 天前
【ROS2学习笔记】节点篇:ROS 2编程基础
笔记·学习·ros2
悠哉悠哉愿意4 天前
【ROS2学习笔记】话题通信篇:话题通信项目实践——系统状态监测与可视化工具
笔记·学习·ros2
悠哉悠哉愿意4 天前
【ROS2学习笔记】话题通信篇:python话题订阅与发布
笔记·学习·ros2
悠哉悠哉愿意6 天前
【ROS2学习笔记】服务
开发语言·笔记·学习·ros2