How to measure application accuracy

This tutorial shows how to measure application accuracy with KUKA robots, e.g. for grasping objects. The accuracy depends on the absolute accuracy of the robot (i.e. not repeatability) and the accuracy of the hand-eye calibration. Especially errors in the orientation of the sensor may have serious effects.

Note

The hand-eye calibration has to be performed every time the sensor is moved relative to the robot base.

Before we start

To verify the hand-eye calibration you need a robot with a pointing tool tip, a Basler 3D camera, and a printer to print out the Robot-Test-Grid. We assume that the robot cell is operational, the TCP of the pointing tool tip is set and a hand-eye calibration has already been performed.

The hand-eye calibration procedure is described in detail in the rc_visard’s hand-eye calibration documentation. See Hand-Eye Calibration for a Universal Robots tutorial.

The KUKA KRL sample program can be downloaded here: https://github.com/roboception/eki_examples/tree/master/examples/MeasureApplicationAccuracy. The program includes the KUKA KRL src and dat file and a printable version of the ‘Robot-Test-Grid’.

Program overview

The robot will trigger an AprilTag detection and move to the target on the robot test grid. In an ideal world the position of the tool tip should be exactly in the middle of the target and the orientation should be perpendicular to the AprilTags.

../_images/measure_application_accuracy_overview.jpg

Fig. 67 Overview of the test setup

../_images/measure_application_accuracy_pointing.jpg

Fig. 68 Robot pointing on target

It can also help to perform several measurements in the relevant working areas (e.g. pick area, place area etc.) of your robot cell. This might help in troubleshooting to see if the deviation is the same or if it changes depending on the position of the robot test grid.

Measure application accuracy

Warning

Do not drive the robot in automatic mode or with high speed! Always reduce the speed of the robot and use the manual mode.

Warning

No collision checks are active. Please make sure the robot has a collision-free path to the target position.

  1. Print the robot test grid and stick it to a plane surface (e.g. cardboard).
  2. Place the robot test grid in the robot cell and make sure it is completely visible by the sensor.
  3. Run the sample program, which will move the TCP of the robot to the robot test grid target in PTP motion.
  4. The program will stop as soon the target position is reached.
  5. Measure the deviation of the tool tip on the target with a ruler or a caliper gauge.

Note

Pro tip: To measure the translational deviation, the tool can be pushed into the cardboard by manually moving the robot in tool frame. To do this, move the tool in the direction of the Z axis until the tip of the tool pierces the cardboard. Then, move the robot back again and remove the robot test grid from the cell. Now you can easily measure the deviation using a caliper gauge.

Troubleshooting

If the tool tip is not positioned accurately, this can have several causes, ranging from poor hand-eye calibration to an incorrectly set robot. The following points show possible causes and give hints how to solve them.

Inaccurate TCP configuration

Ensure the tool center point (TCP) is set correctly. Check the robot manufacturer manual for more information.

Inaccurate poses during hand-eye calibration

Make sure that during hand-eye calibration the inclination between the calibration poses is as large as possible.

Insufficient poses during hand-eye calibration

A minimum of 4 poses is required. We recommend to specify at least 8 poses in a close and far distance to have an accurate hand-eye calibration.

Wiggling robot or calibration grid during hand-eye calibration

After the robot has reached the calibration pose, the robot or the calibration grid might still wiggle a bit. To reduce this effect, wait a second before recording the calibration pose.

Inaccurate robot

The repeatability of most industrial robots is very good, usually in the sub-millimeter range. However, very few industrial robots are world calibrated. This means that the distance between two points in the robot world differs from the real distance in the world. This absolute accuracy is needed when driving to a position that is given by a vision system. If the coordinate system of the robot does not perfectly match the world, such deviations may occur. This is reflected in the hand-eye calibration error and the accuracy that is measured with the described method. For this reason, some robot manufacturers offer to calibrate the robot to the world.

If you have any questions or issues, please do not hesitate to contact Basler support with a detailed error description.