algoLib/sourceCode/workpieceHolePositioning_Export.h
jerryzeng 7b66de6dd7 workpieceHolePositioning v1.1.0
对工件姿态规范化为中心点(操作点)加三个方向矢量
2026-01-31 14:36:54 +08:00

51 lines
1.4 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#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; //z方向向量归一化
SVzNL3DPoint y_dir; //y方向向量归一化
SVzNL3DPoint x_dir; //x方向向量归一化
}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);