@@ -96,18 +96,21 @@ void Republisher::initialize()
96
96
" The 'out_transport' parameter is set to: " << out_transport);
97
97
}
98
98
99
+ auto qos_override_options = rclcpp::QosOverridingOptions (
100
+ {
101
+ rclcpp::QosPolicyKind::Depth,
102
+ rclcpp::QosPolicyKind::Durability,
103
+ rclcpp::QosPolicyKind::History,
104
+ rclcpp::QosPolicyKind::Reliability,
105
+ });
106
+ rclcpp::SubscriptionOptions sub_options;
107
+ rclcpp::PublisherOptions pub_options;
108
+ pub_options.qos_overriding_options = qos_override_options;
109
+ sub_options.qos_overriding_options = qos_override_options;
110
+
99
111
if (out_transport.empty ()) {
100
112
// Use all available transports for output
101
- rclcpp::PublisherOptions pub_options;
102
- auto qos_override_options = rclcpp::QosOverridingOptions (
103
- {
104
- rclcpp::QosPolicyKind::Depth,
105
- rclcpp::QosPolicyKind::Durability,
106
- rclcpp::QosPolicyKind::History,
107
- rclcpp::QosPolicyKind::Reliability,
108
- });
109
-
110
- pub_options.qos_overriding_options = qos_override_options;
113
+
111
114
this ->pub = image_transport::create_publisher (
112
115
this , out_topic,
113
116
rmw_qos_profile_default, pub_options);
@@ -117,9 +120,6 @@ void Republisher::initialize()
117
120
const sensor_msgs::msg::Image::ConstSharedPtr &) const ;
118
121
PublishMemFn pub_mem_fn = &image_transport::Publisher::publish;
119
122
120
- rclcpp::SubscriptionOptions sub_options;
121
- sub_options.qos_overriding_options = qos_override_options;
122
-
123
123
this ->sub = image_transport::create_subscription (
124
124
this , in_topic, std::bind (pub_mem_fn, &pub, std::placeholders::_1),
125
125
in_transport, rmw_qos_profile_default, sub_options);
@@ -133,14 +133,16 @@ void Republisher::initialize()
133
133
std::string lookup_name = Plugin::getLookupName (out_transport);
134
134
135
135
instance = loader->createUniqueInstance (lookup_name);
136
- instance->advertise (this , out_topic);
136
+ instance->advertise (this , out_topic, rmw_qos_profile_default, pub_options );
137
137
138
138
// Use PublisherPlugin::publish as the subscriber callback
139
139
typedef void (Plugin::* PublishMemFn)(const sensor_msgs::msg::Image::ConstSharedPtr &) const ;
140
140
PublishMemFn pub_mem_fn = &Plugin::publishPtr;
141
141
this ->sub = image_transport::create_subscription (
142
142
this , in_topic,
143
- std::bind (pub_mem_fn, instance.get (), std::placeholders::_1), in_transport);
143
+ std::bind (
144
+ pub_mem_fn,
145
+ instance.get (), std::placeholders::_1), in_transport, rmw_qos_profile_default, sub_options);
144
146
}
145
147
}
146
148
0 commit comments