2026-03-25 09:35:56 +08:00
|
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
|
|
#include "SG_algo_Export.h"
|
|
|
|
|
|
#include <vector>
|
|
|
|
|
|
|
|
|
|
|
|
#define _OUTPUT_DEBUG_DATA 1
|
|
|
|
|
|
|
|
|
|
|
|
typedef struct
|
|
|
|
|
|
{
|
|
|
|
|
|
int workpieceType;
|
|
|
|
|
|
double holeDiameter; //<2F><>ֱ<EFBFBD><D6B1>
|
|
|
|
|
|
double holeDist_L; //<2F><EFBFBD><D7BC><EFBFBD>_<EFBFBD><5F>
|
|
|
|
|
|
double holeDist_W; //<2F><EFBFBD><D7BC><EFBFBD>_<EFBFBD><5F>
|
|
|
|
|
|
double xLen; //x<><78><EFBFBD><EFBFBD> <20><><EFBFBD>ڽ<EFBFBD><DABD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
double yLen; //y<><79><EFBFBD><EFBFBD> <20><><EFBFBD>ڽ<EFBFBD><DABD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
double H;
|
|
|
|
|
|
}WD_workpieceHoleParam;
|
|
|
|
|
|
|
|
|
|
|
|
typedef struct
|
|
|
|
|
|
{
|
|
|
|
|
|
int workpieceType;
|
|
|
|
|
|
std::vector<SVzNL3DPoint> holes;
|
|
|
|
|
|
std::vector<SVzNL3DPoint> holesDir;
|
|
|
|
|
|
SVzNL3DPoint center;
|
|
|
|
|
|
SVzNL3DPoint z_dir; //z<><7A><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>
|
|
|
|
|
|
SVzNL3DPoint y_dir; //y<><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>
|
|
|
|
|
|
SVzNL3DPoint x_dir; //x<><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>
|
|
|
|
|
|
}WD_workpieceInfo;
|
|
|
|
|
|
|
2026-06-20 23:38:30 +08:00
|
|
|
|
typedef struct
|
|
|
|
|
|
{
|
|
|
|
|
|
double diameter; //<2F><>ֱ̥<CCA5><D6B1>
|
|
|
|
|
|
double thickness; //<2F><>̥<EFBFBD><CCA5><EFBFBD><EFBFBD>
|
|
|
|
|
|
}WD_tireParam;
|
|
|
|
|
|
|
2026-03-26 08:30:31 +08:00
|
|
|
|
typedef struct
|
|
|
|
|
|
{
|
|
|
|
|
|
SVzNL3DPoint center;
|
|
|
|
|
|
SVzNL3DPoint normDir; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>
|
2026-06-26 14:35:12 +08:00
|
|
|
|
double holeR;
|
2026-03-26 08:30:31 +08:00
|
|
|
|
}WD_HolePositionInfo;
|
|
|
|
|
|
|
2026-06-26 14:35:12 +08:00
|
|
|
|
typedef struct
|
|
|
|
|
|
{
|
|
|
|
|
|
double rotorDiameter;
|
|
|
|
|
|
double removeGroundHOffset; //ȥ<><C8A5>ʱ<EFBFBD>ĸ߶<C4B8>ƫ<EFBFBD>ã<EFBFBD><C3A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ü<EFBFBD><C3BC>Ӹ߶<D3B8>
|
|
|
|
|
|
double basket_L; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-<2D><>
|
|
|
|
|
|
double basket_W; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-<2D><>
|
|
|
|
|
|
}WD_rotorAppParam;
|
|
|
|
|
|
|
2026-03-25 09:35:56 +08:00
|
|
|
|
//<2F><><EFBFBD>汾<EFBFBD><E6B1BE>
|
|
|
|
|
|
SG_APISHARED_EXPORT const char* wd_workpieceHolePositioningVersion(void);
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>ˮƽ<CBAE><C6BD>װ<EFBFBD><D7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƽ<EFBFBD><C6BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
//<2F><>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>ƽ<EFBFBD><C6BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƽ<EFBFBD>淨<EFBFBD><E6B7A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD><EFBFBD>IJ<EFBFBD><C4B2><EFBFBD>
|
|
|
|
|
|
SG_APISHARED_EXPORT SSG_planeCalibPara wd_getGroundCalibPara(
|
|
|
|
|
|
std::vector< std::vector<SVzNL3DPosition>>& scanLines);
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>ˮƽʱ<C6BD><CAB1>̬<EFBFBD><CCAC>ƽ<EFBFBD><C6BD><EFBFBD><EFBFBD>ȥ<EFBFBD><C8A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
SG_APISHARED_EXPORT void wd_lineDataR(
|
|
|
|
|
|
std::vector< SVzNL3DPosition>& a_line,
|
|
|
|
|
|
const double* camPoseR,
|
|
|
|
|
|
double groundH);
|
|
|
|
|
|
|
2026-03-26 08:30:31 +08:00
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ-<2D><><EFBFBD>շ<EFBFBD><D5B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ
|
2026-03-25 09:35:56 +08:00
|
|
|
|
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);
|
2026-03-26 08:30:31 +08:00
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>Ӷ<F2B0BCBF>λ-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ
|
|
|
|
|
|
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,
|
2026-06-20 23:38:30 +08:00
|
|
|
|
int* errCode);
|
|
|
|
|
|
|
|
|
|
|
|
//ɰ<><C9B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<C4BF>λ
|
|
|
|
|
|
SG_APISHARED_EXPORT WD_HolePositionInfo sx_getDiscHolePose(
|
|
|
|
|
|
std::vector< std::vector<SVzNL3DPosition>>& scanLines,
|
|
|
|
|
|
const SSG_cornerParam cornerPara,
|
|
|
|
|
|
int* errCode);
|
|
|
|
|
|
|
|
|
|
|
|
//ɰ<><C9B0><EFBFBD>̼<EFBFBD><CCBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ķ<EFBFBD>λ
|
|
|
|
|
|
SG_APISHARED_EXPORT SSG_pointPose sx_getDiscRackCenterPosition(
|
|
|
|
|
|
std::vector< std::vector<SVzNL3DPosition>>& src_scanLines,
|
|
|
|
|
|
const SSG_cornerParam cornerPara,
|
|
|
|
|
|
int* errCode);
|
|
|
|
|
|
|
|
|
|
|
|
//ɽ<><C9BD><EFBFBD><EFBFBD><EFBFBD>»<EFBFBD><C2BB><EFBFBD><EFBFBD><EFBFBD>̥<EFBFBD><CCA5><EFBFBD>Ķ<EFBFBD>λ
|
|
|
|
|
|
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,
|
2026-06-26 14:35:12 +08:00
|
|
|
|
int* errCode);
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>о<EFBFBD><D0BE><EFBFBD>Ķ<EFBFBD>λ
|
|
|
|
|
|
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,
|
2026-03-26 08:30:31 +08:00
|
|
|
|
int* errCode);
|