diff --git a/hybridPosePositioning_test/hybridPosePositioning_test.cpp b/hybridPosePositioning_test/hybridPosePositioning_test.cpp index 171c90b..d89edd5 100644 --- a/hybridPosePositioning_test/hybridPosePositioning_test.cpp +++ b/hybridPosePositioning_test/hybridPosePositioning_test.cpp @@ -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, diff --git a/sourceCode/hybridPosePositioning.cpp b/sourceCode/hybridPosePositioning.cpp index 2630860..c65c378 100644 --- a/sourceCode/hybridPosePositioning.cpp +++ b/sourceCode/hybridPosePositioning.cpp @@ -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& 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) diff --git a/sourceCode/hybridPosePositioning_Export.h b/sourceCode/hybridPosePositioning_Export.h index 9e8d6aa..a1d73f1 100644 --- a/sourceCode/hybridPosePositioning_Export.h +++ b/sourceCode/hybridPosePositioning_Export.h @@ -63,6 +63,7 @@ SG_APISHARED_EXPORT void wd_HRM_RotorCorePositioning( std::vector& 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£¬È·ÈÏÁÏ¿ðÐÅÏ¢¼ì²âÕýÈ·