Skip to content

Commit dff6aab

Browse files
committed
Declare filter name and type params as dynamic
We need to be able to undeclare them so that we can re-declare them as read-only later, but static params cannot be undeclared in rclcpp.
1 parent c9dc2f4 commit dff6aab

File tree

1 file changed

+10
-2
lines changed

1 file changed

+10
-2
lines changed

include/filters/filter_chain.hpp

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -79,13 +79,21 @@ load_chain_config(
7979
name_desc.name = norm_param_prefix + filter_n + ".name";
8080
name_desc.type = rcl_interfaces::msg::ParameterType::PARAMETER_STRING;
8181
name_desc.read_only = false;
82+
// Must be dynamically typed because later we undeclare it and redeclare
83+
// it read-only, but statically typed params cannot be undeclared.
84+
name_desc.dynamic_typing = true;
8285
rcl_interfaces::msg::ParameterDescriptor type_desc;
8386
type_desc.name = norm_param_prefix + filter_n + ".type";
8487
type_desc.type = rcl_interfaces::msg::ParameterType::PARAMETER_STRING;
8588
type_desc.read_only = false;
89+
// Must be dynamically typed because later we undeclare it and redeclare
90+
// it read-only, but statically typed params cannot be undeclared.
91+
type_desc.dynamic_typing = true;
8692

87-
node_params->declare_parameter(name_desc.name, rclcpp::PARAMETER_STRING);
88-
node_params->declare_parameter(type_desc.name, rclcpp::PARAMETER_STRING);
93+
node_params->declare_parameter(
94+
name_desc.name, rclcpp::ParameterValue(), name_desc);
95+
node_params->declare_parameter(
96+
type_desc.name, rclcpp::ParameterValue(), type_desc);
8997

9098
rclcpp::Parameter param_name;
9199
rclcpp::Parameter param_type;

0 commit comments

Comments
 (0)