Warning

You are reading an old version of this documentation. If you want up-to-date information, please have a look at 4.2 .

Hand-eye calibration - good practices

Robot coordinate frame (RCF)

The robot frame can be anywhere, it will not change the hand-eye calibration performance. However, we advise you to have:

  • Robot frame in the same plane as the Asycube: Place the Z=0 of the robot frame at the same level as the Asycube plate.

    • The positioning of the robot to pick up a part will only be the coordinates provided by EYE+ (X,Y) added to the picking height of the part (Z) for your robot application.

    • Placing the RCF on the Asycube plate guarantees the validity of the Z coordinates added manually. If the world coordinate frame is used instead, Asycube plate may not be perfectly parallel to the base of the robot. This means that the Z coordinate might depend on the X and Y coordinates.

  • Robot frame origin in one of the four Asycube corner: Coordinates sent by EYE+ are easier to visualize when the origin is in a corner (Fig. 169).

    Important

    You have to manually add an offset to the angle RZ sent by EYE+ to make the 0-angle of your robot match the 0-angle of the vision coordinate system. Refer to section RZ angle correction for more details.

Tool center point (TCP)

The coordinate system is used to help the robot move in space. Without tools or grippers on the robot, the end of the arm is used as the reference point for motion control (TCP on the last joint of the robot).

The controller can move each of the robot joints simultaneously to make the reference point move in space to requested positions. When you add a tool or a gripper to the robot arm, the reference point must change to reflect the offset made by the tool. A Tool Center Point or (TCP) is used to create the required offset. This allows the controller to move the coordinate system to follow the tool instead of the end of the arm.

../../_images/TCP_description.png

Fig. 168 left: TCP on last robot joint; right: TCP with the tool offset

Tool coordinate frame (TCF)

The tool coordinate frame is positioned on the Tool center point (TCP). Usually the Z-vector of the TCF is oriented opposite to the robot last joint or opposite to the robot tool. TCP position is the position where you want to grip the part.

Some TCP examples:

  • Finger gripper: Position of the TCP where the gripper will grab the part (Fig. 169).

  • Vacuum gripper: Position of the TCP at the end of the gripper.

../../_images/frame_good_practice.png

Fig. 169 RCF and TCF position. Yellow coordinate system: TCF; Red coordinate system: RCF

RZ angle correction

Why do we need to manually correct the RZ angle?

EYE+ does not know the 0-angle of your robot. EYE+ only knows the Vision Coordinate Frame (VCF) that is positioned in the top left corner of the Asycube (yellow frame in Fig. 170, Fig. 171).

The robot TCF can have different orientation. Fig. 170, Fig. 171 show examples where an offset of 90° is needed to pick the part in the same orientation.

../../_images/TCF1.png

Fig. 170 TCF1; Yellow: Vision Coordinate Frame; Blue: Robot Coordinate Frame

../../_images/TCF2.png

Fig. 171 TCF2; Yellow: Vision Coordinate Frame; Blue: Robot Coordinate Frame

How to correct the RZ angle?

To make the correction shown above, the TCF Z axis must be in the same plane as the Z axis of the VCF and oriented in the same way (down: Fig. 170, Fig. 171).

  1. Place a part with your gripper on the Asycube (can be anywhere with any orientation).

  2. When the part is correctly placed, keep in mind the RZ angle given by your robot.

  3. Move the robot out of the field of view without moving the part and check the angle sent by EYE+ by sending the command get_part from the EYE+ TCP terminal.

    Note

    If you do not know how to do it, please refer to section TCP programming guide.

  4. On the robot side, apply a static correction to have the same angle on the robot and on EYE+.

  5. Check the correction by moving the part to a different orientation. The robot and the EYE+ should show the same value.

How can I increase hand-eye calibration accuracy?

Using a part dedicate for hand-eye calibration

  • Part that guides the gripper: You can use a specific part to perform the hand-eye calibration. Fig. 172 is an example of a part that guides the tip of the gripper to a specific position. This way, the positioning of the gripper is more precise.

    ../../_images/handeye_calibration_part.png

    Fig. 172 Example of part that guides the gripper

  • Part that has a basic shape: Basic shape ensure the picking position coordinates in the recipe.

  • Part with small height: If the part has a small height, the parallax correction will not be taken into account for the picking position. This minimizes positioning error.

Make sure to place the tip of the gripper in the exact same position as the picking position.

Note

If your TCP is not positioned at the end of the gripper, try to orientate the gripper as vertically as possible.

Note

If you use a specific part only to perform the hand-eye calibration, there is no need to finish the recipe until the end. You can stop recipe edition after the picking position step.

Important

If you do not have the same gripper in hand-eye calibration as in production, please make sure to take into account their different TCP.

Part positioning

Position in the plate: Place the 4 parts as far away from each other as possible without touching the edge of the Asycube. The 4 best positions are in each corner of the Asycube. The more different the 4 coordinates, the better the calibration.

Relative position: The part must not move between robot coordinates acquisition and vision coordinates acquisition.