Skip to content

Commit db7dc7a

Browse files
committed
Fix QoS for humble and disable lazy subscribers
1 parent 43e6165 commit db7dc7a

File tree

3 files changed

+16
-23
lines changed

3 files changed

+16
-23
lines changed

pcl_ros/src/pcl_ros/filters/filter.cpp

Lines changed: 12 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -124,8 +124,8 @@ pcl_ros::Filter::subscribe()
124124
if (use_indices_) {
125125
// Subscribe to the input using a filter
126126
auto sensor_qos_profile = rclcpp::SensorDataQoS().keep_last(max_queue_size_);
127-
sub_input_filter_.subscribe(this, "input", sensor_qos_profile);
128-
sub_indices_filter_.subscribe(this, "indices", sensor_qos_profile);
127+
sub_input_filter_.subscribe(this, "input", sensor_qos_profile.get_rmw_qos_profile());
128+
sub_indices_filter_.subscribe(this, "indices", sensor_qos_profile.get_rmw_qos_profile());
129129

130130
if (approximate_sync_) {
131131
sync_input_indices_a_ =
@@ -182,23 +182,16 @@ pcl_ros::Filter::Filter(std::string node_name, const rclcpp::NodeOptions & optio
182182
void
183183
pcl_ros::Filter::createPublishers()
184184
{
185-
auto pub_options = rclcpp::PublisherOptions();
186-
pub_options.event_callbacks.matched_callback = [this](rclcpp::MatchedInfo & /*info*/) {
187-
if (pub_output_->get_subscription_count() == 0) {
188-
unsubscribe();
189-
} else {
190-
if (use_indices_) {
191-
if (!sub_input_filter_.getSubscriber() || !sub_indices_filter_.getSubscriber()) {
192-
subscribe();
193-
}
194-
} else {
195-
if (!sub_input_) {
196-
subscribe();
197-
}
198-
}
199-
}
200-
};
201-
pub_output_ = create_publisher<PointCloud2>("output", max_queue_size_, pub_options);
185+
if (use_indices_) {
186+
if (!sub_input_filter_.getSubscriber() || !sub_indices_filter_.getSubscriber()) {
187+
subscribe();
188+
}
189+
} else {
190+
if (!sub_input_) {
191+
subscribe();
192+
}
193+
}
194+
pub_output_ = create_publisher<PointCloud2>("output", max_queue_size_);
202195
}
203196

204197
//////////////////////////////////////////////////////////////////////////////////////////////

pcl_ros/src/pcl_ros/filters/project_inliers.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -108,9 +108,9 @@ pcl_ros::ProjectInliers::subscribe()
108108
auto qos_profile = rclcpp::QoS(rclcpp::KeepLast(max_queue_size_), rmw_qos_profile_default);
109109
auto sensor_qos_profile =
110110
rclcpp::QoS(rclcpp::KeepLast(max_queue_size_), rmw_qos_profile_sensor_data);
111-
sub_input_filter_.subscribe(this, "input", sensor_qos_profile);
112-
sub_indices_filter_.subscribe(this, "indices", qos_profile);
113-
sub_model_.subscribe(this, "model", qos_profile);
111+
sub_input_filter_.subscribe(this, "input", sensor_qos_profile.get_rmw_qos_profile());
112+
sub_indices_filter_.subscribe(this, "indices", qos_profile.get_rmw_qos_profile());
113+
sub_model_.subscribe(this, "model", qos_profile.get_rmw_qos_profile());
114114

115115
if (approximate_sync_) {
116116
sync_input_indices_model_a_ = std::make_shared<

pcl_ros/tools/bag_to_pcd.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ class BagToPCD : public rclcpp::Node
106106
pcl_conversions::moveToPCL(pointcloud_msg, cloud);
107107

108108
std::stringstream ss;
109-
ss << output_directory_ << "/" << msg->recv_timestamp << ".pcd";
109+
ss << output_directory_ << "/" << msg->time_stamp << ".pcd";
110110
RCLCPP_INFO(this->get_logger(), "Writing to: %s", ss.str().c_str());
111111
pcl::io::savePCDFile(ss.str(), cloud);
112112
break;

0 commit comments

Comments
 (0)