Touch Test Fails (Poor Robot Positioning Accuracy) after Good Hand-Eye Calibration (Incorrect TCP)

Problem

Your hand-eye calibration results look good, but the touch test fails.

Hand-Eye Transform

Hand-Eye Residuals

Projection Verification

Touch Test

Reasonable

Good

Good

Bad

Example of good hand-eye calibration results

The Hand-Eye Transformation Matrix appears reasonable and is consistent with what one would expect from rough manual measurements (see table and image below).

Hand-Eye Transformation Matrix

0.999

-0.002

0.0412

-55.598

0.001

0.999

0.0283

-90.654

-0.041

-0.028

0.998

129.044

0

0

0

1

../../_images/eye_in_hand_approximate_hand_eye_matrix.png

The calibration residuals are within an acceptable range, indicating that the optimization has converged successfully.

Residuals

N (Poses)

Rot. avg (°)

Rot. max (°)

Trans. avg (mm)

Trans. max (mm)

10

0.021

0.042

0.109

0.172

For smaller robots, we expect the residuals to in the sub-millimeter range, while for larger robots, the residuals can be in the millimeter range. As for the rotational component of the residuals, we expect them to be in the sub-degree range.

Complete Residuals
Residuals

Pose

Rotation (°)

Translation (mm)

1

0.017292

0.163

2

0.008218

0.135

3

0.028

0.172

4

0.009

0.053

5

0.042

0.080

6

0.008

0.098

7

0.022

0.138

8

0.025

0.077

9

0.036

0.125

10

0.013

0.048

Verification using projection also passes, indicating that the hand-eye transformation is correct and accurate.

../../_images/projection_verification_good.png

Immediately after running a successful hand-eye calibration, you observe one or more of the following:

  • The Touch Test fails (does not land on the expected point).

  • Robot positioning appears inaccurate (e.g., object picking/placement is consistently offset).

  • Robot tip “drifts” or sweeps in a small arc during rotation in TCP frame.

Potential Cause

The Tool Center Point (TCP) is incorrect (miss-measured or miss-aligned).

Even if hand-eye residuals look good, an incorrect TCP means the robot’s assumed tool tip location does not match the physical tip. This leads to:

  • Good hand-eye calibration math

  • Bad physical accuracy

  • Touch tests missing their target

  • Rotation in TCP frame causing visible drift at the tool tip (the most reliable indicator)

This mismatch is the most common cause of failed touch tests after an otherwise correct hand-eye calibration.

How to Verify TCP if Touch Test Fails

This is the recommended and safest TCP validation method. It requires no contact, only rotations, and clearly reveals TCP errors.

참고

It is recommended to use the integrated TCP calibration and verification tools provided by your robot manufacturer.

Prerequisites:

  • Teach/slow mode enabled.

  • A rigid, fixed pointed object (e.g., a screw standing vertically on a flat surface).

  • Robot equipped with a pointed tool.

Procedure:

  1. Position tool tip: Move the robot so that the very tip of the tool coincides exactly with the tip of the reference object. (no contact force, just alignment.)

  2. Switch to TCP Frame: On the robot pendant, select the TCP coordinate system.

  3. Rotate around TCP: Perform small rotations (±10-30°) around X, Y, and Z. Do not translate.

  4. Observe the tool tip:

    • If TCP is correct: the tool tip remains exactly on the reference point throughout the rotation.

    • If TCP is incorrect: the tip visibly sweeps an arc or moves relative to the reference point during rotation. This drift is the definitive sign of a bad or miss-measured TCP.

  5. Re-measure the TCP if drift is observed.

Potential Solution

  1. Recalibrate the TCP, using a pointed reference and the robot’s built-in TCP estimation procedure.

  2. Repeat the TCP verification rotation test.

  3. Once TCP is confirmed correct, re-run the touch test.

참고

  • It is normal for hand-eye calibration residuals to look good even if TCP is wrong. Calibration solves the transformation between frames, not the tool tip’s physical location.

  • When in doubt, verifying TCP via the rotation method is faster than re-running a calibration.