# Hand Eye Calibration Solver [closed]

I have a rig for which I have a pretty good estimate of the static transformation between the camera and a joint based off of the CAD. It has some errors though and I was hoping to fix it by doing a hand eye calibration. So, I started off with generating some data based off of the transformation that I have already. From the papers that I have been reading, they all want to solve the $$AX = XB$$ problem by either converting $A$, $B$ to dual quaternions or simplifying the equation to something like $$n_A = Xn_B$$ where $n_A$, $n_B$ are the eigenvectors corresponding to the eigenvalue of 1 for the $A$ and $B$ rotations.

After generating the data, I tested if my data collection was correct and I validated it by checking if $AX = XB$ for all of the $A$s and $B$s that I generated. I used the CamOdoCal library to try and solve the problem but I got this -

/hand_eye_calib_node    :
[ 0.00196822,   -0.457069,    0.889429,    0.143463;
-0.999965, -0.00813605, -0.00196822,    -1.74257;
0.00813605,   -0.889394,   -0.457069,   0.0270069;
0,           0,           0,           1]

----------------------------------------

/hand_eye_calib_node    : Actual transform
0         0         1   0.08891
-1         0         0 -0.070465
0        -1         0   0.07541
0         0         0         1


The actual transform is the one that I had based my $A$ and $B$ data on. Then I tried implementing the Tsai-Lenz and Horaud and Dornaika's Nonlinear optimization techniques using LM solver but to no avail. I do not get the correct transformation out of any of the solvers.

So, I was wondering if you could point me to a hand eye calibration library or paper that has worked.

(Note that you also need to download the helper function quat2rot.m from the same directory.)