当前位置: 首页 > news >正文

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
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
# 获取 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 文件
# 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")
http://www.lryc.cn/news/497631.html

相关文章:

  • 自然语言处理期末试题汇总
  • 前端热门面试题目(四)——计算机网路篇
  • kubenetes流水线实施清单
  • Redis4——持久化与集群
  • 【LeetCode: 94. 二叉树的中序遍历 + 栈】
  • Python系列 - MQTT协议
  • 同时在github和gitee配置密钥
  • Runway 技术浅析(六):文本到视频(Text-to-Video)
  • 云计算vspere 安装过程
  • QT 实现QStackedWidget切换页面右移动画
  • Android Camera2采集并编码为H.264
  • DHCP和DNS
  • ONES 功能上新|ONES Project 甘特图再度升级
  • <工具 Claude Desktop> 配置 MCP server 连接本地 SQLite, 本机文件夹(目录) 网络驱动器 Windows 11 系统
  • GIT的使用方法以及汉化方法
  • 公因子的数目
  • 数据结构(三)——双向链表的介绍以及实现
  • Webpack开发模式及处理样式资源
  • leetcode--设计链表
  • 【MySQL】:数据库操作
  • 刷蓝桥杯历年考题(更新至15届~)
  • AI与BI的火花:大语言模型如何重塑商业智能的未来
  • Qt 详解QtNFC 读写模式
  • 增删改查文档
  • C语言蓝桥杯2023年省赛真题
  • Python迭代器-大数据量的处理
  • 自动化包括态交互与感交互,而智能化包括势交互与知交互
  • VideoBooth: Diffusion-based Video Generation with Image Prompts
  • 模拟简单的iOT工作流
  • C++学习0.2: RAII