@@ -141,7 +141,7 @@ void ObstacleLayer::onInitialize()
141
141
while (ss >> source) {
142
142
// get the parameters for the specific topic
143
143
double observation_keep_time, expected_update_rate, min_obstacle_height, max_obstacle_height;
144
- std::string topic, sensor_frame, data_type;
144
+ std::string topic, sensor_frame, data_type, transport_type ;
145
145
bool inf_is_valid, clearing, marking;
146
146
147
147
declareParameter (source + " ." + " topic" , rclcpp::ParameterValue (source));
@@ -158,6 +158,7 @@ void ObstacleLayer::onInitialize()
158
158
declareParameter (source + " ." + " obstacle_min_range" , rclcpp::ParameterValue (0.0 ));
159
159
declareParameter (source + " ." + " raytrace_max_range" , rclcpp::ParameterValue (3.0 ));
160
160
declareParameter (source + " ." + " raytrace_min_range" , rclcpp::ParameterValue (0.0 ));
161
+ declareParameter (source + " ." + " transport_type" , rclcpp::ParameterValue (std::string (" raw" )));
161
162
162
163
node->get_parameter (name_ + " ." + source + " ." + " topic" , topic);
163
164
node->get_parameter (name_ + " ." + source + " ." + " sensor_frame" , sensor_frame);
@@ -173,6 +174,7 @@ void ObstacleLayer::onInitialize()
173
174
node->get_parameter (name_ + " ." + source + " ." + " inf_is_valid" , inf_is_valid);
174
175
node->get_parameter (name_ + " ." + source + " ." + " marking" , marking);
175
176
node->get_parameter (name_ + " ." + source + " ." + " clearing" , clearing);
177
+ node->get_parameter (name_ + " ." + source + " ." + " transport_type" , transport_type);
176
178
177
179
if (!(data_type == " PointCloud2" || data_type == " LaserScan" )) {
178
180
RCLCPP_FATAL (
@@ -287,16 +289,23 @@ void ObstacleLayer::onInitialize()
287
289
tf_filter_tolerance));
288
290
289
291
} else {
292
+ // For Rolling and Newer Support from PointCloudTransport API change
293
+ #if RCLCPP_VERSION_GTE(30, 0, 0)
294
+ std::shared_ptr<point_cloud_transport::SubscriberFilter> sub;
290
295
// For Kilted and Older Support from Message Filters API change
291
- #if RCLCPP_VERSION_GTE(29, 6, 0)
296
+ #elif RCLCPP_VERSION_GTE(29, 6, 0)
292
297
std::shared_ptr<message_filters::Subscriber<sensor_msgs::msg::PointCloud2>> sub;
293
298
#else
294
299
std::shared_ptr<message_filters::Subscriber<sensor_msgs::msg::PointCloud2,
295
300
rclcpp_lifecycle::LifecycleNode>> sub;
296
301
#endif
297
302
303
+ // For Rolling compatibility in PointCloudTransport API change
304
+ #if RCLCPP_VERSION_GTE(30, 0, 0)
305
+ sub = std::make_shared<point_cloud_transport::SubscriberFilter>(
306
+ *node, topic, transport_type, custom_qos_profile, sub_opt);
298
307
// For Kilted compatibility in Message Filters API change
299
- #if RCLCPP_VERSION_GTE(29, 6, 0)
308
+ #elif RCLCPP_VERSION_GTE(29, 6, 0)
300
309
sub = std::make_shared<message_filters::Subscriber<sensor_msgs::msg::PointCloud2>>(
301
310
node, topic, custom_qos_profile, sub_opt);
302
311
// For Jazzy compatibility in Message Filters API change
0 commit comments