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.