hybridPosePositioning

version 1.3.10 : 转子钢芯, 将分层系数由内部参数转为输入参数
This commit is contained in:
jerryzeng 2026-08-26 12:24:52 +08:00
parent bf8b449e48
commit 1a1c1c47fb
3 changed files with 9 additions and 4 deletions

View File

@ -2259,13 +2259,13 @@ void HaiRuiMa_rotorCorePositioning_test(void)
};
SVzNLRange fileIdx[HRM_RotorCore_TEST_GROUP] = {
{1,10}, {3,70},{1,1}
{1,10}, {3,70},{2,2}
};
const char* ver = wd_hybridPositioningVersion();
printf("ver:%s\n", ver);
for (int grp = 1; grp < HRM_RotorCore_TEST_GROUP; grp++)
for (int grp = 2; grp < HRM_RotorCore_TEST_GROUP; grp++)
{
SSG_planeCalibPara groundCalibPara;
//初始化成单位阵
@ -2340,6 +2340,7 @@ void HaiRuiMa_rotorCorePositioning_test(void)
workpieceParam.radius = 45.0;
workpieceParam.height = 20.0;
double layerRatio = 0.5; //分层系数,分层门限=分层系数*工作高度;当两个工作的高度差大于分层门限时,判断为在不同层
double groundRemoveOffset = 200; //料筐地面去除的Z偏置实际地面去除高度为 groundCalibPara.planeHeight - groundRemoveOffset
long t1 = (long)GetTickCount64();//统计时间
@ -2351,6 +2352,7 @@ void HaiRuiMa_rotorCorePositioning_test(void)
objROIs,
groundCalibPara,
workpieceParam,
layerRatio,
groundRemoveOffset,
workpiecePositions,
binInfo,

View File

@ -20,7 +20,8 @@
//version 1.3.7 : 在1.3.6版本的基础上添加了ID 与2D结果保持一致
//version 1.3.8 : 添加了输入栅格格式检查, 调整边缘目标为目标距料筐外廓边的距离在直径的1.1倍以内
//version 1.3.9 : 转子钢芯, 改进了料筐检测方法
std::string m_strVersion = "HybridPositioning 1.3.9";
//version 1.3.10 : 转子钢芯, 将分层系数由内部参数转为输入参数
std::string m_strVersion = "HybridPositioning 1.3.10";
const char* wd_hybridPositioningVersion(void)
{
return m_strVersion.c_str();
@ -1089,6 +1090,7 @@ void wd_HRM_RotorCorePositioning(
std::vector<WD_objArea2D>& objROIs,
const SSG_planeCalibPara groundCalibPara,
const SWD_Cylinder workpieceParam, //圆柱形工件的标称半径和高度
const double layerRatio, //分层系数,分层门限=分层系数*工作高度;当两个工作的高度差大于分层门限时,判断为在不同层
const double groundRemoveOffset, //料筐地面去除的Z偏置实际地面去除高度为 groundCalibPara.planeHeight - groundRemoveOffset
std::vector< WD_workpieceInfo>& workpiecePositions,
WD_HRM_BinInfo& binInfo, //输出Bin信息用于debug确认料筐信息检测正确
@ -1459,7 +1461,7 @@ void wd_HRM_RotorCorePositioning(
//z方向排序
std::vector< WD_workpieceInfo> zSortWorkpiece;
double topLayerTh = highest_z + workpieceParam.height * 0.75;
double topLayerTh = highest_z + workpieceParam.height * layerRatio;
for (int i = 0; i < (int)allWorkpiece.size(); i++)
{
if (allWorkpiece[i].center.z < topLayerTh)

View File

@ -63,6 +63,7 @@ SG_APISHARED_EXPORT void wd_HRM_RotorCorePositioning(
std::vector<WD_objArea2D>& objROIs,
const SSG_planeCalibPara groundCalibPara,
const SWD_Cylinder workpieceParam, //圆柱形工件的标称半径和高度
const double layerRatio, //分层系数,分层门限=分层系数*工作高度;当两个工作的高度差大于分层门限时,判断为在不同层
const double groundRemoveOffset, //料筐地面去除的Z偏置实际地面去除高度为 groundCalibPara.planeHeight - groundRemoveOffset
std::vector< WD_workpieceInfo>& workpiecePositions,
WD_HRM_BinInfo& binInfo, //输出Bin信息用于debug确认料筐信息检测正确