|
Repository Summary
Checkout URI | https://github.com/PickNikRobotics/generate_parameter_library.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-06-12 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Packages
Name | Version |
---|---|
generate_parameter_library_example | 0.5.0 |
cmake_generate_parameter_module_example | 0.5.0 |
generate_parameter_library_example_external | 0.5.0 |
generate_parameter_module_example | 0.5.0 |
generate_parameter_library | 0.5.0 |
generate_parameter_library_py | 0.5.0 |
parameter_traits | 0.5.0 |
README
generate_parameter_library
Generate C++ or Python code for ROS 2 parameter declaration, getting, and validation using declarative YAML. The generated library contains a C++ struct with specified parameters. Additionally, dynamic parameters and custom validation are made easy.
Killer Features
- Declarative YAML syntax for ROS 2 Parameters converted into C++ or Python struct
- Declaring, Getting, Validating, and Updating handled by generated code
- Dynamic ROS 2 Parameters made easy
- Custom user-specified validator functions
- Automatically create documentation of parameters
Basic Usage
- Create YAML parameter codegen file
- Add parameter library generation to project
- Use generated struct into project source code
Create yaml parameter codegen file
Write a yaml file to declare your parameters and their attributes.
src/turtlesim_parameters.yaml
turtlesim:
background:
r:
type: int
default_value: 0
description: "Red color value for the background, 8-bit"
validation:
bounds<>: [0, 255]
g:
type: int
default_value: 0
description: "Green color value for the background, 8-bit"
validation:
bounds<>: [0, 255]
b:
type: int
default_value: 0
description: "Blue color value for the background, 8-bit"
validation:
bounds<>: [0, 255]
Add parameter library generation to project
package.xml
<depend>generate_parameter_library</depend>
CMakeLists.txt
find_package(generate_parameter_library REQUIRED)
generate_parameter_library(
turtlesim_parameters # cmake target name for the parameter library
src/turtlesim_parameters.yaml # path to input yaml file
)
add_executable(minimal_node src/turtlesim.cpp)
target_link_libraries(minimal_node PRIVATE
rclcpp::rclcpp
turtlesim_parameters
)
install(TARGETS minimal_node turtlesim_parameters
EXPORT ${PROJECT_NAME}Targets)
ament_export_targets(${PROJECT_NAME}Targets HAS_LIBRARY_TARGET)
setup.py
from generate_parameter_library_py.setup_helper import generate_parameter_module
generate_parameter_module(
"turtlesim_parameters", # python module name for parameter library
"turtlesim/turtlesim_parameters.yaml", # path to input yaml file
)
Use generated struct in project source code
src/turtlesim.cpp
```c++ #include <rclcpp/rclcpp.hpp> #include <turtlesim/turtlesim_parameters.hpp> // you can also use the deprecated #include “turtlesim_parameters.hpp”
int main(int argc, char * argv[]) { rclcpp::init(argc, argv); auto node = std::make_shared<rclcpp::Node>(“turtlesim”); auto param_listener = std::make_shared<turtlesim::ParamListener>(node); auto params = param_listener->get_params();
auto color = params.background; RCLCPP_INFO(node->get_logger(), “Background color (r,g,b): %d, %d, %d”, color.r, color.g, color.b);
File truncated at 100 lines see the full file
CONTRIBUTING
Any contribution that you make to this repository will be under the 3-Clause BSD License, as dictated by that license.
|
Repository Summary
Checkout URI | https://github.com/PickNikRobotics/generate_parameter_library.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-06-12 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Packages
Name | Version |
---|---|
generate_parameter_library_example | 0.5.0 |
cmake_generate_parameter_module_example | 0.5.0 |
generate_parameter_library_example_external | 0.5.0 |
generate_parameter_module_example | 0.5.0 |
generate_parameter_library | 0.5.0 |
generate_parameter_library_py | 0.5.0 |
parameter_traits | 0.5.0 |
README
generate_parameter_library
Generate C++ or Python code for ROS 2 parameter declaration, getting, and validation using declarative YAML. The generated library contains a C++ struct with specified parameters. Additionally, dynamic parameters and custom validation are made easy.
Killer Features
- Declarative YAML syntax for ROS 2 Parameters converted into C++ or Python struct
- Declaring, Getting, Validating, and Updating handled by generated code
- Dynamic ROS 2 Parameters made easy
- Custom user-specified validator functions
- Automatically create documentation of parameters
Basic Usage
- Create YAML parameter codegen file
- Add parameter library generation to project
- Use generated struct into project source code
Create yaml parameter codegen file
Write a yaml file to declare your parameters and their attributes.
src/turtlesim_parameters.yaml
turtlesim:
background:
r:
type: int
default_value: 0
description: "Red color value for the background, 8-bit"
validation:
bounds<>: [0, 255]
g:
type: int
default_value: 0
description: "Green color value for the background, 8-bit"
validation:
bounds<>: [0, 255]
b:
type: int
default_value: 0
description: "Blue color value for the background, 8-bit"
validation:
bounds<>: [0, 255]
Add parameter library generation to project
package.xml
<depend>generate_parameter_library</depend>
CMakeLists.txt
find_package(generate_parameter_library REQUIRED)
generate_parameter_library(
turtlesim_parameters # cmake target name for the parameter library
src/turtlesim_parameters.yaml # path to input yaml file
)
add_executable(minimal_node src/turtlesim.cpp)
target_link_libraries(minimal_node PRIVATE
rclcpp::rclcpp
turtlesim_parameters
)
install(TARGETS minimal_node turtlesim_parameters
EXPORT ${PROJECT_NAME}Targets)
ament_export_targets(${PROJECT_NAME}Targets HAS_LIBRARY_TARGET)
setup.py
from generate_parameter_library_py.setup_helper import generate_parameter_module
generate_parameter_module(
"turtlesim_parameters", # python module name for parameter library
"turtlesim/turtlesim_parameters.yaml", # path to input yaml file
)
Use generated struct in project source code
src/turtlesim.cpp
```c++ #include <rclcpp/rclcpp.hpp> #include <turtlesim/turtlesim_parameters.hpp> // you can also use the deprecated #include “turtlesim_parameters.hpp”
int main(int argc, char * argv[]) { rclcpp::init(argc, argv); auto node = std::make_shared<rclcpp::Node>(“turtlesim”); auto param_listener = std::make_shared<turtlesim::ParamListener>(node); auto params = param_listener->get_params();
auto color = params.background; RCLCPP_INFO(node->get_logger(), “Background color (r,g,b): %d, %d, %d”, color.r, color.g, color.b);
File truncated at 100 lines see the full file
CONTRIBUTING
Any contribution that you make to this repository will be under the 3-Clause BSD License, as dictated by that license.
|
Repository Summary
Checkout URI | https://github.com/PickNikRobotics/generate_parameter_library.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-06-12 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Packages
Name | Version |
---|---|
generate_parameter_library_example | 0.5.0 |
cmake_generate_parameter_module_example | 0.5.0 |
generate_parameter_library_example_external | 0.5.0 |
generate_parameter_module_example | 0.5.0 |
generate_parameter_library | 0.5.0 |
generate_parameter_library_py | 0.5.0 |
parameter_traits | 0.5.0 |
README
generate_parameter_library
Generate C++ or Python code for ROS 2 parameter declaration, getting, and validation using declarative YAML. The generated library contains a C++ struct with specified parameters. Additionally, dynamic parameters and custom validation are made easy.
Killer Features
- Declarative YAML syntax for ROS 2 Parameters converted into C++ or Python struct
- Declaring, Getting, Validating, and Updating handled by generated code
- Dynamic ROS 2 Parameters made easy
- Custom user-specified validator functions
- Automatically create documentation of parameters
Basic Usage
- Create YAML parameter codegen file
- Add parameter library generation to project
- Use generated struct into project source code
Create yaml parameter codegen file
Write a yaml file to declare your parameters and their attributes.
src/turtlesim_parameters.yaml
turtlesim:
background:
r:
type: int
default_value: 0
description: "Red color value for the background, 8-bit"
validation:
bounds<>: [0, 255]
g:
type: int
default_value: 0
description: "Green color value for the background, 8-bit"
validation:
bounds<>: [0, 255]
b:
type: int
default_value: 0
description: "Blue color value for the background, 8-bit"
validation:
bounds<>: [0, 255]
Add parameter library generation to project
package.xml
<depend>generate_parameter_library</depend>
CMakeLists.txt
find_package(generate_parameter_library REQUIRED)
generate_parameter_library(
turtlesim_parameters # cmake target name for the parameter library
src/turtlesim_parameters.yaml # path to input yaml file
)
add_executable(minimal_node src/turtlesim.cpp)
target_link_libraries(minimal_node PRIVATE
rclcpp::rclcpp
turtlesim_parameters
)
install(TARGETS minimal_node turtlesim_parameters
EXPORT ${PROJECT_NAME}Targets)
ament_export_targets(${PROJECT_NAME}Targets HAS_LIBRARY_TARGET)
setup.py
from generate_parameter_library_py.setup_helper import generate_parameter_module
generate_parameter_module(
"turtlesim_parameters", # python module name for parameter library
"turtlesim/turtlesim_parameters.yaml", # path to input yaml file
)
Use generated struct in project source code
src/turtlesim.cpp
```c++ #include <rclcpp/rclcpp.hpp> #include <turtlesim/turtlesim_parameters.hpp> // you can also use the deprecated #include “turtlesim_parameters.hpp”
int main(int argc, char * argv[]) { rclcpp::init(argc, argv); auto node = std::make_shared<rclcpp::Node>(“turtlesim”); auto param_listener = std::make_shared<turtlesim::ParamListener>(node); auto params = param_listener->get_params();
auto color = params.background; RCLCPP_INFO(node->get_logger(), “Background color (r,g,b): %d, %d, %d”, color.r, color.g, color.b);
File truncated at 100 lines see the full file
CONTRIBUTING
Any contribution that you make to this repository will be under the 3-Clause BSD License, as dictated by that license.
|
Repository Summary
Checkout URI | https://github.com/PickNikRobotics/generate_parameter_library.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-06-12 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Packages
Name | Version |
---|---|
generate_parameter_library_example | 0.5.0 |
cmake_generate_parameter_module_example | 0.5.0 |
generate_parameter_library_example_external | 0.5.0 |
generate_parameter_module_example | 0.5.0 |
generate_parameter_library | 0.5.0 |
generate_parameter_library_py | 0.5.0 |
parameter_traits | 0.5.0 |
README
generate_parameter_library
Generate C++ or Python code for ROS 2 parameter declaration, getting, and validation using declarative YAML. The generated library contains a C++ struct with specified parameters. Additionally, dynamic parameters and custom validation are made easy.
Killer Features
- Declarative YAML syntax for ROS 2 Parameters converted into C++ or Python struct
- Declaring, Getting, Validating, and Updating handled by generated code
- Dynamic ROS 2 Parameters made easy
- Custom user-specified validator functions
- Automatically create documentation of parameters
Basic Usage
- Create YAML parameter codegen file
- Add parameter library generation to project
- Use generated struct into project source code
Create yaml parameter codegen file
Write a yaml file to declare your parameters and their attributes.
src/turtlesim_parameters.yaml
turtlesim:
background:
r:
type: int
default_value: 0
description: "Red color value for the background, 8-bit"
validation:
bounds<>: [0, 255]
g:
type: int
default_value: 0
description: "Green color value for the background, 8-bit"
validation:
bounds<>: [0, 255]
b:
type: int
default_value: 0
description: "Blue color value for the background, 8-bit"
validation:
bounds<>: [0, 255]
Add parameter library generation to project
package.xml
<depend>generate_parameter_library</depend>
CMakeLists.txt
find_package(generate_parameter_library REQUIRED)
generate_parameter_library(
turtlesim_parameters # cmake target name for the parameter library
src/turtlesim_parameters.yaml # path to input yaml file
)
add_executable(minimal_node src/turtlesim.cpp)
target_link_libraries(minimal_node PRIVATE
rclcpp::rclcpp
turtlesim_parameters
)
install(TARGETS minimal_node turtlesim_parameters
EXPORT ${PROJECT_NAME}Targets)
ament_export_targets(${PROJECT_NAME}Targets HAS_LIBRARY_TARGET)
setup.py
from generate_parameter_library_py.setup_helper import generate_parameter_module
generate_parameter_module(
"turtlesim_parameters", # python module name for parameter library
"turtlesim/turtlesim_parameters.yaml", # path to input yaml file
)
Use generated struct in project source code
src/turtlesim.cpp
```c++ #include <rclcpp/rclcpp.hpp> #include <turtlesim/turtlesim_parameters.hpp> // you can also use the deprecated #include “turtlesim_parameters.hpp”
int main(int argc, char * argv[]) { rclcpp::init(argc, argv); auto node = std::make_shared<rclcpp::Node>(“turtlesim”); auto param_listener = std::make_shared<turtlesim::ParamListener>(node); auto params = param_listener->get_params();
auto color = params.background; RCLCPP_INFO(node->get_logger(), “Background color (r,g,b): %d, %d, %d”, color.r, color.g, color.b);
File truncated at 100 lines see the full file
CONTRIBUTING
Any contribution that you make to this repository will be under the 3-Clause BSD License, as dictated by that license.
|
Repository Summary
Checkout URI | https://github.com/PickNikRobotics/generate_parameter_library.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-06-12 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Packages
Name | Version |
---|---|
generate_parameter_library_example | 0.5.0 |
cmake_generate_parameter_module_example | 0.5.0 |
generate_parameter_library_example_external | 0.5.0 |
generate_parameter_module_example | 0.5.0 |
generate_parameter_library | 0.5.0 |
generate_parameter_library_py | 0.5.0 |
parameter_traits | 0.5.0 |
README
generate_parameter_library
Generate C++ or Python code for ROS 2 parameter declaration, getting, and validation using declarative YAML. The generated library contains a C++ struct with specified parameters. Additionally, dynamic parameters and custom validation are made easy.
Killer Features
- Declarative YAML syntax for ROS 2 Parameters converted into C++ or Python struct
- Declaring, Getting, Validating, and Updating handled by generated code
- Dynamic ROS 2 Parameters made easy
- Custom user-specified validator functions
- Automatically create documentation of parameters
Basic Usage
- Create YAML parameter codegen file
- Add parameter library generation to project
- Use generated struct into project source code
Create yaml parameter codegen file
Write a yaml file to declare your parameters and their attributes.
src/turtlesim_parameters.yaml
turtlesim:
background:
r:
type: int
default_value: 0
description: "Red color value for the background, 8-bit"
validation:
bounds<>: [0, 255]
g:
type: int
default_value: 0
description: "Green color value for the background, 8-bit"
validation:
bounds<>: [0, 255]
b:
type: int
default_value: 0
description: "Blue color value for the background, 8-bit"
validation:
bounds<>: [0, 255]
Add parameter library generation to project
package.xml
<depend>generate_parameter_library</depend>
CMakeLists.txt
find_package(generate_parameter_library REQUIRED)
generate_parameter_library(
turtlesim_parameters # cmake target name for the parameter library
src/turtlesim_parameters.yaml # path to input yaml file
)
add_executable(minimal_node src/turtlesim.cpp)
target_link_libraries(minimal_node PRIVATE
rclcpp::rclcpp
turtlesim_parameters
)
install(TARGETS minimal_node turtlesim_parameters
EXPORT ${PROJECT_NAME}Targets)
ament_export_targets(${PROJECT_NAME}Targets HAS_LIBRARY_TARGET)
setup.py
from generate_parameter_library_py.setup_helper import generate_parameter_module
generate_parameter_module(
"turtlesim_parameters", # python module name for parameter library
"turtlesim/turtlesim_parameters.yaml", # path to input yaml file
)
Use generated struct in project source code
src/turtlesim.cpp
```c++ #include <rclcpp/rclcpp.hpp> #include <turtlesim/turtlesim_parameters.hpp> // you can also use the deprecated #include “turtlesim_parameters.hpp”
int main(int argc, char * argv[]) { rclcpp::init(argc, argv); auto node = std::make_shared<rclcpp::Node>(“turtlesim”); auto param_listener = std::make_shared<turtlesim::ParamListener>(node); auto params = param_listener->get_params();
auto color = params.background; RCLCPP_INFO(node->get_logger(), “Background color (r,g,b): %d, %d, %d”, color.r, color.g, color.b);
File truncated at 100 lines see the full file
CONTRIBUTING
Any contribution that you make to this repository will be under the 3-Clause BSD License, as dictated by that license.