Galaxis Codebase  1.0.0
Team Galaxis software stack for the Carolo Cup 2023 - ROS2 based software
QRCodeDetectionNode.hpp
Go to the documentation of this file.
1 #ifndef PARAM_IDENT_NODE_HPP_
2 #define PARAM_IDENT_NODE_HPP_
3 
4 #include <vector>
5 #include <string>
6 #include <opencv2/core.hpp>
7 #include <opencv2/objdetect.hpp>
8 #include <opencv2/imgproc/imgproc.hpp>
9 #include <std_msgs/msg/bool.hpp>
10 #include <sensor_msgs/msg/image.hpp>
11 #include <cv_bridge/cv_bridge.h>
12 
13 #include <galaxis/GalaxisNode.hpp>
14 #include <galaxis/messages.hpp>
15 
16 
18 private:
19  bool m_qrCodeVisible = false;
20  cv::QRCodeDetector m_detector;
21  cv_bridge::CvImage m_imgBridge;
22 
24 
25  // ros2
27  rclcpp::Publisher<QRCodeDetectType>::SharedPtr m_qrCodeDetectionPubSPtr;
28  // rclcpp::Publisher<sensor_msgs::msg::Image>::SharedPtr m_debugImgPublisher;
29  rclcpp::Subscription<sensor_msgs::msg::Image>::SharedPtr m_imgSubscriber;
30 
31  int m_foundQRCount = 0;
33 
34  bool m_qrCodeFoundSometime = false;
35 
36 public:
38 
39  void test_detection_loop(std::string path);
40  void onImgCallback(const sensor_msgs::msg::Image::SharedPtr p_ImgMsg);
41 
42 private:
43  bool checkBoundingBox(cv::Mat &bbox, cv::Mat &image);
44  void drawBox(cv::Mat &im, cv::Mat &bbox);
45  void publishQR(rclcpp::Time stamp, bool detected);
46 
47  void publishImage(cv::Mat &image);
48 };
49 
50 #endif //PARAM_IDENT_NODE_HPP_
QRCodeDetectionNode::m_qrCodeFoundSometime
bool m_qrCodeFoundSometime
Definition: QRCodeDetectionNode.hpp:34
QRCodeDetectionNode::m_foundQRCountForSendingMessage
int m_foundQRCountForSendingMessage
Definition: QRCodeDetectionNode.hpp:32
QRCodeDetectionNode::m_qrCodeDetectionPubSPtr
rclcpp::Publisher< QRCodeDetectType >::SharedPtr m_qrCodeDetectionPubSPtr
Definition: QRCodeDetectionNode.hpp:27
QRCodeDetectionNode::QRCodeDetectionNode
QRCodeDetectionNode()
Definition: QRCodeDetectionNode.cpp:33
QRCodeDetectionNode::m_publisherSeqNumber
int m_publisherSeqNumber
Definition: QRCodeDetectionNode.hpp:26
QRCodeDetectionNode::m_detector
cv::QRCodeDetector m_detector
Definition: QRCodeDetectionNode.hpp:20
QRCodeDetectionNode::m_imgSubscriber
rclcpp::Subscription< sensor_msgs::msg::Image >::SharedPtr m_imgSubscriber
Definition: QRCodeDetectionNode.hpp:29
QRCodeDetectionNode::checkBoundingBox
bool checkBoundingBox(cv::Mat &bbox, cv::Mat &image)
Definition: QRCodeDetectionNode.cpp:143
QRCodeDetectionNode::m_imgBridge
cv_bridge::CvImage m_imgBridge
Definition: QRCodeDetectionNode.hpp:21
QRCodeDetectionNode
Definition: QRCodeDetectionNode.hpp:17
QRCodeDetectionNode::test_detection_loop
void test_detection_loop(std::string path)
Definition: QRCodeDetectionNode.cpp:89
GalaxisNode.hpp
QRCodeDetectionNode::m_qrCodeVisible
bool m_qrCodeVisible
Definition: QRCodeDetectionNode.hpp:19
QRCodeDetectionNode::m_foundQRCount
int m_foundQRCount
Definition: QRCodeDetectionNode.hpp:31
QRCodeDetectionNode::onImgCallback
void onImgCallback(const sensor_msgs::msg::Image::SharedPtr p_ImgMsg)
Definition: QRCodeDetectionNode.cpp:50
QRCodeDetectionNode::publishImage
void publishImage(cv::Mat &image)
GalaxisNode
Definition: GalaxisNode.hpp:21
QRCodeDetectionNode::drawBox
void drawBox(cv::Mat &im, cv::Mat &bbox)
Definition: QRCodeDetectionNode.cpp:161
QRCodeDetectionNode::publishQR
void publishQR(rclcpp::Time stamp, bool detected)
Definition: QRCodeDetectionNode.cpp:125
QRCodeDetectionNode::m_settingsJsonFilename
std::string m_settingsJsonFilename
Definition: QRCodeDetectionNode.hpp:23
messages.hpp