algoLib/sourceCode/workpieceHolePositioning_Export.h

131 lines
3.6 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; //孔间距_宽
double xLen; //x方向长 用于结果排序
double yLen; //y方向长 用于结果排序
double H;
}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;
typedef struct
{
double diameter; //轮胎直径
double thickness; //轮胎宽度
}WD_tireParam;
typedef struct
{
double len; //工件长
double width; //工件宽度
double thickness;
}WD_JiuruiWorkpieceParam;
typedef struct
{
SVzNL3DPoint center;
SVzNL3DPoint normDir; //方向向量(归一化)
double holeR;
}WD_HolePositionInfo;
typedef struct
{
double rotorDiameter;
double rotorH;
double removeGroundHOffset; //去除时的高度偏置,用于设置架子高度
double basket_L; //零件筐-长
double basket_W; //零件筐-宽
}WD_rotorAppParam;
//读版本号
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);
//单个孔或凹坑定位-华航孔定位
SG_APISHARED_EXPORT void wd_HolePositioning(
std::vector< std::vector<SVzNL3DPosition>>& scanLinesInput,
const SSG_lineSegParam lineSegPara,
const SSG_cornerParam cornerParam,
const SSG_outlierFilterParam filterParam,
const SSG_treeGrowParam growParam,
std::vector< WD_HolePositionInfo>& holePositioning,
int* errCode);
//砂轮盘中心孔定位
SG_APISHARED_EXPORT WD_HolePositionInfo sx_getDiscHolePose(
std::vector< std::vector<SVzNL3DPosition>>& scanLines,
const SSG_cornerParam cornerPara,
int* errCode);
//砂轮盘架子中心定位
SG_APISHARED_EXPORT SSG_pointPose sx_getDiscRackCenterPosition(
std::vector< std::vector<SVzNL3DPosition>>& src_scanLines,
const SSG_cornerParam cornerPara,
int* errCode);
//山东本事机电轮胎中心定位
SG_APISHARED_EXPORT void sx_getTireHolePose(
std::vector< std::vector<SVzNL3DPosition>>& scanLinesInput,
const SSG_cornerParam cornerPara,
const SSG_planeCalibPara groundCalibPara,
const WD_tireParam tireParam,
std::vector<WD_HolePositionInfo>& tirePositions,
int* errCode);
//宁波海瑞马定子芯中心定位
SG_APISHARED_EXPORT void sx_getRotorCorePose(
std::vector< std::vector<SVzNL3DPosition>>& scanLinesInput,
const SSG_cornerParam cornerPara,
const SSG_planeCalibPara groundCalibPara,
const WD_rotorAppParam rotorParam,
std::vector<WD_HolePositionInfo>& rotorPositions,
int* errCode);
//北京玖瑞工件定位
SG_APISHARED_EXPORT void Jiurui_getWorkpiecePose(
std::vector< std::vector<SVzNL3DPosition>>& scanLinesInput,
const SSG_cornerParam cornerPara,
const SSG_planeCalibPara groundCalibPara,
const WD_JiuruiWorkpieceParam workpieceParam,
std::vector<SSG_pointPose>& tirePositions,
int* errCode);