PickNikRobotics/generate_parameter_library

Declarative ROS 2 Parameters

解决的问题

手动管理 ROS 2 参数需要重复编写声明、获取和验证的代码。该项目通过允许开发者在声明式 YAML 文件中定义参数,然后在构建过程中使用该 YAML 文件生成对应的 C++ 或 Python 代码,从而自动化这一过程。

工作原理

开发者创建一个 YAML 文件,指定参数名称、类型、默认值和验证规则。generate_parameter_library 工具在构建过程中处理此 YAML 文件,生成 C++ 结构体或 Python 模块。该生成的库负责处理向 ROS 2 系统声明参数、获取其值以及在应用程序使用前强制执行验证约束(如边界检查或唯一性)的样板代码。

适用人群

使用 ROS 2 的机器人开发者,希望减少样板代码,并确保节点参数严格验证且文档齐全。

主要亮点

  • 声明式配置:在 YAML 中定义参数,无需手动编写 C++ 或 Python 设置代码。
  • 自动验证:内置边界、字符串长度、数组唯一性、子集检查等验证器,并支持自定义 C++ 验证函数。
  • 类型安全:为参数生成 C++ 结构体,提供编译时类型安全,并可通过嵌套结构轻松访问。
  • 动态参数支持:通过回调或轮询简化运行时参数更新。
  • 映射参数:支持创建映射,其中键由其他字符串数组参数推导得出。
  • 自动文档生成:可根据 YAML 描述自动生成参数文档。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目