## 1. Introduction

The kinematic analysis of parallel kinematic machines (PKM) is a challenging field, since PKM are complex multi-body systems involving a couple of closed kinematic loops. It is well-known that the forward kinematic function has in general no closed-form solution, and that up to 40 different real solutions may exist for general geometry (Husty, 1996,Dietmaier, 1998). Therefore, an efficient and handy method is needed in practise, e.g. for design, simulation, control, and calibration.

The analysis of manufacturing and assembly errors of manipulators is a topic that is highly relevant for practical applications because the magnitude of these errors is directly coupled to the total cost of production of the manipulator. In this setting, there exist intensive studies on how to estimate the error of certain moving points, e.g. the tool center point, in terms of the errors in the components of the mechanism (Brisan et al., 2002, Jelenkovic & Budin, 2002, Kim & Choi, 2000, Song et al., 1999, Zhao et al., 2002), as well as how to allocate cost-optimal tolerances to a mechanism (Chase et al., 1990, Ji et al., 2000). In this paper, an approach to estimate the first-order influence of geometric errors on target quantities is suggested in which linearization is performed by considering the force transmission of the manipulator. This enables one to obtain a comprehensive model of linearized geometric sensitivities at a low computational cost.

Error analysis for serial manipulators is relatively easy because one can establish an analytical expression for the forward kinematics which maps the generalized joint and link coordinates to the spatial displacements of the end-effector. There are numerous methods to parameterize the forward kinematics, where the approach of Denavit and Hartenberg (1955) is the most popular one. Once one has a closed-form expression for the forward kinematics, one can take derivatives of it (with respect to the geometric parameters one is interested in) and use these as sensitivity coefficients. In general, one introduces the sensitivity parameters in such a way that they vanish at the nominal configuration. This is always possible by introducing corresponding constant offsets where necessary.

For example, consider a robot involving a universal joint, and assume that the sensitivity to errors in the fulfilment of the intersection property of the axes is to be analyzed. This can be done by adding a parameter for the normal distance between the joint axes which is zero in the nominal design, and with respect to which the partial derivative will yield the sought sensitivity. However, such a method for sensitivity analysis results in a model with a significant overhead. Examples of such models for joints are presented (Brisan et al., 2002,Song et al., 1999). Some force-based methods for clearance analysis were introduced, which are similar to the approach in this paper (Innocenti, 1999, Innocenti,2002, Parenti-Castelli & Venanzi, 2002, Parenti-Castelli & Venanzi, 2005).

A linearization method for complex mechanisms using the kinetostatic dualism and the concept of *kinematical differentials* to efficiently set up the equations of motion of multi-body systems has been proposed (Kecskeméthy & Hiller, 1994). Using this method, all required partial derivatives can be described solely by using the kinematic transmission functions for position and velocity, as well as the force transmission function of the system. Based on these transmission functions, an algorithm is formulated for generating the Jacobian matrix and the equations of motion through multiple evaluations of the kinematic transmission functions for certain pseudo input velocities and accelerations. The corresponding algorithms are denoted as *kinematical differentials* for the case of the pure kinematic transmission function (Hiller & Kecskeméthy, 1989) and *kinetostatic approach* for the case of use of force transmission (Kecskeméthy, 1994). Later, Lenord et al. (2003) showed that kinematical differentials may be applied also to more general interdisciplinary systems which also involve hydraulic components by using an exact linearization through the kinematical differentials for the determination of the velocity linearization and numerical differentiation for the calculation of the stiffness matrix of the hybrid system. Other authors studied the determination of the stiffness matrix for complex multi-body systems using explicit symbolic derivatives (El-Khasawneh & Ferreira, 1998, Rebeck & Zhang, 1999), taking into account the stiffness of the actuators and the stiffness of special components. These approaches however require numerous computational steps when many sensitivity parameters are involved.

## 2. Kinematic modeling of parallel kinematic machines

### 2.1. Kinematic delimitation and geometry

In order to study a wide range of machine types, a generic approach for the modeling of PKM is proposed (Pott, 2007). Since PKMs tend to be symmetric and different types of PKM have similar components a modular design is used. In a first step the machine is divided into three types of components: frames, platforms and legs (Fig. 1), which form the modules of the kinetostatic code.

