From 0684637c6c1e91e8c43825a762107fde3781d91e Mon Sep 17 00:00:00 2001 From: RBT22 Date: Wed, 25 Feb 2026 16:55:19 +0100 Subject: [PATCH 1/3] Update QoS handling for compatibility with different RCLCPP versions --- src/usb_cam_node.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/usb_cam_node.cpp b/src/usb_cam_node.cpp index 05785875..fcdd97b9 100644 --- a/src/usb_cam_node.cpp +++ b/src/usb_cam_node.cpp @@ -33,6 +33,7 @@ #include #include "usb_cam/usb_cam_node.hpp" #include "usb_cam/utils.hpp" +#include const char BASE_TOPIC_NAME[] = "image_raw"; @@ -46,7 +47,14 @@ UsbCamNode::UsbCamNode(const rclcpp::NodeOptions & node_options) m_compressed_img_msg(nullptr), m_image_publisher(std::make_shared( image_transport::create_camera_publisher(this, BASE_TOPIC_NAME, - rclcpp::QoS {100}.get_rmw_qos_profile()))), +// For Rolling, L-turtle, and newer +#if RCLCPP_VERSION_GTE(30, 0, 0) + rclcpp::QoS(100) +// For Kilted and older +#else + rclcpp::QoS(100).get_rmw_qos_profile() +#endif + ))), m_compressed_image_publisher(nullptr), m_compressed_cam_info_publisher(nullptr), m_parameters(), From ea578c4c5dd229e7a0695d1b8669b88f32f8f4cd Mon Sep 17 00:00:00 2001 From: RBT22 Date: Wed, 25 Feb 2026 17:15:53 +0100 Subject: [PATCH 2/3] Fix camera info manager initialization for RCLCPP version compatibility --- src/usb_cam_node.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/usb_cam_node.cpp b/src/usb_cam_node.cpp index fcdd97b9..5086a225 100644 --- a/src/usb_cam_node.cpp +++ b/src/usb_cam_node.cpp @@ -157,7 +157,14 @@ void UsbCamNode::init() // load the camera info m_camera_info.reset( new camera_info_manager::CameraInfoManager( - this, m_parameters.camera_name, m_parameters.camera_info_url)); +// For Rolling, L-turtle, and newer +#if RCLCPP_VERSION_GTE(30, 0, 0) + this->get_node_base_interface(), +// For Kilted and older +#else + this, +#endif + m_parameters.camera_name, m_parameters.camera_info_url)); // check for default camera info if (!m_camera_info->isCalibrated()) { m_camera_info->setCameraName(m_parameters.device_name); From 4c9a0b38d642653f0f86c2af1a9fa89d20ca63b2 Mon Sep 17 00:00:00 2001 From: RBT22 Date: Thu, 26 Feb 2026 09:12:03 +0100 Subject: [PATCH 3/3] Fix params for rolling --- src/usb_cam_node.cpp | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/usb_cam_node.cpp b/src/usb_cam_node.cpp index 5086a225..737429e4 100644 --- a/src/usb_cam_node.cpp +++ b/src/usb_cam_node.cpp @@ -46,15 +46,15 @@ UsbCamNode::UsbCamNode(const rclcpp::NodeOptions & node_options) m_image_msg(new sensor_msgs::msg::Image()), m_compressed_img_msg(nullptr), m_image_publisher(std::make_shared( - image_transport::create_camera_publisher(this, BASE_TOPIC_NAME, + image_transport::create_camera_publisher( // For Rolling, L-turtle, and newer #if RCLCPP_VERSION_GTE(30, 0, 0) - rclcpp::QoS(100) + this->get_node_base_interface(), BASE_TOPIC_NAME, rclcpp::QoS(100) // For Kilted and older #else - rclcpp::QoS(100).get_rmw_qos_profile() + this, BASE_TOPIC_NAME, rclcpp::QoS(100).get_rmw_qos_profile() #endif - ))), + ))), m_compressed_image_publisher(nullptr), m_compressed_cam_info_publisher(nullptr), m_parameters(), @@ -160,11 +160,13 @@ void UsbCamNode::init() // For Rolling, L-turtle, and newer #if RCLCPP_VERSION_GTE(30, 0, 0) this->get_node_base_interface(), + this->get_node_services_interface(), + this->get_node_logging_interface(), // For Kilted and older #else this, -#endif - m_parameters.camera_name, m_parameters.camera_info_url)); +#endif + m_parameters.camera_name, m_parameters.camera_info_url)); // check for default camera info if (!m_camera_info->isCalibrated()) { m_camera_info->setCameraName(m_parameters.device_name);