Coordinate System and kinematic transformation

The essence of a trajectory is the coordinated motion of two or more axes from a starting point to a target point via a defined path with a specified path velocity. As path one can think of a straight line, a circular movement, or via a spline function. The definition of a path -or any position information - in space requires a coordinate system. Within this specification three coordinate systems are defined:

../_images/45d92077deeb2d410a33139000f4dd1c

Overview of the coordinate systems and transformations

../_images/e93f7176de930db50a331390010b091f

Example for specifying point P in PCS, MCS or ACS assuming a SCARA robot with two rotary axes

ACS: Axes Coordinate System

Actual position of the physical axis (after homing).

MCS: Machine Coordinate System

Cartesian coordinate system with the origin is a fixed position relative to the machine. (Sometimes called “World Coordinate System” or “Base Coordinate System”). (Note: with Cartesian build machines, MCS may be identical to ACS, or mapped via a trivial transformation). The coordinate system from the physical multiple axes ACS is linked to the MCS via a kinematic transformation (forward and backward conversion).

PCS: Product Coordinate System

The real work piece can have a rotation or shift to the MCS or even might be moving relative to the MCS, and often one wants to describe the trajectory independent from the machine situation. To map these two worlds (MCS to PCS and vice versa), a cartesian or cylindrical transformation is normally done. The coordinate system of the product can be called PCS: “Product Coordinate System”, or “Program Coordinate System” in CNC world. There can be more than one PCS transformation applicable at the same time. In this case the ENUM to specify the coordinate system (CS) has to be extended. A PCS can be a static or a dynamic transformation.

In order to specify a point or orientation in space a position always has to be related to a coordinate system. By means of transformations this position can be transformed to other coordinate systems. Within this specification, Function Blocks are defined for these transformations, hiding the complexity of these transformations to the programmer in its day to day use. All multi axes motion commands are related to only one of the coordinate systems at the same time.

Example for specifying point P in PCS, MCS or ACS \ assuming a SCARA robot with two rotary axes

Point P is situated on a 2D workpiece. It can be described equivalent in PCS, MCS and ACS. Point P could be specified by referring to PCS resulting in the position PPCS = (x:sub:PCS, yPCS). Given the shift and orientation of PCS relative to MCS, point P equivalently could be speci-fied by PMCS = (xMCS, yMCS). Assuming a SCARA robot with two rotary axes point P also could be described by the angles of the axes PACS = (ɸ1, ɸ2).

../_images/0aea8febdeeb2fd50a33139000572b03

Specifying point P in PCS, MCS or ACS assuming a SCARA robot with two rotary axes