The machine frame defines the position and orientation of six pivot points A_{i}. The mobile platform introduces the position of six pivot point B_{i}. Furthermore, the platform defines the parameterization of the six-degrees-of-freedom (dof) of spatial motion at the tool center point (TCP). Finally, different types of legs are introduced which mainly determine the kinematic behaviour. The most common legs for PKMs are PUS, UPS and RUS structures each consisting of an actuated prismatic (P) or revolute (R) joint as well as a pair of a universal (U) and a spherical (S) joints. Each of these structures can be described by one scalar constraint, as it is shown hereafter.

Each legs considered in this paper possess a pair of joints formed by a universal joint and a spherical joint. For the analysis of the closed-kinematic chains, these joints are known as characteristic pair of joints (Woernle, 1988). One can remove both of these joints and replace this partial chain by one nonlinear scalar constraint. This constraint describes the geometrical distance between the center of the universal joint and the center of the spherical joint for the i-th leg as

where a_{i} denotes the position vector of the pivot point on the base and b_{i} is the relative position of the pivot point with respect to the coordinate system fixed to the platform. The Cartesian position and orientation of the platform frame K_{TCP} is given by the vector r and the orthogonal matrix R, respectively. The vector l_{i} denotes the length of the leg. Solving Eq. (1) for the magnitude l_{i}² of the vector l_{i} yields the system of six nonlinear constraints

The world coordinates y consist of a parameterization of the position r and the orientation matrix R. The geometry of the machine is expressed by the vectors a_{i}, b_{i} and l_{i.} In the following sections the definition of these vectors is introduced depending on the generalized coordinate q_{i} of the six actuators and the kinematic structure of the basic types of legs for parallel kinematic machines.

The UPS legs are used in the Stewart-Gough-platforms which are often applied for motion simulators of cars and aircrafts. The prismatic joint is actuated as linear actuator, e.g. by a linear direct drive, ball bearing screw, hydraulic/pneumatic cylinder. For these mechanisms the pivot points A_{i} on the base

are determined by the machine frame and fixed to a given position c_{i}. The length of the strut can be controlled by the drive through

where q_{o} is a constant offset.

The PUS leg results from changing the order of the joints within the UPS leg. The universal-spherical pair encloses a leg of constant length while the proximal pivot point is actuated along a line. PUS legs are the basic leg components for Hexaglide, Linaglide and Linapod PKM. They are described by the position vector c_{i} and the direction u_{i}. Thus, the position of the proximal pivot point A_{i} is defined as

where q_{i} is the generalized coordinate of the drive. The length l_{i}=const of the strut is given by design.

Finally, the kinematics of the RUS leg is considered which is the basis of the Delta-robot (Clavel, 1988). In contrast to the PUS leg, the proximal pivot points A_{i} of RUS legs move a circle defined by its center c_{i}, an axis of rotation u_{i}, and a lever v_{i} which is given in its initial position. Thus, it holds for the point A_{i}

where T(u_{,} q) is the rotation matrix for the axis u and the angle q as it can be calculated by Rodrigues formula. Again, for RUS legs the length of the strut l_{i}=const is given by design.

### 2.2. Review of the kinetostatic method

In the sequel, a short introduction to the kinetostatic method (Kecskeméthy, 1993, Kecskeméthy, 1994) is given as a basis for the herewith presented linearization procedure. Below, the basic equations of the kinetostatic transmission element are reviewed for better reference in this paper. Details can be found in the cited papers. In the kinetostatic formalism, mechanical components are modeled as transmission elements (Fig. 4) that map the kinematic state
*K*
_{i} and scalar variables β_{i} to another set {*K*
_{i}',β_{i}'}. This concept allows one to model serial manipulators as chains of transmission elements.

Interestingly, the motion of closed kinematic loops can also be represented with the help of transmission functions. For simple kinematic loops with one dof, this may be done in an explicit form. In general, however, one has to employ iterative methods to solve the loops. Nevertheless, in both cases one is able to compute the transmission function for position, velocity, acceleration, and force.

Assuming that the position transmission function is given as y=φ(q), where q=[q_{1}, …, q_{n}]^{T} is a set of independent joint variables of the mechanism, the velocity transmission takes the form

