From dc667b4d3497c4dac4fe4e2bb3e3cd69d3c1ca81 Mon Sep 17 00:00:00 2001 From: jerryzeng Date: Thu, 27 Aug 2026 16:29:16 +0800 Subject: [PATCH] =?UTF-8?q?hybridPosePositioning=20version=201.3.11=20:=20?= =?UTF-8?q?=E8=BD=AC=E5=AD=90=E9=92=A2=E8=8A=AF=EF=BC=8C=20=E5=B0=86?= =?UTF-8?q?=E8=BE=B9=E8=B7=9D=E7=B3=BB=E6=95=B0=E7=94=B1=E5=86=85=E9=83=A8?= =?UTF-8?q?=E5=8F=82=E6=95=B0=E8=BD=AC=E4=B8=BA=E8=BE=93=E5=85=A5=E5=8F=82?= =?UTF-8?q?=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- hybridPosePositioning_test/hybridPosePositioning_test.cpp | 4 +++- sourceCode/hybridPosePositioning.cpp | 8 +++++--- sourceCode/hybridPosePositioning_Export.h | 3 ++- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/hybridPosePositioning_test/hybridPosePositioning_test.cpp b/hybridPosePositioning_test/hybridPosePositioning_test.cpp index d89edd5..5998521 100644 --- a/hybridPosePositioning_test/hybridPosePositioning_test.cpp +++ b/hybridPosePositioning_test/hybridPosePositioning_test.cpp @@ -2340,7 +2340,8 @@ void HaiRuiMa_rotorCorePositioning_test(void) workpieceParam.radius = 45.0; workpieceParam.height = 20.0; - double layerRatio = 0.5; //分层系数,分层门é™�=分层系数*工作高度;当两个工作的高度差大于分层门é™�时,判断为在ä¸�å�Œå±‚ + double layerRatio = 0.5; //分层系数,分层门é™�=分层系数*工件高度;当两个工件的高度差大于分层门é™�时,判断为在ä¸�å�Œå±‚ + const double distToSideRatio = 1.1; //è¾¹è·�系数,边è·�é—¨é™�=è¾¹è·�系数*工件直径;当工件è·�边的è·�离大于边è·�é—¨é™�时,判断为边上的工件 double groundRemoveOffset = 200; //æ–™ç­�地é�¢åŽ»é™¤çš„Zå��置,实际地é�¢åŽ»é™¤é«˜åº¦ä¸º groundCalibPara.planeHeight - groundRemoveOffset long t1 = (long)GetTickCount64();//统计时间 @@ -2353,6 +2354,7 @@ void HaiRuiMa_rotorCorePositioning_test(void) groundCalibPara, workpieceParam, layerRatio, + distToSideRatio, groundRemoveOffset, workpiecePositions, binInfo, diff --git a/sourceCode/hybridPosePositioning.cpp b/sourceCode/hybridPosePositioning.cpp index c65c378..c65f46b 100644 --- a/sourceCode/hybridPosePositioning.cpp +++ b/sourceCode/hybridPosePositioning.cpp @@ -21,7 +21,8 @@ //version 1.3.8 : Ìí¼ÓÁËÊäÈëÕ¤¸ñ¸ñʽ¼ì²é£¬ µ÷Õû±ßԵĿ±êΪĿ±ê¾àÁÏ¿ðÍâÀª±ßµÄ¾àÀëÔÚÖ±¾¶µÄ1.1±¶ÒÔÄÚ //version 1.3.9 : ת×Ó¸Öо£¬ ¸Ä½øÁËÁÏ¿ð¼ì²â·½·¨ //version 1.3.10 : ת×Ó¸Öо£¬ ½«·Ö²ãϵÊýÓÉÄÚ²¿²ÎÊýתΪÊäÈë²ÎÊý -std::string m_strVersion = "HybridPositioning 1.3.10"; +//version 1.3.11 : ת×Ó¸Öо£¬ ½«±ß¾àϵÊýÓÉÄÚ²¿²ÎÊýתΪÊäÈë²ÎÊý +std::string m_strVersion = "HybridPositioning 1.3.11"; const char* wd_hybridPositioningVersion(void) { return m_strVersion.c_str(); @@ -1090,7 +1091,8 @@ void wd_HRM_RotorCorePositioning( std::vector& objROIs, const SSG_planeCalibPara groundCalibPara, const SWD_Cylinder workpieceParam, //Ô²ÖùÐι¤¼þµÄ±ê³Æ°ë¾¶ºÍ¸ß¶È - const double layerRatio, //·Ö²ãϵÊý£¬·Ö²ãÃÅÏÞ=·Ö²ãϵÊý*¹¤×÷¸ß¶È£»µ±Á½¸ö¹¤×÷µÄ¸ß¶È²î´óÓÚ·Ö²ãÃÅÏÞʱ£¬ÅжÏΪÔÚ²»Í¬²ã + const double layerRatio, //·Ö²ãϵÊý£¬·Ö²ãÃÅÏÞ=·Ö²ãϵÊý*¹¤¼þ¸ß¶È£»µ±Á½¸ö¹¤¼þµÄ¸ß¶È²î´óÓÚ·Ö²ãÃÅÏÞʱ£¬ÅжÏΪÔÚ²»Í¬²ã + const double distToSideRatio, //±ß¾àϵÊý£¬±ß¾àÃÅÏÞ=±ß¾àϵÊý*¹¤¼þÖ±¾¶£»µ±¹¤¼þ¾à±ßµÄ¾àÀë´óÓڱ߾àÃÅÏÞʱ£¬ÅжÏΪ±ßÉϵŤ¼þ const double groundRemoveOffset, //ÁÏ¿ðµØÃæÈ¥³ýµÄZÆ«Öã¬Êµ¼ÊµØÃæÈ¥³ý¸ß¶ÈΪ groundCalibPara.planeHeight - groundRemoveOffset std::vector< WD_workpieceInfo>& workpiecePositions, WD_HRM_BinInfo& binInfo, //Êä³öBinÐÅÏ¢£¬ÓÃÓÚdebug£¬È·ÈÏÁÏ¿ðÐÅÏ¢¼ì²âÕýÈ· @@ -1605,7 +1607,7 @@ void wd_HRM_RotorCorePositioning( SWD_3DPointPair lineRight = linePoint[lineRightIdx]; //¼ÆË㹤¼þµÄλÖãº×óÉÏ¡¢ÓÒÉÏ¡¢×óÏ¡¢ÓÒÏÂËĸö½Ç£»ÉÏÏÂ×óÓÒËÄÌõ±ß£ºÖÐÑ벿·Ö //»úе±Û¶Ô²»Í¬²¿·ÖµÄ¹¤¼þ»á²ÉÓò»Í¬µÄץȡ²ßÂÔ - double distToSideTh = (workpieceParam.radius * 2) * 1.1; + double distToSideTh = (workpieceParam.radius * 2) * distToSideRatio; double lineTop_a, lineTop_b, lineTop_c; compute2ptLine(lineTop.pt1, lineTop.pt2, &lineTop_a, &lineTop_b, &lineTop_c); double lineBtm_a, lineBtm_b, lineBtm_c; diff --git a/sourceCode/hybridPosePositioning_Export.h b/sourceCode/hybridPosePositioning_Export.h index a1d73f1..33901f8 100644 --- a/sourceCode/hybridPosePositioning_Export.h +++ b/sourceCode/hybridPosePositioning_Export.h @@ -63,7 +63,8 @@ SG_APISHARED_EXPORT void wd_HRM_RotorCorePositioning( std::vector& objROIs, const SSG_planeCalibPara groundCalibPara, const SWD_Cylinder workpieceParam, //Ô²ÖùÐι¤¼þµÄ±ê³Æ°ë¾¶ºÍ¸ß¶È - const double layerRatio, //·Ö²ãϵÊý£¬·Ö²ãÃÅÏÞ=·Ö²ãϵÊý*¹¤×÷¸ß¶È£»µ±Á½¸ö¹¤×÷µÄ¸ß¶È²î´óÓÚ·Ö²ãÃÅÏÞʱ£¬ÅжÏΪÔÚ²»Í¬²ã + const double layerRatio, //·Ö²ãϵÊý£¬·Ö²ãÃÅÏÞ=·Ö²ãϵÊý*¹¤¼þ¸ß¶È£»µ±Á½¸ö¹¤¼þµÄ¸ß¶È²î´óÓÚ·Ö²ãÃÅÏÞʱ£¬ÅжÏΪÔÚ²»Í¬²ã + const double distToSideRatio, //±ß¾àϵÊý£¬±ß¾àÃÅÏÞ=±ß¾àϵÊý*¹¤¼þÖ±¾¶£»µ±¹¤¼þ¾à±ßµÄ¾àÀë´óÓڱ߾àÃÅÏÞʱ£¬ÅжÏΪ±ßÉϵŤ¼þ const double groundRemoveOffset, //ÁÏ¿ðµØÃæÈ¥³ýµÄZÆ«Öã¬Êµ¼ÊµØÃæÈ¥³ý¸ß¶ÈΪ groundCalibPara.planeHeight - groundRemoveOffset std::vector< WD_workpieceInfo>& workpiecePositions, WD_HRM_BinInfo& binInfo, //Êä³öBinÐÅÏ¢£¬ÓÃÓÚdebug£¬È·ÈÏÁÏ¿ðÐÅÏ¢¼ì²âÕýÈ·