ethz-asl/hand_eye_calibration

calibration FAILED in pure rotation scenarios

Opened this issue · 0 comments

Hello,

I'm trying to use the hand-eye calibration to calculate the transformation between two trajectories. These two trajectories are pure rotation, that is, the translation part are all zeros.

When I run "compute_hand_eye_calibration.py", the calibration FAILED. Then I modified the "all-zero" translation with non-zero value, this still occur, but just sometimes.

While debugging, I learnt that the dual-quaternion based calibration algorithm you implemented has a precondition as " assert a != 0.0, "This would involve division by zero." " When I set "all translations = zero", the value "a" exactly equals 0. When I set "all translations = a non-zero value", the value "a" sometimes becomes very small (e.g., 1.0e-15). This seems to be the reason of the failure.

I found a temporary solution as
image

but I am not sure whether this is a right way. Or, maybe this " calibration FAILED" is just because of my improper understanding. I will appreciate any of your help.