#ifndef VRHANDEYECALIBCONFIG_H #define VRHANDEYECALIBCONFIG_H #include /** * @brief 手眼标定矩阵(多项目共用) * * 每台相机独立保存:标定矩阵、欧拉角顺序以及工具坐标轴绕 X/Y/Z 三轴的补偿旋转。 * 欧拉角顺序同时用于机器人法兰姿态的分解(输入)和工具姿态的合成(输出)。 * rotX/Y/Z : Eye 坐标系下施加的预补偿,按 Rx(rotX)*Ry(rotY)*Rz(rotZ) 合成(手眼变换之前) * outRotX/Y/Z: Robot 坐标系下施加的后补偿,按 Rx*Ry*Rz 合成(手眼变换之后、提欧拉角之前) * 用于把"算法定义的工具系"修正到"机器人期望的 TCP 系",避免输出进入万向节锁。 */ struct VrHandEyeCalibMatrix { int cameraIndex; double matrix[16]; int eulerOrder; double rotX; double rotY; double rotZ; /* 接近点偏移 (mm): approach point offset along -axialDir (screw) / -normalDir (tool disk). */ double approachOffset; /* 目标点在 Robot 坐标系下沿 X/Y/Z 轴的补偿偏移 (mm)。 */ double offsetX; double offsetY; double offsetZ; double outRotX; double outRotY; double outRotZ; VrHandEyeCalibMatrix() : cameraIndex(1) , eulerOrder(11) , rotX(0.0) , rotY(0.0) , rotZ(0.0) , approachOffset(0.0) , offsetX(0.0) , offsetY(0.0) , offsetZ(0.0) , outRotX(0.0) , outRotY(0.0) , outRotZ(14.56) { double identity[16] = { 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 }; memcpy(matrix, identity, sizeof(matrix)); } }; #endif // VRHANDEYECALIBCONFIG_H