For a given set of joint coordinates q, the twist
_{q} acting as coefficient vectors. Assuming ideal transmission behaviour within the transmission element, power is neither generated nor consumed. Thus, virtual work at the input and the output can be set equal, and one obtains

where the virtual displacements fulfil

The relations (7) and (9) for velocity transmission and force transmission is called *kinetostatic duality*. The basic idea of the *kinematical differentials* is to evaluate the velocity transmission function
_{q}. Thus, the Jacobian J_{q} can be determined with n passes of velocity transmission. This method is called *velocity-based Jacobian algorithm*. By exploiting kinetostatic duality, this algorithm can be analogously applied to force transmission yielding the *force-based Jacobian algorithm*. Here the Jacobian J_{q} is computed row-wise by setting unit pseudo forces
_{q}. Thus, the Jacobian can be computed row-wise by six force transmissions for a general manipulator independently of the number of input parameters. This Jacobian evaluation procedure shall be further exploited here.

The complete kinetostatic formalism is implemented in the object-oriented programming library Mobile that uses the C++ programming language (Kecskeméthy, 1994), and a differential geometric interpretation of the kinetostatics has been given in (Kecskeméthy, 1993).

### 2.3. Modular modeling of parallel kinematic machines

As already mentioned before, the PKM is subdivided into the modules platform, frame, and legs. These components are the foundation of a modular kinetostatic model, which automatically assembles and solves the system of nonlinear constraints. The expressions introduced for the different legs in section 2.1 can be used to calculate the relative kinematics of the different types of PKM. By means of the kinetostatic method, C++ classes for the elementary components of multi-body systems, i.e. prismatic joints, revolute joints, and rigid bodies as well as the constraint solvers for kinematic loops are used for the modeling. These elements defined the required transmission functions for position, velocity, acceleration, and force. Thus, if the machine can be automatically assembled from these classes, one receives a comprehensive tool for the kinematic analysis of parallel robots.

A class called generic machine assembles a kinetostatic model from the components introduced above. Firstly, the legs is attached to the platform and to the frame. For the forward kinematics the legs provide constraints that characterize which motions can be transmitted. The generic machine assembly module collects the constraints from the legs and the generalized coordinates from the platform in order to combine them to a nonlinear system of equations. Then a numerical procedure like a Newton-Raphson-algorithm is applied to solve the forward kinematics. Once the position of the platform is determined one can use local methods from the legs to calculate the complementary variables of the passive joints in each kinematic loop.

The module frame defines the geometry of the base of the PKM by providing the position and orientation of the coordinate frame *K*
_{Ci}, i=1,…,6. These coordinate frames are connected to the world coordinate system by rigid links. On the other hand, the coordinate frames *K*
_{Ci} are the interface for the legs to be attached to it. The module platform firstly defines the end-effectors frame *K*
_{P} by means of the world coordinates y=[x,y,z,ψ,θ,ξ]^{T} with respect to the world coordinate frame *K*
_{0,} where x,y,z define the Cartesian position of the end-effector and ψ,θ,ξ are a parameterization of the special orthogonal group SO(3), e.g. by use of Bryant angles. The position of the platform pivot points *K*
_{Bi}, i=1,…,6 can be defined with respect to the frame *K*
_{P} giving the geometry of the moveable platform. This presents a kinetostatic transmission function μ(y) mapping the world coordinates y to the pivot points *K*
_{Bi}. The modules for the legs present the governing properties for the kinematic transmission of the PKM, i.e. by presenting the kinetostatic transmission elements for the joints and the rigid links. The frames *K*
_{Bi} and *K*
_{Ci} act as interfaces to attach the legs to the platform and the base. To solve the forward kinematics each type of leg presents a specific constraint υ_{i}(K_{Bi},K_{Ci},q_{i}) which will be used by a central solver for forward kinematics. The constraint υ_{i} for the different types of legs basically implements equations (3) – (6). Finally, the legs implement functions to solve for the angles in the passive joints, i.e. computes the orientation of the universal and spherical joints. This can be done in an explicit way by projection techniques that are well-known from solving four-link bar mechanisms.

For the forward kinematic problem one has to determine the platform world coordinates y from given generalized coordinates q. Based on the aforementioned modules the following algorithm can be used for all parallel robots treated in this work:

The module frame calculates the pivot points K

_{Ci.}A central constraint solver collects the constraint υ

