ros-tooling/generate_parameter_library
Declarative ROS 2 Parameters
解决的问题
ROS 2 节点需要声明、读取、验证并有时动态更新其参数。手动编写这些样板代码既繁琐又容易出错。本项目通过简单的 YAML 描述自动生成所有相关代码,让您在无需重复逻辑的情况下获得一致且经过验证的参数处理方式。
工作原理
您编写一个 YAML 文件来描述每个参数:其类型、默认值、描述和验证规则(如边界或允许的值)。构建系统读取该文件并生成 C++ 头文件(包含结构体)或 Python 模块。在运行时,生成的 ParamListener 类会在您的节点上声明参数、获取其值并进行验证。如果任何参数无效或缺少必需参数,则会抛出异常。随后,您可以调用 get_params() 来获取包含所有值的快照结构体(或对象),并轻松地以嵌套字段的形式访问它们。对于动态参数,您可以检查是否有任何参数发生更改,或附加在每次更新时触发的回调函数。
适用对象
适用于希望在 C++ 或 Python 中管理节点参数而无需编写重复代码的 ROS 2 开发人员。它既适用于简单的设置,也适用于需要自定义验证、嵌套参数结构或由其他参数作为键的参数映射等复杂场景。
主要亮点
- 使用简洁的 YAML 编写参数;自动获取 C++ 或 Python 代码。
- 内置验证器:bounds、one_of、unique、size、not_empty 等。
- 可以添加自定义 C++ 验证器并在 YAML 中引用。
- 通过简单的
is_old()检查或用户回调,轻松实现动态参数更新。 - 自动为您的节点生成参数文档。
相关
- 项目
- 项目
- 项目
- 项目