hybridPosePositioning

version 1.4.4 : 转子钢芯,添加了异常保护
This commit is contained in:
jerryzeng 2026-09-27 18:34:17 +08:00
parent 7b3cb958ef
commit 85fb6d1434
2 changed files with 27 additions and 15 deletions

View File

@ -2364,13 +2364,13 @@ void HaiRuiMa_rotorCorePositioning_test(void)
};
SVzNLRange fileIdx[HRM_RotorCore_TEST_GROUP] = {
{1,10}, {3,70},{8,8}, {5,47}, {1,54}, {1,6}
{1,10}, {3,70},{9,9}, {5,47}, {1,54}, {1,6}
};
const char* ver = wd_hybridPositioningVersion();
printf("ver:%s\n", ver);
for (int grp = 4; grp <= 4; grp++)
for (int grp = 2; grp <= 2; grp++)
{
SSG_planeCalibPara groundCalibPara;
//初始化成单位阵

View File

@ -26,7 +26,8 @@
//version 1.4.1 : 转子钢芯, 每个输出结果添加了2D图像坐标
//version 1.4.2 : 转子钢芯, 优化了点云中垂直部分去除的门限
//version 1.4.3 : 转子钢芯, (1)分层系数和边距系数添加-1.0参数值,表示不进行分层或边距。(2)添加选项选择使用工件的自身法向或统一使用调平地面法向
std::string m_strVersion = "HybridPositioning 1.4.3";
//version 1.4.4 : 转子钢芯,添加了异常保护
std::string m_strVersion = "HybridPositioning 1.4.4";
const char* wd_hybridPositioningVersion(void)
{
return m_strVersion.c_str();
@ -1760,9 +1761,14 @@ void wd_HRM_RotorCorePositioning(
//统计ROI中的扫描线和PtIdx范围
SVzNLRange roiLineIndice = { INT_MAX, 0 };
SVzNLRange roiPtIndice = { INT_MAX, 0 };
bool isValid = true;
for (int x = L; x <= R; x++)
{
for (int y = T; y <= B; y++)
{
if (x < mappingTable.size())
{
if (y < mappingTable[x].size())
{
mapping2DTo3D& a_mapping = mappingTable[x][y];
for (int m = 0; m < (int)a_mapping.mappings.size(); m++)
@ -1780,8 +1786,14 @@ void wd_HRM_RotorCorePositioning(
}
}
}
else
isValid = false;
}
if (roiLineIndice.nMax < roiLineIndice.nMin)
else
isValid = false;
}
}
if ( (roiLineIndice.nMax < roiLineIndice.nMin) || (isValid == false))
continue;
//生成ROI中的扫描数据