_{i}(K_{Bi},K_{Ci},q_{i}) from each leg module. Furthermore, the constraint solver receives the function μ(y) from the module platform. The constraint solver uses these equations to set up the nonlinear system Γ(q, y)=0.The constraint solver calculates the solution y* for the system Γ(q, y)=0 with a Newton-Raphson-algorithm.

The platform updatest the K

_{Bi}with μ(y*).Each leg determines the dependent angles of the passive joints from the known values of (K

_{Bi},K_{Ci},q_{i}).

Thus, a comprehensive algorithm for forward kinematics for the Stewart-Gough-platform, the Delta-robot, and Linapod like machines is presented. Note, that by using the kinetostatic methods one also receives these relations in terms of velocity, acceleration, and force. The resulting kinetostatic model can be used for a wide range of functions for kinematic analysis e.g. forward kinematics, calculation of the Jacobian matrix, and dexterity indexes, and equations of motion. The discussion of all these algorithms is out of the scope of the paper. In the following section, the determination of a geometrical linearization will be highlighted.

### 2.4. Linearization and sensitivity analysis

In this study, the function of the forward kinematics of a multi-body system is denoted by φ (q,g), where q are the generalized independent joint coordinates, and g collects all geometric parameters of the manipulator. The evaluation of the forward kinematics yields the world coordinates y of a particular point of the end-effector of a manipulator together with the orientation of the end-effector, which shall be denoted here as end-effector frame (EEF). For most of the non-serial mechanisms, the function of the forward kinematics φ is not unique, since there may be multiple positions for the EEF that correspond to a given set of generalized joint coordinates q due to different assembly modes. Here, it is assumed that it is possible to choose the solution that corresponds to the actual assembly mode, e.g. by giving appropriate initial conditions. The linearization of the mechanism is formally achieved by taking the derivative with respect to the variables q and g, respectively, i.e. as

Here, quantities
_{q} denotes the well-known Jacobian matrix that is related to the kinematic dexterity of the manipulator. The matrix J_{g} is also a Jacobian matrix which characterizes the sensitivity of the position y of the EEF with respect to small changes, e.g. errors, in geometric parameters and which is used for sensitivity analysis.

For serial manipulators with n dof, the function φ can be written analytically in terms of the Denavit-Hartenberg-parameters (α,θ,d,a)_{i} (Denavit & Hartenberg, 1955) and the vector of the geometric parameters becomes

Thus, the Jacobian matrices J_{q} and J_{g} can be calculated symbolically for serial manipulators. For nontrivial robots, however, the expressions are usually so extensive that they only can be handled by means of computer algebra.

Complex manipulator systems are characterized by the occurrence of closed kinematic loops. Such mechanisms have more joints than degrees-of-freedom, and the joint coordinates are coupled through closure conditions. This implies that the expressions for φ are either complicated, or that φ can only be computed point-wise by the iterative solution of an implicit system of nonlinear constraints the latter being the general case which occurs especially for parallel kinematic mechanisms that involve multiple coupled loops. Closed kinematic loops also occur in transmission mechanisms that can be found for instance in hydraulically driven manipulators like excavators or large scale manipulators, since they support the force transmission.

To overcome the lack of an analytical forward kinematic function for complex manipulators, the loop closure conditions f(y,g)=0 can be utilized for sensitivity analysis; by applying implicit differentiation (see e.g. Wittwer et al., 2004), one obtains

where y=[x^{T}, θ^{T}]^{T} are the world coordinates of the end-effector frame, e.g. in form of a position vector x in R³ and the orientation θ holding e.g. Bryant angles, and g are the geometric parameters. Then, one immediately obtains for the variation of the EEF world coordinates δy=A^{-1}Bδg, where the matrix A^{-1}B maps the errors δg in the components to the displacements δy of the EEF (Wittwer et al., 2004).

There are certain drawbacks to this approach: First, for mechanisms with more than three dof, an analytical form of matrix A^{-1} can hardly be handled due to the length of the corresponding expressions. Second, if sensitivity analysis is established on the closure condition, one cannot access geometric parameters that are canceled ad-hoc through the formulation of the closure conditions. For example, the normal distance between the joint axes in universal joints is often eliminated because the number of closure constraints can be significantly reduced by assuming it to be exactly zero.

### 2.5. Linearization of manipulator systems

