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

enter image description here

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.

enter image description here

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).


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.