Hand-eye Calibration AX=XB

  • Hi all


    I am new to robotics and working on a system with a ABB IRS140 robot.

    I know the position of the calibration poses T_tcp with respect to base

    and using a camera on the robot arm I use OpenCV to get the reference

    point of the checkerboard for 6 distinct poses.


    This seems to become a classic AX=XB issue ... but when I use the MATLAB

    code from the side Calibration and Registration Techniques for Robotics

    http://math.loyola.edu/~mili/Calibration and trying to use the tsai method

    I do not get my T_cam_tcp correct compared to the CAD measures I have
    from which I can kind of create such Transform (X, Y, Z translation

    and X, Y, Z rotations) ... with my colleagues we come up with these

    values ... X = -89, Y = 65, Z = 82, RotX = -90, RotY = 90, RotZ = 0

    The camera is fixed on a flat piece of aluminium fixed to the flange.

    The 6 T_tcp are


    0.90725 0.23559 0.34842 0.66108

    -0.36124 0.01218 0.93239 -0.09569

    0.21542 -0.97178 0.09615 0.64942

    0.00000 0.00000 0.00000 1.00000


    0.91703 0.22225 0.33116 0.66327

    -0.32445 -0.06714 0.94352 0.01049

    0.23193 -0.97268 0.01054 0.61151

    0.00000 0.00000 0.00000 1.00000


    0.91162 0.26480 0.31438 0.68567

    -0.28879 -0.13164 0.94830 0.03672

    0.29250 -0.95527 -0.04353 0.60781

    0.00000 0.00000 0.00000 1.00000


    0.90130 0.40153 0.16256 0.60523

    -0.12297 -0.12266 0.98480 0.03969

    0.41536 -0.90760 -0.06117 0.55953

    0.00000 0.00000 0.00000 1.00000


    0.97106 0.21980 0.09346 0.69541

    -0.07959 -0.07116 0.99428 -0.04072

    0.22519 -0.97295 -0.05161 0.62395

    0.00000 0.00000 0.00000 1.00000


    0.93824 0.33307 0.09361 0.66027

    -0.07050 -0.08083 0.99423 -0.02586

    0.33872 -0.93943 -0.05236 0.56314

    0.00000 0.00000 0.00000 1.00000


    The 6 T_obj (obtained using OpenCV finding

    the right corner on the checkerboard are


    0.36258 -0.90250 -0.23243 0.03124

    0.93192 0.34906 0.09842 -0.05223

    -0.00770 -0.25229 0.96762 0.59633

    0.00000 0.00000 0.00000 1.00000


    0.33057 -0.90876 -0.25471 0.06487

    0.94101 0.33804 0.01519 -0.00784

    0.07230 -0.24470 0.96690 0.55205

    0.00000 0.00000 0.00000 1.00000


    0.29242 -0.92782 -0.23162 0.07337

    0.94979 0.30998 -0.04261 -0.00716

    0.11134 -0.20753 0.97187 0.53973

    0.00000 0.00000 0.00000 1.00000


    0.11954 -0.89560 -0.42849 0.04198

    0.98538 0.15978 -0.05906 0.00085

    0.12136 -0.41517 0.90161 0.52365

    0.00000 0.00000 0.00000 1.00000


    0.08518 -0.96539 -0.24651 0.05835

    0.99388 0.09980 -0.04740 -0.05063

    0.07036 -0.24097 0.96798 0.55213

    0.00000 0.00000 0.00000 1.00000


    0.07525 -0.93004 -0.35968 0.03576

    0.99394 0.09896 -0.04794 -0.03678

    0.08018 -0.35389 0.93184 0.50470

    0.00000 0.00000 0.00000 1.00000


    I even tried to use AX=XB with 5 poses

    from 6, obtained X for each and then

    tried to average the X Y Z and see how

    they differ (using standard deviation as

    metric) but results are not coherent ...


    Is using AX=XB with the tsai method kind

    of only valid for 2 or 3 poses ? I validated

    the MATLAB code with the toy example

    from Shiu paper with (A1, A2, B1, B2)


    Any suggestions will be appreciated !


    Best regards


    Brahim in Singapore





  • AD
  • Nation

    Approved the thread.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account
Sign up for a new account in our community. It's easy!
Register a new account
Sign in
Already have an account? Sign in here.
Sign in Now