Applying the kinetostatic formalism provides a procedure to calculate position, velocity, acceleration, and force transmission for an arbitrary manipulator. In general, this results in a chain of transmission elements as depicted in Fig. 5, where the individual mapping can also correspond to closed kinematic loops since such loops are also represented by transmission elements. In this figure, a twist
_{i} of a frame *K*
_{i} and its corresponding velocity v_{i} of its origin, both decomposed in some frame. A wrench
_{i} at the frame *K*
_{i} and an applied force f_{i} at its origin, again decomposed in some frame. Given a certain set of joint coordinates q, one can introduce a virtual twist displacement
*K*
_{i}, where δr_{i} is a virtual translational displacement and δφ_{i} is an infinitesimal rotational increment in the space of rigid-body rotations, and study the corresponding virtual twist displacement δt_{N} at the EEF *K*
_{N}. This linear relation is given by

where J_{i} denotes the Jacobian of the velocity transmission from frame *K*
_{i-1} to the frame *K*
_{i}Using kinematical differentials (Sec. 2.2) one calculates the Jacobian
*K*
_{N} with respect to displacements in *K*
_{i}and then concatenates the matrices

In contrast, one can evaluate the force transmission function, relating the wrench w_{N} at the EEF to the internal wrenches
*K*
_{i}, where m_{i} represents the moment being applied to the frame *K*
_{i} from the base-distal subchain to the base-proximal subchain, and f_{i} is the corresponding force with respect to the origin. Due to kinetostatic duality, one obtains

The force transmission presents the major advantage that one can use w_{i+1} to determine
_{g}. This leads to the following simple algorithm to determine the sensitivity Jacobian J_{g}:

Solve the forward kinematics for the desired set of joint coordinates q of the manipulator

Choose unit forces F

_{x}, F_{y},F_{z}and unit torques M_{x}, M_{y}, M_{z}with |F_{x}|=|F_{y}|=…=|M_{z}|=1 along the axes x, y, z of the EEF, respectively.For each of the unit loads described above, perform the following steps:

### 2.6. Virtual error joints

The relations in the previous section can be intuitively illustrated by *virtual error joints* which were introduced by Woernle (1988) and extended by Pott and Hiller (2004). The basic idea is to insert additional independent joints which allow motion in the direction of the expected errors. Fig. 6a presents a mechanism that involves a kinematic loop. For this planar four-bar mechanism, one might wish to investigate the influence of changes in length of the coupler. One introduces an additional prismatic joint in which the variation of the length of the coupler is embodied (Fig. 6b) and the influence of changes in length of the coupler can be calculated by using the velocity transmission. The algorithm in Sec. 2.5 can also be derived using this model (Pott & Hiller, 2004), where the virtual error joints are used to measure the back-propagated forces.

Based on the linearization algorithm described above, a number of applications can be investigated, as described next.

## 3. Applications

## 3.1 Manufacturing error analysis

The Jacobian matrix J_{g} permits to study the influence of geometric errors on the accuracy of the EEF. These errors may arise from the manufacturing and assembly process of the manipulator. They cannot be avoided, but may be controlled through more precise, but at the same time more expensive manufacturing techniques. Consequently, a comprehensive analysis of the influence of changes in parameters is useful for optimal system design. This analysis is basically done evaluating the Jacobian J_{g} mapping parameter variations δg to the displacement δy of the EEF. The magnitude of geometric errors δg_{i} is normally small compared to the nominal parameter δg_{i}. Therefore, the error estimated by the linear model is very close to the error calculated with the generally nonlinear model (Sec. 4.2).

For different manipulators of the same type, the actual kinematic parameters may vary within the tolerance intervals defined by the manufacturing and assembly process. Here, it is assumed that the actual errors are Gaussian variables with a standard deviation proportional to the tolerance. The changes in parameters are assumed to be small and independent. Thus, the square of the total error is equal to the sum of squares of the single errors obtained by propagation of the manufacturing, clearance, and assembly errors.

