Primitive robot programming systems describe all robot actions relative to the robot itself. Many robot tasks, however, can be described solely in terms of the desired effects upon workpieces. For this reason, ``goal-level'' programming systems, in which robot actions are not considered by the programmer, describe position of shape elements relative to other objects.
The goal-level robot programming language RAPT allows operators to describe assemblies, with the objective that the description of the assembly should be ``interpreted'' by a robot. This interpretation would result in the robot creating a physical instance of the described assembly. One of the main goals of the RAPT project was that assemblies be described in terms that are natural to people. With this in mind, the relationships between components of an assembly are defined using operators such as `` AGAINST'' and `` FITS''.
The procedure followed by RAPT involves translating the programmer's specification of object relationships into geometric descriptions. The relationships between objects are specified in terms of individual shape features of the objects, and the goal state is described as a mapping from the axes of one feature to the axes of another. The features in turn are described with respect to the object body with a mapping to the axes of the object. These mappings are all represented as combinations of translation and rotation matrix operators.2.1