10 #ifndef __STEREO_CAMERA_COMMOM_HPP__ 11 #define __STEREO_CAMERA_COMMOM_HPP__ 16 #include <condition_variable> 17 #include <opencv2/opencv.hpp> 47 typedef struct TimeFrame{
50 std::chrono::microseconds timeStamp;
59 int m_serialNumber = 0;
60 int m_threshold = 120;
61 float m_frameRate = 30.0;
62 int m_ipLastSegment = 15;
64 bool m_shareMemSupport =
false;
65 bool m_udpH264Support =
false;
66 bool m_isOpened =
false;
67 bool m_isCompute =
false;
72 TimeFrameType m_stampFrame, m_dispFrame;
74 cv::Mat m_leftXi,m_leftRotation,m_leftIntrinsic,m_leftDistortion;
75 cv::Mat m_rightXi,m_rightRotation,m_rightIntrinsic,m_rightDistortion;
76 cv::Mat m_translation;
78 cv::Mat m_kfe, m_fmap[2], m_lmap[2][2], m_lagerFmap[2];
81 std::string m_logName =
"StereoCamera";
83 std::mutex m_capLock, m_dispLock;
84 std::condition_variable m_capTrigger, m_dispTrigger;
86 cv::VideoCapture *m_videoCap =
nullptr;
88 std::thread *m_capWorker =
nullptr;
89 std::thread *m_dispWorker =
nullptr;
159 virtual bool isOpened(
void);
172 virtual bool setLogLevel(
int level);
185 virtual bool setPosNumber(
int posNumber);
198 virtual bool setSerialNumber(
int serialNumber);
211 virtual bool setRawFrameRate(
int frameRate);
225 virtual bool setRawFrameSize(cv::Size frameSize);
240 virtual bool setRectFrameSize(cv::Size frameSize);
257 virtual bool setCalibParams(std::vector<cv::Mat> paramsArray,
bool flag =
false);
270 virtual int getLogLevel(
void)
const;
283 virtual int getDeviceNode(
void)
const;
296 virtual int getPosNumber(
void)
const;
309 virtual int getSerialNumber(
void)
const;
321 virtual float getRawFrameRate(
void)
const;
333 virtual cv::Size getRawFrameSize(
void)
const;
349 virtual bool getRawFrame(cv::Mat &frame, std::chrono::microseconds &timeStamp);
370 virtual bool getStereoFrame(cv::Mat &left, cv::Mat &right, std::chrono::microseconds &timeStamp);
391 virtual bool getDepthFrame(cv::Mat& depth,
bool color, std::chrono::microseconds &timeStamp);
412 virtual bool getPointCloud(std::vector<cv::Vec3f> &pcl, std::chrono::microseconds &timeStamp);
434 virtual bool getPointCloud(std::vector<PCLType>& pcl, std::chrono::microseconds& timeStamp);
453 virtual bool getCalibParams(std::vector<cv::Mat> ¶msArray,
bool flag =
false);
473 virtual bool getRectStereoFrame(cv::Mat &left, cv::Mat &right, cv::Mat &feim);
495 virtual bool getRectStereoFrame(cv::Mat &left, cv::Mat &right, cv::Mat &feim, std::chrono::microseconds &timeStamp);
511 virtual bool loadConfig(std::string fileName);
528 virtual bool loadCalibParams(std::string fileName);
541 virtual bool saveConfig(std::string fileName =
"stereo_camera_config.yaml");
554 virtual bool saveCalibParams(std::string fileName =
"stereo_camera_calibparams.yaml");
573 virtual bool startCapture(
bool udpFlag =
false,
bool shmFlag =
false);
588 virtual bool startStereoCompute(
void);
603 virtual bool stopStereoCompute(
void);
620 virtual bool stopCapture(
void);
623 #endif //__STEREO_CAMERA_COMMOM_HPP__ This file is part of UnitreeCameraSDK, which declare the APIs of log system.
this class integrate camera control and stereo vision algorithm
Definition: StereoCameraCommon.hpp:38
cv::Vec3f pts
points coordinates (x, y, z)
Definition: StereoCameraCommon.hpp:29
cv::Vec3b clr
points color (b, g, r)
Definition: StereoCameraCommon.hpp:30
Definition: SystemLog.hpp:18
this struct is used for RGB point cloud capture and display
Definition: StereoCameraCommon.hpp:28