For the addition of two Gaussian variables, the standard variation of the sum becomes
_{1}, σ_{2} denote the standard deviations of each summand. In the case of a three-dimensional vector, the total error becomes
_{x},e_{y},e_{z} are the errors in the three components. For the columns of the Jacobian, one has to mix rotational and translational components. This requires the introduction of metric coefficients that relate rotations to translations and vice versa. Such metric coefficients can be regarded as virtual levers that map rotations at one end to translations at the other and thus generate sensitivities such as “long and slender” (orientations over-emphasized) or “short and thick” (rotations under-emphasized). Assuming that standard deviations σ_{i} are known for all geometric parameters, the error of the EEF becomes

where [J_{g}]_{ik} denote the entries of the Jacobian and ρ_{k} are the aforementioned metric coefficients. For the case of an identical standard deviation σ for all components σ_{i} one obtains

Here,
*overall error amplification index* since it estimates the sensitivity of the whole manipulator at a given configuration with respect to geometric errors. This index is similar to the statistical approach to error analysis of Wittwer et al. (2004).

If a certain accuracy is required for a specific task, the maximal error Δe_{max} of the EEF is known and one can estimate the average standard deviation σ= Δe_{max}/

### 3.2. Stiffness analysis

The linearization of a manipulator with respect to its geometric parameters provides a linear mapping between infinitesimal changes in the geometry and infinitesimal variations of the EEF. Assume J_{g} to be the Jacobian transmitting infinitesimal twists δt_{i} at each of the frames *K*
_{i} to infinitesimal twists δt_{EEF} at the end-effector frame *K*
_{EEF}. Moreover, denote by δw_{EEF} a small wrench being applied to the end-effector frame *K*
_{EEF} and by δw_{i} the corresponding wrenches at the frames *K*
_{i} ensuring static equilibrium. The Jacobian J_{g} can be used to set up the stiffness matrix of the mechanism as follows. As pointed out in section 2.2, by equivalence of virtual work it holds

where δt_{g}=[δt_{1,1}, δt_{1,2},…,δt_{N,6}]^{T} collects all virtual variations of the geometric parameters and δw_{g} =[δw_{1,1}, δw_{1,2},…,δw_{N,6}]^{T} are the respective internal forces. Here, each δt_{i} is decomposed in its six elementary components δt_{i,1},…,δt_{i,6}, where δt_{i,1,} δt_{i,2,} δt_{i,3} are elementary infinitesimal rotations and δt_{i,4,} δt_{i,5,} δt_{i,6} are elementary translations with respect to the coordinate frame axis (Fig. 7). Similarly, the wrench δw_{i} =[δw_{i,1},…,δw_{i,6}]^{T} is set up. Assuming that each elementary infinitesimal twist component δt_{i,j} produces a corresponding infinitesimal wrench component δw_{i,1} by means of an associated linear spring with stiffness coefficient k_{i,j}, one obtains

Note that this assumption is a simplification of the structural properties of a general mechanical component that applies to many technical applications (slender bars, joints, etc.). The generalization to a full generic model is accomplished by a stiffness matrix in which all coefficients may be non-zero and which may be obtained from finite element analysis. This generalization is not further pursued here as is bears no new insight and is not required for the examples treated in this paper. A generalization is conceivable as a later step. On the other hand, it holds

where K_{EEF} is the sought stiffness matrix at the EEF. Substituting Eq. (18) and Eq. (19) into Eq. (17) and using the global force transmission

Since this equation holds for any δw_{EEF}, it follows

Thus, the Jacobian J_{g} can be used to transform the stiffness coefficients k_{i,j} of the geometric parameters contained in the stiffness matrix K_{g} to the global stiffness matrix K_{EEF}.

## 4. Examples

In this section, the proposed linearization technique is applied to analyze a six-dof parallel kinematic machine where no closed-form solution for the forward kinematics is possible.

### 4.1. Error analysis for a parallel kinematic manipulator

This example considers the six-dof parallel kinematic machine tool Linapod (Pritschow et al. 2004; Wurst, 1998) installed at the Institute for Control Engineering of Machine Tools and Manufacturing Units at the University Stuttgart (Germany), see Fig. 8. Six rigid links connect the mobile platform to the fixed frame with spherical/universal joints. The pivot points on the frame are actuated by linear drives moving parallel to the z-axis. The nominal position lies in the center of the workspace. Errors in the length of every leg are assumed to be small. Applying the algorithm from section 2.5, the sensitivity matrix J_{g} for errors in the length of the bar can be established. To this end, the forward kinematic problem is solved to obtain the position r_{i} and the direction u_{i} of each of the six legs with respect to the EEF (Fig. 3b). The calculation of the internal forces in the bars from force equilibrium conditions is carried out by applying unit forces and torques (Fig. 8) to the EEF resulting in the matrix equation

