From 84da863898aa6d138c4d9a4105d5521f8bbee770 Mon Sep 17 00:00:00 2001 From: RCi <15089880081@163.com> Date: Tue, 27 Aug 2024 10:46:43 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A4=87=E4=BB=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../HandleAiUi-new/algo/ALGO_Correction.h | 14 +++++----- HanddleAI/HandleAiUi-new/algo/templateAlgo.h | 2 +- HanddleAI/HandleAiUi-new/back/detData.h | 1 + .../HandleAiUi-new/back/threadPoolManager.cpp | 6 +++-- HanddleAI/HandleAiUi-new/detProcess.hpp | 24 +++++++++++++++++- HanddleAI/HandleAiUi-new/globalStruct.h | 6 +++++ lib/Hd_3DCameraLMI_module_PointLazer.exp | Bin 774 -> 772 bytes lib/Hd_DalsaCamera_module.exp | Bin 753 -> 751 bytes lib/Hd_FinsTcp_module.exp | Bin 745 -> 743 bytes lib/Hd_MvCamera_module_GENTL.exp | Bin 758 -> 756 bytes lib/Hd_MvCamera_module_GIGE.exp | Bin 757 -> 755 bytes lib/Hd_ResultsSummary_module.exp | Bin 758 -> 756 bytes lib/Hd_SocketModule_ModbusTcp.exp | Bin 1503 -> 1501 bytes 13 files changed, 42 insertions(+), 11 deletions(-) diff --git a/HanddleAI/HandleAiUi-new/algo/ALGO_Correction.h b/HanddleAI/HandleAiUi-new/algo/ALGO_Correction.h index 223fe2b7..ccbf1a6c 100644 --- a/HanddleAI/HandleAiUi-new/algo/ALGO_Correction.h +++ b/HanddleAI/HandleAiUi-new/algo/ALGO_Correction.h @@ -347,9 +347,9 @@ void ALGO_Correction(std::shared_ptr data) qDebug() << "productIndex:"<< data->productType <<"ox:" << resultPoints.Origin[0] << "oy : " << resultPoints.Origin[1] << "oz : " << resultPoints.Origin[2]; qDebug() << "Rx:" << point.x << "Ry:" << point.y << "Rz:" << point.z; - double baseOffsetX = data->_productDataStruct.basePos[0] - resultPoints.OriginX; - double baseOffsetY = data->_productDataStruct.basePos[1] - resultPoints.OriginY; - double baseOffsetZ = data->_productDataStruct.basePos[2] - resultPoints.OriginZ; + data->pointsOffsetStruct_.baseOffsetX = data->_productDataStruct.basePos[0] - resultPoints.OriginX; + data->pointsOffsetStruct_.baseOffsetY = data->_productDataStruct.basePos[1] - resultPoints.OriginY; + data->pointsOffsetStruct_.baseOffsetZ = data->_productDataStruct.basePos[2] - resultPoints.OriginZ; //double offsetRx = data->_productDataStruct.baseRad[0] - point.x; //double offsetRy = data->_productDataStruct.baseRad[1] - point.y; @@ -369,12 +369,12 @@ void ALGO_Correction(std::shared_ptr data) //offsetRy = doubleLmit(offsetRy, 3); //offsetRz = doubleLmit(offsetRz, 3); - std::cout << "offsetX:" << baseOffsetX << "offsetY:" << baseOffsetY << "offsetZ:" << baseOffsetZ << std::endl; + std::cout << "offsetX:" << data->pointsOffsetStruct_.baseOffsetX << "offsetY:" << data->pointsOffsetStruct_.baseOffsetY << "offsetZ:" << data->pointsOffsetStruct_.baseOffsetZ << std::endl; //std::cout << "offsetRx:" << offsetRx << "offsetRy:" << offsetRy << "offsetRz:" << offsetRz << std::endl; - createModbusStrs(310, baseOffsetX,data); - createModbusStrs(313, baseOffsetY, data); - createModbusStrs(316, baseOffsetZ, data); + createModbusStrs(310, data->pointsOffsetStruct_.baseOffsetX,data); + createModbusStrs(313, data->pointsOffsetStruct_.baseOffsetY, data); + createModbusStrs(316, data->pointsOffsetStruct_.baseOffsetZ, data); //createModbusStrs(319, offsetRx, data); //createModbusStrs(322, offsetRy, data); diff --git a/HanddleAI/HandleAiUi-new/algo/templateAlgo.h b/HanddleAI/HandleAiUi-new/algo/templateAlgo.h index e2dd3752..df476a3b 100644 --- a/HanddleAI/HandleAiUi-new/algo/templateAlgo.h +++ b/HanddleAI/HandleAiUi-new/algo/templateAlgo.h @@ -8,7 +8,7 @@ double templateMatchAndAngle(const cv::Mat& img, const cv::Mat& templ) { // 执行模板匹配 cv::matchTemplate(img, templ, result, cv::TM_CCOEFF_NORMED); - + // 通过 minMaxLoc 查找最佳匹配位置 double minVal, maxVal; cv::Point minLoc, maxLoc; diff --git a/HanddleAI/HandleAiUi-new/back/detData.h b/HanddleAI/HandleAiUi-new/back/detData.h index 6f010672..061e6189 100644 --- a/HanddleAI/HandleAiUi-new/back/detData.h +++ b/HanddleAI/HandleAiUi-new/back/detData.h @@ -29,6 +29,7 @@ public: int algoThreadIndex = -1; //检测参数 + pointsOffsetStruct pointsOffsetStruct_; correctionStruct laserData; int armPos = -1; int productType = -1; diff --git a/HanddleAI/HandleAiUi-new/back/threadPoolManager.cpp b/HanddleAI/HandleAiUi-new/back/threadPoolManager.cpp index 5c936a53..140200d5 100644 --- a/HanddleAI/HandleAiUi-new/back/threadPoolManager.cpp +++ b/HanddleAI/HandleAiUi-new/back/threadPoolManager.cpp @@ -66,8 +66,10 @@ void detThreadManager::process() } void detThreadManager::resultHandle(std::shared_ptr data) { - for (auto func : resultHandleCallbacks) - func(data); + //for (auto func : resultHandleCallbacks) + // func(data); + if (data->algoThreadIndex < resultHandleCallbacks.size()) + resultHandleCallbacks[data->algoThreadIndex](data); } void detThreadManager::run() { diff --git a/HanddleAI/HandleAiUi-new/detProcess.hpp b/HanddleAI/HandleAiUi-new/detProcess.hpp index 8baf4bad..9d8401c5 100644 --- a/HanddleAI/HandleAiUi-new/detProcess.hpp +++ b/HanddleAI/HandleAiUi-new/detProcess.hpp @@ -18,7 +18,6 @@ public: _cameraManager.initialization(); _triggerManager.initialization(this); detProcessCallbackRegister(); - } //初始化 void run() @@ -99,6 +98,7 @@ public: _triggerManager.registerCallback(361, 2, [this](QByteArray& byteArray) {detectionSwitch2(byteArray); }, "检测结束1"); _triggerManager.registerCallback(362, 1, [this](QByteArray& byteArray) {detectionEnd(byteArray); }, "检测结束2"); + _threadManager.registerCallback([this](std::shared_ptrdata) {correctionResultHandle(data); }); _threadManager.registerCallback([this](std::shared_ptrdata) {detectionResultHandle(data); }); } //检测程序是否在运行 @@ -106,6 +106,7 @@ public: int backArmIndex = -1; bool currentBack = false; //激光校准数据缓存 //SN 数据 + pointsOffsetStruct lastPointsOffsetStruct_; correctionStruct laserDataCache; //总流程开始,机器人发送1至寄存器259 //上位机确认OK之后,清零寄存器259,并发送1至寄存器260 @@ -331,6 +332,11 @@ public: } } + //校准结果处理 + void correctionResultHandle(std::shared_ptrdata) + { + lastPointsOffsetStruct_ = data->pointsOffsetStruct_; + } //检测结果处理 void detectionResultHandle(std::shared_ptrdata) { @@ -442,6 +448,22 @@ public slots: currentBack = true; _triggerManager.sendFinsMsg("write_short_350_" + QString::number(backArmIndex));//清零 _triggerManager.sendFinsMsg("write_short_351_1"); + qDebug() << "运行背后检测程序"; + + _triggerManager.sendFinsMsg("write_short_310_" + QString::number(lastPointsOffsetStruct_.baseOffsetX < 0 ? 2 : 1)); + _triggerManager.sendFinsMsg("write_short_311_"+QString::number(abs(static_cast(lastPointsOffsetStruct_.baseOffsetX)))); + double pvalueX = lastPointsOffsetStruct_.baseOffsetX - static_cast(lastPointsOffsetStruct_.baseOffsetX); + _triggerManager.sendFinsMsg("write_short_312_" + QString::number(static_cast(abs(pvalueX * 100)))); + + _triggerManager.sendFinsMsg("write_short_313_" + QString::number(lastPointsOffsetStruct_.baseOffsetY < 0 ? 2 : 1)); + _triggerManager.sendFinsMsg("write_short_314_" + QString::number(abs(static_cast(lastPointsOffsetStruct_.baseOffsetY)))); + double pvalueY = lastPointsOffsetStruct_.baseOffsetY - static_cast(lastPointsOffsetStruct_.baseOffsetY); + _triggerManager.sendFinsMsg("write_short_315_" + QString::number(static_cast(abs(pvalueY * 100)))); + + _triggerManager.sendFinsMsg("write_short_316_" + QString::number(lastPointsOffsetStruct_.baseOffsetZ < 0 ? 2 : 1)); + _triggerManager.sendFinsMsg("write_short_317_" + QString::number(abs(static_cast(lastPointsOffsetStruct_.baseOffsetZ)))); + double pvalueZ = lastPointsOffsetStruct_.baseOffsetZ - static_cast(lastPointsOffsetStruct_.baseOffsetZ); + _triggerManager.sendFinsMsg("write_short_318_" + QString::number(static_cast(abs(pvalueZ * 100)))); } } void writeArmStartSignal(int productTypeIn, QString SN) diff --git a/HanddleAI/HandleAiUi-new/globalStruct.h b/HanddleAI/HandleAiUi-new/globalStruct.h index 082cc6d8..48f9e81c 100644 --- a/HanddleAI/HandleAiUi-new/globalStruct.h +++ b/HanddleAI/HandleAiUi-new/globalStruct.h @@ -61,6 +61,12 @@ struct imageDoubleCheckPack int armPos; int type;//1 halcon 2ai }; +struct pointsOffsetStruct +{ + double baseOffsetX; + double baseOffsetY; + double baseOffsetZ; +}; static QImage cvMatToQImage(cv::Mat& src) { if (src.channels() == 1) { // if grayscale image diff --git a/lib/Hd_3DCameraLMI_module_PointLazer.exp b/lib/Hd_3DCameraLMI_module_PointLazer.exp index b70953a7e7fc9e91207cc4d455ce99548d3726db..c128f721899e1a2fd5f5ffe10a0335da718ee8af 100644 GIT binary patch delta 45 zcmZo;YhmL|X=7se4+I($Ih`3oI{4rUVF`qGe@?1t0R+rSI()7(I80{DVhTafh delta 47 zcmZo+Yh&X~X=7se4+L5hIh`5VCi>oI{54sZF`qGa@?1t0_Mp_9)WqV{&Bqw+7y+u+ B5kdd} diff --git a/lib/Hd_DalsaCamera_module.exp b/lib/Hd_DalsaCamera_module.exp index 9c60276f802863889f4f8b46777d38a8571c40e5..d51dd3479f00019389da4252121bf314da3584cb 100644 GIT binary patch delta 45 zcmey!`ks|DrHzTQM#ia=EtxVHvnMZNQekyTO)5>_e3nUw835E@ B5)=Rc delta 48 zcmcc1eV>~%rHzT