78 lines
2.7 KiB
C
Raw Normal View History

#pragma once
#include <iostream>
#include <vector>
#include <memory>
#include <QString>
#include "workpieceHolePositioning_Export.h"
#include "VZNL_Types.h"
#include "VrTimeUtils.h"
#include "VrError.h"
#include "VrLog.h"
#include "IVrConfig.h"
#include "LaserDataLoader.h"
#include "IYDiscHolePoseStatus.h"
#include "PointCloudImageUtils.h"
#include "VrConvert.h"
#include "VrDateUtils.h"
struct RobotPose6D;
/**
* @brief 使
*
* eulerOrder 姿 (rx/ry/rz -> )
* 姿 ( -> roll/pitch/yaw)
* rotX/Y/Z Eye Rx*Ry*Rz
* outRotX/Y/Z Robot Rx*Ry*Rz
* "算法定义的工具系""机器人期望的 TCP 系"姿
* 0 姿
*/
struct HandEyeExtrinsic
{
int eulerOrder = 11;
double rotX = 0.0;
double rotY = 0.0;
double rotZ = 0.0;
double offsetX = 0.0;
double offsetY = 0.0;
double offsetZ = 0.0;
double outRotX = 0.0;
double outRotY = 0.0;
double outRotZ = 14.56;
};
class DetectPresenter
{
private:
/* data */
public:
DetectPresenter(/* args */);
~DetectPresenter();
static QString GetAlgoVersion();
/// 砂轮盘孔检测接口(调用 sx_getDiscHolePose
int DetectDiscHole(int cameraIndex,
std::vector<std::pair<EVzResultDataType, SVzLaserLineData>>& laserLines,
const VrAlgorithmParams& algorithmParams,
const VrDebugParam& debugParam,
LaserDataLoader& dataLoader,
const double clibMatrix[16],
const RobotPose6D& robotPose,
const HandEyeExtrinsic& extrinsic,
int poseOutputOrder,
DetectionResult& detectionResult);
/// 砂轮盘架子检测接口(调用 sx_getDiscRackCenterPosition
int DetectDiscRack(int cameraIndex,
std::vector<std::pair<EVzResultDataType, SVzLaserLineData>>& laserLines,
const VrAlgorithmParams& algorithmParams,
const VrDebugParam& debugParam,
LaserDataLoader& dataLoader,
const double clibMatrix[16],
const RobotPose6D& robotPose,
const HandEyeExtrinsic& extrinsic,
int poseOutputOrder,
DetectionResult& detectionResult);
};