This commit is contained in:
杰仔 2026-03-26 07:54:07 +08:00
commit 86fb9e0d21
3 changed files with 17 additions and 14 deletions

View File

@ -682,7 +682,7 @@ void sg_getLineLocalPeaks_2(
std::vector< SVzNL3DPosition> zBtm;
for (int i = 0; i < dataSize; i++)
{
if (i == 355)
if (i == 141)
int kkk = 1;
lineData[i].nPointIdx = i;
SVzNL3DPosition* curr_data = &lineData[i];

View File

@ -11,7 +11,8 @@
//version 1.2.0 : 算法完成了6轴验证
//version 1.3.0 : (1)算法进行了迭代 (2)对结果进行了分层和排序,输出最上层目标
//version 1.4.0 : 添加了华航孔定位功能
std::string m_strVersion = "1.4.0";
//version 1.4.1 : 华航孔定位客户发布初始版本修正了1.4.0版本的一些问题
std::string m_strVersion = "1.4.1";
const char* wd_workpieceHolePositioningVersion(void)
{
return m_strVersion.c_str();
@ -430,7 +431,7 @@ void wd_getHoleInfo(
int nullPtSize = 0;
SSG_ROIRectD roi = { -1, -1, -1, -1 };
SVzNLRange ptIdxRange = { -1, -1 };
if (a_tree.treeNodes.size() > 2)
if (a_tree.treeNodes.size() > 0)
{
for (int m = 0; m < (int)a_tree.treeNodes.size(); m++)
{
@ -465,7 +466,7 @@ void wd_getHoleInfo(
int nullPtSize = 0;
SSG_ROIRectD roi = { -1, -1, -1, -1 };
SVzNLRange ptIdxRange = { -1, -1 };
if (a_tree.treeNodes.size() > 2)
if (a_tree.treeNodes.size() > 0)
{
for (int m = 0; m < (int)a_tree.treeNodes.size(); m++)
{
@ -1062,12 +1063,12 @@ void wd_HolePositioning(
std::vector<std::vector<SSG_basicFeature1D>> zMaxPeaks_v;
for (int line = 0; line < lineNum; line++)
{
if (line == 1047)
if (line == 152)
int kkk = 1;
std::vector<SVzNL3DPosition>& lineData = scanLines[line];
//滤波,滤除异常点
sg_lineDataRemoveOutlier_changeOriginData(&lineData[0], linePtNum, filterParam);
//sg_lineDataRemoveOutlier_changeOriginData(&lineData[0], linePtNum, filterParam);
std::vector< SSG_pntDirAngle> line_ptDirAngles;
wd_computeDirAngle_wholeLine(lineData, cornerParam, line_ptDirAngles);
@ -1108,12 +1109,12 @@ void wd_HolePositioning(
std::vector<std::vector<SSG_pntDirAngle>> pntDirAngles_h;
for (int line = 0; line < linePtNum; line++)
{
if (line == 974)
if (line == 234)
int kkk = 1;
std::vector<SVzNL3DPosition>& lineData = hLines_raw[line];
//滤波,滤除异常点
int ptNum = (int)lineData.size();
sg_lineDataRemoveOutlier_changeOriginData(&lineData[0], ptNum, filterParam);
//sg_lineDataRemoveOutlier_changeOriginData(&lineData[0], ptNum, filterParam);
std::vector< SSG_pntDirAngle> line_ptDirAngles;
wd_computeDirAngle_wholeLine(lineData, cornerParam, line_ptDirAngles);
@ -1135,6 +1136,8 @@ void wd_HolePositioning(
std::vector<_zMaxInfo> objPeaks;
for (int line = 0; line < lineNum; line++)
{
if (line == 144)
int kkk = 1;
std::vector<SSG_basicFeature1D>& a_lineZMax = zMaxPeaks_v[line];
for (int j = 0; j < (int)a_lineZMax.size(); j++)
{
@ -1188,8 +1191,8 @@ void wd_HolePositioning(
{
a_info.pkValue = objPeaks[j].pkValue;
a_info.zMaxPos = objPeaks[j].zMaxPos;
objPeaks[j].flag = -1;
}
objPeaks[j].flag = -1;
}
}
objPeaks[i] = a_info;

View File

@ -830,11 +830,11 @@ void HuaHang_holePosition_test(void)
printf("ver:%s\n", ver);
#if TEST_COMPUTE_HOLE
for (int grp = 1; grp <= 3; grp++)
for (int grp = 0; grp <= 3; grp++)
{
for (int fidx = fileIdx[grp].nMin; fidx <= fileIdx[grp].nMax; fidx++)
{
//fidx =4;
//fidx =2;
char _scan_file[256];
sprintf_s(_scan_file, "%sLaserData_%d.txt", dataPath[grp], fidx);
std::vector<std::vector< SVzNL3DPosition>> scanLines;
@ -846,7 +846,7 @@ void HuaHang_holePosition_test(void)
SSG_lineSegParam lineSegPara;
lineSegPara.distScale = 25.0;
lineSegPara.segGapTh_y = 15.0; //
lineSegPara.segGapTh_y = 25.0; //
lineSegPara.segGapTh_z = 0.0; //z方向间隔大于10mm认为是分段
SSG_cornerParam cornerParam;
@ -865,8 +865,8 @@ void HuaHang_holePosition_test(void)
growParam.yDeviation_max = 4.0;
growParam.maxSkipDistance = 0.0;
growParam.zDeviation_max = 10.0;//
growParam.minLTypeTreeLen = 2.0; //mm
growParam.minVTypeTreeLen = 2.0; //mm
growParam.minLTypeTreeLen = 1.0; //mm
growParam.minVTypeTreeLen = 1.0; //mm
WD_workpieceHoleParam workpiecePara;
workpiecePara.workpieceType = 0;
workpiecePara.holeDiameter = 6.0; //