Frame, Relation, Transformation

In the Robotics API, coordinate frames are modeled by a class consequently named Frame. A Robotics API frame is essentially a named point somewhere in Cartesian space. The geometric relation to other Frames is not stored in the Frame itself, but is modeled by the classes Relation and Transformation.

A Robotics API Relation defines the geometric relation between exactly two Frames. Each relation stores the actual geometric displacement in a 4-dimensional transformation matrix (the Transformation). This matrix combines translation along the coordinate axes of one Frame and rotation around those axes, which together completely describe the geometric relationship. Figure 2.1 shows the Frames ’LWR Base’ (base frame of a robot) and ’LWR Flange’ (flange frame of this robot), which are connected by a special relation. The Transformation associated with this Relation is calculated automatically by the kinematic function of the robot. This shows that there exist different kinds of Relations with different semantic meanings. Some of those relations, as well as the Frames they connect, are managed by Devices (in this case the robot) and thus are immutable by Robotics API programs. However, it is always possible to create new Frames and Relations and connect those to any other Frames. This will be explained in the next sections.

Figure 2.1: Two Frames connected by a Relation