zarathustr / hand_eye_SO4

The SO(4) solution to the hand-eye calibration problem AX = XB
27 stars 8 forks source link

Strange result of MATLAB implementation #2

Closed Jakubach closed 4 years ago

Jakubach commented 4 years ago

Hello, Im curious about your algorithm and I am trying to run it. I loaded samples: a) from robot base to robot wrist 3 link: robotBase2Wrist b) from camera to chessboard: camera2Marker I should expect result similar to given by another hand-eye algorithms: Obtained transformation: -0.994175 0.0213239 -0.105644 -0.00604253 -0.10673 -0.0586749 0.992555 0.16979 0.0149665 0.998049 0.060609 -0.034022 0 0 0 1 Instead of this I get from your algorithm example result: 0,524322 -0,838104 -0,150559 0,0668619 0,685962 0,310964 0,657843 0,161761 -0,504522 -0,448190 0,737953 -0,333273 0 0 0 1

Running looks like: [R, t, X] = proposed(robotBase2Wrist, camera2Marker, 1.0 * 10^(4)); I attach data which I use to calibration, one is in x y z qx qy qz qw notation second is in 4x4 homogenous matrices notation I also attach execution script so you can easly reproduce my results using x y z qx qy qz qw notation. Could you explain what could be wrong with my usage of your algorithm implementation? data.zip

zarathustr commented 4 years ago

I think this is related to the implementation of our codes. A short and simple demo will be released soon to help you conduct experiment.

zarathustr commented 4 years ago

@Jakubach I have checked your codes, the problem is that you did not process the correct A and B transformations as described in the equation (6). All you need to do is to reconstruct the correct series using the transformations from the camera and the robotic base.

Jakubach commented 4 years ago

Hello, thank for your help. I've made corrections and I'm going to make some accuracy tests. I will probably also try to make a Python implementation and then integrate it with Robot Operating System software. Good job and stay in touch.