From 290699b4db8b6c1e3c7af285c9ef09436bf9e904 Mon Sep 17 00:00:00 2001 From: jj <957713278@qq.com> Date: Wed, 4 Jun 2025 16:01:47 +0800 Subject: [PATCH] Update skip color implementation --- .../include/orbbec_camera/ob_camera_node.h | 6 +---- orbbec_camera/src/ob_camera_node.cpp | 27 +++---------------- 2 files changed, 4 insertions(+), 29 deletions(-) diff --git a/orbbec_camera/include/orbbec_camera/ob_camera_node.h b/orbbec_camera/include/orbbec_camera/ob_camera_node.h index 2c74dd7f..a427941b 100644 --- a/orbbec_camera/include/orbbec_camera/ob_camera_node.h +++ b/orbbec_camera/include/orbbec_camera/ob_camera_node.h @@ -653,16 +653,12 @@ class OBCameraNode { int laser_index0_ir_brightness_ = 60; int laser_index0_ir_ae_max_exposure_ = 17000; - int interleave_skip_color_index_ = 1; - int interleave_skip_depth_index_ = 1; - double delta_duration_us_ = 1000.0; int delta_fps_ = 2; VideoStreamInfo color_stream_info_ = {OB_FRAME_COLOR, 0}; VideoStreamInfo depth_stream_info_ = {OB_FRAME_DEPTH, 0}; VideoStreamInfo left_ir_stream_info_ = {OB_FRAME_IR_LEFT, 0}; VideoStreamInfo right_ir_stream_info_ = {OB_FRAME_IR_RIGHT, 0}; - uint64_t left_last_time=0; - uint64_t right_last_time=0; + uint64_t depth_last_time_ = 0; }; } // namespace orbbec_camera diff --git a/orbbec_camera/src/ob_camera_node.cpp b/orbbec_camera/src/ob_camera_node.cpp index b596df78..f446ffe1 100644 --- a/orbbec_camera/src/ob_camera_node.cpp +++ b/orbbec_camera/src/ob_camera_node.cpp @@ -2165,11 +2165,10 @@ void OBCameraNode::onNewFrameCallback(const std::shared_ptr &frame, std::shared_ptr video_frame; if (frame->getType() == OB_FRAME_COLOR) { if (interleave_frame_enable_ && interleave_skip_enable_) { - interleave_skip_color_index_++; - if (interleave_skip_color_index_ % 2 == 0) { + if (std::abs(static_cast(getFrameTimestampUs(frame)) - + static_cast(depth_last_time_)) < 4000) { return; } - // updateStreamInfo(frame, color_stream_info_); } video_frame = frame->as(); } else if (frame->getType() == OB_FRAME_DEPTH) { @@ -2177,6 +2176,7 @@ void OBCameraNode::onNewFrameCallback(const std::shared_ptr &frame, if (interleave_frame_enable_ && interleave_skip_enable_) { if (video_frame->getMetadataValue(OB_FRAME_METADATA_TYPE_LASER_POWER_MODE) == interleave_skip_index_) { + depth_last_time_ = getFrameTimestampUs(frame); return; } } @@ -2188,27 +2188,6 @@ void OBCameraNode::onNewFrameCallback(const std::shared_ptr &frame, if (video_frame->getMetadataValue(OB_FRAME_METADATA_TYPE_LASER_POWER_MODE) != interleave_skip_index_) { return; - } else { - if (frame->getType() == OB_FRAME_IR_LEFT) { - if ((getFrameTimestampUs(frame) - left_last_time) > 37000) { - RCLCPP_WARN_STREAM(logger_, - "left this FrameTimestampUs: " << (getFrameTimestampUs(frame))); - RCLCPP_WARN_STREAM(logger_, "left last FrameTimestampUs: " << (left_last_time)); - RCLCPP_WARN_STREAM(logger_, "left-between current and previous fram " - << (getFrameTimestampUs(frame) - left_last_time)); - } - left_last_time = getFrameTimestampUs(frame); - } - if (frame->getType() == OB_FRAME_IR_RIGHT) { - if ((getFrameTimestampUs(frame) - right_last_time) > 37000) { - RCLCPP_WARN_STREAM(logger_, - "right this FrameTimestampUs: " << (getFrameTimestampUs(frame))); - RCLCPP_WARN_STREAM(logger_, "right last FrameTimestampUs: " << (right_last_time)); - RCLCPP_WARN_STREAM(logger_, "right-between current and previous fram " - << (getFrameTimestampUs(frame) - right_last_time)); - } - right_last_time = getFrameTimestampUs(frame); - } } } } else {