对上交代码进行修改,主要将能量机关去掉,添加了同济的PnP位姿解算,但是同济有个四元数,获取IMU部分没有启用,可能导致精度不够。当前还存在反陀螺功能,修改为逻辑和弹道预测相结合,主要在时间关系上进行调整。

This commit is contained in:
2026-03-21 11:57:34 +08:00
commit 56985997ae
80 changed files with 60253 additions and 0 deletions

View File

@@ -0,0 +1,58 @@
//
// Created by zhikun on 18-11-7.
//
#ifndef _CAMERA_WRAPPER_H_
#define _CAMERA_WRAPPER_H_
#include <additions.h>
#include <opencv2/core.hpp>
#include <camera/wrapper_head.h>
#ifdef Windows
#include "camera/CameraApi.h"
#elif defined(Linux) || defined(Darwin)
#include <camera/camera_api.h>
#endif
class CameraWrapper: public WrapperHead {
friend void cameraCallback(CameraHandle hCamera, BYTE *pFrameBuffer, tSdkFrameHead* pFrameHead,PVOID pContext);
private:
const std::string name;
//int mode;
//bool init_done;
unsigned char* rgb_buffer;
int camera_cnts;
int camera_status;
tSdkCameraDevInfo camera_enum_list[2];
int h_camera;
char camera_name[32];
tSdkCameraCapbility tCapability;
tSdkFrameHead frame_info;
BYTE *pby_buffer;
cv::Mat image_header;
int channel;
RoundQueue<cv::Mat, 2> src_queue;
public:
int gain;
int exposure;
int mode;
bool init_done;
CameraWrapper(int exposure, int gain, int camera_mode=1, const std::string &n="NULL");
~CameraWrapper() final;
bool init() final;
bool read(cv::Mat& src) final;
bool readRaw(cv::Mat& src);
bool readProcessed(cv::Mat& src);
bool readCallback(cv::Mat& src);
};
#endif /* _CAMERA_WRAPPER_H_ */