where f_{i}=f_{i}u_{i} are the leg forces, respectively, and
_{g} becomes

(23) |

Assuming that the length error for all bars is Δe=ε[1,1,1,1,1,1]^{T} with ε =10µm, the total position error is |Δe_{EEF}|=11.528µm. This matches the exact solution using the nonlinear forward kinematics up to nine digits. In Fig. 9, the effect of variations of the scaling factor on the difference Δe between linearized and exact model is illustrated. As it can be verified, the approximation is accurate up to a geometric error of about ε =1mm. Still, for ε=10mm the relative error is only about 1%, which is still enough for most applications. This shows that the linearization procedure described in this paper is sufficient for most practical applications.

### 4.2. Accuracy of the Linapod

In this section, the geometric accuracy of the PKM Linapod is analyzed with the force-based method. Assuming errors in every component of the mechanism, the sensitivity matrix J_{g} contains 126 columns corresponding to the individual geometric parameters. Orientation errors are ignored as these errors are negligible with respect to the translational errors. In Fig. 10 the overall error amplification index according to Eq. (16) is plotted over the workspace. It is recognized from the diagram that the error amplification has its minimum in the center of the workspace, and that the error distribution is roughly circular. It is interesting to observe that changes in the overall error amplification are relatively small from about

Presuming a required accuracy of Δe_{max}=10µm which is typical for machine tools, this results in an average standard deviation of

### 4.3. Calculation of the stiffness matrix of the parallel robot Linapod

As shown is Sec. 3.2, the Jacobian J_{g} can be used for the calculation of the geometric error stiffness matrix. The stiffness coefficients related to elementary geometric variations of a frame are set as k_{l} = 8.8e7 Nm^{-1} for the lower and k_{u}=6.0e7 Nm^{-1} for the upper leg. Furthermore, elasticity in the linear drives is taken into account with a spring constant k_{d}=8.13e8 Nm^{-1}. For the calculations, only the translational part of the stiffness matrix is taken into account in order to avoid mixing translational and rotational parts. The resulting stiffness behavior of the Linapod is depicted in Fig. 11 by plotting the minimal eigenvalue of the stiffness matrix over the workspace. As it can be seen, the maximum stiffness property is achieved at the home configuration, with softer values farer away of the home configuration.

### 4.4. Computational considerations

In this section, the computational effort of different algorithms to calculate the sensitivity matrix J_{g} is compared. The total cost of an algorithm for the error analysis depends on the number of kinematic evaluations, while the administrative overhead e.g. copying and storing the results can be neglected. For the numerical differentiation approach, one needs one evaluation to solve the nominal forward kinematics and one evaluation of the position forward kinematics for each geometric parameter that is considered. The total numerical effort depends on the number of targeted geometric parameters. The velocity-based method (Pott et al., 2007) needs one evaluation of the velocity forward kinematics for each parameter. The force-based approach needs six evaluations of the force transmission. In Tab.2 the computational times of Mobile (Kecskeméthy, 1994) are listed. It can be seen that the numerical differentiation approach needs more time than the velocity-based method, although both need the same number of forward kinematic evaluations. The force-based method needs even less time than the velocity-based method.

## 5. Conclusions

The contribution describes a general method for kinematic modeling of many wide-spread parallel kinematic machines, i.e. for the Stewart-Gough-platform, the Delta-robot, and Linaglide machines. The kinetostatic method is applied for a comprehensive kinematic analysis of these machines. Based on that model, a general method is proposed to compute the linearization of the transmission behaviour from geometric parameters to the end-effector motion of these machines. By applying the force transmission method, one can perform a linearization with respect to all geometric parameters, for parallel kinematic machines. Especially in cases where no closed-form solution for the forward kinematics is available, the force-based approach provides an efficient procedure for obtaining the linear equations. The method can be directly applied to the presented kinetostatic models of the manipulator and permits also to study parameters that are canceled in the closure conditions. The linear model is used for error analysis and calculation of the stiffness matrix. The algorithm provides a good numerical performance and can be applied to practical examples.