How to easily change reference coordinate system

Technical Articles

What is reference coordinate system

In industrial robotics, a reference coordinate system, often referred to as a “base coordinate system,” serves as a fixed point of reference from which all movements and positions of the robot are defined.

This coordinate system typically represents the origin (0,0,0) and orientation of the robot’s workspace. It is crucial for programming and controlling the robot’s movements accurately.

The reference coordinate system allows the robot to interpret commands relative to a consistent framework, facilitating tasks such as precise positioning, trajectory planning, and coordination with other equipment or components in a manufacturing process.

For example, when programming a robot to perform a specific task, such as picking up an object and placing it at a designated location, the coordinates and orientations of the object and the target location are typically defined relative to the reference coordinate system. The robot then calculates its movements based on these coordinates to execute the task accurately.

In many cases, industrial robots have multiple coordinate systems, including the reference coordinate system and tool coordinate systems, which represent the position and orientation of end-effectors or tools attached to the robot. These coordinate systems enable more complex and flexible operations by allowing the robot to work with various tools or perform tasks in different orientations without needing to reprogram the entire motion path.

Changing the reference coordinate system for a program

Consider this scenario: You have a programmed system containing over 100 movement points, all defined within a particular reference coordinate system. However, you’ve realized that a different reference coordinate system must be employed for this program.

The challenge lies in maintaining the physical positions of all points while transitioning to the new reference coordinate system. In the following example, points P1 to P4 are originally defined in reference frame 1, but they need to be repositioned within reference frame 2, which differs from frame 1, while preserving their original coordinates.

 

Let us take a practical example. If you deal with a KUKA robot for example, you can not easily change the base number because the robot will move to another position different from the programmed ones.

To solve the problem there are 2 different ways:

  • Easy but boring way.
  • Difficult but faster.

The easy way is to move to each point and reteach the point using the new reference system. Anyhow this process is easy but very boring because you have to follow 5 steps for each point as follow:

  • Activate the old Base.
  • Move the robot to the point then stop.
  • activate the new base
  • Save the point again.
  • Repeat for the second point

This boring way can be overcome by Calculating the transformation matrix between both bases (between both coordinate systems) then multiplying all points with this matrix.

The transformation matrix between those 2 Systems is the inverse of the new reference coordinate system multiplied by the old reference system.

Once the transformation is computed, it needs to be applied to all points through multiplication. This action enables the activation of the new base, allowing the robot to relocate to the same physical points but with the new base as the reference.

In conclusion, we’ve demonstrated just one method to address the issue. There may be other programming approaches available, but our aim was to present a straightforward solution without unnecessary complexity.