• Ardavan

Hands-on with ABB Robots

There are several techniques to learn for working with ABB IRB family of robots. For now, we are focusing on these skills:

  1. Tool definition

  2. Workobject definition

Tool Definition

When working with a robot, it is critical to define the part of the robot that should touch the target. Think about it like your fingertip; when you want to touch a button on your phone, your brain calculates where your fingertip should move and orders your muscles to follow a specific arrangement to place your fingertip on that button. Now, if you have a stylus in hand, your brain calculates the length of the stylus, as well as its orientation in your hand before ordering your muscles to move.


By default, ABB robots assume that there is no tool attached to the end of the arm and consider an imaginary point at the center of the flange as the Tool Center Point (TCP) and use a vector normal to the flange as the z-direction of the tool. This imaginary tool has a fixed name, tool0.


If you want to have a different tool on the robot, you need to define that tool before using it. This definition is going to clarify some important factors:

  • TCP Location: Which part of the tool should be placed at each target;

  • TCP Orientation: Which orientation should the tool have with respect to the target.

To clarify these two points, let's think about a painting robot. This robot has a paintbrush installed on it. By default, the robot has no information about the brush. It doesn't know where the brush head is located. Thus, we need to clarify how far in x, y, and z direction the brush head is located with respect to the flange.


Tool0 (top) and custom-defined tool (bottom)

There are multiple methods to define a tool using the teaching pendant. We decide on the method based on the tool and the way we want to use it.


3 methods of tool definition
  1. TCP (with 4 points) and default orientation: This method is useful when the tool is oriented along the z-axis of the flange and the rotation around the z-axis is not important for its proper functionality. A round-headed sharpie marker is a good example. It doesn't matter if the sharpie rotates around its length, it always leaves a round dot on the paper.

  2. TCP + Z direction: This method is useful when we want to define a tool with different z-axis from the default z-axis of the flange, but the rotation of the tool around its z axis is not important. A good example, in this case, is a suction cup gripper. The suction cup should approach the target parallel to the normal vector of the surface, but the rotation of the gripper along its z aixs is not important.

  3. TCP + Z and X directions: In this case, the exact orientation of the TCP will be defined to make sure that the tool approaches the target with correct rotation along the x,y,z axis. Although we only define z and x direction, the robot will calculate the y axis by itself.


Define a Tool:

To define a tool, you need to first set up a tool and then define it. You can access the menus to do on the teaching pendant from this path:

  • Menu\ Program Data\ tooldata\ and then click on Show Data

To set up the tool:


To defined the tool:

You should select your method based on the tool that you are using. Ask yourself:

  1. Do I need to know the tool's z direction?

  2. Do I need to know the tool's rotation?

Then based on the answer to those questions, select the proper method.

  • No & No: TCP (default)

  • Yes & No: TCP + Z direction

  • Yes & Yes: TCP + Z and X direction

In each method, you will approach a fixed point in space (for example peak of a probe) from 4 different directions with the maximum accuracy that you can. If you are using the default method, then you are done.

If you are using the other two methods, you should follow those 4 points with another set of point(s). These points should be defined in such a way that if we draw an imaginary line from that point and the probe peak, it defines the tools X or Z positive direction.


Once you are done, you should hit OK and let the robot calculate the tool's data. If you fail to do so, your work will be lost!



Workobject Definition

Workobjects help us to define a costume-made coordination system and use it to address targets in this new coordination system. Workobjects are extremely helpful when:

  1. We want to define the same set of targets on multiple objects. For example, when we want to draw the same pattern on multiple pieces of paper. We only define the targets once, then we can define a workobject for each piece of paper and transfer the targets to the new workobjects. The robot will calculate the exact location and orientation for each target in the new coordination system.

  2. When we want to have a quick way to recalibrate the object that we are going to work on. To illustrate this scenario, think about a project that you are going to finish during 3-4 session. Every time that you are done with a session, you need to remove your material and tools. When you show up next time, you cannot precisely return every single item to its original location. Instead, you should design a tray or frame and fix everything on it, then define your targets. When you want to start working again, you just need to define the exact location of that tray using a workobject and the robot will update the location and orientation of all other elements automatically.

To define a workobject, you need to define:

  1. X axis starting point (x1);

  2. X axis positive direction (x2);

  3. Y axis positive direction (y1).

To have a better understanding of the relationship between x1, x2, and y1, please refer to the diagram below:





46 views
  • Academia
  • Google Scholar
  • Research Gate
  • Github
  • YouTube
  • LinkedIn
  • Twitter

© 2015-2020 by Ardavan Bidgoli