Skip to content

Commit 7c6a938

Browse files
authored
Deprecate tf.publish_rate parameter for pose_broadcaster (#1614)
1 parent 8b8e670 commit 7c6a938

File tree

3 files changed

+20
-5
lines changed

3 files changed

+20
-5
lines changed

pose_broadcaster/include/pose_broadcaster/pose_broadcaster.hpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,8 +63,10 @@ class PoseBroadcaster : public controller_interface::ControllerInterface
6363
std::unique_ptr<realtime_tools::RealtimePublisher<geometry_msgs::msg::PoseStamped>>
6464
realtime_publisher_;
6565

66+
// TODO(amronos): Remove these two member variables
6667
std::optional<rclcpp::Duration> tf_publish_period_;
6768
rclcpp::Time tf_last_publish_time_{0, 0, RCL_CLOCK_UNINITIALIZED};
69+
6870
rclcpp::Publisher<tf2_msgs::msg::TFMessage>::SharedPtr tf_publisher_;
6971
std::unique_ptr<realtime_tools::RealtimePublisher<tf2_msgs::msg::TFMessage>>
7072
realtime_tf_publisher_;

pose_broadcaster/src/pose_broadcaster.cpp

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -78,10 +78,21 @@ controller_interface::CallbackReturn PoseBroadcaster::on_configure(
7878
params_ = param_listener_->get_params();
7979

8080
pose_sensor_ = std::make_unique<semantic_components::PoseSensor>(params_.pose_name);
81-
tf_publish_period_ =
82-
params_.tf.publish_rate == 0.0
83-
? std::nullopt
84-
: std::optional{rclcpp::Duration::from_seconds(1.0 / params_.tf.publish_rate)};
81+
82+
// TODO(amronos): Remove this check and its contents
83+
if (params_.tf.publish_rate == 0.0)
84+
{
85+
tf_publish_period_ = std::nullopt;
86+
}
87+
else
88+
{
89+
tf_publish_period_ =
90+
std::optional{rclcpp::Duration::from_seconds(1.0 / params_.tf.publish_rate)};
91+
RCLCPP_WARN(
92+
get_node()->get_logger(),
93+
"[deprecated] tf.publish_rate parameter is deprecated, please set the value to 0.0. "
94+
"The publish rate of TF messages should not be limited.");
95+
}
8596

8697
try
8798
{
@@ -170,6 +181,7 @@ controller_interface::return_type PoseBroadcaster::update(
170181
pose.position.z, pose.orientation.x, pose.orientation.y, pose.orientation.z,
171182
pose.orientation.w);
172183
}
184+
// TODO(amronos): Remove publish rate functionality
173185
else if (realtime_tf_publisher_ && realtime_tf_publisher_->trylock())
174186
{
175187
bool do_publish = false;

pose_broadcaster/src/pose_broadcaster_parameters.yaml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,10 +23,11 @@ pose_broadcaster:
2323
default_value: ""
2424
description: "Child frame id of published tf transforms. Defaults to ``pose_name`` if left
2525
empty."
26+
# TODO(amronos): Remove this parameter as it is deprecated
2627
publish_rate:
2728
type: double
2829
default_value: 0.0
2930
description: "Rate to limit publishing of tf transforms to (Hz). If set to 0, no limiting is
30-
performed."
31+
performed. This parameter is deprecated and limiting should not be performed."
3132
validation:
3233
gt_eq<>: 0.0

0 commit comments

Comments
 (0)