Hi,
I am trying to do Hand-to-eye calibration using the method calibrateHandEye().
I compared the result from different methods available in the method and the results are not consistent. I used the checker board pattern as target.
The following is the result from different methods:
Manually measured ground truth of translation vector is [0.22, 0.55, 0.92]
.
CALIB_HAND_EYE_TSAI: TF_cam2base:
[-0.9800233284861961, -0.04351490022716789, -0.1940637242790549, 0.217982230472062;
0.1985522161757132, -0.1578524110827579, -0.9672950086540677, 0.4821403501516119;
0.01145831901067088, -0.9865034565441622, 0.1633390251956652, 0.9301016632237847;
0, 0, 0, 1]
CALIB_HAND_EYE_PARK : TF_cam2base:
[-0.9993732008109768, -0.01184283170367196, -0.03336094779926747, 0.1449837237004261;
0.03467121421092781, -0.1371209755713469, -0.9899473445408721, 0.5014249460811556;
0.007149294088673792, -0.9904835109155541, 0.1374456336099198, 0.9163866670596934;
0, 0, 0, 1]
CALIB_HAND_EYE_HORAUD : TF_cam2base:
[-0.9993738808041648, -0.01178355541934626, -0.03336156753064838, 0.1449803983239057;
0.03466424921915726, -0.1372004777710426, -0.9899365730820685, 0.5014361065115749;
0.007087749466154416, -0.9904732084822266, 0.1375230420199766, 0.9163582931605142;
0, 0, 0, 1]
CALIB_HAND_EYE_ANDREFF : TF_cam2base:
[-0.9993743780003499, -0.01269522783032316, -0.03301035877947404, 0.1407796830242312;
0.0344267143431654, -0.1353541839642536, -0.9901989932447443, 0.47598388979304;
0.008102711641635814, -0.9907159411626054, 0.1357065583910577, 0.9013789661553735;
0, 0, 0, 1]
CALIB_HAND_EYE_DANIILIDIS : TF_cam2base:
[-0.9991364274987548, -0.01055703026510907, -0.0401864200571095, 0.147431232948344;
0.04139066222937648, -0.1682765227699634, -0.9848704610072653, 0.5143066184832382;
0.003634876234282113, -0.9856832964986427, 0.168568166266143, 0.8731462125069626;
0, 0, 0, 1]
1)Can I know why the result from different methods is different ?
2)I observe that the calibration result is wrong if the checker pattern origin is detected differently in different poses. In all poses if the same corner is detected as origin of the checkerboard only then the result is reasonable, otherwise the result is wrong. Is it a constraint for this method ?
Thank you.