diff --git a/HanddleAI/HandleAiUi-new/algo/ALGO_Correction.h b/HanddleAI/HandleAiUi-new/algo/ALGO_Correction.h index 720df759..dc23925b 100644 --- a/HanddleAI/HandleAiUi-new/algo/ALGO_Correction.h +++ b/HanddleAI/HandleAiUi-new/algo/ALGO_Correction.h @@ -292,7 +292,7 @@ void createModbusStrs(const int startPos,double& Value, std::shared_ptr writeBack("short", startPos, QString::number(Value < 0 ? 2 : 1)); data->writeBack("short", startPos + 1, QString::number(abs(static_cast(Value)))); double pvalue = Value - static_cast(Value); - data->writeBack("short", startPos + 2, QString::number(static_cast(abs(pvalue * 100)))); + data->writeBack("short", startPos + 2, QString::number(static_cast(abs(pvalue * 1000)))); } correctionStruct* correctionData1x = new correctionStruct(); @@ -350,6 +350,7 @@ double offsetLimit(double valueIn,double offsetLimitIn) } void ALGO_Correction(std::shared_ptr data) { + //x轴方向为-x 值越大-x越大 y方向为y+,值越大y+越大 z方向为y+,值越大z+越大 //data->writeBack("short", 274, "1"); //return; CorrectionPoints resultPoints; @@ -378,30 +379,39 @@ void ALGO_Correction(std::shared_ptr data) double offsetLimit_Y = currentProductConfig._correctionConfigStruct.offsetLimit_Y; double offsetLimit_Z = currentProductConfig._correctionConfigStruct.offsetLimit_Z; + //计算值 double correctionFinalResultX = correction_X - resultPoints.OriginX - baseOffset_X; double correctionFinalResultY = correction_Y - resultPoints.OriginY - baseOffset_Y; double correctionFinalResultZ = correction_Z - resultPoints.OriginZ - baseOffset_Z; - std::cout << "correctionFinalResultX" << correctionFinalResultX << std::endl; - std::cout << "correctionFinalResultY" << correctionFinalResultY << std::endl; - std::cout << "correctionFinalResultZ" << correctionFinalResultZ << std::endl; - + //限制小数点后三位 correctionFinalResultX = doubleLmit(correctionFinalResultX, 3); correctionFinalResultY = doubleLmit(correctionFinalResultY, 3); correctionFinalResultZ = doubleLmit(correctionFinalResultZ, 3); - std::cout << "correctionFinalResultX" << correctionFinalResultX << std::endl; - std::cout << "correctionFinalResultY" << correctionFinalResultY << std::endl; - std::cout << "correctionFinalResultZ" << correctionFinalResultZ << std::endl; - + //限制最大最小值 correctionFinalResultX = offsetLimit(correctionFinalResultX, offsetLimit_X); correctionFinalResultY = offsetLimit(correctionFinalResultY, offsetLimit_Y); correctionFinalResultZ = offsetLimit(correctionFinalResultZ, offsetLimit_Z); + + //方向修正 + correctionFinalResultY = -correctionFinalResultY; + correctionFinalResultZ = -correctionFinalResultZ; std::cout << "correctionFinalResultX" << correctionFinalResultX << std::endl; std::cout << "correctionFinalResultY" << correctionFinalResultY << std::endl; std::cout << "correctionFinalResultZ" << correctionFinalResultZ << std::endl; + createModbusStrs(310, correctionFinalResultX, data); + createModbusStrs(313, correctionFinalResultY, data); + createModbusStrs(316, correctionFinalResultZ, data); + + /*createModbusStrs(319, 0, data); + createModbusStrs(322, 0, data); + createModbusStrs(325, 0, data);*/ + + data->writeBack("short", 274, "1"); + //double offsetRx = data->_productDataStruct.baseRad[0] - point.x; //double offsetRy = data->_productDataStruct.baseRad[1] - point.y; //double offsetRz = data->_productDataStruct.baseRad[2] - point.z; @@ -420,16 +430,8 @@ void ALGO_Correction(std::shared_ptr data) //offsetRy = doubleLmit(offsetRy, 3); //offsetRz = doubleLmit(offsetRz, 3); - std::cout << "offsetX:" << data->pointsOffsetStruct_.baseOffsetX << "offsetY:" << data->pointsOffsetStruct_.baseOffsetY << "offsetZ:" << data->pointsOffsetStruct_.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, data->pointsOffsetStruct_.baseOffsetX,data); - createModbusStrs(313, data->pointsOffsetStruct_.baseOffsetY, data); - createModbusStrs(316, data->pointsOffsetStruct_.baseOffsetZ, data);*/ - //createModbusStrs(319, offsetRx, data); - //createModbusStrs(322, offsetRy, data); - //createModbusStrs(325, offsetRz, data); - - data->writeBack("short", 274, "1"); } \ No newline at end of file diff --git a/configBackup/2024-9-9After/C9504.json b/configBackup/2024-9-9After/C9504.json index 4761c448..6363a656 100644 --- a/configBackup/2024-9-9After/C9504.json +++ b/configBackup/2024-9-9After/C9504.json @@ -6,15 +6,15 @@ ["800-41485-01","800-103367-01","800-48770-01","800-50688-01"], "Correction": { - "correction_X":0, - "correction_Y":0, - "correction_Z":0, + "correction_X":-247.742, + "correction_Y":-395.592, + "correction_Z":-56.6341, "baseOffset_X":0, "baseOffset_Y":0, "baseOffset_Z":0, - "offsetLimit_X":10, - "offsetLimit_Y":10, - "offsetLimit_Z":10, + "offsetLimit_X":30, + "offsetLimit_Y":30, + "offsetLimit_Z":0, "commit":"limit瀵瑰熀纭�鍋忕Щ涓嶇敓鏁�,鍗曚綅涓簃m" }, "imgPosPath":"./imgPosTip/Test1.jpg", @@ -23,12 +23,12 @@ "baseY":0.00, "baseZ":0.00, "baseRx":0.00, - "baseRy":0.00, + "baseRy":0.00, "baseRz":0.00, "connectorAmout":-1, "halconAlgoIndex":1, - "isBackExist":false, - "backArmIndex":-1, + "isBackExist":true, + "backArmIndex":11, "cameraSetting": { "0":"Gain:60/Expouse:25000"