Skip to content

Commit f79b7e1

Browse files
use newer 'message_filters::Subscriber' constructor API
1 parent a29cb6d commit f79b7e1

3 files changed

Lines changed: 32 additions & 10 deletions

File tree

orbbec_camera/CMakeLists.txt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,10 @@ endforeach()
5353
find_package(PkgConfig REQUIRED)
5454
find_package(OpenSSL REQUIRED)
5555

56+
if(message_filters_VERSION VERSION_GREATER_EQUAL 5.0)
57+
add_compile_definitions(message_filters_QoS)
58+
endif()
59+
5660
if(USE_RK_HW_DECODER)
5761
pkg_search_module(RK_MPP REQUIRED rockchip_mpp)
5862
if(NOT RK_MPP_FOUND)

orbbec_camera/examples/multi_camera_time_sync/image_sync_example_node.cpp

100644100755
Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -56,14 +56,20 @@ class ImageSyncNode : public rclcpp::Node {
5656
rclcpp::QoS qos(rclcpp::KeepLast(10));
5757
qos.reliable();
5858

59-
camera_01_color_sub_.subscribe(this, "/camera_01/color/image_raw", qos.get_rmw_qos_profile());
60-
camera_01_depth_sub_.subscribe(this, "/camera_01/depth/image_raw", qos.get_rmw_qos_profile());
61-
camera_02_color_sub_.subscribe(this, "/camera_02/color/image_raw", qos.get_rmw_qos_profile());
62-
camera_02_depth_sub_.subscribe(this, "/camera_02/depth/image_raw", qos.get_rmw_qos_profile());
63-
camera_03_color_sub_.subscribe(this, "/camera_03/color/image_raw", qos.get_rmw_qos_profile());
64-
camera_03_depth_sub_.subscribe(this, "/camera_03/depth/image_raw", qos.get_rmw_qos_profile());
65-
camera_04_color_sub_.subscribe(this, "/camera_04/color/image_raw", qos.get_rmw_qos_profile());
66-
camera_04_depth_sub_.subscribe(this, "/camera_04/depth/image_raw", qos.get_rmw_qos_profile());
59+
#ifdef message_filters_QoS
60+
const rclcpp::QoS qos_prof = qos;
61+
#else
62+
const rmw_qos_profile_t qos_prof = qos.get_rmw_qos_profile();
63+
#endif
64+
65+
camera_01_color_sub_.subscribe(this, "/camera_01/color/image_raw", qos_prof);
66+
camera_01_depth_sub_.subscribe(this, "/camera_01/depth/image_raw", qos_prof);
67+
camera_02_color_sub_.subscribe(this, "/camera_02/color/image_raw", qos_prof);
68+
camera_02_depth_sub_.subscribe(this, "/camera_02/depth/image_raw", qos_prof);
69+
camera_03_color_sub_.subscribe(this, "/camera_03/color/image_raw", qos_prof);
70+
camera_03_depth_sub_.subscribe(this, "/camera_03/depth/image_raw", qos_prof);
71+
camera_04_color_sub_.subscribe(this, "/camera_04/color/image_raw", qos_prof);
72+
camera_04_depth_sub_.subscribe(this, "/camera_04/depth/image_raw", qos_prof);
6773

6874
sync_ =
6975
std::make_shared<Sync>(SyncPolicy(10), camera_01_color_sub_, camera_01_depth_sub_,

orbbec_camera/src/d2c_viewer.cpp

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,21 @@ D2CViewer::D2CViewer(rclcpp::Node* const node, rmw_qos_profile_t rgb_qos,
3030
rmw_qos_profile_t depth_qos, bool use_intra_process)
3131
: node_(node), logger_(rclcpp::get_logger("d2c_viewer")), is_active_(true) {
3232
rgb_sub_ = std::make_shared<message_filters::Subscriber<sensor_msgs::msg::Image>>(
33-
node_, "color/image_raw", rgb_qos);
33+
node_, "color/image_raw",
34+
#ifdef message_filters_QoS
35+
rclcpp::QoS{rclcpp::QoSInitialization::from_rmw(rgb_qos)}
36+
#else
37+
rgb_qos
38+
#endif
39+
);
3440
depth_sub_ = std::make_shared<message_filters::Subscriber<sensor_msgs::msg::Image>>(
35-
node_, "depth/image_raw", depth_qos);
41+
node_, "depth/image_raw",
42+
#ifdef message_filters_QoS
43+
rclcpp::QoS{rclcpp::QoSInitialization::from_rmw(depth_qos)}
44+
#else
45+
depth_qos
46+
#endif
47+
);
3648
sync_ = std::make_shared<message_filters::Synchronizer<MySyncPolicy>>(MySyncPolicy(10), *rgb_sub_,
3749
*depth_sub_);
3850
sync_->setMaxIntervalDuration(rclcpp::Duration::from_seconds(1.0)); // 1s

0 commit comments

Comments
 (0)