Skip to content

Commit b6ca116

Browse files
committed
Fix the crash bug caused by enable_d2c_viewer in hotplug
1 parent 5d6ec47 commit b6ca116

File tree

1 file changed

+9
-4
lines changed

1 file changed

+9
-4
lines changed

orbbec_camera/src/d2c_viewer.cpp

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -52,18 +52,23 @@ void D2CViewer::messageCallback(const sensor_msgs::msg::Image::ConstSharedPtr& r
5252
rgb_msg->height, depth_msg->width, depth_msg->height);
5353
return;
5454
}
55-
auto rgb_encode = (rgb_msg->step == 5760) ? sensor_msgs::image_encodings::RGB8 : sensor_msgs::image_encodings::RGBA8;
55+
auto rgb_encode = (rgb_msg->step == 5760) ? sensor_msgs::image_encodings::RGB8
56+
: sensor_msgs::image_encodings::RGBA8;
5657
auto gray_type = (rgb_msg->step == 5760) ? cv::COLOR_GRAY2RGB : cv::COLOR_GRAY2RGBA;
5758
auto rgb_img_ptr = cv_bridge::toCvCopy(rgb_msg, rgb_encode);
5859
auto depth_img_ptr = cv_bridge::toCvCopy(depth_msg, sensor_msgs::image_encodings::TYPE_16UC1);
5960
cv::Mat gray_depth, depth_img, d2c_img;
6061
depth_img_ptr->image.convertTo(gray_depth, CV_8UC1);
6162
cv::cvtColor(gray_depth, depth_img, gray_type);
62-
depth_img.setTo(cv::Scalar(255, 255, 0 ), depth_img);
63+
depth_img.setTo(cv::Scalar(255, 255, 0), depth_img);
6364
cv::bitwise_or(rgb_img_ptr->image, depth_img, d2c_img);
6465
sensor_msgs::msg::Image::SharedPtr d2c_msg =
6566
cv_bridge::CvImage(std_msgs::msg::Header(), rgb_encode, d2c_img).toImageMsg();
66-
d2c_msg->header = rgb_msg->header;
67-
d2c_viewer_pub_->publish(*d2c_msg);
67+
if (d2c_msg != nullptr) {
68+
d2c_msg->header = rgb_msg->header;
69+
d2c_viewer_pub_->publish(*d2c_msg);
70+
}else{
71+
RCLCPP_ERROR(logger_, "-----------------------d2c_viewer publishing failed-----------------------");
72+
}
6873
}
6974
} // namespace orbbec_camera

0 commit comments

Comments
 (0)