diff --git a/App/StatorWorkpiecePosition/StatorWorkpiecePositionConfig/Inc/IVrConfig.h b/App/StatorWorkpiecePosition/StatorWorkpiecePositionConfig/Inc/IVrConfig.h
index e9133a1e..c45852a9 100644
--- a/App/StatorWorkpiecePosition/StatorWorkpiecePositionConfig/Inc/IVrConfig.h
+++ b/App/StatorWorkpiecePosition/StatorWorkpiecePositionConfig/Inc/IVrConfig.h
@@ -81,6 +81,7 @@ struct VrRotorCoreParam
double radius = 45.0;
double height = 20.0;
double layerRatio = 0.5; // 分层系数
+ double distToSideRatio = 1.1; // 边�系数
double groundRemoveOffset = 200.0; // 地�去除Z�置
};
diff --git a/App/StatorWorkpiecePosition/StatorWorkpiecePositionConfig/Src/VrConfig.cpp b/App/StatorWorkpiecePosition/StatorWorkpiecePositionConfig/Src/VrConfig.cpp
index 2904f7e8..a61f4ab6 100644
--- a/App/StatorWorkpiecePosition/StatorWorkpiecePositionConfig/Src/VrConfig.cpp
+++ b/App/StatorWorkpiecePosition/StatorWorkpiecePositionConfig/Src/VrConfig.cpp
@@ -171,6 +171,8 @@ int CVrConfig::LoadConfig(const std::string& filePath, ConfigResult& configResul
rotorParam.height = rotorCoreParamElement->DoubleAttribute("height");
if (rotorCoreParamElement->Attribute("layerRatio"))
rotorParam.layerRatio = rotorCoreParamElement->DoubleAttribute("layerRatio");
+ if (rotorCoreParamElement->Attribute("distToSideRatio"))
+ rotorParam.distToSideRatio = rotorCoreParamElement->DoubleAttribute("distToSideRatio");
if (rotorCoreParamElement->Attribute("groundRemoveOffset"))
rotorParam.groundRemoveOffset = rotorCoreParamElement->DoubleAttribute("groundRemoveOffset");
}
@@ -436,6 +438,7 @@ bool CVrConfig::SaveConfig(const std::string& filePath, ConfigResult& configResu
rotorCoreParamElement->SetAttribute("radius", configResult.algorithmParams.rotorCoreParam.radius);
rotorCoreParamElement->SetAttribute("height", configResult.algorithmParams.rotorCoreParam.height);
rotorCoreParamElement->SetAttribute("layerRatio", configResult.algorithmParams.rotorCoreParam.layerRatio);
+ rotorCoreParamElement->SetAttribute("distToSideRatio", configResult.algorithmParams.rotorCoreParam.distToSideRatio);
rotorCoreParamElement->SetAttribute("groundRemoveOffset", configResult.algorithmParams.rotorCoreParam.groundRemoveOffset);
algoParamsElement->InsertEndChild(rotorCoreParamElement);
diff --git a/App/StatorWorkpiecePosition/StatorWorkpiecePositionConfig/config/config.xml b/App/StatorWorkpiecePosition/StatorWorkpiecePositionConfig/config/config.xml
index 7890b034..72419007 100644
--- a/App/StatorWorkpiecePosition/StatorWorkpiecePositionConfig/config/config.xml
+++ b/App/StatorWorkpiecePosition/StatorWorkpiecePositionConfig/config/config.xml
@@ -28,7 +28,7 @@
minRectVertex1_0="5000.0" minRectVertex1_1="-5000.0" minRectVertex1_2="0.0"
minRectVertex2_0="5000.0" minRectVertex2_1="5000.0" minRectVertex2_2="0.0"
minRectVertex3_0="-5000.0" minRectVertex3_1="5000.0" minRectVertex3_2="0.0"/>
-
+
0.0 && algorithmBinInfo.width > 0.0) {
- detectionResult.binInfo = algorithmBinInfo;
- detectionResult.hasBinInfo = true;
+ // Some versions of the rotor algorithm return the detected bin size and
+ // center but leave minRectVertex untouched. Projecting those four zero
+ // points produces a degenerate polygon, so complete the geometry before
+ // handing it to the presenter. Do not manufacture a bin when the
+ // algorithm returned no bin information at all.
+ const bool hasBinOutput = algorithmBinInfo.length > 0.0 || algorithmBinInfo.width > 0.0;
+ if (hasBinOutput) {
+ EnsureUsableBinInfo(algorithmBinInfo);
+ if (algorithmBinInfo.length > 0.0 && algorithmBinInfo.width > 0.0) {
+ detectionResult.binInfo = algorithmBinInfo;
+ detectionResult.hasBinInfo = true;
+ LOG_INFO("[Rotor] bin output: length=%.3f width=%.3f topZ=%.3f "
+ "center=(%.3f,%.3f,%.3f) "
+ "vertices=(%.3f,%.3f,%.3f),(%.3f,%.3f,%.3f),"
+ "(%.3f,%.3f,%.3f),(%.3f,%.3f,%.3f)\n",
+ algorithmBinInfo.length, algorithmBinInfo.width,
+ algorithmBinInfo.binTopZ,
+ algorithmBinInfo.center.x, algorithmBinInfo.center.y,
+ algorithmBinInfo.center.z,
+ algorithmBinInfo.minRectVertex[0].x, algorithmBinInfo.minRectVertex[0].y,
+ algorithmBinInfo.minRectVertex[0].z,
+ algorithmBinInfo.minRectVertex[1].x, algorithmBinInfo.minRectVertex[1].y,
+ algorithmBinInfo.minRectVertex[1].z,
+ algorithmBinInfo.minRectVertex[2].x, algorithmBinInfo.minRectVertex[2].y,
+ algorithmBinInfo.minRectVertex[2].z,
+ algorithmBinInfo.minRectVertex[3].x, algorithmBinInfo.minRectVertex[3].y,
+ algorithmBinInfo.minRectVertex[3].z);
+ }
}
if (workpiecePositions.empty()) {
detectionResult.errorCode = ERR_CODE(SX_ERR_ZERO_OBJECTS);
diff --git a/App/StatorWorkpiecePosition/WorkpieceRotorApp/Presenter/Src/StatorWorkpiecePositionPresenter.cpp b/App/StatorWorkpiecePosition/WorkpieceRotorApp/Presenter/Src/StatorWorkpiecePositionPresenter.cpp
index 63ac3b5c..f1bced38 100644
--- a/App/StatorWorkpiecePosition/WorkpieceRotorApp/Presenter/Src/StatorWorkpiecePositionPresenter.cpp
+++ b/App/StatorWorkpiecePosition/WorkpieceRotorApp/Presenter/Src/StatorWorkpiecePositionPresenter.cpp
@@ -1327,19 +1327,32 @@ int StatorWorkpiecePositionPresenter::ProcessAlgoDetection(std::vector displayIndices = Build2DDisplayIndicesFromResult(
- detections, detectionResult.positions);
- const int highlightedDetectionIndex = detectionResult.positions.empty()
- ? -1
- : detectionResult.positions.front().sourceDetectionIndex;
- detectionResult.image = Draw2DDetectionsOnImage(
- modelInputImage, detections, modelInputOriginX, modelInputOriginY,
- &displayIndices, highlightedDetectionIndex);
- SaveDebug2DDataIfNeeded(
- detectionCameraIndex, debugParam, QImage(), detectionResult.image,
- detections, QStringLiteral("final"));
+ }
+
+ // Keep the 2D result image even when the subsequent 3D positioning step
+ // fails. DetectPresenter can still return valid bin geometry before a
+ // later 3D error (for example, no workpiece found), and that geometry is
+ // useful to diagnose the scan and must be visible in the UI.
+ if (!modelInputImage.isNull()) {
+ const std::vector displayIndices = Build2DDisplayIndicesFromResult(
+ detections, detectionResult.positions);
+ const int highlightedDetectionIndex = detectionResult.positions.empty()
+ ? -1 : detectionResult.positions.front().sourceDetectionIndex;
+ detectionResult.image = Draw2DDetectionsOnImage(
+ modelInputImage, detections, modelInputOriginX, modelInputOriginY,
+ &displayIndices, highlightedDetectionIndex);
+ if (detectionResult.hasBinInfo) {
+ DrawProjectedBin(detectionResult.image,
+ detectionCameraIndex,
+ detectionResult.binInfo.minRectVertex,
+ modelInputOriginX,
+ modelInputOriginY);
+ } else {
+ LOG_WARNING("[2D] skip bin drawing: hasBinInfo=0 cameraIndex=%d imageNull=%d\n",
+ detectionCameraIndex, detectionResult.image.isNull() ? 1 : 0);
}
+ SaveDebug2DDataIfNeeded(detectionCameraIndex, debugParam, QImage(), detectionResult.image,
+ detections, QStringLiteral("final"));
}
// æ ¹æ�®é¡¹ç›®ç±»åž‹é€‰æ‹©å¤„ç�†æ–¹å¼�
if (GetStatusCallback()) {
@@ -1899,4 +1912,3 @@ void StatorWorkpiecePositionPresenter::floatToRegisters(float value, uint16_t& h
low = static_cast(bits & 0xFFFF);
}
}
-
diff --git a/App/StatorWorkpiecePosition/WorkpieceRotorApp/Version.h b/App/StatorWorkpiecePosition/WorkpieceRotorApp/Version.h
index 1ff46642..3d367fb4 100644
--- a/App/StatorWorkpiecePosition/WorkpieceRotorApp/Version.h
+++ b/App/StatorWorkpiecePosition/WorkpieceRotorApp/Version.h
@@ -5,7 +5,7 @@
#define STATORWORKPIECEPOSITION_APP_NAME "转å�钢芯定ä½�"
#define STATORWORKPIECEPOSITION_APP_KEY "WorkpieceRotorApp"
#define STATORWORKPIECEPOSITION_VERSION_STRING "1.0.2"
-#define STATORWORKPIECEPOSITION_BUILD_STRING "2"
+#define STATORWORKPIECEPOSITION_BUILD_STRING "3"
#define STATORWORKPIECEPOSITION_FULL_VERSION_STRING "V" STATORWORKPIECEPOSITION_VERSION_STRING "_" STATORWORKPIECEPOSITION_BUILD_STRING
// 构建日期
diff --git a/App/StatorWorkpiecePosition/WorkpieceRotorApp/Version.md b/App/StatorWorkpiecePosition/WorkpieceRotorApp/Version.md
index 74a585d9..6c87a572 100644
--- a/App/StatorWorkpiecePosition/WorkpieceRotorApp/Version.md
+++ b/App/StatorWorkpiecePosition/WorkpieceRotorApp/Version.md
@@ -1,4 +1,10 @@
# 1.0.2
+## build_3
+1. æ›´æ–°äº†ç®—æ³•ï¼Œå¢žåŠ äº†è¾¹è·�系数
+
+## build_2
+1. 更新算法, å¢žåŠ äº†åˆ†å±‚ç³»æ•°
+
## build_1
1. 更新算法,已�去掉了料框的检测,直接检测工件�置,输出了料框的�置
diff --git a/App/StatorWorkpiecePosition/WorkpieceRotorApp/dialogalgoarg.cpp b/App/StatorWorkpiecePosition/WorkpieceRotorApp/dialogalgoarg.cpp
index fb198b91..cf15615b 100644
--- a/App/StatorWorkpiecePosition/WorkpieceRotorApp/dialogalgoarg.cpp
+++ b/App/StatorWorkpiecePosition/WorkpieceRotorApp/dialogalgoarg.cpp
@@ -30,6 +30,7 @@ DialogAlgoarg::DialogAlgoarg(ConfigManager* configManager, QWidget *parent)
if (ui->lineEdit_rotorRadius) ui->lineEdit_rotorRadius->setValidator(new QDoubleValidator(0.0, 1e6, 6, ui->lineEdit_rotorRadius));
if (ui->lineEdit_rotorHeight) ui->lineEdit_rotorHeight->setValidator(new QDoubleValidator(0.0, 1e6, 6, ui->lineEdit_rotorHeight));
if (ui->lineEdit_layerRatio) ui->lineEdit_layerRatio->setValidator(new QDoubleValidator(0.0, 10.0, 6, ui->lineEdit_layerRatio));
+ if (ui->lineEdit_distToSideRatio) ui->lineEdit_distToSideRatio->setValidator(new QDoubleValidator(0.0, 10.0, 6, ui->lineEdit_distToSideRatio));
if (ui->lineEdit_groundRemoveOffset) ui->lineEdit_groundRemoveOffset->setValidator(new QDoubleValidator(-1e6, 1e6, 6, ui->lineEdit_groundRemoveOffset));
ui->tabWidget->setCurrentIndex(0);
@@ -254,18 +255,19 @@ bool DialogAlgoarg::SaveBinDetectionParamsFromUI(VrBinParam& binParam)
void DialogAlgoarg::LoadRotorCoreParamsToUI(const VrRotorCoreParam& rotorParam)
{
- if (!ui || !ui->lineEdit_rotorRadius || !ui->lineEdit_rotorHeight || !ui->lineEdit_layerRatio || !ui->lineEdit_groundRemoveOffset) {
+ if (!ui || !ui->lineEdit_rotorRadius || !ui->lineEdit_rotorHeight || !ui->lineEdit_layerRatio || !ui->lineEdit_distToSideRatio || !ui->lineEdit_groundRemoveOffset) {
return;
}
ui->lineEdit_rotorRadius->setText(QString::number(rotorParam.radius, 'f', 6));
ui->lineEdit_rotorHeight->setText(QString::number(rotorParam.height, 'f', 6));
ui->lineEdit_layerRatio->setText(QString::number(rotorParam.layerRatio, 'f', 6));
+ ui->lineEdit_distToSideRatio->setText(QString::number(rotorParam.distToSideRatio, 'f', 6));
ui->lineEdit_groundRemoveOffset->setText(QString::number(rotorParam.groundRemoveOffset, 'f', 6));
}
bool DialogAlgoarg::SaveRotorCoreParamsFromUI(VrRotorCoreParam& rotorParam)
{
- if (!ui || !ui->lineEdit_rotorRadius || !ui->lineEdit_rotorHeight || !ui->lineEdit_layerRatio || !ui->lineEdit_groundRemoveOffset) {
+ if (!ui || !ui->lineEdit_rotorRadius || !ui->lineEdit_rotorHeight || !ui->lineEdit_layerRatio || !ui->lineEdit_distToSideRatio || !ui->lineEdit_groundRemoveOffset) {
return false;
}
@@ -276,6 +278,8 @@ bool DialogAlgoarg::SaveRotorCoreParamsFromUI(VrRotorCoreParam& rotorParam)
if (!ok || rotorParam.height <= 0.0) return false;
rotorParam.layerRatio = ui->lineEdit_layerRatio->text().toDouble(&ok);
if (!ok || rotorParam.layerRatio <= 0.0) return false;
+ rotorParam.distToSideRatio = ui->lineEdit_distToSideRatio->text().toDouble(&ok);
+ if (!ok || rotorParam.distToSideRatio <= 0.0) return false;
rotorParam.groundRemoveOffset = ui->lineEdit_groundRemoveOffset->text().toDouble(&ok);
if (!ok) return false;
return true;
diff --git a/App/StatorWorkpiecePosition/WorkpieceRotorApp/dialogalgoarg.ui b/App/StatorWorkpiecePosition/WorkpieceRotorApp/dialogalgoarg.ui
index 20d69b4b..ea67c618 100644
--- a/App/StatorWorkpiecePosition/WorkpieceRotorApp/dialogalgoarg.ui
+++ b/App/StatorWorkpiecePosition/WorkpieceRotorApp/dialogalgoarg.ui
@@ -74,7 +74,7 @@ QGroupBox::title { subcontrol-origin: margin; left: 10px; padding: 0 3px 0 3px;
20
20
651
- 181
+ 251
@@ -134,7 +134,7 @@ QGroupBox::title { subcontrol-origin: margin; left: 10px; padding: 0 3px 0 3px;
- -
+
-
@@ -146,7 +146,7 @@ QGroupBox::title { subcontrol-origin: margin; left: 10px; padding: 0 3px 0 3px;
- -
+
-
@@ -155,17 +155,28 @@ QGroupBox::title { subcontrol-origin: margin; left: 10px; padding: 0 3px 0 3px;
- -
+
-
16
分层系数
- -
+
-
16
+ -
+
+ 16
+ 边�系数
+
+
+ -
+
+ 16
+
+
diff --git a/App/WeldSeam/WeldSeamApp/Version.h b/App/WeldSeam/WeldSeamApp/Version.h
index 5855d1e3..8ea391ac 100644
--- a/App/WeldSeam/WeldSeamApp/Version.h
+++ b/App/WeldSeam/WeldSeamApp/Version.h
@@ -3,7 +3,7 @@
#define WELDSEAM_APP_NAME "焊�定�"
#define WELDSEAM_VERSION_STRING "1.0.1"
-#define WELDSEAM_BUILD_STRING "1"
+#define WELDSEAM_BUILD_STRING "3"
#define WELDSEAM_FULL_VERSION_STRING "V" WELDSEAM_VERSION_STRING "_" WELDSEAM_BUILD_STRING
// 获�版本信�的便�函数
diff --git a/App/WeldSeam/WeldSeamApp/Version.md b/App/WeldSeam/WeldSeamApp/Version.md
index 858aaa3c..3dc918fc 100644
--- a/App/WeldSeam/WeldSeamApp/Version.md
+++ b/App/WeldSeam/WeldSeamApp/Version.md
@@ -1,4 +1,10 @@
# 1.0.1
+## build_3
+1. 结果二维图åƒ�å¢žåŠ ç¼©æ”¾åŠŸèƒ½
+
+## build_2
+1. 修�相机�留调用C模�失败
+
## build_1
1. æ›´æ–°ç®—æ³•ç‰ˆæœ¬ï¼Œå¢žåŠ äº†ç„Šç¼�类型
diff --git a/App/WeldSeam/WeldSeamApp/WeldSeamApp.pro b/App/WeldSeam/WeldSeamApp/WeldSeamApp.pro
index 85e2303b..b6a19b41 100644
--- a/App/WeldSeam/WeldSeamApp/WeldSeamApp.pro
+++ b/App/WeldSeam/WeldSeamApp/WeldSeamApp.pro
@@ -29,6 +29,7 @@ unix:!macx {
}
INCLUDEPATH += $$PWD/Presenter/Inc
+INCLUDEPATH += $$PWD/../../../Utils/ImageView/Inc
INCLUDEPATH += $$PWD/../../../Utils/VrCommon/Inc
INCLUDEPATH += $$PWD/../../../Utils/VrUtils/Inc
@@ -85,6 +86,7 @@ win32 {
}
win32:CONFIG(debug, debug|release) {
+ LIBS += -L../../../Utils/ImageView/debug -lImageView
LIBS += -L../../../Utils/VrUtils/debug -lVrUtils
LIBS += -L../../../AppUtils/UICommon/debug -lUICommon
LIBS += -L../../../AppUtils/AppCommon/debug -lAppCommon
@@ -100,6 +102,7 @@ win32:CONFIG(debug, debug|release) {
LIBS += -L../../../Nets/debug -lVrTcpServer
}else:win32:CONFIG(release, debug|release){
+ LIBS += -L../../../Utils/ImageView/release -lImageView
LIBS += -L../../../Utils/VrUtils/release -lVrUtils
LIBS += -L../../../AppUtils/UICommon/release -lUICommon
LIBS += -L../../../AppUtils/AppCommon/release -lAppCommon
@@ -114,6 +117,7 @@ win32:CONFIG(debug, debug|release) {
LIBS += -L../../../Nets/release -lVrModbus
LIBS += -L../../../Nets/release -lVrTcpServer
}else:unix:!macx {
+ LIBS += -L../../../Utils/ImageView -lImageView
LIBS += -L../WeldSeamConfig -lWeldSeamConfig
LIBS += -L../../../AppUtils/UICommon -lUICommon
LIBS += -L../../../AppUtils/AppCommon -lAppCommon
diff --git a/App/WeldSeam/WeldSeamApp/mainwindow.cpp b/App/WeldSeam/WeldSeamApp/mainwindow.cpp
index b49367f4..bc378cb6 100644
--- a/App/WeldSeam/WeldSeamApp/mainwindow.cpp
+++ b/App/WeldSeam/WeldSeamApp/mainwindow.cpp
@@ -1,6 +1,5 @@
#include "mainwindow.h"
#include "ui_mainwindow.h"
-#include
#include
#include
#include
@@ -83,10 +82,6 @@ MainWindow::MainWindow(QWidget *parent)
ui->label_work->setVisible(false);
// �始化GraphicsScene
- QGraphicsScene* scene = new QGraphicsScene(this);
- ui->detect_image->setScene(scene);
- QGraphicsScene* scene2 = new QGraphicsScene(this);
- ui->detect_image_2->setScene(scene2);
// �始化日志辅助类
m_logHelper = new DetectLogHelper(ui->detect_log, this);
@@ -201,12 +196,7 @@ void MainWindow::displayImage(const QImage& image)
return;
}
- QGraphicsScene* scene = ui->detect_image->scene();
- scene->clear();
-
- QPixmap pixmap = QPixmap::fromImage(image);
- scene->addPixmap(pixmap);
- ui->detect_image->fitInView(scene->sceneRect(), Qt::KeepAspectRatio);
+ ui->detect_image->setImage(image);
}
void MainWindow::displayImageInSecondView(const QImage& image)
@@ -216,10 +206,7 @@ void MainWindow::displayImageInSecondView(const QImage& image)
return;
}
- QGraphicsScene* scene = ui->detect_image_2->scene();
- scene->clear();
- scene->addPixmap(QPixmap::fromImage(image));
- ui->detect_image_2->fitInView(scene->sceneRect(), Qt::KeepAspectRatio);
+ ui->detect_image_2->setImage(image);
}
// æ·»åŠ æ‰©å±•ç‰ˆæœ¬çš„æ£€æµ‹ç»“æžœå‡½æ•°
diff --git a/App/WeldSeam/WeldSeamApp/mainwindow.h b/App/WeldSeam/WeldSeamApp/mainwindow.h
index 8569be21..6d0b7a76 100644
--- a/App/WeldSeam/WeldSeamApp/mainwindow.h
+++ b/App/WeldSeam/WeldSeamApp/mainwindow.h
@@ -11,6 +11,7 @@
#include
#include
#include
+#include "ImageView.h"
#include
#include
#include "AboutDialog.h"
diff --git a/App/WeldSeam/WeldSeamApp/mainwindow.ui b/App/WeldSeam/WeldSeamApp/mainwindow.ui
index e872dc3e..fa1e0e8c 100644
--- a/App/WeldSeam/WeldSeamApp/mainwindow.ui
+++ b/App/WeldSeam/WeldSeamApp/mainwindow.ui
@@ -20,7 +20,7 @@
background-color:rgb(25, 26, 28)
-
+
20
@@ -33,7 +33,7 @@
background-color: rgb(37, 38, 42);
-
+
970
@@ -367,5 +367,12 @@ background-color: rgba(255, 255, 255, 0);
+
+
+ ImageView
+ QGraphicsView
+
+
+
diff --git a/AppAlgo/hybridPosePositioning/Arm/aarch64/libhybridPosePositioning.so b/AppAlgo/hybridPosePositioning/Arm/aarch64/libhybridPosePositioning.so
index 114b1d83..264d3a6f 100644
Binary files a/AppAlgo/hybridPosePositioning/Arm/aarch64/libhybridPosePositioning.so and b/AppAlgo/hybridPosePositioning/Arm/aarch64/libhybridPosePositioning.so differ
diff --git a/AppAlgo/hybridPosePositioning/Inc/hybridPosePositioning_Export.h b/AppAlgo/hybridPosePositioning/Inc/hybridPosePositioning_Export.h
index a1d73f1b..33901f8a 100644
--- a/AppAlgo/hybridPosePositioning/Inc/hybridPosePositioning_Export.h
+++ b/AppAlgo/hybridPosePositioning/Inc/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£¬È·ÈÏÁÏ¿ðÐÅÏ¢¼ì²âÕýÈ·
diff --git a/AppAlgo/hybridPosePositioning/Windows/x64/Debug/baseAlgorithm.dll b/AppAlgo/hybridPosePositioning/Windows/x64/Debug/baseAlgorithm.dll
index e8376088..367afe9f 100644
Binary files a/AppAlgo/hybridPosePositioning/Windows/x64/Debug/baseAlgorithm.dll and b/AppAlgo/hybridPosePositioning/Windows/x64/Debug/baseAlgorithm.dll differ
diff --git a/AppAlgo/hybridPosePositioning/Windows/x64/Debug/baseAlgorithm.pdb b/AppAlgo/hybridPosePositioning/Windows/x64/Debug/baseAlgorithm.pdb
index 2ee5216e..e2d36e36 100644
Binary files a/AppAlgo/hybridPosePositioning/Windows/x64/Debug/baseAlgorithm.pdb and b/AppAlgo/hybridPosePositioning/Windows/x64/Debug/baseAlgorithm.pdb differ
diff --git a/AppAlgo/hybridPosePositioning/Windows/x64/Debug/hybridPosePositioning.dll b/AppAlgo/hybridPosePositioning/Windows/x64/Debug/hybridPosePositioning.dll
index cd99bc46..27393ab1 100644
Binary files a/AppAlgo/hybridPosePositioning/Windows/x64/Debug/hybridPosePositioning.dll and b/AppAlgo/hybridPosePositioning/Windows/x64/Debug/hybridPosePositioning.dll differ
diff --git a/AppAlgo/hybridPosePositioning/Windows/x64/Debug/hybridPosePositioning.lib b/AppAlgo/hybridPosePositioning/Windows/x64/Debug/hybridPosePositioning.lib
index ffa000ca..8e386606 100644
Binary files a/AppAlgo/hybridPosePositioning/Windows/x64/Debug/hybridPosePositioning.lib and b/AppAlgo/hybridPosePositioning/Windows/x64/Debug/hybridPosePositioning.lib differ
diff --git a/AppAlgo/hybridPosePositioning/Windows/x64/Debug/hybridPosePositioning.pdb b/AppAlgo/hybridPosePositioning/Windows/x64/Debug/hybridPosePositioning.pdb
index 154a4e4e..a307e569 100644
Binary files a/AppAlgo/hybridPosePositioning/Windows/x64/Debug/hybridPosePositioning.pdb and b/AppAlgo/hybridPosePositioning/Windows/x64/Debug/hybridPosePositioning.pdb differ
diff --git a/AppAlgo/hybridPosePositioning/Windows/x64/Release/baseAlgorithm.dll b/AppAlgo/hybridPosePositioning/Windows/x64/Release/baseAlgorithm.dll
index 6989ed2b..2d9a95b6 100644
Binary files a/AppAlgo/hybridPosePositioning/Windows/x64/Release/baseAlgorithm.dll and b/AppAlgo/hybridPosePositioning/Windows/x64/Release/baseAlgorithm.dll differ
diff --git a/AppAlgo/hybridPosePositioning/Windows/x64/Release/baseAlgorithm.pdb b/AppAlgo/hybridPosePositioning/Windows/x64/Release/baseAlgorithm.pdb
index 64ac46ee..8175f091 100644
Binary files a/AppAlgo/hybridPosePositioning/Windows/x64/Release/baseAlgorithm.pdb and b/AppAlgo/hybridPosePositioning/Windows/x64/Release/baseAlgorithm.pdb differ
diff --git a/AppAlgo/hybridPosePositioning/Windows/x64/Release/hybridPosePositioning.dll b/AppAlgo/hybridPosePositioning/Windows/x64/Release/hybridPosePositioning.dll
index 9f05b6a7..fc362c4c 100644
Binary files a/AppAlgo/hybridPosePositioning/Windows/x64/Release/hybridPosePositioning.dll and b/AppAlgo/hybridPosePositioning/Windows/x64/Release/hybridPosePositioning.dll differ
diff --git a/AppAlgo/hybridPosePositioning/Windows/x64/Release/hybridPosePositioning.lib b/AppAlgo/hybridPosePositioning/Windows/x64/Release/hybridPosePositioning.lib
index 69038362..0b309f45 100644
Binary files a/AppAlgo/hybridPosePositioning/Windows/x64/Release/hybridPosePositioning.lib and b/AppAlgo/hybridPosePositioning/Windows/x64/Release/hybridPosePositioning.lib differ
diff --git a/AppAlgo/hybridPosePositioning/Windows/x64/Release/hybridPosePositioning.pdb b/AppAlgo/hybridPosePositioning/Windows/x64/Release/hybridPosePositioning.pdb
index 1a84a9c6..4f9674ad 100644
Binary files a/AppAlgo/hybridPosePositioning/Windows/x64/Release/hybridPosePositioning.pdb and b/AppAlgo/hybridPosePositioning/Windows/x64/Release/hybridPosePositioning.pdb differ
diff --git a/AppAlgo/hybridPosePositioning/hybridPosePositioning_test.cpp b/AppAlgo/hybridPosePositioning/hybridPosePositioning_test.cpp
index d89edd59..5998521d 100644
--- a/AppAlgo/hybridPosePositioning/hybridPosePositioning_test.cpp
+++ b/AppAlgo/hybridPosePositioning/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,