I tried a hand-eye-calibration with a static camera and the following alogorithm in Matlab. https://de.mathworks.com/matlabcentral/fileexchange/48696-camera-to-robotic-arm-calibration
The algorithm is working fine without errors. It also provides the camera matrix, which is correct because I proofed it with another camera calibration.
But my problem is, that the transformation matrices looks incorrect for me. Also the visualisation of the output pictures are strange.
Here are the transformation matrices and one of the output pictures.
Final camera to arm base transform is -0.2809 -0.1394 -0.9496 0.5000 0.9594 -0.0165 -0.2814 -0.5000 0.0236 -0.9901 0.1384 0.5000 0 0 0 1.0000 Final end effector to checkerboard transform is 0.2479 0.2346 -0.9399 -0.0432 -0.6196 -0.7075 -0.3400 -1.0000 -0.7448 0.6666 -0.0300 0.3707 0 0 0 1.0000
My camera isnt exactly 0,5m in x,y,z away from the base and also the checkerboard isnt mounted 1m away from tcp.
I am using a UR10. One input for the algorithm is the transformation matrix from base to tcp for each pose to the corresponding picture.
So I used the TCP coordinates from base like in the picture to create my matrix. Therefore I multiply the rotation matrices for each angle --> R= rot(rx)*rot(ry)*rot(rz). And I used the translation vector t= (x y z). My transformation matrix is then T= [R t; 0 0 0 1]. Or is there something wrong in my thought?
Maybe one of you guy can help me. If there are any questions, feel free to ask. Maybe you also know another good algorithm for hand-eye-calibration with a checkerboard in python or Matlab (Please no ROS).