workpieceHolePositioning version 1.4.1 :
华航孔定位客户发布初始版本,修正了1.4.0版本的一些问题
This commit is contained in:
parent
1036c152c1
commit
de3bc61e5f
@ -682,7 +682,7 @@ void sg_getLineLocalPeaks_2(
|
|||||||
std::vector< SVzNL3DPosition> zBtm;
|
std::vector< SVzNL3DPosition> zBtm;
|
||||||
for (int i = 0; i < dataSize; i++)
|
for (int i = 0; i < dataSize; i++)
|
||||||
{
|
{
|
||||||
if (i == 355)
|
if (i == 141)
|
||||||
int kkk = 1;
|
int kkk = 1;
|
||||||
lineData[i].nPointIdx = i;
|
lineData[i].nPointIdx = i;
|
||||||
SVzNL3DPosition* curr_data = &lineData[i];
|
SVzNL3DPosition* curr_data = &lineData[i];
|
||||||
|
|||||||
@ -11,7 +11,8 @@
|
|||||||
//version 1.2.0 : 算法完成了6轴验证
|
//version 1.2.0 : 算法完成了6轴验证
|
||||||
//version 1.3.0 : (1)算法进行了迭代 (2)对结果进行了分层和排序,输出最上层目标
|
//version 1.3.0 : (1)算法进行了迭代 (2)对结果进行了分层和排序,输出最上层目标
|
||||||
//version 1.4.0 : 添加了华航孔定位功能
|
//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)
|
const char* wd_workpieceHolePositioningVersion(void)
|
||||||
{
|
{
|
||||||
return m_strVersion.c_str();
|
return m_strVersion.c_str();
|
||||||
@ -430,7 +431,7 @@ void wd_getHoleInfo(
|
|||||||
int nullPtSize = 0;
|
int nullPtSize = 0;
|
||||||
SSG_ROIRectD roi = { -1, -1, -1, -1 };
|
SSG_ROIRectD roi = { -1, -1, -1, -1 };
|
||||||
SVzNLRange ptIdxRange = { -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++)
|
for (int m = 0; m < (int)a_tree.treeNodes.size(); m++)
|
||||||
{
|
{
|
||||||
@ -465,7 +466,7 @@ void wd_getHoleInfo(
|
|||||||
int nullPtSize = 0;
|
int nullPtSize = 0;
|
||||||
SSG_ROIRectD roi = { -1, -1, -1, -1 };
|
SSG_ROIRectD roi = { -1, -1, -1, -1 };
|
||||||
SVzNLRange ptIdxRange = { -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++)
|
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;
|
std::vector<std::vector<SSG_basicFeature1D>> zMaxPeaks_v;
|
||||||
for (int line = 0; line < lineNum; line++)
|
for (int line = 0; line < lineNum; line++)
|
||||||
{
|
{
|
||||||
if (line == 1047)
|
if (line == 152)
|
||||||
int kkk = 1;
|
int kkk = 1;
|
||||||
|
|
||||||
std::vector<SVzNL3DPosition>& lineData = scanLines[line];
|
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;
|
std::vector< SSG_pntDirAngle> line_ptDirAngles;
|
||||||
wd_computeDirAngle_wholeLine(lineData, cornerParam, line_ptDirAngles);
|
wd_computeDirAngle_wholeLine(lineData, cornerParam, line_ptDirAngles);
|
||||||
@ -1108,12 +1109,12 @@ void wd_HolePositioning(
|
|||||||
std::vector<std::vector<SSG_pntDirAngle>> pntDirAngles_h;
|
std::vector<std::vector<SSG_pntDirAngle>> pntDirAngles_h;
|
||||||
for (int line = 0; line < linePtNum; line++)
|
for (int line = 0; line < linePtNum; line++)
|
||||||
{
|
{
|
||||||
if (line == 974)
|
if (line == 234)
|
||||||
int kkk = 1;
|
int kkk = 1;
|
||||||
std::vector<SVzNL3DPosition>& lineData = hLines_raw[line];
|
std::vector<SVzNL3DPosition>& lineData = hLines_raw[line];
|
||||||
//滤波,滤除异常点
|
//滤波,滤除异常点
|
||||||
int ptNum = (int)lineData.size();
|
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;
|
std::vector< SSG_pntDirAngle> line_ptDirAngles;
|
||||||
wd_computeDirAngle_wholeLine(lineData, cornerParam, line_ptDirAngles);
|
wd_computeDirAngle_wholeLine(lineData, cornerParam, line_ptDirAngles);
|
||||||
@ -1135,6 +1136,8 @@ void wd_HolePositioning(
|
|||||||
std::vector<_zMaxInfo> objPeaks;
|
std::vector<_zMaxInfo> objPeaks;
|
||||||
for (int line = 0; line < lineNum; line++)
|
for (int line = 0; line < lineNum; line++)
|
||||||
{
|
{
|
||||||
|
if (line == 144)
|
||||||
|
int kkk = 1;
|
||||||
std::vector<SSG_basicFeature1D>& a_lineZMax = zMaxPeaks_v[line];
|
std::vector<SSG_basicFeature1D>& a_lineZMax = zMaxPeaks_v[line];
|
||||||
for (int j = 0; j < (int)a_lineZMax.size(); j++)
|
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.pkValue = objPeaks[j].pkValue;
|
||||||
a_info.zMaxPos = objPeaks[j].zMaxPos;
|
a_info.zMaxPos = objPeaks[j].zMaxPos;
|
||||||
objPeaks[j].flag = -1;
|
|
||||||
}
|
}
|
||||||
|
objPeaks[j].flag = -1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
objPeaks[i] = a_info;
|
objPeaks[i] = a_info;
|
||||||
|
|||||||
@ -830,11 +830,11 @@ void HuaHang_holePosition_test(void)
|
|||||||
printf("ver:%s\n", ver);
|
printf("ver:%s\n", ver);
|
||||||
|
|
||||||
#if TEST_COMPUTE_HOLE
|
#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++)
|
for (int fidx = fileIdx[grp].nMin; fidx <= fileIdx[grp].nMax; fidx++)
|
||||||
{
|
{
|
||||||
//fidx =4;
|
//fidx =2;
|
||||||
char _scan_file[256];
|
char _scan_file[256];
|
||||||
sprintf_s(_scan_file, "%sLaserData_%d.txt", dataPath[grp], fidx);
|
sprintf_s(_scan_file, "%sLaserData_%d.txt", dataPath[grp], fidx);
|
||||||
std::vector<std::vector< SVzNL3DPosition>> scanLines;
|
std::vector<std::vector< SVzNL3DPosition>> scanLines;
|
||||||
@ -846,7 +846,7 @@ void HuaHang_holePosition_test(void)
|
|||||||
|
|
||||||
SSG_lineSegParam lineSegPara;
|
SSG_lineSegParam lineSegPara;
|
||||||
lineSegPara.distScale = 25.0;
|
lineSegPara.distScale = 25.0;
|
||||||
lineSegPara.segGapTh_y = 15.0; //
|
lineSegPara.segGapTh_y = 25.0; //
|
||||||
lineSegPara.segGapTh_z = 0.0; //z方向间隔大于10mm认为是分段
|
lineSegPara.segGapTh_z = 0.0; //z方向间隔大于10mm认为是分段
|
||||||
|
|
||||||
SSG_cornerParam cornerParam;
|
SSG_cornerParam cornerParam;
|
||||||
@ -865,8 +865,8 @@ void HuaHang_holePosition_test(void)
|
|||||||
growParam.yDeviation_max = 4.0;
|
growParam.yDeviation_max = 4.0;
|
||||||
growParam.maxSkipDistance = 0.0;
|
growParam.maxSkipDistance = 0.0;
|
||||||
growParam.zDeviation_max = 10.0;//
|
growParam.zDeviation_max = 10.0;//
|
||||||
growParam.minLTypeTreeLen = 2.0; //mm
|
growParam.minLTypeTreeLen = 1.0; //mm
|
||||||
growParam.minVTypeTreeLen = 2.0; //mm
|
growParam.minVTypeTreeLen = 1.0; //mm
|
||||||
WD_workpieceHoleParam workpiecePara;
|
WD_workpieceHoleParam workpiecePara;
|
||||||
workpiecePara.workpieceType = 0;
|
workpiecePara.workpieceType = 0;
|
||||||
workpiecePara.holeDiameter = 6.0; //
|
workpiecePara.holeDiameter = 6.0; //
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user