51 lines
1.3 KiB
C++
51 lines
1.3 KiB
C++
#pragma once
|
|
|
|
#include "SG_algo_Export.h"
|
|
#include <vector>
|
|
|
|
#define _OUTPUT_DEBUG_DATA 1
|
|
|
|
typedef struct
|
|
{
|
|
int workpieceType;
|
|
double holeDiameter; //孔直径
|
|
double holeDist_L; //孔间距_长
|
|
double holeDist_W; //孔间距_宽
|
|
}WD_workpieceHoleParam;
|
|
|
|
typedef struct
|
|
{
|
|
int workpieceType;
|
|
std::vector<SVzNL3DPoint> holes;
|
|
std::vector<SVzNL3DPoint> holesDir;
|
|
SVzNL3DPoint center;
|
|
SVzNL3DPoint z_dir;
|
|
SVzNL3DPoint y_dir;
|
|
SSG_EulerAngles workpiecePose;
|
|
}WD_workpieceInfo;
|
|
|
|
//读版本号
|
|
SG_APISHARED_EXPORT const char* wd_workpieceHolePositioningVersion(void);
|
|
|
|
//相机水平安装计算地面调平参数。。
|
|
//旋转矩阵为调平参数,即将平面法向调整为垂直向量的参数
|
|
SG_APISHARED_EXPORT SSG_planeCalibPara wd_getGroundCalibPara(
|
|
std::vector< std::vector<SVzNL3DPosition>>& scanLines);
|
|
|
|
//相机水平时姿态调平,并去除地面
|
|
SG_APISHARED_EXPORT void wd_lineDataR(
|
|
std::vector< SVzNL3DPosition>& a_line,
|
|
const double* camPoseR,
|
|
double groundH);
|
|
|
|
//工件孔定位
|
|
SG_APISHARED_EXPORT void wd_workpieceHolePositioning(
|
|
std::vector< std::vector<SVzNL3DPosition>>& scanLinesInput,
|
|
const WD_workpieceHoleParam workpiecePara,
|
|
const SSG_lineSegParam lineSegPara,
|
|
const SSG_outlierFilterParam filterParam,
|
|
const SSG_treeGrowParam growParam,
|
|
const SSG_planeCalibPara groundCalibPara,
|
|
std::vector< WD_workpieceInfo>& workpiecePositioning,
|
|
int* errCode);
|