From 4d5b3a7370aa99600f60a4868eef01184f8ec3a2 Mon Sep 17 00:00:00 2001 From: slz Date: Tue, 25 Aug 2026 16:34:22 +0800 Subject: [PATCH] fix: harden timestamp CSV logger lifecycle and synced IMU setup --- orbbec_camera/src/ob_camera_node.cpp | 10 +++++----- orbbec_camera/src/timestamp_csv_logger.cpp | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/orbbec_camera/src/ob_camera_node.cpp b/orbbec_camera/src/ob_camera_node.cpp index b27ce7e6..b51500c9 100644 --- a/orbbec_camera/src/ob_camera_node.cpp +++ b/orbbec_camera/src/ob_camera_node.cpp @@ -820,11 +820,6 @@ void OBCameraNode::clean() noexcept { is_running_.store(false); is_camera_node_initialized_.store(false); - if (timestamp_csv_logger_) { - timestamp_csv_logger_->shutdown(); - timestamp_csv_logger_.reset(); - } - // Stop diagnostic timer and updater first BEFORE acquiring device_lock to prevent deadlock try { if (diagnostic_timer_) { @@ -884,6 +879,11 @@ void OBCameraNode::clean() noexcept { RCLCPP_DEBUG_STREAM(logger_, "Exception while stopping streams"); } + if (timestamp_csv_logger_) { + timestamp_csv_logger_->shutdown(); + timestamp_csv_logger_.reset(); + } + // Clean up d2c_viewer_ before cleaning buffers RCLCPP_DEBUG_STREAM(logger_, "Clean d2c_viewer"); try { diff --git a/orbbec_camera/src/timestamp_csv_logger.cpp b/orbbec_camera/src/timestamp_csv_logger.cpp index 291f3d9d..acd4f150 100644 --- a/orbbec_camera/src/timestamp_csv_logger.cpp +++ b/orbbec_camera/src/timestamp_csv_logger.cpp @@ -30,7 +30,7 @@ TimestampCsvLogger::TimestampCsvLogger(Config config, rclcpp::Logger logger) } } - if (config.csv_file_path.empty() || (!config.accel_enabled && !config.gyro_enabled)) { + if (config.csv_file_path.empty()) { return; }