# Dynamics Modeling of Topologically Simple Parallel Kinematic Manipulators: A Geometric Approach

Andreas Müller

► To cite this version:

Andreas Müller. Dynamics Modeling of Topologically Simple Parallel Kinematic Manipulators: A Geometric Approach. Applied Mechanics Reviews, 2020, 72 (3), pp.030801-1 - 030801-26. 10.1115/1.4045428. hal-05171447

HAL Id: hal-05171447

https://hal.science/hal-05171447v1

Submitted on 28 Jul 2025

HAL is a multi-disciplinary open access
archive for the deposit and dissemination of sci-
entific research documents, whether they are pub-
lished or not. The documents may come from
teaching and research institutions in France or
abroad, or from public or private research centers.

L'archive ouverte pluridisciplinaire HAL, est
destinée au dépôt et à la diffusion de documents
scientifiques de niveau recherche, publiés ou non,
émanant des établissements d'enseignement et de
recherche français ou étrangers, des laboratoires
publics ou privés.

<figure><img src="image_1.png" /></figure>

Distributed under a Creative Commons Attribution 4.0 International License
# Dynamics Modeling of Topologically Simple Parallel Manipulators: A Geometric Approach

Andreas Müller

Johannes Kepler University, Linz, Austria, a.mueller@jku.at

Dynamics modeling is indispensable for the design and control of dexterous parallel manipulators (PKM). The various modeling approaches proposed in the literature build upon the classical formulations for serial manipulators, and thus inherit those modeling conventions that tend to be restrictive rather than user-friendly. Moreover, the special kinematic topology of PKM is treated either ad hoc or by resolving loop constraints using standard methods from multi-body dynamics. Geometric formulations on the other hand, more precisely Lie group formulations, were developed over the last decades that provide a flexible and user-friendly approach to the modeling of robotic systems in general. A dedicated formulation for topologically simple PKM has not yet been proposed, however. Such a formulation is presented in this paper. The frame invariance of the geometric formulation gives rise to a modular modeling approach that further reduces the modeling effort. The equations of motion (EOM) in terms of task space coordinates as well as in actuator coordinates are presented for kinematically non-redundant and redundant topologically simple PKM. A PKM is topologically simple if its moving platform is connected to the base by simple serial kinematic chains, and if there are no other kinematic chains than these. The majority of PKM are topologically simple, including fully parallel PKM. Applications of the EOM for dynamics simulation and model-based control are briefly discussed. The paper also provides a literature review of approaches to dynamics modeling of PKM.

*Keywords*– parallel manipulators, fully parallel, dynamics, kinematics, screws, Lie group, inverse kinematics, inverse dynamics, forward dynamics, overconstrained, model-based control

## 1 Introduction

The last two decades have seen two parallel developments: the rise of parallel kinematic machines (PKM) and the use of Lie group methods in multibody dynamics and robotics. Yet there is no systematic Lie group approach to the modeling of PKM.

PKM possess a number of kinematic and dynamic advantages such as the higher kinematic dexterity and stiffness, as well as high acceleration and load capacity [1, 2]. These features can only be optimized using efficient simulation models and fully exploited by means of model-based control schemes based on high-fidelity dynamic models. To this end, a number of dynamic models for particular PKM were reported, but also more general dynamics modeling approaches for certain classes of PKM. A critical aspect of all these formulations are the modeling conventions used for pa-

rameterizing the joint kinematics and the inertia properties, which leads to complex (and thus error-prone) formulations for spatial mechanisms. In order to reduce the model complexity often the influence of certain parts of the manipulator are neglected, e.g. [3]. Matrix methods for kinematics and dynamics modeling were introduced [4–7] that give rise to compact formulations well-suited for computer implementation. These formulations naturally lead to (matrix) Lie group formulations that were introduced for serial kinematic chains [8, 9]. The main advantage of the Lie group description is its coordinate invariance that allows a flexible user-oriented description and parameterization. Only a few Lie group formulations for mechanism with kinematic loops, and PKM in particular, were reported, however. Moreover, no systematic Lie group modeling approach has been reported that takes into account and exploits the modularity prevailing in most PKM.

In this paper a Lie group formulation is presented for PKM whose moving platform is connected to the ground by serial kinematic chains. Such PKM will be called *simple*, which is a generalization of the notion of fully parallel PKM (which are additionally required to possess exactly one actuator per limb). The formulation is applicable to PKM with non-overconstrained limbs (i.e. non-paradoxical mechanisms according to the terminology by Herve [10]), which applies to the majority of PKM.

The contribution of this paper is two-fold. Firstly, a systematic modeling approach in terms of relative (joint) coordinates is presented taking into account the topology of simply PKM. Secondly, a consistent Lie group formulation is introduced for modeling the PKM kinematics and dynamics. The coordinate invariance of this approach gives rise to a straightforward modeling in terms of readily available geometric data, and an efficient modular modeling method.

The paper is organized in form of a tutorial as follows. Sec. 2 summarizes the relevant literature on PKM modeling, on Lie group formulations for multibody systems (MBS), and on the graph representations of the MBS topology. A dedicated graph representation of the topology of simple PKM is introduced in sec. 3. A Lie group formulation of the kinematics of simple PKM is presented in sec. 4. To this end, the kinematics of individual limbs is derived in terms of joint screw coordinates. This allows expressing the PKM motion as function of the platform motion without explicitly formulating the loop closure constraints. The EOM of kinematically non-redundant simple PKM are derived in sec. 5 and of redundant simple PKM in sec. 6. Closed form expressions are presented for the EOM in terms of task space velocities and in actuator velocities, respectively. The proposed formulation is compared to other formulations reported in the
literature. The coordinate invariance of the Lie group formulation is exploited in sec. 7 to derive an efficient modeling framework for simple PKM comprising structurally identical limbs, which applies to the majority of PKM. This is a highly advantageous feature of this formulation. In sec. 8 the well-known formulation of the inverse kinematics Jacobian of simple PKM using reciprocal screws is recalled and extended to general kinematically redundant PKM. The sections 9 to 11 are dedicated to the actual applications of the kinematic and dynamic model. Sec. 9 and 10 address the inverse and forward kinematics problem of the PKM mechanism (rather than the manipulator), which is to determine the motion of all (not only the actuated) joints for a given platform motion, respectively the motion of all joints and the platform for given actuator motions. Solutions are presented for the geometric, velocity, and acceleration problem. This problem is usually not treated in the literature, although it is vital for any numerical implementation. Finally, the application of the dynamics models to solving the forward and inverse dynamics problems, and to model-based control is discussed in sec. 11. The paper closes with some conclusions in section 13. In order to make the paper self-contained, the necessary geometric background is summarized in appendices A to C. For a detailed exposition the reader is referred to the textbooks [11–13]. A summary of symbols used in the paper is given in appendix D.

Throughout the paper, the 3-DOF 3*PRRR* PKM [14–18] in Fig. 1 and the 6-DOF 6*UPS* hexapod PKM (Gough-Stewart platform) [19] in Fig. 2 are used as guiding examples. The PKM are always assumed to be fixed to an inertial-fixed ground.

<figure><img src="image_2.png" /><figcaption>Fig. 1. The 3DOF 3PRRR PKM.</figcaption></figure>

For better readability, the used terminology is summarized here as follows: A PKM is called *simple* iff the platform and base are connected in parallel by several serial kinematic chains, referred to as *limbs*, and there are no other kinematic

<figure><img src="image_3.png" /><figcaption>Fig. 2. The 6DOF 6*UPS* hexapod PKM.</figcaption></figure>

chains. A simple PKM is *kinematically redundant* iff its degree of freedom (DOF) $\delta$ is greater than the DOF $\delta_p$ of the platform. A simple PKM is called *equimobile* iff the platform has the same DOF when it is connected to the base by all limbs or just by one of the limbs. A PKM is called *redundantly actuated* iff the number $N_{act}$ of independent actuators exceeds the DOF $\delta$ of the PKM.

## 2 Literature Review

### 2.1 Dynamics Modeling of PKM

Approaches to the dynamics modeling of PKM can be roughly classified as analytic or synthetic.

Analytic approaches start from an energetic state function and use a general principle to derive the EOM. The most common analytic approach is using the Lagrange equations, which was used for PKM modeling e.g. in [20,21], while the Gibbs-Appell equations are another approach that was applied to PKM, e.g. in [22–24]. Since the non-linear loop closure constraints cannot be solved explicitly, in all these formulations, the constraints are imposed using an orthogonal complement to the constraint Jacobian according to a chosen coordinate partitioning. The latter is a common approach for PKM [21,25] and general constrained MBS [26–28]. The resulting EOM are occasionally called the Voronets-equations [29] after [30,31].

Synthetic approaches start from the Newton-Euler equations for the individual bodies and impose the constraints due to the kinematic joint coupling. Clearly, the resolution of these constraints is a crucial point. Guglielmetti & Longchamp [32] presented a Newton-Euler formulation for the Delta robot, and Dasgupta & Mruthyunjaya [33] for the Gough-Stewart platforms where constraints are imposed ad-hoc. A similar formulation was presented by Wang & Goselin in [34]. Several authors followed this approach, e.g. Ding et al. [35].

The formulations can also be distinguished regarding the used coordinates. Two disparate approaches were developed
over the last three decades, namely the formulation in redundant coordinates and that in independent (minimal) coordinates.

Redundant coordinate formulations, for MBS with rigid bodies, start from the system of independent Newton-Euler equations for all bodies expressed in terms of global coordinates, which describe the absolute configuration w.r.t. an inertial frame, and explicitly impose inter-body constraints [36–38]. This yields a system of differential algebraic equations (DAE). Efficient algorithms for the numerical time integration of such systems are available [39–41]. The sparsity of the resulting systems was exploited for parallel implementations [42–44]. Observing that rigid body-motions form the Lie group SE (3), geometric numerical integration schemes for solving these DAEs were developed [45, 46], which avoid parameterization singularities and exhibit improved accuracy. Since the redundant coordinates are variables describing the absolute configuration of bodies, this approach is also known as *absolute coordinate* formulation. Its clear advantage is that it applies to general topologies, so that the same formulation can be used for modeling serial manipulators as well as PKM. Absolute coordinate formulations have not been used systematically for PKM modeling, however. Another type of redundant coordinates are the so-called natural coordinates introduced by de Jalon [47, 48]. Only a few applications of the natural coordinate formulation to PKM modeling were reported in the literature [49–51].

Minimal coordinate formulations use a set of independent generalized coordinates (to be precise velocity coordinates) in order to parameterize the manipulator configuration, and Jourdain's principle of virtual power or d'Alembert's principle of virtual work is used to derive the EOM from the system of Newton-Euler equations. Unless a specific choice of minimal (generalized) coordinates is made, the EOM attain a general form as presented by Schielen [52], Kane & Levinson [53], and Bremer [54]. For (serial) manipulators with tree-topology, it is most obvious to use joint variables as minimal coordinates [55,56]. Since they are describing the relative configurations of rigid bodies this is usually referred to as the *relative coordinate* formulation [57]. This leads immediately to EOM in the form of a system of ordinary differential equations (ODE) in terms of joint coordinates as generalized coordinates. Moreover, relative coordinate formulations give rise to computationally efficient recursive $O(n)$ algorithms [5, 58, 59], applicable to serial robotic manipulators [60]. The ODE descriptions resulting from relative coordinate formulations are further preferable for robotics and control, although DAE formulations have been successfully applied to the modeling of servo constraints (yet the MBS was still modeled using relative coordinates) [61]. For PKM the relative coordinates are not independent, however. Therefore, they are usually modeled as tree-topology systems subjected to (holonomic) loop closure constraints. An ODE formulation is obtained by imposing the constraints solved in terms of minimal (generalized) coordinates, if possible. One of the earliest papers was by Luh & Zheng [62].

Central to the relative coordinate formulation is the (lin-

ear) relation of joint rates and body twists of an associated tree-topology system. The coefficient matrix of this relation is usually called the geometric Jacobian, but also appears under different names. For tree-topology mechanisms, Angeles [63, 64] (motivated by [65]) called it the *natural orthogonal complement* (NOC). Zanganeh et al. [66] used this to model PKM, and Saha & Schielen [67] applied it to PKM and general MBS with kinematic loops, and termed it the decoupled natural orthogonal complement (DeNOC). Maisser [29, 68] referred to this matrix as the *kinematic basic function*, and Tesar called it the *kinematic influence coefficients* [69], where in case of serial chains this was derived already in the form of a geometric Jacobian [70]. Despite the different names, all these are conceptually equivalent. The main geometric concept underlying all these approaches is that of screws. This was used explicitly by Sugimoto [71], Tsai [72], and by Gallardo et. al [73], for example. Another inherent feature of such relative coordinate formulations is that they give rise to efficient recursive algorithms. Moreover, it was realized that the kinematics of MBS with trees-topology can be constructed purely geometrically, i.e. without the need to perform analytic derivations. The reason is that the kinematics of lower pair joints is completely described by the joint screws that generate relative rigid body motions, i.e. by the fact the motion evolves on the Lie group SE (3), and that finite joint motions are determined by an exponential mapping as described next.

## 2.2 Lie Group Modeling

Since Brockett [8] introduced the product of exponentials (POE) formula for expressing the spatial configuration of a kinematic chain, it has become an established modeling approach for mechanisms and robots as documented by recent textbooks [11–13, 74]. A crucial prerequisite was the introduction of screw theory for a systematic modeling of the mechanism kinematics. The seemingly simple, yet far reaching observation, that screws form the algebra of the Lie group SE (3) of rigid body motions has eventually triggered the wider use of Lie group modeling. Lie group formulations for tree-topology MBS were reported in [75–81]. An approach for general MBS with kinematic loops was reported in [82–84]. Implicit use of screw theory, and of the frame invariance of Lie group formulations, gave rise to the improved $O(n)$ formulations by Featherstone [85]. The Lie group framework provides a modern approach for consistent handling of MBS kinematics and dynamics, which is nicely summarized in the recent review paper by Park et al. [9] and the text book by Lynch & Park [11]. The latter also briefly addresses MBS with kinematic loops. However, no formulations were presented that account for the special topology of PKM. Moreover, a literature review reveals that no dedicated Lie group formulations exist for the dynamic modeling of PKM. Such a dedicated formulation, in terms of relative coordinates, is presented in this paper.

It should be finally mentioned that PKM were also modeled using bondgraphs [86]. While this offers a very general framework it does not account for the specific kinematics of
<figure><img src="image_4.png" /><figcaption>Fig. 3. a) Kinematic graph of the 3PRRR PKM. $Λ_1$ and $Λ_2$ is one possible choice of the $γ = 2$ possible FCs. b) Partitioning of the kinematic graph of the 3PRRR PKM into subgraphs representing the $L = 3$ limbs. The numbering of vertices (bodies) and edges (joints) is shown for limb $l = 2$. To clearly distinguish bodies and joints, joint indexes are framed by a rectangle and body indexes by an ellipse.</figcaption></figure>

PKM.

## 2.3 Topology Representation

The systematic treatment of MBS needs a consistent representation of the kinematic topology. This has been formalized for general MBS [56, 87]. For PKM there are several established graph representations [88], which merely describe the structural arrangement but do not convey the same information as the topological graphs used for MBS. Moreover, fully parallel manipulators possess a special topology. In this paper an amended topological graph for MBS is used in order to represent this topology.

## 3 Topology of PKM

The kinematic topology is represented by a kinematic graph $Γ^K$ [89], where vertices represent bodies and edges represent the joints connecting the bodies. Fig. 3a) shows the kinematic graph for the 3DOF 3PRRR, and Fig. 4a) that of the 6UPS PKM. The ground is labeled with 0 and the platform is labeled with $p$ (body and joint labels are omitted at this point).

Now these two examples already reveal the defining topological properties of PKM, namely that the moving platform is connected to the ground by at least two kinematic chains, which have no joint and no body, except the platform and ground, in common. This can be stated formally as follows.

**Definition 1.** A PKM is a mechanism with kinematic loops in which the mobile platform is connected to the base by at least two independent kinematic chains. That is, a PKM is a mechanism where at least one FC can be introduced on its

kinematic graph $Γ^K$ which includes the platform and base vertex.

A PKM is modeled as a linkage comprising rigid bodies connected by 1-DOF lower pair joints (also called axial joints), so that an edge of $Γ^K$ represents one relative DOF. This is achieved by replacing higher-DOF joints by a series of 1-DOF joints. A *k*-DOF technical joint is thus represented by a sequence of *k* edges, where the *k* − 1 vertices within this sequence represent auxiliary bodies. This has been a standard approach in MBS modeling [56] and will be used in the following without restricting the presented method. Fig 4a) shows the kinematic graph for the hexapod in Fig. 2. The universal joint, connecting the struts to the ground, and the spherical joints, connecting them to the moving platform, are modeled as combination of revolute joints. The vertices of $Γ^K$ corresponding to auxiliary bodies are indicated by hollow circles.

A general PKM may comprise various kinematic loops, and the actuators may in principle be placed arbitrarily within the mechanism. However, the majority of PKM with practical relevance are those where the platform is connected to the ground in parallel by (usually identical) serial kinematic chains, referred to as *limbs* (or legs). As a consequence the platform is contained in any possible FC. The relevance of such PKM is emphasized by the following definition.

**Definition 2.** A PKM is called (topologically) *simple* iff the platform and base vertices are contained in any possible FC of $Γ^K$.

The 3PRRR and the 6UPS hexapod PKM are typical examples for simple PKM. A prominent example for a PKM that is not simple, and thus not fully parallel, is the Delta
<figure><img src="image_5.png" /><figcaption>Fig. 4. a) Kinematic graph of the 6UPS hexapod PKM. The $\gamma = 5$ FCs are omitted. The vertices shown in blue represent the spherical joint connecting the platform to a limb. b) Partitioning of the kinematic graph into $L = 6$ subgraphs representing the limbs. Joints 1 and 2 represent the universal joints and joints 4,5,6 model the spherical joint of the respective limb.</figcaption></figure>

PKM [1], which possesses closed loops within the individual 'legs'. The cascaded arrangement of PKM, e.g. serial arrangement of two hexapods, is another example.

Since the platform is contained in any FC, a simple PKM comprises $L := \gamma + 1$ limbs, which are numbered with $l = 1, \dots, L$. The kinematic graph $\Gamma^K$ can be partitioned accordingly into $L$ subgraphs, each representing one limb. Each of these subgraphs is a unique path from the platform to the ground. The number of edges (i.e. 1-DOF joints) of the subgraph for limb $l$ is denoted with $N_l$. Fig. 3b) shows this partitioning for the 3PRRR PKM.

The $N_l$ vertices (i.e. 1-DOF joints) of limb $L$ are labeled in ascending order with $1(l), \dots, N_l(l)$ starting from the ground with index 0, where $l$ is used to indicate the limb (rather than using a double index in order to avoid confusion). This is shown in Fig. 3b) for limb $l = 2$ (where $l$ is omitted) for the 3PRRR, and in Fig. 4b) for limb $l = 3$ of the 6UPS.

'Parallelism' refers to the fact that the platform and base are connected in parallel by serial kinematic chains. Yet this does not imply that all actuators are acting in parallel between base and platform. Denote with $N_{\text{act}}$ the total number of actuators.

**Definition 3.** A mechanism is called *fully parallel* iff it is a simple PKM and each of the serial kinematic chains (limbs) between platform and base comprises exactly one actuator. That is, a fully parallel mechanism, is a simple PKM where $N_{\text{act}} = L$ (with $L = \gamma + 1$).

**Remark 1.** The concept of fully parallel PKM was introduced when PKM gained popularity in the 1990s [1], and was intended to indicate that the platform (specifically of a Gough-Stewart platform) is connected to the ground by as

many limbs (each having one drive) as the platform DOF. Consequently, the original definition given by Merlet [1] requires the number of limbs to be equal to the platform DOF. This would exclude redundantly actuated PKM, however, as defined by (38). The above definition does not make this restriction.

An example of a simple PKM, which is not fully parallel, is the PKM presented in [90,91] when the planar drives are considered as serial combination of linear drives.

This paper deals with the broader class of simple PKM including fully parallel PKM.

## 4 Kinematics of Simple PKM

In order to describe the motion of the individual bodies of a PKM, an inertial frame (IFR) $\mathcal{F}_0$ is affixed at the ground. The PKM motion will be described relative to this IFR. The topological graph comprises $N$ edges, and thus the kinematic model contains $N$ 1-DOF joints. The joint variables are denoted with $\vartheta_i, i = 1, \dots, N$. These are the angles or translations used to describe the joint motions.

In this section, first the kinematic model for a limb when separated from the platform derived. This will be used to derive the EOM for the individual limbs in sec. 5.2. Then the kinematics of an individual limb when it is connected to the platform is described. This will be exploited in sec. 5.3 in order to derive an inverse kinematics solution, which determines the motion of all limbs for given platform motion and will be the basis for deriving the EOM of the PKM in sec. 5.5. Finally the kinematics of the overall PKM is addressed, and the concept of equimobile PKM is introduced.

The kinematics modeling uses a Lie group formula-
<figure><img src="image_6.png" /><figcaption>Fig. 5. a) Linkage obtained by removing the platform from the 3PRRR PKM. Each of the three remaining open chains has $n_l = 3$ joints. The reference frame $\mathcal{F}_{3(2)}$ at body 3 of limb $l = 2$ is shown. b) Corresponding tree graph when the platform and all vertices representing joints that connected to the platform are removed. Each branch has $n_l = 3$ edges.</figcaption></figure>

tion. The reader not familiar this formalism is referred to [80,81] for the particular formulation used in this paper, and to [11, 12] for Lie group formulations in robotics in general. This section can also be followed without full account of the theory. The reader will appreciate that the Lie group formulation is a simple and compact approach to kinematics modeling in terms of readily available modeling data.

## 4.1 Kinematics of a single Limb without Platform

The platform of a simple PKM is connected to the base by L serial kinematic chains. If the platform, and thus all joints connecting it to the limbs, is removed yields a linkage with kinematic tree-structure. Denote with $\delta_l$ the DOF of the joint connecting the platform to limb $l$. Removing the platform amounts to eliminating the platform vertex from $\Gamma^K$ as well as the sequence of $\delta_l, l = 1, \dots, L$ edges between the platform vertex and the vertex representing the last body in the limb. After removing the platform, the branch representing limb $l$ comprises $n_l := N_l - \delta_l$ 1-DOF joints.

**Example 1.** Fig. 5a) shows the linkage and Fig. 5b) the corresponding graph when the platform of the 3PRRR PKM and the revolute joints ($\delta_l = 1$) connecting it to the limbs are removed (the $\delta_l$ edges are shown in blue in Fig. 3). Each branch of this tree-graph has $n_l = 3$ edges.

**Example 2.** Removing the platform and the spherical joints ($\delta_l = 3$) of the 6UPS PKM yields the linkage in Fig. 6a). The corresponding tree-graph in Fig. 6b) is obtained by removing the three vertices, shown in blue in Fig. 4, representing the spherical joint.

Denote with $\bar{\vartheta}_{(l)} = (\vartheta_{1(l)}, \dots, \vartheta_{n_l(l)}) \in \mathbb{V}^{n_l}$ the vector of $n_l$ joint variables of limb $l$ when disconnected from the platform, where $\vartheta_{(l)}$ is the variable assigned to joint $i$ of limb $l$.

A reference frame $\mathcal{F}_{i(l)}$ is attached at body $i$ of limb $l$ (see Fig. 5a)). The pose of this body, i.e. the configuration of $\mathcal{F}_{i(l)}$ relative to the IFR $\mathcal{F}_0$, is represented by $\mathbf{C}_{i(l)} \in SE(3)$ (appendix A). This configuration is determined by the joint variables as $\mathbf{C}_{i(l)} = f_{i(l)}(\bar{\vartheta}_{(l)}), i = 1, \dots, n_l$ via the product of exponentials (POE) (appendix B)

$$f_{i(l)}(\bar{\vartheta}_{(l)}) = \exp(\vartheta_{1(l)}\mathbf{Y}_{1(l)}) \cdots \exp(\vartheta_{i(l)}\mathbf{Y}_{i(l)})\mathbf{A}_{i(l)} \quad (1)$$

where $\mathbf{A}_{i(l)} \in SE(3)$ is the reference configuration of body $i$ at $\bar{\vartheta}_{(l)} = \mathbf{0}$, and $\mathbf{Y}_{i(l)} \in \mathbb{R}^6 \cong se(3)$ is the screw coordinate vector associated to joint $i$ of limb $l$ represented in the IFR $\mathcal{F}_0$. The screw coordinate vector of a revolute or helical joint is

$$\mathbf{Y}_i = \begin{pmatrix} \mathbf{e}_i \\ \mathbf{p}_i \times \mathbf{e}_i + h_i \mathbf{e}_i \end{pmatrix} \quad (2)$$

where $\mathbf{e}_i \in \mathbb{R}^3$ is unit vector along the joint axis and $\mathbf{p}_i$ is the position vector to a point on that axis (both resolved in IFR $\mathcal{F}_0$), and the pitch $h \in \mathbb{R}$ of the joint. For revolute joints $h=0$ and for helical joints $h$ has some finite value. The screw coordinates for a prismatic joint are

$$\mathbf{Y}_i = \begin{pmatrix} \mathbf{0} \\ \mathbf{e}_i \end{pmatrix}. \quad (3)$$

The twist of body $i$ of limb $l$ in body-fixed representation, denoted with $\mathbf{V}_{i(l)} = (\omega_{i(l)}, \mathbf{v}_{i(l)}) \in \mathbb{R}^6 \cong se(3)$, consists of the angular velocity of the body-fixed reference frame $\mathcal{F}_{i(l)}$
<figure><img src="image_7.png" /><figcaption>Fig. 6. a) Linkage obtained by removing the platform from the 6UPs hexapod PKM. Each of the six open chains has $n_l = 3$ joints. b) Corresponding tree graph when the platform and all vertices representing joints that connected to the platform are removed.</figcaption></figure>

and the velocity of its origin relative to the IFR, resolved in the body-fixed frame. The twists of all bodies of limb *l* are collectively determined by<fnref n="1" /> [81]

$$ 
\begin{pmatrix} \mathbf{V}_1 \\ \mathbf{V}_2 \\ \mathbf{V}_3 \\ \vdots \\ \mathbf{V}_{n_l}(l) \end{pmatrix} = \begin{pmatrix} \mathbf{X}_1 & \mathbf{0} & \mathbf{0} & \cdots & \mathbf{0} \\ \mathbf{Ad}_{C_{2,1}}\mathbf{X}_1 & \mathbf{X}_2 & \mathbf{0} & \cdots & \mathbf{0} \\ \mathbf{Ad}_{C_{3,1}}\mathbf{X}_1 & \mathbf{Ad}_{C_{3,2}}\mathbf{X}_2 & \mathbf{X}_3 & \cdots & \mathbf{0} \\ \vdots & \vdots & \vdots & \ddots & \vdots \\ \mathbf{Ad}_{C_{n_l,1}}\mathbf{X}_1 & \mathbf{Ad}_{C_{n_l,2}}\mathbf{X}_2 & \mathbf{Ad}_{C_{n_l,3}}\mathbf{X}_3 & \cdots & \mathbf{X}_{n_l}(l) \end{pmatrix} \dot{\mathbf{\vartheta}}_{(l)} \\
= \begin{pmatrix} \mathbf{J}_1(l) \\ \mathbf{J}_2(l) \\ \mathbf{J}_3(l) \\ \vdots \\ \mathbf{J}_{n_l}(l) \end{pmatrix} \dot{\mathbf{\vartheta}}_{(l)} = \mathbf{J}_{(l)} \dot{\mathbf{\vartheta}}_{(l)} \qquad (4)
$$

where $\mathbf{X}_{i(l)} = \mathbf{Ad}_{\mathbf{A}_{i(l)}}^{-1} \mathbf{Y}_{i(l)}$ is the constant screw coordinate vector of joint *i* represented in the body-fixed frame at body *i* of limb *l* [80]. Each block entry in (4) describes a frame transformation of these screw coordinates to the current configuration, where $\mathbf{C}_{i,j} := \mathbf{C}_i^{-1}\mathbf{C}_j$ is the configuration of body *j* relative to *i*. The $6 \times n_l$ matrix $\mathbf{J}_{i(l)}(\bar{\mathbf{\vartheta}}_{(l)})$ is the geometric Jacobian of body *i*, as in (133), and $\mathbf{J}_{(l)}(\bar{\mathbf{\vartheta}}_{(l)})$ is the overall geometric Jacobian of limb *l*.

The expression (4) has been reported in various forms. The block triangular structure arises naturally within any formulation in terms of spatial twist, often referred to as 6D-formulation. The above Lie group formulation has first been presented by Park and Ploen [78]. The latter is a geometric formalization of the spatial operator algebra introduced by Rodriguez [5, 59], which has been further formalized by Jain [7, 87, 92]. Using the equivalent concept of the natural orthogonal complement (NOC) [63] the form (4) has been presented by Saha [93]. The significant difference between

the Lie group formulation and all the other 'spatial vector' formulations is that it treats rigid body velocities ('spatial vectors') consistently as well as the finite rigid body motions using the POE, being a holistic geometric approach. The practically most important consequence is that it enables modeling of robots with arbitrary geometry in terms of easily accessible model data. Input data for the modeling are the reference configurations $\mathbf{A}_{i(l)}$ and the screw coordinates $\mathbf{Y}_{i(l)}$. The latter are given in terms of vectorial quantities intrinsic to the joint kinematics, which can e.g. be extracted from a CAD drawing. This is in stark contrast to restrictive modeling conventions such as Denavit-Hartenberg parameters. The body-fixed screw coordinates $\mathbf{X}_{i(l)}$ serve as auxiliary variables, but if desired can be used for modeling. Then the screw coordinates are merely measured in the body-fixed frames. Detailed discussions can be found in [11, 12, 80].

## 4.2 Kinematics of a single Limb including the Platform

Limb *l* including the platform is now considered separated from the PKM. This is a serial kinematic chain from the ground to the moving platform, which can be regarded as a serial arm with the platform as terminal body as shown in Fig. 7. Each limb is represented by an open chain from base to platform, as shown in Fig. 3b) for a limb of the 3DOF PKM.

Denote with $\mathbf{\vartheta}_{(l)} = (\mathbf{\vartheta}_{1(l)}, \dots, \mathbf{\vartheta}_{N_l(l)}) = (\bar{\mathbf{\vartheta}}_{(l)}, \mathbf{\vartheta}_{(n_l+1)(l)}, \dots, \mathbf{\vartheta}_{N_l(l)}) \in \mathbb{V}^{N_l}$ the vector of joint variables of limb *l* including those of the joint connecting it to the moving platform.

The body-fixed reference frame attached to the platform is denoted with $\mathcal{F}_p$. The configuration of the platform, i.e. of $\mathcal{F}_p$ relative to $\mathcal{F}_0$, is represented by $\mathbf{C}_p \in SE(3)$. It is determined by $\mathbf{C}_p = f_p(l)(\mathbf{\vartheta}_{(l)})$ with the forward kinematics mapping of limb *l*

<footnote n="1">¹In the following, the subscript (l) of a matrix or vector indicates that its elements refer to limb *l*.</footnote>
$$
\begin{align}
\mathbf{J}_{\mathrm{p}(l)} &= ( \mathbf{J}_{\mathrm{p},1} | \mathbf{J}_{\mathrm{p},2} | \cdots | \mathbf{J}_{\mathrm{p},n_l} | \mathbf{J}_{\mathrm{p},n_l+1} | \cdots | \mathbf{J}_{\mathrm{p},N_l-1} | \mathbf{J}_{\mathrm{p},N_l} )_{(l)} \tag{10} \\
&= ( \mathbf{Ad}_{\mathbf{C}_{\mathrm{p},1}} \mathbf{X}_1 | \mathbf{Ad}_{\mathbf{C}_{\mathrm{p},2}} \mathbf{X}_2 | \cdots | \mathbf{Ad}_{\mathbf{C}_{\mathrm{p},n_l}} \mathbf{X}_{n_l} | \mathbf{Ad}_{\mathbf{C}_{\mathrm{p},n_l+1}} \mathbf{X}_{n_l+1} | \cdots | \mathbf{Ad}_{\mathbf{C}_{\mathrm{p},N_l-1}} \mathbf{X}_{N_l-1} | \mathbf{X}_{N_l} )_{(l)} \\
&= ( \mathbf{Ad}_{\mathbf{C}_{\mathrm{p},n_l}} \mathbf{J}_{n_l} | ( \mathbf{Ad}_{\mathbf{C}_{\mathrm{p},n_l+1}} \mathbf{X}_{n_l+1} | \cdots | \mathbf{Ad}_{\mathbf{C}_{\mathrm{p},N_l-1}} \mathbf{X}_{N_l-1} | \mathbf{X}_{N_l} )_{(l)} )_{(l)} \nonumber
\end{align}
$$

<figure><img src="image_8.png" /><figcaption>Fig. 7. One limb of the 3PRRR PKM regarded as a serial linkage including the platform. It comprises $N_l = 4$ revolute joints.</figcaption></figure>

where again $\mathbf{Y}_{i(l)} \in \mathbb{R}^6 \cong \mathrm{se}(3)$ is the screw coordinate vector of joint $i$ of limb $l$ represented in IFR, but now $\mathbf{A}_p \in \mathrm{SE}(3)$ is the reference configuration of the platform for $\vartheta_{(l)} = 0$.

The twist of the platform, i.e. of $\mathcal{F}_p$, in body-fixed representation, $\mathbf{V}_p = (\omega_p, \mathbf{v}_p)$, is determined by

$$ \mathbf{V}_p = \mathbf{J}_{p(l)} \dot{\vartheta}_{(l)} \quad (6) $$

where $\mathbf{J}_{p(l)}(\vartheta_{(l)})$ is the geometric forward kinematics Jacobian of limb $l$, as in (133). The latter is given as

$$ \mathbf{J}_{\mathrm{p}(l)} = ( \mathbf{J}_{\mathrm{p},1} | \cdots | \mathbf{J}_{\mathrm{p},N_l} )_{(l)} \quad (7) $$

with columns

$$ \mathbf{J}_{\mathrm{p},i(l)} = \left( \mathbf{p}\mathbf{p}_{i(l)} \times \mathbf{p}\mathbf{e}_{i(l)} + \mathbf{h}_{i(l)} \mathbf{p}\mathbf{e}_{i(l)} \right) \quad (8) $$

$$ = \mathbf{Ad}_{\mathbf{C}_{\mathrm{p},i(l)}} \mathbf{X}_{i(l)} \quad (9) $$

where $\mathbf{C}_{\mathrm{p},i(l)} := \mathbf{C}_p^{-1} \mathbf{C}_{i(l)}$ is the configuration of body $i$ relative to the platform. In (8), $\mathbf{p}\mathbf{e}_{i(l)}$ is a unit vector along the instantaneous axis of joint $i$ and $\mathbf{p}\mathbf{p}_{i(l)}$ is the position vector to a point on that axis measured in the platform frame $\mathcal{F}_p$.

When separated from the PKM, the DOF of limb $l$, including the platform, is equal to the number $N_l$ of its 1-DOF

joints. In a general configuration the rank of $\mathbf{J}_{\mathrm{p}(l)}$ is equal to $r_l := \dim \mathrm{im} f_{\mathrm{p}(l)} \le N_l$. Denote with $\mathbf{J}_{\mathrm{t}(l)}$ a full rank $r_l \times N_l$ submatrix constructed from $r_l$ independent rows of $\mathbf{J}_{\mathrm{p}(l)}$. The matrix $\mathbf{J}_{\mathrm{t}(l)}$ is called the *task space Jacobian of limb $l$*. The task space Jacobian can be viewed as the forward kinematics Jacobian of the limb (with platform) when regarded as a serial manipulator.

**Example 1 (cont.).** Consider the limb of the 3PRRR mechanism in Fig 7. Represented in the shown platform frame $\mathcal{F}_p$, the twist has components $\mathbf{V}_p = (\omega_1, 0, 0, v_1, v_2, v_3)^T$. All components are independent since the $6 \times 4$ Jacobians $\mathbf{J}_{\mathrm{p}(l)}$ have rank $r_l = 4$. Thus the $4 \times 4$ task space Jacobian $\mathbf{J}_{\mathrm{t}(l)}$ of the limb consists of the rows 1,4,5, and 6 of $\mathbf{J}_{\mathrm{p}(l)}$.

**Example 2 (cont.).** Each limb of the 6UPS hexapod PKM generates spatial motions so that rank $\mathbf{J}_{\mathrm{p}(l)} = 6$ and $\mathbf{J}_{\mathrm{t}(l)} = \mathbf{J}_{\mathrm{p}(l)}$.

The construction of $\mathbf{J}_{\mathrm{t}(l)}$ may not be as obvious as in the previous examples. If the platform frame of the 3PRRR PKM, for example, is oriented generally, then none of the components of $\mathbf{V}_p$ and no rows of $\mathbf{J}_{\mathrm{p}(l)}$ are identically zero. The only condition for defining the submatrix $\mathbf{J}_{\mathrm{t}(l)}$ is that is accounts for the required task space velocities.

It should be mentioned that the forward kinematics Jacobian (7) can be determined making use of the already available Jacobian (4). To this end, notice that limb $l$ consists of the kinematic chain from the base to body $n_l$ followed by the joint connecting it to the platform. The Jacobian (7) can be split accordingly as shown in (10), where $\mathbf{J}_{n_l(l)}$ is the Jacobian in (4). The latter can thus be employed to determine the Jacobian of limb $l$, and only the $\delta_l$ columns corresponding to the connecting joint need to be computed.

## 4.3 Kinematics of the Closed Loop System

Now the complete PKM, with the platform connected to the ground by all $L$ limbs, is considered. The configuration of the platform, as terminal body of a limb, is the same for all $L = \gamma + 1$ limbs. The motion space of the platform is $\mathcal{M}_p := \mathrm{im} f_{\mathrm{p}(1)} \cap \mathrm{im} f_{\mathrm{p}(2)} \cap \cdots \cap \mathrm{im} f_{\mathrm{p}(L)} \subset \mathrm{SE}(3)$. The platform DOF is denoted with $\delta_p := \dim \mathcal{M}_p$. For most PKM $\mathcal{M}_p$ is a sub group of $\mathrm{SE}(3)$ [13]. Typical situations are $\delta_p = 6$ with $\mathcal{M}_p \subset \mathrm{SE}(3)$ (spatial motions), $\delta_p = 4$ with $\mathcal{M}_p \subset \mathrm{SO}(2) \times \mathbb{R}^3$ (Schönflies motions, also called Scara motion), $\delta_p = 3$ with $\mathcal{M}_p \subset \mathrm{SE}(2)$ (planar motions) or $\mathcal{M}_p \subset \mathrm{SO}(3)$ (spatial rotations), and $\mathcal{M}_p \subset \mathbb{R}^3$ (spatial translations). PKM with $\delta_p < 6$ are called lower-mobility PKM.
The DOF of the platform, when connected to limb l only, is dim$f_{p(l)}$, which is equal to the maximal rank $r_l$ of $J_{p(l)}$. For the subsequent modeling, and also from a design perspective, it is important to distinguish whether the mobility of a limb is restricted when it is connected to the platform. A simple PKM is called equimobile iff

$$ \delta_p = \dim \mathrm{im} f_{p(l)}, l = 1, \dots, L. \qquad (11) $$

Simply speaking, the platform of an equimobile PKM can instantaneously move in the same way as if it was only connected to the base by one of the limbs. It will be important to distinguish non-equimobile PKM in sec. 5.3 when expressing the motion of a limb in terms of the task space motion.

The platform velocity is described by $\delta_p$ independent components of the platform twist $V_p$. The latter are summarized in the vector $V_t$, and related to the platform twist by $V_p = P_p V_t$, with a constant unimodular full-rank $6 \times \delta_p$ matrix $P_p$, with the property $P_p^T P_p = I_{\delta_p}$. The vector $V_t \in \mathbb{R}^{\delta_p}$ is called the task space velocity of the PKM. The matrix $P_p$ assigns the components of the task space velocity to the platform twist.

For equimobile PKM, the rank of $J_{p(l)}$ is equal to $\delta_p$, and for each limb a $\delta_p \times N_l$ the task space Jacobian $J_{t(l)}$ can be extracted so that $V_t = J_{t(l)} \dot{\vartheta}(l)$. For non-equimobile PKM it is $\delta_p < r_l = \mathrm{rank} J_{p(l)}$. That is, the mobility $r_l$ of limb l, when disconnected from the platform, is higher than the mobility $\delta_p$ of the platform. Thus the limb is subjected to $r_l - \delta_p$ constraints when connected to the PKM. This is reflected by the fact that the $r_l \times N_l$ task space Jacobian $J_{t(l)}$ yields $r_l$ independent non-zero components of which only some contribute to $V_t$. As mentioned in previous section, the definition of $V_t$, i.e. selecting $\delta_p$ of the $r_l$ independent rows of $J_{t(l)}$, depends on the application.

**Example 1 (cont.).** The 3PRRR PKM in Fig. 1 is not equimobile. Each limb, comprising 1 prismatic and 3 revolute joints, generates motions in a plane plus a translation orthogonal to that plane, i.e. $\mathrm{im} f_{(l)} \subset SE(2) \times \mathbb{R}$ with $r_l = \dim \mathrm{im} f_{p(l)} = 4$. But the platform can only perform translations, i.e. $M_p \subset \mathbb{R}^3$ and $\delta_p = 3$. It comprises $N = 3 \cdot 4 = 12$ 1-DOF joints. The platform of the non-equimobile 3PRRR PKM, with $\delta_p = 3$, can perform spatial translations only. The translational part of the platform twist thus forms the task space velocity $V_t = (v_1, v_2, v_3)^T$, so that

$$ \mathbf{P}_p = \begin{pmatrix} \mathbf{0}_{3,3} \\ \mathbf{I}_3 \end{pmatrix} \qquad (12) $$

which extracts the $\delta_p = 3$ components from the $r_l = 4$ independent rows of $J_{t(l)}$.

**Example 2 (cont.).** The 6UPS hexapod is equimobile, and so is any simple PKM with $\delta_p = 6$. It contains $N = 6 \cdot 6 = 36$ 1-DOF joints. The platform DOF of the equimobile 6UPS Hexapod is $\delta_p = 6$, so that evidently $V_t = V_p$ and $P_p = I_6$.

For any feasible PKM configuration $\vartheta$, the platform pose determined by the forward kinematic mapping (5) must be identical for all $L = \gamma + 1$ limbs, i.e.

$$ f_{p(l)}(\vartheta(l)) = f_{p(l+1)}(\vartheta(l+1)), \quad l = 1, \dots, \gamma. \qquad (13) $$

These are the geometric loop closure constraints for the $\gamma$ FCs in terms of the joint coordinates $\vartheta$. Equating the platform twist obtained by (6) for the different limbs yields the corresponding velocity loop closure constraints

$$ \mathbf{G}\dot{\vartheta} = \mathbf{0} \qquad (14) $$

with constraint Jacobian

$$ \mathbf{G} := \begin{pmatrix} \mathbf{J}_{t(1)} & -\mathbf{J}_{t(2)} & \mathbf{0} & \dots & \mathbf{0} \\ \mathbf{0} & \mathbf{J}_{t(2)} & -\mathbf{J}_{t(3)} & \dots & \mathbf{0} \\ \vdots & \vdots & \vdots & \ddots & \vdots \\ \mathbf{0} & \mathbf{0} & \mathbf{0} & \dots & \mathbf{J}_{t(\gamma)} - \mathbf{J}_{t(\gamma+1)} \end{pmatrix}. \qquad (15) $$

The configuration space of the PKM is the solution variety of the geometric constraints (13)

$$ V = \{ \vartheta \in \mathbb{V}^N | f_{p(l)}(\vartheta(l)) = f_{p(l+1)}(\vartheta(l+1)), \quad l = 1, \dots, \gamma \}. \qquad (16) $$

The (global) dimension of this variety is the (global) DOF of the PKM, denoted with $\delta := \dim V$. The differential (instantaneous) DOF at configuration $\vartheta \in V$ is $\delta_{\mathrm{diff}}(\vartheta) := N - \mathrm{rank} \mathbf{G}(\vartheta)$. In a general configuration $\vartheta \in \mathbb{V}^N$, there are $m := \mathrm{rank} \mathbf{G}$ independent constraints.

The (generic) rank of the Jacobian $J_{t(l)}$ of limb l is $\dim \mathrm{im} f_{p(l)} = r_l$. There are PKM with special geometries such that the rank is lower than $r_l$ when all limbs are connected to the platform, and $\mathbf{G}$ is singular. This indicates permanently redundant loop constraints, and such PKM are called overconstrained. The loop constraints can be redundant even when all $J_{t(l)}$ have full rank, however. According to the classification introduced by Herve [10], which is used to distinguish overconstrained linkages, such PKM would be called 'exceptional' since their mobility can still be explained by the intersection of motion spaces of the limbs. Being 'exceptional' implies that the constraint Jacobian for each kinematic loop, i.e. the block matrix corresponding to a block row in (15), is not full rank but can be partitioned into two full rank matrices. This is the case if all $J_{t(l)}$ have full rank.

For the remainder of this paper it is assumed that the PKM is either non-overconstrained or exceptional, i.e. the forward kinematics (respectively task space) Jacobian of all limbs have full rank in a general configuration. This accounts for the majority of equimobile and non-equimobile PKM. For instance, the 6UPS PKM is non-overconstrained, while the 3PRRR PKM is 'exceptional', i.e. constraint Jacobian (15) is permanently singular although all $J_{p(l)}$ have full rank 4.
For completeness, it is recalled that a PKM is kinematically redundant iff $\delta_p < \delta$ and non-redundant otherwise. A kinematically redundant PKM can perform internal motions for a fixed platform. With the assumption that the PKM is non-overconstrained or exception, it is kinematically redundant iff for one limb $\dim f_p(t) < N_l$. That is, each limb resembles a kinematically redundant serial manipulator. Consequently, in order to fully actuate the limb, there must be $N_l - \dim f_p(t)$ 'redundant' actuators. Thus there are more than one actuator per limb so that a kinematically redundant PKM cannot be fully parallel. A PKM is functionally redundant iff, in its application, only task space motions are used that form a subspace of the workspace of dimension less than $\dim M_p$. A (fully parallel) PKM, which is not kinematically redundant, can thus be functionally redundant depending on the application. Such PKM are not considered in this paper.

# 5 Equations of Motion for Simple Kinematically Non-Redundant PKM

The EOM of kinematically non-redundant PKM are derived in the following. Having disconnected the platform, first the EOM of the platform (in task space coordinates) and of the individual limbs (in joint coordinates) are derived. The relation between task space and joint space coordinates are derived and used to express the EOM of the disconnected limbs in terms of task space coordinates. Jourdain's principle then yields the EOM of the closed loop system. Also a joint space formulation of the EOM is then easily derived by a simple coordinate transformation using the forward kinematics Jacobian of the manipulator. The advantages of the presented formulation (parameterization in terms of screw coordinates, modularity, parallelizability) are discussed and it is related to other related formulations.

## 5.1 Equations of Motion of the Platform

The dynamics of the platform as a rigid body is governed by the Newton-Euler equations. Denote with $M_p$ the 6 × 6 inertia matrix w.r.t. to the reference frame $\mathcal{F}_p$ at the platform. Further let $W_p(t) \in \mathbb{R}^6 \cong \mathfrak{se}(3)$ be the wrench accounting for all applied loads, and $W_p^{\text{grav}}$ that due to gravity, both represented in the body-fixed frame $\mathcal{F}_p$. The Newton-Euler equations can then be written in compact form as (see appendix C)

$$M_p \dot{V}_p - a \dot{V}_p^T M_p V_p = W_p + W_p^{\text{grav}}. \quad (17)$$

## 5.2 Equations of Motion of a single Limb without Platform

Limb $l$ is a kinematic chain comprising $n_l$ rigid bodies serially connected by $n_l$ 1-DOF joints. The system of $n_l$ EOM of the limb can be written in the form

$$\bar{M}_{(l)} \ddot{\bar{\vartheta}}_{(l)} + \bar{C}_{(l)} \dot{\bar{\vartheta}}_{(l)} = \bar{Q}_{(l)} + \bar{Q}_{(l)}^{\text{act}} + \bar{Q}_{(l)}^{\text{grav}}. \quad (18)$$

Therein $\bar{Q}_{(l)}(\dot{\bar{\vartheta}}_{(l)}, \bar{\vartheta}_{(l)})$ represent all generalized forces that only depend on the relative motion of members of the

kinematic chain, such as joint friction and restoration forces/torques of elastic elements, and $\bar{Q}_{(l)}^{\text{grav}}(\bar{\vartheta}_{(l)})$ represents generalized forces due to gravity. $\bar{Q}_{(l)}^{\text{act}}(t)$ accounts for the actuator forces/torques. Its non-zero entries are the drive forces/torques of the actuated joints.

Denote with $M_{i(l)}$ the 6 × 6 inertia matrix of body $i$ w.r.t. to its body-fixed frame $\mathcal{F}_{i(l)}$ (see appendix C). Introducing the $6n_l \times 6n_l$ block-diagonal matrix $M_{(l)} = \text{diag}(M_{1(l)}, \dots, M_{n_l(l)})$, the $n_l \times n_l$ generalized mass matrix $\bar{M}_{(l)}(\bar{\vartheta}_{(l)})$ is given explicitly as

$$\bar{M}_{(l)} = J_{(l)}^{T} M_{(l)} J_{(l)}. \quad (19)$$

The $n_l \times n_l$ matrix $\bar{C}_{(l)}(\bar{\vartheta}_{(l)}, \dot{\bar{\vartheta}}_{(l)})$ that determines the generalized Coriolis and centrifugal forces admits the explicit expression [9, 11, 81]

$$\bar{C}_{(l)} = -J_{(l)}^{T}(M_{(l)}A_{(l)}a_{(l)} + b_{(l)}^{T}M_{(l)})J_{(l)}. \quad (20)$$

with the $6n_l \times 6n_l$ lower block-triangular matrix

$$A_{(l)} = \begin{pmatrix} \mathbf{I} & \mathbf{0} & \mathbf{0} & \cdots & \mathbf{0} \\ \mathbf{Ad}_{C_{2,1}} & \mathbf{I} & \mathbf{0} & \cdots & \mathbf{0} \\ \mathbf{Ad}_{C_{3,1}} & \mathbf{Ad}_{C_{3,2}} & \mathbf{I} & \cdots & \mathbf{0} \\ \vdots & \vdots & \vdots & \ddots & \vdots \\ \mathbf{Ad}_{C_{n_l,1}} & \mathbf{Ad}_{C_{n_l,2}} & \mathbf{Ad}_{C_{n_l,3}} & \cdots & \mathbf{I} \end{pmatrix}_{(l)} \quad (21)$$

and the $6n_l \times 6n_l$ block-diagonal matrices

$$\begin{align} a_{(l)}(\bar{\vartheta}_{(l)}) &= \operatorname{diag}(\dot{\vartheta}_1 \mathbf{ad}_{\mathbf{X}_1}, \dots, \dot{\vartheta}_{n_l} \mathbf{ad}_{\mathbf{X}_{n_l}})_{(l)} \nonumber \\ b_{(l)}(\bar{\vartheta}_{(l)}, \dot{\bar{\vartheta}}_{(l)}) &= \operatorname{diag}(\mathbf{ad}_{\mathbf{v}_1}, \dots, \mathbf{ad}_{\mathbf{v}_{n_l}})_{(l)} \tag{22} \\ &= \operatorname{diag}(\mathbf{ad}_{\mathbf{J}_1 \bar{\vartheta}}, \dots, \mathbf{ad}_{\mathbf{J}_{n_l} \bar{\vartheta}})_{(l)}. \nonumber \end{align}$$

The closed form expressions (19) and (20) can be derived analytically from the kinetic energy [81] or synthetically from the Newton-Euler equations of the individual bodies [11]. The generalized gravity forces are given by

$$\bar{Q}_{(l)}^{\text{grav}}(\bar{\vartheta}_{(l)}) = J_{(l)}^{T} \begin{pmatrix} \mathbf{M}_{1} \mathbf{Ad}_{\mathbf{C}_{1}}^{-1} \\ \mathbf{M}_{2} \mathbf{Ad}_{\mathbf{C}_{2}}^{-1} \\ \vdots \\ \mathbf{M}_{n_l} \mathbf{Ad}_{\mathbf{C}_{n_l}}^{-1} \end{pmatrix}_{(l)} \begin{pmatrix} \mathbf{0} \\ \mathbf{0} \mathbf{g} \end{pmatrix} \quad (23)$$

where $\mathbf{0} \mathbf{g} \in \mathbb{R}^3$ is the vector of gravitational acceleration resolved in the IFR $\mathcal{F}_0$.

It is assumed in the following that there are no interaction forces between the $L$ limbs, except the constraint reactions due to the loop closure. With this assumption, the EOM (18) of the individual limbs, when disconnected from
the platform, are mutually independent, and the overall system of EOM for the tree-system (i.e. no loop constraints imposed, as shown in fig. 5 and 6) is formed by collecting the equations (18) for $l = 1, ..., L$. Denote with $n := n_1 + ... + n_L$ the number of joint coordinates of the tree-system that are summarized in the vector $\tilde{\vartheta} := (\tilde{\vartheta}_{(1)}, ..., \tilde{\vartheta}_{(L)}) \in \mathbb{V}^n$.

## 5.3 Joint Velocities in terms of the Task Space Velocity

The task to determine the velocity of all joints for given task space velocity is regarded as the velocity inverse kinematic problem of the mechanism (in contrast to the inverse kinematics problem of the manipulator). Denote with $\vartheta = (\vartheta_{(1)}, ..., \vartheta_{(L)}) \in \mathbb{V}^N$ the overall vector of $N := N_1 + ... + N_L$ joint variables of the PKM.

### 5.3.1 Equimobile PKM

The task space Jacobian $\mathbf{J}_{t(l)}$ of limb $l$ of an equimobile PKM is a full rank $\delta_p \times N_l$ matrix that determines the task space velocity of the platform as

$$ \mathbf{V}_t = \mathbf{J}_{t(l)} \dot{\mathbf{\vartheta}}_{(l)}, l = 1, ..., L. \quad (24) $$

That is, $\mathbf{J}_{t(l)}$ consists of the $\delta_p$ rows corresponding to the selected task space components. For a kinematically non-redundant PKM, it is $\delta_p = N_l$, and (24) can be solved as $\dot{\mathbf{\vartheta}}_{(l)} = \mathbf{J}_{t(l)}^{-1} \mathbf{V}_t$. This can be regarded as the inverse kinematics solution of the limb. The solutions are summarized for all limbs as

$$ \dot{\mathbf{\vartheta}} = \mathbf{F}\mathbf{V}_t \quad (25) $$

with $\mathbf{F}(\mathbf{\vartheta})$ defined as

$$ \mathbf{F} = \begin{pmatrix} \mathbf{J}_{t(1)}^{-1} \\ \mathbf{J}_{t(2)}^{-1} \\ \vdots \\ \mathbf{J}_{t(L)}^{-1} \end{pmatrix} \quad (26) $$

Therewith, the velocities of all joints are given in terms of the task space velocity $\mathbf{V}_t$ of the platform.

The solution for the $n_l$ joint velocities $\dot{\mathbf{\vartheta}}_{(l)}$ can be extracted from (25) when written in the form

$$ \dot{\mathbf{\vartheta}}_{(l)} = \begin{pmatrix} \dot{\mathbf{\vartheta}} \\ \vartheta_{n_l+1} \\ \vdots \\ \vartheta_{N_l} \end{pmatrix}_{(l)} = \mathbf{J}_{t(l)}^{-1} \mathbf{V}_t. \quad (27) $$

Denote with $\bar{\mathbf{F}}_{(l)}$ the $n_l \times \delta_p$ submatrix of $\mathbf{J}_{t(l)}^{-1}$ obtained by eliminating the $\delta_l$ rows corresponding to the variables

$\vartheta_{n_l+1}, ..., \vartheta_{N_l}$ of the joint connecting the limb to the platform. This selection can be formally expressed as

$$ \bar{\mathbf{F}}_{(l)} := \bar{\mathbf{P}}_{(l)} \mathbf{J}_{t(l)}^{-1} \quad (28) $$

with $\bar{\mathbf{P}}_{(l)} := (\mathbf{I}_{n_l} \mathbf{0}_{n_l, \delta_p})$. Then $\dot{\bar{\mathbf{\vartheta}}}_{(l)} = \bar{\mathbf{F}}_{(l)} \mathbf{V}_t$, and summarized for all limbs, this yields

$$ \dot{\bar{\mathbf{\vartheta}}} = \bar{\mathbf{F}}\mathbf{V}_t \quad (29) $$

with the $N \times \delta_p$ matrix

$$ \bar{\mathbf{F}} = \begin{pmatrix} \bar{\mathbf{F}}_{(1)} \\ \bar{\mathbf{F}}_{(2)} \\ \vdots \\ \bar{\mathbf{F}}_{(L)} \end{pmatrix}. \quad (30) $$

Notice that $\mathbf{F}$ and $\bar{\mathbf{F}}$ depend on $\mathbf{\vartheta}$ since $\mathbf{J}_{t(l)}^{-1}$ depend on $\mathbf{\vartheta}_{(l)}$.

### 5.3.2 Non-Equimobile PKM

The limb of a non-equimobile PKM, when disconnected from that platform, has a higher mobility than the platform. The relation (24) does hence not apply since $\delta_p < r_l = \text{rank } \mathbf{J}_{t(l)}$, which means that $\mathbf{J}_{t(l)} \dot{\mathbf{\vartheta}}_{(l)}$ delivers more than the $\delta_p$ components of $\mathbf{V}_t$. These $r_l - \delta_p$ components must be zero, and thus correspond to constraints imposed on the motion of limb $l$. The forward kinematics of the limb and the imposed constraints are summarized as

$$ \mathbf{D}_{t(l)} \mathbf{V}_t = \mathbf{J}_{t(l)} \dot{\mathbf{\vartheta}}_{(l)}, l = 1, ..., L \quad (31) $$

where $\mathbf{D}_{t(l)}$ is a constant unimodular full-rank $r_l \times \delta_p$ matrix with the property $\mathbf{D}_{t(l)}^T \mathbf{D}_{t(l)} = \mathbf{I}_{\delta_p}$, which assigns the components of the task space velocity $\mathbf{V}_t$ to the corresponding rows of the task space Jacobian of limb $l$. Since the task space velocity always consists of selected components of $\mathbf{V}_p$, the matrix $\mathbf{D}_{t(l)}$ is always unimodular. The $r_l - \delta_p$ zeros in the vector $\mathbf{D}_{t(l)} \mathbf{V}_t$ correspond to constraints on the platform motion. For an equimobile PKM, $\mathbf{D}_{t(l)}$ is the identity matrix. The equation (31) thus represent a kinematic relation of task and joint space velocities but also represents constraints due to the fact that the dimension of the motion space of a limb is restricted within the PKM, which is the meaning of being non-equimobile. Notice, the platform mobility $\delta_p$ and the possible motions are assumed to be known from the PKM synthesis.

**Example 1 (cont.)** When the platform frame is introduced as in Fig. 7, the $4 \times 4$ task space Jacobian of a limb of the 3PRRR PKM (with $\delta_p = 3, r_l = 4$) determines the velocity of the origin of the platform frame but also one component of the angular velocity: $(\omega_1, \nu_1, \nu_2, \nu_3)^T = \mathbf{J}_{t(l)} \dot{\mathbf{\vartheta}}_{(l)}$ (sec. 4.2).
The angular velocity $\omega_1$ is forced to be zero when the PKM is assembled, using (12). This is imposed with the $4 \times 3$ matrix

$$ \mathbf{D}_{t(l)} = \begin{pmatrix} \mathbf{0}_{1,3} \\ \mathbf{I}_3 \end{pmatrix} \qquad (32) $$

in (31), since $\mathbf{D}_{t(l)}\mathbf{V}_t = (0, v_1, v_2, v_3)^T$. Thus (31) is a system of 4 equations where the first equation imposes the condition $\omega_1 = 0$ and the remaining 3 describe the forward kinematics.

The unique solution of (31) is

$$ \dot{\vartheta}_{(l)} = \mathbf{J}_{t(l)}^{-1} \mathbf{D}_{t(l)} \mathbf{V}_t. \qquad (33) $$

The matrix $\mathbf{D}_{t(l)}$ eliminates the columns of $\mathbf{J}_{t(l)}^{-1}$ that do not correspond to a component of $\mathbf{V}_t$. When implementing (33), these columns are simply omitted in the multiplication of $\mathbf{J}_{t(l)}^{-1}$ and $\mathbf{V}_t$. The overall vector $\dot{\vartheta}$ is again determined by (25) where now

$$ \mathbf{F} = \begin{pmatrix} \mathbf{J}_{t(l)}^{-1} \mathbf{D}_{t(l)} \\ \mathbf{J}_{t(l)}^{-1} \mathbf{D}_{t(l)} \\ \vdots \\ \mathbf{J}_{t(l)}^{-1} \mathbf{D}_{t(l)} \end{pmatrix}. \qquad (34) $$

The vector $\dot{\bar{\vartheta}}$ is determined by (29) where $\bar{\mathbf{F}}_{(l)}$ is the $n_l \times \delta_p$ matrix obtained from $\mathbf{J}_{t(l)}^{-1} \mathbf{D}_{t(l)}$ by eliminating the last $\delta_l$ rows. The latter can formally be expressed as $\bar{\mathbf{F}}_{(l)} := \bar{\mathbf{P}}_{(l)} \mathbf{J}_{t(l)}^{-1} \mathbf{D}_{t(l)}$ with the selection matrix in (28).

## 5.4 Inverse Kinematics of the Manipulator

The inverse velocity kinematics problem of the manipulator is to find the actuator velocities as function of the task space velocity. Denote with $N_{\text{act}}$ the number of actuated 1-DOF joints in limb $l$, and with $N_{\text{act}} = N_{\text{act}(1)} + \dots + N_{\text{act}(L)}$ the total number of actuated joints of the PKM model. Further denote with $\vartheta_{\text{act}(l)} \in \mathbb{V}^{N_{\text{act}}}$ the vector of actuator coordinates of limb $l$, and with $\vartheta_{\text{act}} \in \mathbb{V}^{N_{\text{act}}}$ the overall vector of actuator coordinates. The unique solution of the inverse velocity kinematics problem of a simple non-redundant PKM is given by

$$ \dot{\vartheta}_{\text{act}} = \mathbf{J}_{\text{IK}} \mathbf{V}_t \qquad (35) $$

where the square matrix $\mathbf{J}_{\text{IK}}(\vartheta)$ is referred to as the *Inverse Kinematics Jacobian*.

It is assumed that the joints connecting limbs and platform are not actuated. With this assumption, the actuator coordinates $\vartheta_{\text{act}}$ are contained in $\bar{\vartheta}$, and the IK Jacobian is the $N_{\text{act}} \times \delta$ submatrix of $\bar{\mathbf{F}}$ in (30) with rows corresponding to the actuator coordinates ($\delta_p = \delta$ for kinematically

non-redundant PKM). To express this formally, denote with $\bar{\mathbf{P}}_{\text{act}} \in \mathbb{R}^{N_{\text{act}},n}$ the full rank unimodular selection matrix so that $\vartheta_{\text{act}} = \bar{\mathbf{P}}_{\text{act}}\bar{\vartheta}$, then

$$ \mathbf{J}_{\text{IK}} := \bar{\mathbf{P}}_{\text{act}}\bar{\mathbf{F}}. \qquad (36) $$

**Example 1 (cont.).** Joint $i=1$ (prismatic joint) in each of the $L=3$ limbs of the 3PRRR PKM is actuated. Thus $N_{\text{act}}=3$, and $\vartheta_{\text{act}} = (\vartheta_{1(1)}, \vartheta_{1(2)}, \vartheta_{1(3)})^T$ is composed of the translation coordinates of the prismatic joints. The tree-system (section 4.1) contains $n=3 \cdot 3 = 9$ joint variables. The $3 \times 9$ matrix $\bar{\mathbf{P}}_{\text{act}}$ contains only zeros, except the $(1,1)$, $(2,4)$, and $(3,6)$ entries, which are equal to 1.

**Example 2 (cont.).** Joint $i=3$ (prismatic joint) in each of the $L=6$ limbs of the 6UPS PKM is actuated. The vector of actuated joint variables $\vartheta_{\text{act}} = (\vartheta_{3(1)}, \dots, \vartheta_{3(6)})^T$ consists of the corresponding $N_{\text{act}}=6$ translation coordinates. The tree-system (Fig. 6) contains $n=6 \cdot 3 = 18$ joint variables. In the $6 \times 18$ matrix $\bar{\mathbf{P}}_{\text{act}}$ only the entries $(i,3i), i=1, \dots, 6$ are equal to 1, and all other entries are zero.

The actuator forces/torques corresponding to the actuator coordinates $\vartheta_{\text{act}}$ are summarized in the vector $\mathbf{u} \in \mathbb{R}^{N_{\text{act}}}$, which collects the non-zero entries of $\mathbf{Q}_{(l)}^{\text{act}}$ in (18) for all $L$ limbs. Denote with $\mathbf{W}_t \in \mathbb{R}^{\delta_p}$ the vector comprising the components of the platform wrench corresponding to the task space velocities. The transmission of actuator to task space forces/torques is determined by

$$ \mathbf{W}_t = \mathbf{J}_{\text{IK}}^T \mathbf{u}. \qquad (37) $$

In general $\mathbf{V}_t$ is not a screw, and $\mathbf{W}_t$ is not a co-screw, since it only consists of selected components of the platform twist.

The number of actuators may be different from the DOF of the PKM. A PKM is called *redundantly actuated* iff

$$ \delta < N_{\text{act}}. \qquad (38) $$

A PKM is *underactuated* iff rank $\mathbf{J}_{\text{IK}} < \delta$, and *full-actuated* iff rank $\mathbf{J}_{\text{IK}} = \delta$. For a redundantly actuated PKM there is no unique inverse dynamics solutions and there are non-zero actuator forces $\mathbf{u}$ in (37) that do not lead to EE forces and do not affect the PKM motion but rather generate internal preload (since $\ker \mathbf{J}_{\text{IK}}^T \neq \emptyset$). There are various reasons for introducing actuation redundancy, such as to increase and homogenize the overall stiffness and dexterity, to increase the dynamics performance, to reduce the load of the individual actuators, to eliminate singularities, and to eliminate backlash [25,35]. A PKM can be redundantly underactuated. The Delta PKM, where the bars forming the parallelograms within the limbs are attached by spherical joints at both ends, is an example for an underactuated PKM.
## 5.5 Task Space Formulation of the Equations of Motion

The EOM of the PKM are obtained from the EOM of the tree-system and of the platform by imposing the loop constraints. The constraints are resolved using the inverse kinematics solution of the limbs in terms of the task space velocity as generalized coordinates.

The joint velocities of limb *l* are determined by (29) and the accelerations are determined by

$$ \ddot{\vartheta}_{(l)} = \bar{\mathbf{F}}_{(l)} \dot{\mathbf{V}}_{t} + \dot{\bar{\mathbf{F}}}_{(l)} \mathbf{V}_{t}. \quad (39) $$

Denote with $\ddot{\vartheta} \in \mathbb{V}^n$ the overall vector of $n = N - \sum_l \delta_l = \sum_l n_l$ joint variables of the tree-system consisting of the *L* limbs without platform. The velocity of the overall PKM, comprising the *L* limbs and the platform, is given in terms of the task space velocity as

$$ \left( \begin{matrix} \mathbf{V}_p \\ \dot{\vartheta} \end{matrix} \right) = \left( \begin{matrix} \mathbf{P}_p \\ \bar{\mathbf{F}} \end{matrix} \right) \mathbf{V}_t. \quad (40) $$

The task space velocity $\mathbf{V}_t$ serves as generalized velocity of the PKM model.

The EOM of the PKM can now be constructed from the EOM of the platform (17) and of the limbs (18). Using (40), Jourdain's principle of virtual power yields

$$ \left( \begin{matrix} \mathbf{P}_p \\ \bar{\mathbf{F}} \end{matrix} \right)^T \left( \begin{matrix} \mathbf{M}_p \dot{\mathbf{V}}_p - \mathbf{a}\mathbf{d}_{\dot{\mathbf{V}}_p}^T \mathbf{M}_p \mathbf{V}_p \\ \bar{\mathbf{M}}_{(l)} \ddot{\mathbf{\vartheta}}_{(l)} + \bar{\mathbf{C}}_{(l)} \dot{\mathbf{\vartheta}}_{(l)} \\ \vdots \\ \bar{\mathbf{M}}_{(L)} \ddot{\mathbf{\vartheta}}_{(L)} + \bar{\mathbf{C}}_{(L)} \dot{\mathbf{\vartheta}}_{(L)} \end{matrix} \right) = \left( \begin{matrix} \mathbf{P}_p \\ \bar{\mathbf{F}} \end{matrix} \right)^T \left( \begin{matrix} \mathbf{W}_p + \mathbf{W}_p^{\text{grav}} \\ \bar{\mathbf{Q}}_{(l)} + \bar{\mathbf{Q}}_{(l)}^{\text{act}} + \bar{\mathbf{Q}}_{(l)}^{\text{grav}} \\ \vdots \\ \bar{\mathbf{Q}}_{(L)} + \bar{\mathbf{Q}}_{(L)}^{\text{act}} + \bar{\mathbf{Q}}_{(L)}^{\text{grav}} \end{matrix} \right) \quad (41) $$

Incorporating (40) and (39) finally leads to the task space formulation of the EOM of simple kinematically non-redundant PKM

$$ \mathbf{M}_t \dot{\mathbf{V}}_t + \mathbf{C}_t \mathbf{V}_t = \mathbf{W}_t + \mathbf{W}_t^{\text{grav}} + \mathbf{W}_t^{\text{act}} \quad (42) $$

with the $\delta \times \delta$ generalized mass and Coriolis matrix

$$ \mathbf{M}_t(\vartheta) := \sum_{l=1}^{L} \bar{\mathbf{F}}_{(l)}^T \bar{\mathbf{M}}_{(l)} \bar{\mathbf{F}}_{(l)} + \mathbf{P}_p^T \mathbf{M}_p \mathbf{P}_p \quad (43) $$

$$ \mathbf{C}_t(\vartheta, \dot{\vartheta}) := \sum_{l=1}^{L} \bar{\mathbf{F}}_{(l)}^T (\bar{\mathbf{C}}_{(l)} \bar{\mathbf{F}}_{(l)} + \bar{\mathbf{M}}_{(l)} \dot{\bar{\mathbf{F}}}_{(l)}) - \mathbf{P}_p^T \mathbf{a}\mathbf{d}_{\mathbf{P}_p^T \mathbf{V}_t} \mathbf{M}_p (\mathbf{P}_p^T) $$

and the vector of generalized gravity forces, applied loads, and actuator forces

$$ \mathbf{W}_t^{\text{grav}}(\vartheta) := \sum_{l=1}^{L} \bar{\mathbf{F}}_{(l)}^T \bar{\mathbf{Q}}_{(l)}^{\text{grav}} + \mathbf{P}_p^T \mathbf{W}_p^{\text{grav}} \quad (45) $$

$$ \mathbf{W}_t(\vartheta, \dot{\vartheta}, t) := \sum_{l=1}^{L} \bar{\mathbf{F}}_{(l)}^T \bar{\mathbf{Q}}_{(l)} + \mathbf{P}_p^T \mathbf{W}_p \quad (46) $$

$$ \mathbf{W}_t^{\text{act}}(\vartheta, t) := \sum_{l=1}^{L} \bar{\mathbf{F}}_{(l)}^T \bar{\mathbf{Q}}_{(l)}^{\text{act}} = \mathbf{J}_{\text{IK}}^T \mathbf{u}(t) \quad (47) $$

where $\mathbf{J}_{\text{IK}}$ is the IK Jacobian in (36), and $\mathbf{u} \in \mathbb{R}^{N_{\text{act}}}$ is the vector of the $N_{\text{act}}$ actuator forces/torques.

The EOM (42) is a first-order ODE system in terms of the position coordinates $\vartheta$ and velocity coordinates $\mathbf{V}_t$. The dependency of $\mathbf{M}_t$ and $\mathbf{C}_t$ on $\vartheta$ and $\dot{\vartheta}$, respectively, is due to the dependency of $\bar{\mathbf{F}}$ on $\vartheta$. The joint rates $\dot{\vartheta}$ can be replaced by the solution (25), but there is no explicit solution of the geometric loop constraints that would allow eliminating $\vartheta$ and substituting it with generalized coordinates (e.g. actuator coordinates). It should be remarked that in many publications, including the excellent text books, e.g. [64,94], the EOM (42), obtained by incorporating the velocity and acceleration constraints, are considered as depending solely on independent generalized coordinates. While this is formally correct (by the inverse function theorem) it is algorithmically inconsistent, however. This will be discussed in sec. 11.

The task space formulation (42) admits an instructive interpretation. The generalized forces are the components of wrenches according to the selected components of the platform twist, and $\mathbf{P}_p^T \mathbf{M}_p \mathbf{P}_p$ is the mass matrix of the platform according to the admissible platform motion. The intermediate equations (41) can be interpreted by writing them as

$$ \mathbf{P}_p^T \mathbf{M}_p \mathbf{P}_p \dot{\mathbf{V}}_t - \mathbf{P}_p^T \mathbf{a}\mathbf{d}_{\mathbf{P}_p^T \mathbf{V}_t} \mathbf{M}_p \mathbf{P}_p \mathbf{V}_t = \mathbf{W}_t + \mathbf{W}_t^{\text{act}} + \mathbf{W}_t^{\text{grav}} \quad (48) \\ - \sum_{l=1}^{L} \bar{\mathbf{F}}_{(l)}^T (\bar{\mathbf{M}}_{(l)} \ddot{\mathbf{\vartheta}}_{(l)} + \bar{\mathbf{C}}_{(l)} \dot{\mathbf{\vartheta}}_{(l)}) $$

The left-hand side in (48) are the Newton-Euler equations of the platform when constrained to admissible $\delta_p$-dimensional platform motions with $\mathbf{P}_p^T \mathbf{M}_p \mathbf{P}_p$ being the corresponding mass matrix. In various applications, e.g. haptic displays, the PKM design is to be optimized so as to minimize the effect of the term on the right hand side, which is due to motion of the links. This is known as inertia cancellation.

A crucial point for evaluating the EOM is that relation (44) for matrix $\mathbf{C}_t$ involves time derivatives of $\bar{\mathbf{F}}_{(l)}$, which is a submatrix of $\mathbf{F}$. The Lie group formulation admits a computationally efficient computation as follows. Time derivatives of $\mathbf{F}$ are found from the time derivatives of $\mathbf{J}_{p(l)}^{-1}$. The latter can be expressed as $\dot{\mathbf{J}}_{p(l)}^{-1} = \mathbf{J}_{p(l)}^{-1} \dot{\mathbf{J}}_{p(l)} \mathbf{J}_{p(l)}^{-1}$. The time derivative of the ith column of $\mathbf{J}_{p(l)}$ in (7) is given algebraically as [81]

$$ \dot{\mathbf{J}}_{p(l),i} = \sum_{i<k \le N_l} [\mathbf{J}_{p(l),i}, \mathbf{J}_{p(l),k}] \dot{\mathbf{\vartheta}}_k = - \sum_{i<k \le N_l} \mathbf{a}\mathbf{d}_{\mathbf{J}_{p(l),k}} \mathbf{J}_{p(l),i} \dot{\mathbf{\vartheta}}_k(l) \quad (49) $$

which allows for an explicit expression for the time derivative of $\mathbf{J}_{p(l)}$ and thus of $\bar{\mathbf{F}}_{\vartheta}$. Moreover, not all terms in (49) have to be computed. The third form in (10) leads to (50), with $\frac{d}{dt}(\mathbf{a}\mathbf{d}_{\mathbf{C}_{p,n_l}} \mathbf{J}_{n_l(l)}) = \mathbf{a}\mathbf{d}_{\mathbf{C}_{p,n_l}} \dot{\mathbf{J}}_{n_l(l)} + \dot{\mathbf{a}}\mathbf{d}_{\mathbf{C}_{p,n_l}} \mathbf{J}_{n_l(l)}$. It can be shown that $\dot{\mathbf{a}}\mathbf{d}_{\mathbf{C}_{p,n_l}} = \mathbf{a}\mathbf{d}_{\mathbf{V}_{p,n_l}} \mathbf{A}\mathbf{d}_{\mathbf{C}_{p,n_l}}$, and thus

$$ \frac{d}{dt}(\mathbf{A}\mathbf{d}_{\mathbf{C}_{p,n_l}} \mathbf{J}_{n_l(l)}) = \mathbf{a}\mathbf{d}_{\mathbf{V}_{p,n_l}} \mathbf{A}\mathbf{d}_{\mathbf{C}_{p,n_l}} \mathbf{J}_{n_l(l)} + \mathbf{A}\mathbf{d}_{\mathbf{C}_{p,n_l}} \dot{\mathbf{J}}_{n_l(l)} \quad (51) $$

where $\mathbf{V}_{p,n_l} = \mathbf{A}\mathbf{d}_{\mathbf{C}_{p,n_l}} \mathbf{V}_{n_l} - \mathbf{V}_p$ is the velocity of the terminal body $n_l$ of limb *l* (without platform) relative to the platform
$$ \dot{\mathbf{J}}_{\mathrm{p}}(l) = \left( \left. \frac{d}{dt} (\mathbf{A}\mathbf{d}_{\mathrm{C}_{\mathrm{p},n_l}} \mathbf{J}_{n_l}) \right|_{-\left( \sum_{n_l+1<k \le N_l} \dot{\vartheta}_k \mathbf{a}\mathbf{d}_{\mathrm{J}_{\mathrm{p},k}} \mathbf{J}_{\mathrm{p},n_l+1} \right) \cdots \left. \sum_{N_l-2<k \le N_l} \dot{\vartheta}_k \mathbf{a}\mathbf{d}_{\mathrm{J}_{\mathrm{p},k}} \mathbf{J}_{\mathrm{p},N_l-2} \right| \dot{\vartheta}_{N_l} \mathbf{a}\mathbf{d}_{\mathrm{J}_{\mathrm{p},N_l}} \mathbf{J}_{\mathrm{p},N_l-1} \right) \tag{50} $$

represented in the platform frame $\mathcal{F}_p$. Notice that $\mathbf{J}_{n_l(l)}$ is given by the last row of the Jacobian $\mathbf{J}_{(l)}$ of limb $l$ in (4). It is further known that [81]

$$ \dot{\mathbf{J}}_{(l)} = -\mathbf{A}_{(l)} \mathbf{a}_{(l)} \mathbf{J}_{(l)}. \tag{52} $$

The right-hand side of (52) is already available from the expression for the Coriolis matrix (44), thus $\dot{\mathbf{J}}_{n_l(l)}$ is already known. In summary, only the last $\delta_l$ columns in (50) must be evaluated, with $\delta_l$ being the DOF of the joint connecting limb $l$ to the platform, where only results are needed that are already determined. A further simplification of (51) is possible for $\delta_l = 1$ (as in case of the 3PRRR PKM). In this case $\mathbf{V}_{\mathrm{p},n_l} = \mathbf{A}\mathbf{d}_{\mathrm{C}_{\mathrm{p},n_l}} \mathbf{V}_{n_l} - \mathbf{V}_{\mathrm{p}} = -\mathbf{X}_{N_l}\dot{\vartheta}_{N_l}$, and thus

$$ \frac{d}{dt} (\mathbf{A}\mathbf{d}_{\mathrm{C}_{\mathrm{p},n_l}} \mathbf{J}_{n_l(l)}) = -\dot{\vartheta}_{N_l} \mathbf{a}\mathbf{d}_{\mathrm{X}_{N_l}} \mathbf{A}\mathbf{d}_{\mathrm{C}_{\mathrm{p},n_l}} \mathbf{J}_{n_l} + \mathbf{A}\mathbf{d}_{\mathrm{C}_{\mathrm{p},n_l}} \dot{\mathbf{J}}_{n_l(l)}. \tag{53} $$

Finally it should be mentioned that in (41) the EOM of the individual limbs can be derived using any formulation that is deemed appropriate or they could be simply reused if already available. The tailored formulation, exploiting the topology of simple PKM, is applicable without using the Lie group formulation.

## 5.6 Equations of Motion for full-actuated PKM in terms of Actuator Coordinates

The task space formulation in the preceding section is advantageous since the EE motion is planned in workspace and also since the control in task space is usually preferred. However, the EOM in terms of actuator coordinates are equally applicable, and occasionally preferred for time integration and solving the forward dynamics. Actuator coordinates serve as generalized coordinates only if the PKM is full-actuated PKM, i.e. as many independent actuator coordinates as its DOF ($\delta = \text{rank } \mathbf{J}_{\mathrm{IK}} \le N_{\text{act}}$), see (38). For deriving the EOM, non-redundantly and redundantly actuated PKM must be distinguished. In the latter case there more actuator coordinates, and only $\delta$ of them can be used as generalized coordinates. This is address next.

If the PKM is non-redundantly full-actuated, all actuator coordinates are independent, i.e. rank $\mathbf{J}_{\mathrm{IK}} = N_{\text{act}}$. Then, $\vartheta_{\text{act}}$ serve as generalized coordinates in which the EOM (42) can be expressed. The necessary transformation to actuator velocities is found by inverting the IK relation (35), which yields $\mathbf{V}_t = \mathbf{J}_{\mathrm{IK}}^{-1} \dot{\vartheta}_{\text{act}} = \mathbf{J}_{\mathrm{FK}} \dot{\vartheta}_{\text{act}}$. Inserting this into (42) leads to the EOM in actuator coordinates

$$ \mathbf{M}_a \ddot{\vartheta}_{\text{act}} + \mathbf{C}_a \dot{\vartheta}_{\text{act}} = \mathbf{Q}_a + \mathbf{Q}_a^{\text{grav}} + \mathbf{u} \tag{54} $$

where the $\delta \times \delta$ generalized mass and Coriolis matrix are found from (43) and (44) as

$$ \mathbf{M}_a(\vartheta) := \mathbf{J}_{\mathrm{FK}}^T \mathbf{M}_t \mathbf{J}_{\mathrm{FK}} \tag{55} $$

$$ \begin{aligned} \mathbf{C}_a(\vartheta, \dot{\vartheta}) &:= \mathbf{J}_{\mathrm{FK}}^T (\mathbf{C}_t \mathbf{J}_{\mathrm{FK}} + \mathbf{M}_t \dot{\mathbf{J}}_{\mathrm{FK}}) \\ &= \mathbf{J}_{\mathrm{FK}}^T (\mathbf{C}_t - \mathbf{M}_t \mathbf{J}_{\mathrm{FK}} \dot{\mathbf{J}}_{\mathrm{IK}}) \mathbf{J}_{\mathrm{FK}}. \end{aligned} \tag{56} $$

The generalized forces due to gravity and applied loads are

$$ \mathbf{Q}_a^{\text{grav}}(\vartheta) := \mathbf{J}_{\mathrm{FK}}^T \mathbf{W}_t^{\text{grav}} \tag{57} $$

$$ \mathbf{Q}_a(\vartheta, \dot{\vartheta}, t) := \mathbf{J}_{\mathrm{FK}}^T \mathbf{W}_t. \tag{58} $$

The actuator forces $\mathbf{u}$ appear explicitly in this formulation. The dependency on the joint coordinates $\vartheta$ and velocities $\dot{\vartheta}$ remains for as no explicit solution of the geometric constraints exists in general. The actuator variables serve as generalized coordinates, which are traditionally denoted with $\mathbf{q}$.

A redundantly full-actuated PKM has more than $\delta$ actuator coordinates. A set of $\delta$ of the $N_{\text{act}}$ actuator coordinates can be used as generalized coordinates summarized in the vector $\mathbf{q} \in \mathbb{V}^{\delta}$. From the IK relation (35) the $N_{\text{act}}$ actuator coordinates are determined as

$$ \dot{\mathbf{q}} = \mathbf{H}\mathbf{V}_t \tag{59} $$

where $\mathbf{H}$ is the corresponding (regular) $\delta \times \delta$ submatrix of the $\delta \times N_{\text{act}}$ IK Jacobian $\mathbf{J}_{\mathrm{IK}}$. Inserting $\mathbf{V}_t = \mathbf{H}^{-1}\dot{\mathbf{q}}$ into (42) yields

$$ \mathbf{M}_a \ddot{\mathbf{q}} + \mathbf{C}_a \dot{\mathbf{q}} = \mathbf{Q}_a + \mathbf{Q}_a^{\text{grav}} + \mathbf{A}^T \mathbf{u}. \tag{60} $$

The expressions (55-58) for the mass and Coriolis matrix, and the generalized forces remain valid except that $\mathbf{J}_{\mathrm{FK}}$ is replaced by $\mathbf{H}^{-1}$. The matrix $\mathbf{A} := \mathbf{J}_{\mathrm{IK}}\mathbf{H}^{-1}$ relates the $N_{\text{act}} - \delta$ 'redundant' actuator velocities to the $\delta$ independent ones, $\dot{\vartheta}_{\text{act}} = \mathbf{A}\dot{\mathbf{q}}$. It is the identity matrix except for the 'redundant' actuator coordinates, which depend on the actuator coordinates $\mathbf{q}$. The $\delta \times N_{\text{act}}$ matrix $\mathbf{A}^T$ is usually referred to as the force distribution matrix or control matrix.

## 5.7 Relation to other Formulations

The method closest to the presented formulation is the joint space formulation for the EOM of non-redundant 6-DOF simple PKM by Angeles [64]. In both approaches, the Newton-Euler equations of the platform and the EOM of the limbs are first derived. In [64] the joint velocities of
the limbs and the platform twist are expressed in terms of the actuator velocities $\dot{\theta}_{\text{act}}$ (see (12.17) and (12.20) in [64]), whereas in the proposed formulations they are expressed in terms of the task space velocity (see (40)). The approach in [64] leads immediately to EOM in terms of actuator coordinates. Within the proposed approach, the EOM in terms of actuator coordinates are obtained by incorporating the IK solution (35). It should be noticed that in [64] the forward kinematics Jacobian of a limb is referred to as the ‘natural orthogonal complement’.

A dynamics formulation for general simple equimobile PKM in terms of actuator coordinates was reported by Briot and Khalil [94]. This formulation follows essentially the same steps as the formulation by Angeles and the one presented in this paper. The difference lies in the way the constraints are resolved. The relation (24) is written as

$$V_t = J_{t(l)} \dot{\theta}_{(l)} = J_{p(l)} \dot{\theta}_{p(l)} + J_{a(l)} \dot{\theta}_{a(l)} \quad (61)$$

by splitting (after rearranging coordinates) the $\delta_p \times N_l$ Jacobian of limb $l$ according to the $N_{\text{act}(l)}$ actuated and the $N_l - N_{\text{act}(l)}$ passive joint coordinates. This can be rewritten as $J_{p(l)} \dot{\theta}_{p(l)} = V_t - J_{a(l)} \dot{\theta}_{a(l)}$. In the formulation in [94], this relation is solved for $\dot{\theta}_{p(l)}$. For kinematically non-redundant simple equimobile PKM ($\delta_p = N_l$), this is an overdetermined system for $\dot{\theta}_{p(l)}$ since $J_{p(l)}$ is a $N_l \times (N_l - N_{\text{act}(l)})$ matrix. Therefore, a $(N_l - N_{\text{act}(l)}) \times N_l$ matrix $\Psi(\theta)$ is introduced such that $\Psi J_{p(l)}$ is a full rank $(N_l - N_{\text{act}(l)}) \times (N_l - N_{\text{act}(l)})$ matrix. A solution is then found as $\dot{\theta}_{p(l)} = (\Psi J_{p(l)})^{-1} \Psi (V_t - J_{a(l)} \dot{\theta}_{a(l)})$. The task space velocity is finally expressed in terms of the actuator coordinates using the inverse of the IK Jacobian in (35). Introducing this in the Newton-Euler equations for the platform and the EOM of the limbs yields the EOM in terms of actuator coordinates. The advantage of this formulation is that the size of the square matrix $\Psi J_{p(l)}$ depends on the number of actuator coordinates in a limb. That is, compared to (26), which involves inversion of a $N_l \times N_l$ matrix, a $(N_l - N_{\text{act}(l)}) \times (N_l - N_{\text{act}(l)})$ matrix must be inverted. Often, there is one actuator per limb (fully parallel PKM), so that this reduces the matrix size by one. Moreover, it is crucial that the matrix $\Psi$ is configuration dependent, so to avoid artificial singularities that could be introduced by simply selecting a submatrix of $J_{p(l)}$, which may become singular. There is no general procedure for determining such $\Psi$, however.

Most approaches to PKM modeling (using relative coordinates) apply the formulations for general MBS with kinematic loops, known as cut-joint formulations [56]. Whereas this allows treating PKM with general topologies it is the computationally most expensive. The starting point are the loop closure constraints. The presented approach rests on the loop constraints (13) and (14). The loop constraints used in the cut-joint formulation are slightly different. For each FC one joint (the cut-joint) is removed in order to obtain a tree-topology MBS (notice that this is different from the tree-system in sec. 4.1). For each cut-joint the correspond-

ing closure constraints are then introduced. This yields a system of $\bar{m}$ velocity constraints of the form $\bar{G}\dot{\eta} = 0$ where $\eta$ consists of the $\bar{N}$ joint variables remaining in the tree-system. The constraint Jacobian is partitioned (after rearranging coordinates) according to dependent and independent coordinates ($\dot{\eta}_d$ and $\dot{\eta}_i$) as $\bar{G} = (\bar{G}_d, \bar{G}_i)$, and the constraints $0 = \bar{G}_d\dot{\eta}_d + \bar{G}_i\dot{\eta}_i$ are solved as $\dot{\eta}_d = -\bar{G}_d^{-1}\bar{G}_i\dot{\eta}_i$. The overall solution is then expressed as $\dot{\eta} = F\dot{\eta}_i$, where

$$F := \begin{pmatrix} I_{\delta} \\ -\bar{G}_{d}^{-1}\bar{G}_{i} \end{pmatrix} \quad (62)$$

is an orthogonal complement to $\bar{G}$. The cut-joint approach and the one proposed in this paper differ in two main aspects. Firstly, the cut-joint method requires cut-joint specific constraints, e.g. a spherical joint gives rise to 3 translation constraints, and a revolute joint to 3 translation and 2 orientation constraints. The proposed method, on the other hand, does not require joint specific constraints since all joints are modeled in terms of screw coordinates. As a by-product, the proposed method yields the motion of all joints, while in the cut-joint method the motion of the cut-joint must be determined separately. Secondly, as a consequence, the number $N$ of joint variables (that must be calculated) is higher than the number $\bar{N}$ in the cut-joint method, however. Yet the latter, is computationally more expensive since the orthogonal complement (62) involves inverting the $\bar{m} \times \bar{m}$ matrix $\bar{G}_d$. In contrast, the task space formulation in sec. 5.5 involves inverting the $r_l \times r_l$ task space Jacobians in order solve the $L$ systems (24) or (31). The formulation in actuator coordinates in sec. 5.6 requires additional inversion of the $\delta \times \delta$ IK Jacobian, to solve (35). Moreover, the loop constraints are resolved using the task space velocities as intermediate variables. Finally, a shortcoming of the cut-joint formulation is that it may suffer from artificial singularities that are caused by the removal of the cut-joint, but have no physical justification.

**Example 1 (cont.).** The 3PRRR PKM possesses $\gamma = 2$ FC (fig. 3). For each FC, one revolute joint is used as cut-joint. This yields a tree-system with $\bar{N} = 10$ (revolute) 1-DOF joints (fig. 8). The 5 cut-joint constraints for each revolute joint amount to a system of $2 \times 5 = 10$ constraints. Only $\bar{m} = 7$ of them are independent (the PKM is 'exceptionally' overconstrained), and $\bar{G}$ can be reduced to a full rank $7 \times 7$ submatrix. Thus the $7 \times 7$ matrix $\bar{G}_d$ must be inverted in (62). The proposed task space formulation, on the other hand, involves inversion of the $L = 3$ task space Jacobians of size $4 \times 4$, and the formulation in actuator coordinates requires additional inversion of the $3 \times 3$ IK Jacobian. Moreover, the proposed formulation does not suffer from the constraint redundancy since being 'exceptionally' overconstrained is translated into being non-equimobile, which the method accounts for. The latter applies to any such overconstrained PKM.

**Example 2 (cont.).** The 6UPS PKM possesses $\gamma = 5$ FC. The smallest number of constraints are obtained when the
<figure><img src="image_9.png" /><figcaption>Fig. 8. a) Tree-topology linkage obtained from the 3PRRR PKM by removing one revolute joint (connecting the platform) in each of the FC.
b) Corresponding topological graph.</figcaption></figure>

spherical joints in each FC are used as cut-joints. Each de-
livers 3 constraints, amounting to $\bar{m} = 5 \cdot 3 = 15$ independent
velocity constraints, and the orthogonal complement (62) re-
quires inversion of a $15 \times 15$ matrix $\bar{G}_d$. The proposed task
space formulation involves inversion of $L = 6$ task space Ja-
cobians of size $6 \times 6$, and that in actuator coordinates an ad-
ditional inversion of the $6 \times 6$ IK Jacobian. Inversion of the
task space Jacobian can be pursued efficiently by inversion
of submatrices [64] exploiting the fact that the limbs com-
prise spherical sub-chains (similar to wrist-partitioned serial
manipulators), which applies to various PKM.

It should be clear from these examples that the Lie group
modeling is also applicable to the cut-joint modeling ap-
proach, which allows modeling non-simple and non-fully
parallel PKM. The EOM of the tree-topology MBS (e.g. in
Fig. 8b)) are determined as in (18). The constraint Jacobian
$\bar{G}$ is then determined by the geometric Jacobian of the indi-
vidual tree-branches involved in the respective loop, similar
to (15). Details on the Lie group modeling of general MBS
with kinematic loops can be found in [82–84].

# 6 Equations of Motion for Kinematically Redundant Simple PKM

The DOF of a kinematically redundant PKM is higher
than the DOF of its platform, $\delta > \delta_p$. The platform motion
does hence not determine the motion of the mechanism, and
the limbs can move even if the platform is locked.

Several examples of kinematically redundant topologi-
cally simple PKM were reported in the literature. A planar
6 DOF 3PRRR PKM was presented in [95]. The kinematic
redundancy of a planar 6 DOF 3RPRR PKM was exploited
in [96, 97] for singularity avoidance. For this planar PKM
also an inverse kinematics method was proposed aiming at
an optimal force distribution [98] as well as a feed-forward

control scheme in [99]. Possible accuracy improvements us-
ing redundant actuators were studied and the optimal posi-
tioning of redundant actuators are addressed in [100, 101].
Further to improve the dynamic performance, the optimal
actuator placement was addressed in [102, 103]. A planar
3 DOF 3RRR PKM, which is redundant if the platform po-
sition is controlled only, was studied in [104, 105] and the
singularity free working modes were analyzed. A spatial 12
DOF PKM was reported in [106], which is constructed from
a 6SPS Gough-Stewart platform where each leg is mounted
on a motion-controlled circular slider at the ground. Its
kinematic redundancy is employed for modulating the end-
effector stiffness.

Also several kinematically redundant non-simple PKM
were proposed. A class of planar and spatial PKM was an-
alyzed in [107] that are equipped with a reconfigurable plat-
form. The ability to perform reconfiguration motions makes
such PKM kinematically redundant. As example a 6+2 DOF
PKM with reconfigurable platform is analyzed. A kine-
matically redundant spatial 6+3 PKM is reported in [108],
which is constructed from a 6UPS Gough-Stewart platform
by mounting the anchor points of a pair of two struts on
controlled linear slider joints. The three prismatic joints de-
liver the three redundant DOFs. This follows an idea from
[109, 110]. A redundant planar 4 DOF PKM was proposed
in [111], whose platform can perform unlimited rotations.
Following the same design principle a spatial 6+3 PKM was
proposed in [112]. A recent summary on kinematics and mo-
tion planning of such kinematically redundant planar PKM
can be found in [113].

The field of kinematically redundant PKM is relatively
new and research in this area is ongoing. It is not appar-
ent at the moment which architectures and topologies are
best suited in general and for certain classes of applications
in particular. Also there is no established systematic ap-
proach to dynamics modeling and control of kinematically
$$ \mathbf{F} = \begin{pmatrix} \mathbf{P}_{\text{nr}(1)}\mathbf{J}_{t(1),\text{nr}}^{-1}\mathbf{D}_{t(1)}\mathbf{P}_{\text{r}(1)} - \mathbf{P}_{\text{nr}(1)}\mathbf{J}_{t(1),\text{nr}}^{-1}\mathbf{J}_{t(1),\text{r}} & \mathbf{0} & \cdots & \mathbf{0} \\ \mathbf{P}_{\text{nr}(2)}\mathbf{J}_{t(2),\text{nr}}^{-1}\mathbf{D}_{t(2)} & \mathbf{0} & \cdots & \mathbf{0} \\ \vdots & \vdots & \ddots & \vdots \\ \mathbf{P}_{\text{nr}(L)}\mathbf{J}_{t(L),\text{nr}}^{-1}\mathbf{D}_{t(L)} & \mathbf{0} & \cdots & \mathbf{P}_{\text{r}(L)} - \mathbf{P}_{\text{nr}(L)}\mathbf{J}_{t(L),\text{nr}}^{-1}\mathbf{J}_{t(L),\text{r}} \end{pmatrix} = \begin{pmatrix} \mathbf{F}_{(1)} \\ \mathbf{F}_{(2)} \\ \vdots \\ \mathbf{F}_{(L)} \end{pmatrix}. \qquad (68) $$

redundant PKM. This section addresses topologically simple PKM. The kinematic and dynamic model, presented in this section, is in large parts identical to the non-redundant case. All formulations for the kinematics of the tree-system without platform (sec. 4.1) and of the limb including the platform (sec. 4.2) remain valid. The only difference is that the relation of task space velocities and joint velocities is not unique, which is reflected in the EOM.

## 6.1 Joint Velocities in terms of Generalized Velocity

The task space velocity alone cannot serve as generalized velocity of a kinematically redundant PKM since $\delta > \delta_p$. A kinematically redundant limb $l$ comprises $N_l > r_l$ 1-DOF joints. Therefore, in addition to the platform motion, the motion of $N_l - r_l$ joints must be prescribed. A set of $N_l - r_l$ joint variables of leg $l$ are selected, which are regarded as 'redundant' and are summarized in the vector $\vartheta_{r(l)}$. The remaining $r_l$ joint variables are regarded as 'non-redundant' and collected in the vector $\vartheta_{nr(l)}$. In the following, it is assumed that no joint variables of the joint connecting the platform to limb $l$ are selected as 'redundant' joint variables, i.e. all variables in $\vartheta_{r(l)}$ are included in $\vartheta_{l}$. Only joint variables of actuated joints are used as 'redundant' variables.

In order to extract 'redundant' and 'non-redundant' joint coordinates, unimodular matrices $\mathbf{P}_{nr(l)} \in \mathbb{R}^{N_l, r_l}$ and $\mathbf{P}_{r(l)} \in \mathbb{R}^{N_l, N_l - r_l}$ are introduced so that $\vartheta_{(l)} = \mathbf{P}_{nr(l)}\vartheta_{nr(l)} + \mathbf{P}_{r(l)}\vartheta_{r(l)}$, where $\mathbf{P}_{nr(l)}^T \mathbf{P}_{r(l)} = \mathbf{0}_{r_l, N_l - r_l}$. Then (31) splits as

$$ \mathbf{D}_{t(l)}\mathbf{V}_t = \mathbf{J}_{t(l),\text{nr}}\dot{\vartheta}_{\text{nr}(l)} + \mathbf{J}_{t(l),\text{r}}\dot{\vartheta}_{r(l)} \qquad (63) $$

with $\mathbf{J}_{t(l),\text{nr}} := \mathbf{J}_{t(l)}\mathbf{P}_{nr(l)}$ and $\mathbf{J}_{t(l),\text{r}} := \mathbf{J}_{t(l)}\mathbf{P}_{r(l)}$. The splitting (63) gives rise to the particular solution

$$ \dot{\vartheta}_{(l)} = \mathbf{P}_{\text{nr}(l)}\mathbf{J}_{t(l),\text{nr}}^{-1}\mathbf{D}_{t(l)}\mathbf{V}_t + (\mathbf{P}_{\text{r}(l)} - \mathbf{P}_{\text{nr}(l)}\mathbf{J}_{t(l),\text{nr}}^{-1}\mathbf{J}_{t(l),\text{r}})\dot{\vartheta}_{r(l)}. \qquad (64) $$

Equimobile PKM are included with $\mathbf{D}_{t(l)} = \mathbf{I}_{\delta_p}$.

**Example 3.** The planar 6 DOF 3RPRR PKM in Fig. 9, which was analyzed in [95], is constructed from a planar 3 DOF 3RRR PKM by introducing a controllable length of the first link in each limb. Selecting the displacement coordinates of the three prismatic joints (actuators 4,5,6) as the 'redundant' variable, the selection matrices are

$$ \mathbf{P}_{\text{r}(l)} = \begin{pmatrix} 0 \\ 1 \\ 0 \\ 0 \end{pmatrix}, \quad \mathbf{P}_{\text{nr}(l)} = \begin{pmatrix} 1 & 0 & 0 \\ 0 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{pmatrix}. \qquad (65) $$

The total number of 'redundant' joint variables of the PKM is $(n_1 - r_1) + (n_2 - r_2) \cdots (n_L - r_L) = n - r_1 - r_2 - \cdots - r_L$. The DOF of the PKM is thus $\delta = \delta_p + n - r_1 - r_2 \cdots - r_L$. The velocities of all joints are determined by the task space velocity together with the velocity of the 'redundant' joints, which constitute the vector of generalized velocities $\mathbf{s} \in \mathbb{R}^\delta$ of the kinematically redundant simple PKM, denoted with

$$ \mathbf{s} := \begin{pmatrix} \mathbf{V}_t \\ \dot{\vartheta}_{\text{r}(1)} \\ \vdots \\ \dot{\vartheta}_{\text{r}(L)} \end{pmatrix} = \begin{pmatrix} \mathbf{V}_t \\ \dot{\vartheta}_{\text{r}} \end{pmatrix}. \qquad (66) $$

Combining the solutions (64) for all limbs, yields

$$ \dot{\vartheta} = \mathbf{F}\mathbf{s} \qquad (67) $$

with $\mathbf{F}$ in (68). With the assumption that all 'redundant' joint variables are contained in $\dot{\vartheta}_{(l)}$, the vector $\dot{\vartheta}$ of joint velocities of the tree-system without platform (sec. 4.1) is determined by

$$ \dot{\vartheta} = \bar{\mathbf{F}}\mathbf{s} \qquad (69) $$

where $\bar{\mathbf{F}}_{(l)}$ in (30) is the $n_l \times \delta$ matrix obtained by eliminating the last $\delta_l$ rows of $\bar{\mathbf{F}}_{(l)}$ in (68). This can be separated

<figure><img src="image_10.png" /><figcaption>Fig. 9. The planar 6 DOF 3RPRR PKM from [95].</figcaption></figure>
according to the task space velocity of the platform and the velocity of the 'redundant' joints in (66) as

$$ \bar{\mathbf{F}} = \begin{pmatrix} \bar{\mathbf{F}}_{(1),t} & \bar{\mathbf{F}}_{(1),r} & \mathbf{0} & \cdots & \mathbf{0} \\ \bar{\mathbf{F}}_{(2),t} & \mathbf{0} & \bar{\mathbf{F}}_{(2),r} & \cdots & \mathbf{0} \\ \vdots & \vdots & \vdots & \ddots & \vdots \\ \bar{\mathbf{F}}_{(L),t} & \mathbf{0} & \mathbf{0} & \cdots & \bar{\mathbf{F}}_{(L),r} \end{pmatrix} \quad (70) $$

with $\bar{\mathbf{F}}_{(l),t} := \bar{\mathbf{P}}_{(l)} \mathbf{P}_{nr(l)} \mathbf{J}_{t(l),nr}^{-1} \mathbf{D}_{t(l)}$ and $\bar{\mathbf{F}}_{(l),r} := \bar{\mathbf{P}}_{(l)} (\mathbf{P}_{r(l)} - \mathbf{P}_{nr(l)} \mathbf{J}_{t(l),nr}^{-1} \mathbf{J}_{t(l),r})$. The subscripts t and r refer to the taskspace and to the 'redundant' joints, respectively.

## 6.2 Inverse Kinematics of the Manipulator

The relation (69) determines the velocity of all actuated joints in terms of the velocity of platform and the 'redundant' actuated joints. It provides a particular solution for the (non-unique) velocity inverse kinematics problem of the form

$$ \dot{\mathbf{\vartheta}}_{\text{act}} = \mathbf{J}_{\text{IK}} \mathbf{V}_{\text{t}} + \mathbf{B} \dot{\mathbf{\vartheta}}_{\text{r}} \quad (71) $$

where, with (70),

$$ \mathbf{J}_{\text{IK}} := \mathbf{P}_{\text{act}} \begin{pmatrix} \bar{\mathbf{F}}_{(1),t} \\ \bar{\mathbf{F}}_{(2),t} \\ \vdots \\ \bar{\mathbf{F}}_{(L),t} \end{pmatrix}, \quad \mathbf{B} := \mathbf{P}_{\text{act}} \begin{pmatrix} \bar{\mathbf{F}}_{(1),r} & \mathbf{0} & \cdots & \mathbf{0} \\ \mathbf{0} & \bar{\mathbf{F}}_{(2),r} & \cdots & \mathbf{0} \\ \vdots & \vdots & \ddots & \vdots \\ \mathbf{0} & \mathbf{0} & \cdots & \bar{\mathbf{F}}_{(L),r} \end{pmatrix} \quad (72) $$

The $N_{\text{act}} \times \delta_{\text{p}}$ IK Jacobian $\mathbf{J}_{\text{IK}}$ determines the actuator velocities due to the platform velocity $\mathbf{V}_{\text{t}}$, whereas the $N_{\text{act}} \times (\delta - \delta_{\text{p}})$ matrix $\mathbf{B}$ determines the contribution due to the velocities $\dot{\mathbf{\vartheta}}_{\text{r}}$ of 'redundant' joints. The velocities of the $\delta - \delta_{\text{p}}$ 'redundant' joints are used to explicitly parameterize the null-space (self-motion). This resembles the concept of joint space partitioning originally introduced for redundant serial manipulators in [114], which was later used for optimal path planning [115, 116]. For fully-actuated PKM, $\delta - \delta_{\text{p}}$ of the $N_{\text{act}} \ge \delta$ actuator coordinates are used as 'redundant' coordinates, which simplifies matrix $\mathbf{B}$. This choice of 'redundant' coordinates also ensures that no artificial (parameterization) singularities are introduced, so that the matrix $\mathbf{B}$ becomes singular only at input singularities, i.e. when the number of instantaneous actuator motion becomes larger than $\delta - \delta_{\text{p}}$.

## 6.3 Task Space Formulation of the Equations of Motion involving Velocities of Redundant Joints

The task space velocity together with the velocities of the 'redundant' joints, $\mathbf{s}$, will be used as generalized velocity in order to formulate the EOM. The velocity of the platform and of the joints of the tree-system are determined by the generalized velocity as

$$ \begin{pmatrix} \mathbf{V}_{\text{p}} \\ \dot{\mathbf{\vartheta}} \end{pmatrix} = \begin{pmatrix} \mathbf{P}_{\text{p}} & \mathbf{0}_{6,(\delta-\delta_{\text{p}})} \\ & \bar{\mathbf{F}} \end{pmatrix} \mathbf{s}. \quad (73) $$

Starting from the EOM of the platform (sec. 5.1) and the tree-system (sec. 5.2), the principle of virtual power yields the task space formulation of the EOM, where the kinematic redundancy is resolved explicitly using the coordinates of the 'redundant' joints,

$$ \mathbf{M}\dot{\mathbf{s}} + \mathbf{C}\mathbf{s} = \mathbf{Q} + \mathbf{Q}^{\text{grav}} + \mathbf{Q}^{\text{act}} \quad (74) $$

with generalized mass and Coriolis matrix

$$ \mathbf{M}(\mathbf{\vartheta}) = \begin{pmatrix} \mathbf{M}_{\text{tt}} & \mathbf{M}_{\text{tr}(1)} & \mathbf{M}_{\text{tr}(2)} & \cdots & \mathbf{M}_{\text{tr}(L)} \\ \mathbf{M}_{\text{tr}(1)}^{T} & \mathbf{M}_{(1)} & \mathbf{0} & \cdots & \mathbf{0} \\ \mathbf{M}_{\text{tr}(2)}^{T} & \mathbf{0} & \mathbf{M}_{(2)} & \cdots & \mathbf{0} \\ \vdots & \vdots & \vdots & \ddots & \vdots \\ \mathbf{M}_{\text{tr}(L)}^{T} & \mathbf{0} & \mathbf{0} & \cdots & \mathbf{M}_{(L)} \end{pmatrix} \quad (75) $$

$$ \mathbf{C}(\mathbf{\vartheta}, \dot{\mathbf{\vartheta}}) = \begin{pmatrix} \mathbf{C}_{\text{tt}} & \mathbf{C}_{\text{tr}(1)} & \mathbf{C}_{\text{tr}(2)} & \cdots & \mathbf{C}_{\text{tr}(L)} \\ \mathbf{C}_{\text{rt}(1)} & \mathbf{C}_{(1)} & \mathbf{0} & \cdots & \mathbf{0} \\ \mathbf{C}_{\text{rt}(2)} & \mathbf{0} & \mathbf{C}_{(2)} & \cdots & \mathbf{0} \\ \vdots & \vdots & \vdots & \ddots & \vdots \\ \mathbf{C}_{\text{rt}(L)} & \mathbf{0} & \mathbf{0} & \cdots & \mathbf{C}_{(L)} \end{pmatrix} \quad (76) $$

where the block elements are determined as

$$ \mathbf{M}_{\text{tt}} := \sum_{l=1}^{L} \bar{\mathbf{F}}_{(l),t}^{T} \bar{\mathbf{M}}_{(l)} \bar{\mathbf{F}}_{(l),t} + \mathbf{P}_{\text{p}}^{T} \mathbf{M}_{\text{p}} \mathbf{P}_{\text{p}}, $$

$$ \mathbf{M}_{(l)} := \bar{\mathbf{F}}_{(l),r}^{T} \bar{\mathbf{M}}_{(l)} \bar{\mathbf{F}}_{(l),r}, \quad \mathbf{M}_{\text{tr}(l)} := \bar{\mathbf{F}}_{(l),t}^{T} \bar{\mathbf{M}}_{(l)} \bar{\mathbf{F}}_{(l),t}, $$

$$ \mathbf{C}_{\text{tt}} := \sum_{l=1}^{L} \bar{\mathbf{F}}_{(l),t}^{T} (\bar{\mathbf{M}}_{(l)} \dot{\bar{\mathbf{F}}}_{(l),t} + \bar{\mathbf{C}}_{(l)} \bar{\mathbf{F}}_{(l),t}) - \mathbf{P}_{\text{p}}^{T} \mathbf{a} \mathbf{d}_{\text{p}}^{T} \bar{\mathbf{V}} \mathbf{M}_{\text{p}} \mathbf{P}_{\text{p}} $$

$$ \mathbf{C}_{(l)} := \bar{\mathbf{F}}_{(l),r}^{T} (\bar{\mathbf{M}}_{(l)} \dot{\bar{\mathbf{F}}}_{(l),r} + \bar{\mathbf{C}}_{(l)} \bar{\mathbf{F}}_{(l),r}), $$

$$ \mathbf{C}_{\text{tr}(l)} := \bar{\mathbf{F}}_{(l),t}^{T} (\bar{\mathbf{M}}_{(l)} \dot{\bar{\mathbf{F}}}_{(l),t} + \bar{\mathbf{C}}_{(l)} \bar{\mathbf{F}}_{(l),t}) $$

$$ \mathbf{C}_{\text{rt}(l)} := \bar{\mathbf{F}}_{(l),r}^{T} (\bar{\mathbf{M}}_{(l)} \dot{\bar{\mathbf{F}}}_{(l),t} + \bar{\mathbf{C}}_{(l)} \bar{\mathbf{F}}_{(l),t}) \quad (77) $$

with $\bar{\mathbf{M}}_{(l)}$ and $\bar{\mathbf{C}}_{(l)}$ being the mass and Coriolis matrix in the EOM (18) of limb $l$. The generalized forces are given as

$$ \mathbf{Q}^{\text{grav}}(\mathbf{\vartheta}) := \begin{pmatrix} \sum_{l=1}^{L} \bar{\mathbf{F}}_{(l),t}^{T} \bar{\mathbf{Q}}_{(l)}^{\text{grav}} + \mathbf{P}_{\text{p}}^{T} \mathbf{W}_{\text{p}}^{\text{grav}} \\ \bar{\mathbf{F}}_{(1),r}^{T} \bar{\mathbf{Q}}_{(1)}^{\text{grav}} \\ \vdots \\ \bar{\mathbf{F}}_{(L),r}^{T} \bar{\mathbf{Q}}_{(L)}^{\text{grav}} \end{pmatrix} \quad (78) $$

$$ \mathbf{Q}_{\text{p}}(\dot{\mathbf{\vartheta}}, t) := \begin{pmatrix} \sum_{l=1}^{L} \bar{\mathbf{F}}_{(l),t}^{T} \bar{\mathbf{Q}}_{(l)} + \mathbf{P}_{\text{p}}^{T} \mathbf{W}_{\text{p}} \\ \bar{\mathbf{F}}_{(1),r}^{T} \bar{\mathbf{Q}}_{(1)} \\ \vdots \\ \bar{\mathbf{F}}_{(L),r}^{T} \bar{\mathbf{Q}}_{(L)} \end{pmatrix} \quad (79) $$
$$ \mathbf{Q}^{\text{act}}(\boldsymbol{\vartheta}, t) := \begin{pmatrix} \sum_{l=1}^{L} \bar{\mathbf{F}}_{(l),t}^{\text{T}} \bar{\mathbf{Q}}_{(l)}^{\text{act}} \\ \bar{\mathbf{F}}_{(1),r}^{\text{T}} \bar{\mathbf{Q}}_{(1)}^{\text{act}} \\ \vdots \\ \bar{\mathbf{F}}_{(L),r}^{\text{T}} \bar{\mathbf{Q}}_{(L)}^{\text{act}} \end{pmatrix} = (\mathbf{J}_{\text{IK}} \mathbf{B})^{\text{T}} \mathbf{u} \quad (80) $$

with matrix **B** in (72), and **u** consists again of the actuator forces, i.e. the non-zero entries in $\bar{\mathbf{Q}}_{(l)}^{\text{act}}$, $l = 1, \dots, L$.

## 6.4 Equations of Motion for full-actuated PKM in terms of Actuator Coordinates

The transformation of the task space formulation (74) proceeds analogously to the case of kinematically non-redundant PKM, but now with the relation **s** = $(\mathbf{J}_{\text{IK}} \mathbf{B})^{-1} \boldsymbol{\vartheta}_{\text{act}}$. Introducing this transformation yields the EOM of the form (54) for non-redundantly fully-actuated PKM. Their explicit expression are straightforward and not shown here. The case of redundantly actuated kinematically redundant PKM is also omitted since this seems not to have practical applications.

The presented formulation applies to simple PKM. The EOM in terms of actuator coordinates of general redundant PKM that are not simple can be modeled using the cut-joint formulation discussed in section 5.7.

## 7 Efficient Modeling of Simple PKM with Structurally Identical Limbs

Most simple PKM comprise structurally identical limbs, i.e. limbs with the same number, types and arrangement of joints. It is thus desirable to derive a model for the prototype of such a limb and then reuse it for all limbs. This is facilitated by the frame invariance of Lie group formulations. The kinematic, and thus dynamic, model can be derived w.r.t. to an arbitrary frame (the construction frame) and then transformed to the actual reference frame of the limb (according to the location of the limb). Such a modeling approach is presented next.

### 7.1 Modular Modeling Approach

The fact that the limbs of most PKM are have identical kinematic structure admits constructing the PKM model by combining model instances of a representative limb. The topological graph of such simple PKM can be regarded as the union of $L = \gamma + 1$ congruent branches, each representing a limb of the PKM, as already shown in Fig. 3b). Assuming $L$ structurally identical limbs, the PKM is constructed by mounting copies of a representative limb at different locations at the ground and platform, respectively. The PKM model is accordingly obtained by combining $L$ instances of the model of this limb. The kinematics of the representative limb is modeled as described in sec. 4.2 with the only difference that an arbitrarily located construction frame, denoted with $\mathcal{F}'_0$, and an arbitrary reference frame at the platform, denoted with $\mathcal{F}'_p$, are used. This is shown in Fig. 10a) for the representative limb of the 3PRRR PKM.

For limb $l$ a mount frame is defined at the ground and the platform, denoted with $\mathcal{F}_{0(l)}$ and $\mathcal{F}_{p(l)}$, respectively. The overall system is assembled by identifying the mount frame $\mathcal{F}_{0(l)}$ with the construction frame $\mathcal{F}'_0$, and the mount frame $\mathcal{F}_{p(l)}$ with the platform reference frame $\mathcal{F}'_p$ of the $l$th copy of the representative limb. Fig. 10b) shows the mount frames for the 3PRRR PKM according to the construction and platform frame used in Fig. 10a) so that mounting $L$ copies of the representative limb yields the PKM in Fig. 1.

### 7.2 Kinematics of individual Limbs

The kinematics modeling of the representative limb is directly adopted from section 4.2. Denote with $\boldsymbol{\vartheta}'$ the vector of joint variables of the representative limb with platform attached. The pose of the platform (i.e. of $\mathcal{F}'_p$) relative to the construction frame $\mathcal{F}'_0$ is determined as $\mathbf{C}'_p = f'_p(\boldsymbol{\vartheta}')$ by the forward kinematics mapping

$$ f'_{p}(\boldsymbol{\vartheta}') = \exp(\boldsymbol{\vartheta}'_{1} \mathbf{Y}'_{1}) \exp(\boldsymbol{\vartheta}'_{2} \mathbf{Y}'_{2}) \cdots \exp(\boldsymbol{\vartheta}'_{N_{l}} \mathbf{Y}'_{N_{l}}) \mathbf{A}'_{p} \quad (81) $$

where $\mathbf{Y}'_i$ are the screw coordinates deduced from the construction frame $\mathcal{F}'_0$, and $\mathbf{A}'_p$ is the platform reference configuration at $\boldsymbol{\vartheta}' = \mathbf{0}$ (the notation $N_l$ is kept for simplicity).

Limb $l$ is realized by fixing an instance of the representative limb to the ground and platform at the respective mount frames. Denote with $\mathbf{S}_{0(l)} \in SE(3)$ the configuration of the mount frame $\mathcal{F}_{0(l)}$ relative to the IFR $\mathcal{F}_0$, and with $\mathbf{S}_{p(l)} \in SE(3)$ the configuration of mount frame $\mathcal{F}_{p(l)}$ relative to the platform frame $\mathcal{F}_p$. The forward kinematics mapping of limb $l$ is then

$$ f_{p(l)}(\boldsymbol{\vartheta}_{(l)}) = \mathbf{S}_{0(l)} f'_{p}(\boldsymbol{\vartheta}_{(l)}) \mathbf{S}_{p(l)}^{-1} \quad (82) $$

Denote with $\bar{\boldsymbol{\vartheta}}'$ the vector of joint variables of the representative limb without the platform attached. The configuration of body $i$ of the representative limb relative to the construction frame $\mathcal{F}'_0$ is determined as $\mathbf{C}'_{i(l)} = f'_{i}(\bar{\boldsymbol{\vartheta}}')$ with

$$ f'_{i}(\bar{\boldsymbol{\vartheta}}') = \exp(\boldsymbol{\vartheta}'_{1} \mathbf{Y}'_{1}) \exp(\boldsymbol{\vartheta}'_{2} \mathbf{Y}'_{2}) \cdots \exp(\boldsymbol{\vartheta}'_{N_{l}} \mathbf{Y}'_{N_{l}}) \mathbf{A}'_{i} \quad (83) $$

where $\mathbf{A}'_i$ is the zero reference configuration. The configuration of body $i$ of limb $l$ relative to the IFR is $\mathbf{C}_{i(l)} = \mathbf{S}_{0(l)} \mathbf{C}'_{i(l)}$ and (5) is thus

$$ f_{i(l)}(\bar{\boldsymbol{\vartheta}}_{(l)}) = \mathbf{S}_{0(l)} f'_{i}(\bar{\boldsymbol{\vartheta}}_{(l)}). \quad (84) $$

Denote with $\mathbf{V}'_p$ the (body-fixed) platform twist of the representative limb represented in $\mathcal{F}'_p$, and with $\mathbf{J}'_p$ the forward kinematics Jacobian of the representative limb so that $\mathbf{V}'_p = \mathbf{J}'_p \boldsymbol{\vartheta}'$. Since the body-fixed twist is invariant under change of IFR, the platform twist of limb $l$ and that of the representative limb are related via $\mathbf{V}_{p(l)} = \mathbf{A} \mathbf{d}_{s_{p(l)}} \mathbf{V}'_p$. The Jacobian of limb $l$ is thus determined as

$$ \mathbf{J}_{p(l)} = \mathbf{A} \mathbf{d}_{s_{p(l)}} \mathbf{J}'_{p}. \quad (85) $$
<figure><img src="image_11.png" /><figcaption>Fig. 10. a) Representative limb for the 3PRRR PKM. The construction frame $\mathcal{F}'_0$ and $\mathcal{F}'_p$ are arbitrarily located. b) Mount frames at ground and platform according to the construction and platform frame. Instances of the representative limb are inserted between the mount frames $\mathcal{F}_{0(l)}$ and $\mathcal{F}_{p(l)}$ on the ground and the platform, respectively.</figcaption></figure>

The forward kinematics relations of limb $l$ are hence obtained by simple frame transformations. If desired, $f_{p(l)}$ can be written explicitly in terms of joint screw coordinates and reference configuration of limb $l$, in the form (5), which are given as $\mathbf{Y}_{i(l)} = \mathbf{Ad}_{\mathbf{S}_{0(l)}} \mathbf{Y}'_i$ and $\mathbf{A}_p = \mathbf{S}_{0(l)} \mathbf{A}'_p \mathbf{S}_{p(l)}^{-1}$.

With the Jacobians of all limbs determined by (85), the matrix (34) is

$$ \mathbf{F}(\boldsymbol{\vartheta}) = \begin{pmatrix} \mathbf{J}_t^{-1} \mathbf{Ad}_{\mathbf{S}_{p(1)}}^{-1} \mathbf{D}_{t(1)} \\ \mathbf{J}_t^{-1} \mathbf{Ad}_{\mathbf{S}_{p(2)}}^{-1} \mathbf{D}_{t(2)} \\ \vdots \\ \mathbf{J}_t^{-1} \mathbf{Ad}_{\mathbf{S}_{p(L)}}^{-1} \mathbf{D}_{t(L)} \end{pmatrix} \quad (86) $$

where (26) for equimobile PKM is recovered with $\mathbf{D}_{t(l)} = \mathbf{I}$. The inverse $\mathbf{Ad}_{\mathbf{S}_{p(l)}}^{-1}$ is available in closed form [11, 12].

## 7.3 Equations of Motion

The EOM (18) of limb $l$ (without platform) are determined explicitly by the relations (19), (20), and (23). Their invariance properties are crucial for an efficient modeling.

**Lemma 1.** The Jacobian $J_{(l)}$ is invariant under a change of inertial frame.

*Proof.* The invariance follows directly from the definition of body-fixed twist. Let $\mathbf{S} \in SE(3)$ be the transformation to another IFR so that the configuration of body $i$ in this IFR is $\bar{\mathbf{C}}_i := \mathbf{S}\mathbf{C}_i$. Inserted in the relation for the relative configuration of body $i$ and $j$ yields $\bar{\mathbf{C}}_{i,j} = \bar{\mathbf{C}}_i^{-1}\bar{\mathbf{C}}_j = \mathbf{C}_i^{-1}\mathbf{S}^{-1}\mathbf{S}\mathbf{C}_j = \mathbf{C}_{i,j}$. This shows invariance of the relation (4) under change of IFR.

**Theorem 2.** The generalized mass matrix $\mathbf{M}_{(l)}$, the matrix $\mathbf{C}_{(l)}$, and the generalized forces $\mathbf{Q}_{(l)}$ and $\mathbf{Q}^{\text{act}}_{(l)}$ are invariant under a change of inertial frame.

*Proof.* The kinematic relations enter the expressions of the mass and Coriolis matrices as well as the generalized forces via the body-fixed Jacobian $J_{(l)}$ of the limb. With lemma 1, the mass matrix and $\mathbf{Q}_{(l)}, \mathbf{Q}^{\text{act}}_{(l)}$ are invariant under a change of IFR. The Coriolis matrix further depends on the joint screw coordinates $\mathbf{X}_{i(l)}, i = 1, \dots, n_l$, and the twists $\mathbf{V}_{i(l)}, i = 1, \dots, n_l$ according to (22). Since the screw coordinates and twists are represented in the body-fixed frames, they do not depend on the choice of IFR.

Due to this invariance the (parameterized) EOM (18) can be used for all structurally identical limbs, except for the gravity term (23). The actual geometric or dynamic parameters of the individual limbs may differ.

The generalized gravity forces (23) depends on the choice of IFR since the body configurations change according to $\mathbf{C}_{i(l)} = \mathbf{S}_{0(l)} \mathbf{C}'_{i(l)}$. Denote the system Jacobian of the representative limb with $\mathbf{J}'$. Since $\mathbf{J}'$ is frame invariant, the generalized gravity forces are found as

$$ \mathbf{Q}^{\text{grav}}_{(l)} = \mathbf{J}'^T \begin{pmatrix} \mathbf{M}_1 \mathbf{Ad}_{\mathbf{C}'_1}^{-1} \\ \mathbf{M}_2 \mathbf{Ad}_{\mathbf{C}'_2}^{-1} \\ \vdots \\ \mathbf{M}_{n_l} \mathbf{Ad}_{\mathbf{C}'_{n_l}}^{-1} \end{pmatrix}_{(l)} \mathbf{Ad}_{\mathbf{S}_{0(l)}}^{-1} \begin{pmatrix} \mathbf{0} \\ \mathbf{0} \mathbf{g} \end{pmatrix}. \quad (87) $$

In summary, deriving the EOM of a simple PKM with structurally identical limbs involves constructing the forward kinematics and the EOM of one limb only. This representative limb can be modeled relative to an arbitrary construction frame.
## 8 Screw-Based Inverse and Forward Kinematics Jacobian for Simple PKM

The IK Jacobian is readily identified as a submatrix of $\mathbf{F}_{\vartheta}$ in (36) and (72), respectively. Rank deficiency of the IK Jacobian indicates critical situations for the transmission of actuator motions to the motion of platform and/or of the mechanism itself. The analysis of such singularities should give rise to geometric conditions for their occurrence. It is well-known that the IK Jacobian (35) of PKM can be determined using the concept of reciprocal screws, which enables a geometric characterization of singular situations resting on the classification of screw systems [117–120] as discussed in [121–124]. This was introduced in [91, 125, 126] and has become an established approach for modeling spatial PKM [127]. The method will be recalled in this section and extended to kinematically redundant PKM. In the following $n_{\text{act}(l)} \in \mathbb{N}^{N_{\text{act}(l)}}$ denotes the index set of the $N_{\text{act}}$ actuated joints in limb $l$.

### 8.1 Kinematically Non-Redundant Simple PKM

The Jacobian of limb $l$ determines the body-fixed twist of the platform according to (6). Its $N_l$ columns are the instantaneous screw coordinates (8) represented in the platform frame $\mathcal{F}_p$.

For kinematically non-redundant PKM the Jacobian $\mathbf{J}_{p(l)}$ is full rank, i.e. $r_l = N_l$. Thus, for each joint $i(l)$ there is a screw that is reciprocal to the instantaneous screws of all joints in the limb except to $\mathbf{J}_{p,i(l)}$. This reciprocal screw corresponds to a wrench that perform no work on all joints in the limb but on joint $i(l)$. It is represented in **axis coordinates** and denoted with $\mathring{\mathbf{S}}_{i(l)}$ as in (131). Then the reciprocal product becomes the scalar product, and thus $\mathring{\mathbf{S}}_{i(l)}^{T} \mathbf{J}_{p,j(l)} = 0$ if $i \neq j$. Collecting the reciprocal product of the platform twist (6) for all limbs yields

$$ \mathbf{A}\mathbf{P}_{\mathbf{p}}\mathbf{V}_{\mathbf{t}} = \mathbf{B}\mathring{\vartheta}_{\text{act}} \quad (88) $$

with $\vartheta_{\text{act}} = (\vartheta_{\text{act}(1)}, \dots, \vartheta_{\text{act}(L)})$ and

$$ \begin{aligned} \mathbf{A} := & \begin{pmatrix} \mathring{\mathbf{S}}_{i(1)}^{T} \\ \vdots \\ \mathring{\mathbf{S}}_{i(L)}^{T} \end{pmatrix}_{i \in \mathbf{n}_{\text{act}(1)}} \\ \mathbf{B} := & \begin{pmatrix} \operatorname{diag}(\mathring{\mathbf{S}}_{i(1)}^{T} \mathbf{J}_{p,i(1)}) & \mathbf{0} \\ \vdots & \\ \mathbf{0} & \operatorname{diag}(\mathring{\mathbf{S}}_{i(L)}^{T} \mathbf{J}_{p,i(L)}) \end{pmatrix}_{i \in \mathbf{n}_{\text{act}(L)}} \end{aligned} $$

Here, $(\mathring{\mathbf{S}}_{i(l)}^{T})_{i \in \mathbf{n}_{\text{act}(l)}}$ means vertical stacking of the row vectors $\mathring{\mathbf{S}}_{i(l)}^{T}$. The diagonal $N_{\text{act}} \times N_{\text{act}}$ matrix $\mathbf{B}$ is readily inverted to

get the $N_{\text{act}} \times \delta$ IK Jacobian of the manipulator

$$ \mathbf{J}_{\text{IK}} := \mathbf{B}^{-1} \mathbf{A} \mathbf{P}_{\mathbf{p}} = \begin{pmatrix} \mathring{\mathbf{S}}_{i(1)}^{T} \mathbf{P}_{\mathbf{p}} / \mathring{\mathbf{S}}_{i(1)}^{T} \mathbf{J}_{p,i(1)} \\ \vdots \\ \mathring{\mathbf{S}}_{i(L)}^{T} \mathbf{P}_{\mathbf{p}} / \mathring{\mathbf{S}}_{i(L)}^{T} \mathbf{J}_{p,i(L)} \end{pmatrix}_{i \in \mathbf{n}_{\text{act}(L)}} \quad (91) $$

so that $\mathring{\vartheta}_{\text{act}} = \mathbf{J}_{\text{IK}}\mathbf{V}_{\mathbf{t}}$. The forward kinematics Jacobian of the manipulator is readily found as $\mathbf{J}_{\text{FK}} := (\mathbf{A}\mathbf{P}_{\mathbf{p}})^{-1}\mathbf{B}$, so that $\mathbf{V}_{\mathbf{t}} = \mathbf{J}_{\text{FK}}\mathring{\vartheta}_{\text{act}}$. For non-redundantly actuated kinematically non-redundant PKM it is $N_{\text{act}} = \delta_{\mathbf{p}} = \delta$, whereas for redundantly actuated PKM it is $N_{\text{act}} > \delta_{\mathbf{p}}$.

The instantaneous screw coordinates $\mathbf{S}_{i(l)}(\vartheta)$ depend on the PKM configuration $\vartheta$. If $\mathring{\mathbf{Y}}_{i(l)}^{T}$ are the **axis coordinates** of a screw reciprocal to the screws of all joints but joint $i$ of limb $l$, in the reference configuration $\vartheta = \mathbf{0}$, then the instantaneous **axis coordinates** at $\vartheta$ are determined as $\mathring{\mathbf{S}}_{i(l)}(\vartheta) = \mathbf{A}\mathbf{d}_{\mathbf{A},i}^{T} \mathbf{C}_{i(l),p}(\vartheta) \mathring{\mathbf{Y}}_{i(l)}^{T}$. Moreover, $\mathring{\mathbf{Y}}_{i}^{T}$ can be determined for a representative limb from which those for the other limbs are computed as in sec. 7.2.

**Example 1 (cont.).** The first (prismatic) joint in each limb of the 3-DOF 3PRRR PKM is actuated, thus $n_{\text{act}(l)} = \{1\}, l = 1, 2, 3$. The first column of the Jacobian of limb $l$ is $\mathbf{J}_{p,1(l)} = (\mathbf{0}, \mathbf{p}\mathbf{e}_{1(l)})^{T}$, where $\mathbf{p}\mathbf{e}_{1(l)}$ is a unit vector along the joint axis resolved in the platform frame. The **axis coordinates** of a screw reciprocal to all other 3 revolute joints in limb $l$ but not to the prismatic joint, is $\mathring{\mathbf{S}}_{1(l)} = (\mathbf{p}\mathbf{p}_{1(l)} \times \mathbf{p}\mathbf{e}_{1(l)}, \mathbf{p}\mathbf{e}_{1(l)})^{T}$. This corresponds to a pure force along the prismatic joint axis. With the selection matrix $\mathbf{P}_{\mathbf{p}}$ in (12) the $3 \times 3$ IK-Jacobian is

$$ \begin{aligned} \mathbf{J}_{\text{IK}} = & \begin{pmatrix} \mathring{\mathbf{S}}_{1(1)}^{T} / \mathring{\mathbf{S}}_{1(1)}^{T} \mathbf{P}_{\mathbf{p}} \mathbf{J}_{p,1(1)} \\ \mathring{\mathbf{S}}_{1(2)}^{T} / \mathring{\mathbf{S}}_{1(2)}^{T} \mathbf{P}_{\mathbf{p}} \mathbf{J}_{p,1(2)} \\ \mathring{\mathbf{S}}_{1(3)}^{T} / \mathring{\mathbf{S}}_{1(3)}^{T} \mathbf{P}_{\mathbf{p}} \mathbf{J}_{p,1(3)} \end{pmatrix} \\ = & \begin{pmatrix} \mathbf{p}\mathbf{e}_{1(1)}^{T} / \|\mathbf{p}\mathbf{e}_{1(1)}\|^{2} \\ \mathbf{p}\mathbf{e}_{1(2)}^{T} / \|\mathbf{p}\mathbf{e}_{1(2)}\|^{2} \\ \mathbf{p}\mathbf{e}_{1(3)}^{T} / \|\mathbf{p}\mathbf{e}_{1(3)}\|^{2} \end{pmatrix} = \begin{pmatrix} \mathbf{p}\mathbf{e}_{1(1)}^{T} \\ \mathbf{p}\mathbf{e}_{1(2)}^{T} \\ \mathbf{p}\mathbf{e}_{1(3)}^{T} \end{pmatrix}. \end{aligned} \quad (92) $$

This is an obvious result: the forces acting on the platform are merely projected along the respective prismatic joint axis. (90)

**Example 2 (cont.).** The prismatic joints of the 6UPS PKM are actuated so that $n_{\text{act}(l)} = \{3\}, l = 1, \dots, 6$. The instantaneous screw coordinates of the prismatic joints of limb $l$ is $\mathbf{J}_{p,3(l)} = (\mathbf{0}, \mathbf{p}\mathbf{e}_{3(l)})^{T}$, where $\mathbf{p}\mathbf{e}_{3(l)}$ is a unit vector along the joint axis. The **axis coordinates** of a screw reciprocal to the instantaneous screws of all joints but the prismatic joint in
limb $l$ are $\mathring{\mathbf{S}}_{3(l)} = (\mathbf{p}\mathbf{p}_{1(l)} \times \mathbf{p}\mathbf{e}_{1(l)}, \mathbf{p}\mathbf{e}_{1(l)})^T$. With $\mathbf{P}_p = \mathbf{I}_6$, the $6 \times 6$ IK-Jacobian has the well-known expression [127]

$$ \mathbf{J}_{IK} = \begin{pmatrix} \mathring{\mathbf{S}}_{3(1)}^T / \mathring{\mathbf{S}}_{3(1)}^T \mathbf{J}_{p,3(1)} \\ \vdots \\ \mathring{\mathbf{S}}_{3(6)}^T / \mathring{\mathbf{S}}_{3(6)}^T \mathbf{J}_{p,3(6)} \end{pmatrix} = \begin{pmatrix} (\mathbf{p}\mathbf{p}_{3(1)} \times \mathbf{p}\mathbf{e}_{3(1)})^T & \mathbf{p}\mathbf{e}_{3(1)}^T \\ \vdots & \vdots \\ (\mathbf{p}\mathbf{p}_{3(6)} \times \mathbf{p}\mathbf{e}_{3(6)})^T & \mathbf{p}\mathbf{e}_{3(6)}^T \end{pmatrix}. \quad (93) $$

It should finally be mentioned that the formulation of the IK Jacobian using reciprocal screws is preferred in kinematical PKM modeling. Also it has not been used for deriving the EOM in section 5.4 since $\mathbf{J}_{IK}$ is already determined with (36). The advantage of (91) may seem that it does not require solving the loop constraints. However, $\mathbf{J}_{IK}$ and thus $\mathring{\mathbf{S}}_{i(l)}$ depend on $\mathring{\mathbf{\vartheta}}$, which is the admissible configuration determined by the geometric constraints (13).

## 8.2 Kinematically Redundant Simple PKM

The index set of actuated joints is split as $n_{act(l)}^{nr}$ and $n_{act(l)}^r$ according to the $N_{act}^{nr} = r_l$ 'non-redundant' and the $N_{act(l)}^r = N_{act(l)} - r_l$ 'redundant' joints, respectively. The above derivation applies with the only difference that the reciprocal screw $\mathring{\mathbf{S}}_{i(l)}$ cannot be reciprocal to $N_{act(l)}^r$ joint screws of limb $l$. It is chosen to be reciprocal to all $r_l$ non-redundant joint screws except to $\mathbf{J}_{i(l)}$ of the non-redundant actuated joint $i$.

It is assumed now that the PKM is non-redundantly actuated. Then the matrix $\mathbf{A}$ and the $N_{act}^{nr} \times N_{act} = N_{act}^{nr} \times \delta$ matrix $\mathbf{B}$ are

$$ \mathbf{A} := \begin{pmatrix} \mathbf{A}_{(1)} \\ \vdots \\ \mathbf{A}_{(L)} \end{pmatrix}, \quad \mathbf{B} := \begin{pmatrix} \mathbf{B}_{\mathrm{nr}(1)} & \mathbf{B}_{\mathrm{r}(1)} & \mathbf{0} & \mathbf{0} & \cdots & \mathbf{0} & \mathbf{0} \\ \mathbf{0} & \mathbf{0} & \mathbf{B}_{\mathrm{nr}(2)} & \mathbf{B}_{\mathrm{r}(2)} & \mathbf{0} & \mathbf{0} & \mathbf{0} \\ \mathbf{0} & \mathbf{0} & \mathbf{0} & \mathbf{0} & \cdots & \mathbf{0} & \mathbf{0} \\ \vdots & \vdots & \vdots & \vdots & \ddots & \vdots & \vdots \\ \mathbf{0} & \mathbf{0} & \mathbf{0} & \mathbf{0} & \cdots & \mathbf{B}_{\mathrm{nr}(L)} & \mathbf{B}_{\mathrm{r}(L)} \end{pmatrix} \quad (94) $$

with diagonal submatrices

$$ \mathbf{A}_{(l)} := \begin{pmatrix} \mathring{\mathbf{S}}_{i(l)}^T \end{pmatrix}_{i \in \mathbf{n}_{\mathrm{act}(l)}^{\mathrm{nr}}}, \quad \mathbf{B}_{\mathrm{nr}(l)} := \mathrm{diag} \begin{pmatrix} \mathring{\mathbf{S}}_{i(l)}^T \mathbf{J}_{\mathrm{p},i(l)} \end{pmatrix}_{i \in \mathbf{n}_{\mathrm{act}(l)}^{\mathrm{nr}}} $$

$$ \mathbf{B}_{\mathrm{r}(l)} := \begin{pmatrix} \mathring{\mathbf{S}}_{i(l)}^T \mathbf{J}_{\mathrm{p},j(l)} \end{pmatrix}_{j \in \mathbf{n}_{\mathrm{act}(l)}^r}. $$

A minimum norm solution to the velocity IK problem is

$$ \mathring{\mathbf{\vartheta}}_{\mathrm{act}} = \mathbf{J}_{\mathrm{IK}}\mathbf{V}_{\mathrm{t}} + \mathbf{N}_{\mathbf{B}}\mathring{\mathbf{\vartheta}}_{0,\mathrm{act}} \quad (95) $$

with the inverse kinematics Jacobian of the manipulator

$$ \mathbf{J}_{\mathrm{IK}} = \mathbf{B}^{+} \mathbf{A} \mathbf{P}_{\mathrm{p}}, \quad \mathbf{N}_{\mathbf{B}} = \mathbf{I} - \mathbf{B}^{+} \mathbf{B}^{T}. \quad (96) $$

The pseudoinverse of $\mathbf{B}$ attains the explicit form as shown in (97). The null-space motion, due kinematic redundancy, is given in terms of the null-space projector $\mathbf{N}_{\mathbf{B}}$ with an arbitrary $\mathring{\mathbf{\vartheta}}_{0,\mathrm{act}}$. The forward kinematics Jacobian of the manipulator is again $\mathbf{J}_{\mathrm{FK}} := (\mathbf{A}\mathbf{P}_{\mathrm{p}})^{-1}\mathbf{B}$, but now with a non-square matrix $\mathbf{B}$. A similar formulation was reported in [107] where matrices $\mathbf{A}$ and $\mathbf{B}$ possess a similar structure.

**Example 3.** The planar 6 DOF 3PRRR PKM contains $n_{act} = 6$ actuators. The first (prismatic) joint is regarded as the non-redundant actuator and the second (revolute) joint as the redundant one, i.e. $n_{act(l)}^{nr} = \{1\}$, $n_{act(l)}^r = \{2\}$, $l = 1, 2, 3$. The corresponding first and second column of the Jacobian of limb $l$ are $\mathbf{J}_{\mathrm{p},1(l)} = (\mathbf{0}, \mathbf{p}\mathbf{e}_{1(l)})^T$ and $\mathbf{J}_{\mathrm{p},2(l)} = (\mathbf{p}\mathbf{e}_{2(l)}, \mathbf{p}\mathbf{p}_{2(l)} \times \mathbf{p}\mathbf{e}_{2(l)})^T$, respectively, where $\mathbf{p}\mathbf{e}_{1(l)} = \mathbf{p}\mathbf{e}_{2(l)}$ are unit vectors perpendicular to the plane of motion. The axis coordinates of a screw, which is reciprocal to all passive joints but not to the prismatic joint is $\mathring{\mathbf{S}}_{1(l)} = (\mathbf{p}\mathbf{p}_{3(l)} \times \mathbf{p}\mathbf{p}_{4(l)}, \mathbf{p}\mathbf{d}_{34(l)})^T$, with $\mathbf{p}\mathbf{d}_{34(l)} := \mathbf{p}\mathbf{p}_{4(l)} - \mathbf{p}\mathbf{p}_{3(l)}$. For brevity denote $b_{\mathrm{nr}(l)} := \mathring{\mathbf{S}}_{1(l)}\mathbf{J}_{\mathrm{p},1(l)} = \mathbf{p}\mathbf{e}_{1(l)}^T \mathbf{p}\mathbf{d}_{34(l)}$ and $b_{\mathrm{r}(l)} := \mathring{\mathbf{S}}_{1(l)}\mathbf{J}_{\mathrm{p},2(l)} = \mathbf{p}\mathbf{e}_{2(l)}^T (\mathbf{p}\mathbf{p}_{3(l)} \times \mathbf{p}\mathbf{p}_{4(l)} + \mathbf{p}\mathbf{d}_{34(l)} \times \mathbf{p}\mathbf{p}_{2(l)})$. The $3 \times 6$ matrices $\mathbf{A}$ and $\mathbf{B}$ in (94) are therewith

$$ \mathbf{A} = \begin{pmatrix} (\mathbf{p}\mathbf{p}_{3(1)} \times \mathbf{p}\mathbf{p}_{4(1)})^T & \mathbf{p}\mathbf{d}_{34(1)}^T \\ (\mathbf{p}\mathbf{p}_{3(2)} \times \mathbf{p}\mathbf{p}_{4(2)})^T & \mathbf{p}\mathbf{d}_{34(2)}^T \\ (\mathbf{p}\mathbf{p}_{3(3)} \times \mathbf{p}\mathbf{p}_{4(3)})^T & \mathbf{p}\mathbf{d}_{34(3)}^T \end{pmatrix} \quad (98) $$

$$ \mathbf{B} = \begin{pmatrix} b_{\mathrm{nr}(1)} & b_{\mathrm{r}(1)} & 0 & 0 & 0 & 0 \\ 0 & 0 & b_{\mathrm{nr}(2)} & b_{\mathrm{r}(2)} & 0 & 0 \\ 0 & 0 & 0 & 0 & b_{\mathrm{nr}(3)} & b_{\mathrm{r}(3)} \end{pmatrix}. $$

The term $b_{\mathrm{nr}(l)}$ (corresponding to the 'redundant' actuator) does not vanish since rank $\mathbf{J}_{\mathrm{p}(l)} = 3$ and $N_l = 4$, thus $\mathring{\mathbf{S}}_{1(l)}$ cannot be reciprocal to the second actuated joint. The $6 \times 3$ IK Jacobian is then determined as $\mathbf{J}_{\mathrm{IK}} = \mathbf{B}^{+} \mathbf{A} \mathbf{P}_{\mathrm{p}}$ with $\mathbf{P}_{\mathrm{p}} = \begin{pmatrix} 0 & 0 & 1 & 0 & 0 & 0 \\ 0 & 0 & 1 & 0 & 0 & 0 \\ 0 & 0 & 0 & 1 & 0 & 0 \end{pmatrix}^T$ that assigns the components $v_1, v_2, \omega_3$ of $\mathbf{V}_t$ to the platform twist $\mathbf{V}_p$ according to the planar motion of the platform. Since $n_{act}^{nr} = n_{act}^r = 1$, the pseudoinverse (97) attains the simple form

$$ \mathbf{B}^{+} = \mathbf{B}^{T} \mathrm{diag} \left( \frac{1}{b_{\mathrm{r}(1)}^{2} + b_{\mathrm{nr}(1)}^{2}}, \frac{1}{b_{\mathrm{r}(2)}^{2} + b_{\mathrm{nr}(2)}^{2}}, \frac{1}{b_{\mathrm{r}(3)}^{2} + b_{\mathrm{nr}(3)}^{2}} \right). \quad (99) $$

The expressions (98) indicate singular configurations. The therm $b_{\mathrm{r}(l)}$ vanishes when $\mathbf{p}\mathbf{p}_{3(l)} \| \mathbf{p}\mathbf{p}_{4(l)}$ and $\mathbf{p}\mathbf{d}_{34(l)} \| \mathbf{p}\mathbf{p}_{2(l)}$. This happens when the platform origin and all joints of limb $l$ are on one line, i.e. the limb is stretched out. Then the motion of the second (revolute) actuator has no effect on the platform motion. Matrix $\mathbf{B}$ is still (always) full rank. If all limbs are stretched, then $\mathbf{p}\mathbf{p}_{3(l)} \times \mathbf{p}\mathbf{p}_{4(l)} = \mathbf{0}$, $l = 1, 2, 3$, and matrix $\mathbf{A}\mathbf{P}_{\mathrm{p}}$ has rank 2 since the coefficient corresponding to
$$
\mathbf{B}^{+} = \mathbf{B}^{T} (\mathbf{B}\mathbf{B}^{T})^{-1} \qquad (97) \\
= \begin{pmatrix}
\mathbf{B}_{\mathrm{nr}(1)} (\mathbf{B}_{\mathrm{nr}(1)} \mathbf{B}_{\mathrm{nr}(1)}^{\mathrm{T}} + \mathbf{B}_{\mathrm{r}(1)} \mathbf{B}_{\mathrm{r}(1)}^{\mathrm{T}})^{-1} & \mathbf{0} & \mathbf{0} & \cdots & \mathbf{0} \\
\mathbf{B}_{\mathrm{r}(1)} (\mathbf{B}_{\mathrm{nr}(1)} \mathbf{B}_{\mathrm{nr}(1)}^{\mathrm{T}} + \mathbf{B}_{\mathrm{r}(1)} \mathbf{B}_{\mathrm{r}(1)}^{\mathrm{T}})^{-1} & \mathbf{0} & \mathbf{0} & \cdots & \mathbf{0} \\
\mathbf{0} & \mathbf{B}_{\mathrm{nr}(2)} (\mathbf{B}_{\mathrm{nr}(2)} \mathbf{B}_{\mathrm{nr}(2)}^{\mathrm{T}} + \mathbf{B}_{\mathrm{r}(2)} \mathbf{B}_{\mathrm{r}(2)}^{\mathrm{T}})^{-1} & \mathbf{0} & \cdots & \mathbf{0} \\
\mathbf{0} & \mathbf{B}_{\mathrm{r}(2)} (\mathbf{B}_{\mathrm{nr}(2)} \mathbf{B}_{\mathrm{nr}(2)}^{\mathrm{T}} + \mathbf{B}_{\mathrm{r}(2)} \mathbf{B}_{\mathrm{r}(2)}^{\mathrm{T}})^{-1} & \mathbf{0} & \cdots & \mathbf{0} \\
\vdots & \vdots & \vdots & \ddots & \vdots \\
\mathbf{0} & \mathbf{0} & \mathbf{0} & \cdots & \mathbf{B}_{\mathrm{nr}(L)} (\mathbf{B}_{\mathrm{nr}(L)} \mathbf{B}_{\mathrm{nr}(L)}^{\mathrm{T}} + \mathbf{B}_{\mathrm{r}(L)} \mathbf{B}_{\mathrm{r}(L)}^{\mathrm{T}})^{-1} \\
\mathbf{0} & \mathbf{0} & \mathbf{0} & \cdots & \mathbf{B}_{\mathrm{r}(L)} (\mathbf{B}_{\mathrm{nr}(L)} \mathbf{B}_{\mathrm{nr}(L)}^{\mathrm{T}} + \mathbf{B}_{\mathrm{r}(L)} \mathbf{B}_{\mathrm{r}(L)}^{\mathrm{T}})^{-1}
\end{pmatrix}.
$$

$\omega_3$ vanishes. Thus, the platform can perform infinitesimal rotations even for locked actuators.

## 9 Inverse Kinematics Solution for Simple PKM Mechanisms

The inverse kinematics problem of a manipulator consists in finding the actuator motions for given platform motion. The velocity IK problem can be solved once the (an) admissible PKM configuration $\vartheta \in V$ is known. Calculating such an admissible configuration requires computation of all joint variables for a given platform pose. This is referred to as the geometric inverse kinematics problem of the mechanism. In this section, a solution scheme is presented that is specific for the presented model formulation.

### 9.1 Kinematically Non-Redundant Simple PKM

Given a platform pose $C_p^d$ the geometric inverse kinematics problem is to determine all joint variables of the PKM model. This is solved by continuation at discrete time steps. The joint variables $\vartheta(t_{k-1})$ at time step $t_{k-1}$ and corresponding platform pose $C_p(\vartheta(t_{k-1}))$ are known. The desired platform pose at the next time step is $C_p^d(t_k)$. An increment $\Delta\vartheta$ is to be determined so that $C_p^d(t_k) = C_p(\vartheta(t_{k-1}) + \Delta\vartheta)$. The platform pose $C_p(\vartheta(t_{l}))$ is determined by the joints of limb $l$ with (5). Series expansion up to first-order $C_p(\vartheta(t_{l}) + \Delta\vartheta(t_{l}))$ and premultiplication with the inverse of $C_p^d(t_{k-1}) = C_p(\vartheta(t_{k-1}))$ yields

$$
\begin{align}
C_p^{-1}(\vartheta(t_k)) C_p^d(t_k) &= C_p^{-1}(\vartheta(t_{k-1})) C_p(\vartheta(t_l)(t_{k-1}) + \Delta\vartheta(t_l)) \nonumber \\
&\approx \mathbf{I} + \sum_{i=1}^{N_l} \frac{\partial C_p}{\partial \vartheta_{i(l)}} \Big|_{\vartheta_{(l)}(t_{k-1})} \Delta\vartheta_{i(l)} \tag{100} \\
&= \mathbf{I} + \mathbf{J}_p(l) \Delta\vartheta_{(l)} \nonumber
\end{align}
$$

with the hat operation (122). This can be rewritten in vector form as $(\Delta C_p - \mathbf{I})^\vee \approx \mathbf{J}_p(l) \Delta \vartheta_{(l)}$, where $\Delta C_p :=$

$C_p^{-1}(\vartheta(t_{k-1})) C_p^d(t_k)$ is the desired configuration of the platform at time $t_k$ relative to the configuration at time $t_{k-1}$. Restricting this relation to the motion space of the platform, a first-order approximation of the joint increment of limb $l$ is $\Delta\vartheta_{(l)} \approx \mathbf{J}_p^{-1}(\mathbf{D}_{p(l)}\mathbf{P}_p^T(\Delta C_p - \mathbf{I})^\vee) = \mathbf{F}_{\vartheta(l)}\mathbf{P}_p^T(\Delta C_p - \mathbf{I})^\vee$. This is merely the solution to the geometric inverse kinematics problem of limb $l$ as a simple kinematic chain. Summarized for all limbs, and assuming sufficiently small relative motions, yields the relation

$$ \Delta\vartheta = \mathbf{F}_{\vartheta}\mathbf{P}_p^T(\Delta C_p - \mathbf{I})^{\vee} \quad (101) $$

where returns the 6-vector corresponding to an $\mathrm{se}(3)$ matrix in (122). An approximate solution to the geometric inverse kinematic problem at time $t_k$ is thus $\vartheta(t_k) = \vartheta(t_{k-1}) + \Delta\vartheta$. The update (101) can be repeated starting with the current value of $\vartheta(t_k)$ until $\|\Delta C_p\|_{\mathrm{SE}(3)} < \varepsilon$. Usually one or two iterations are sufficient, except near singularities.

The relation (101) can be written explicitly in terms of the rotation matrix and position vector of $\Delta C_p$ as

$$ \Delta\vartheta = \mathbf{F}_{\vartheta}\mathbf{P}_p^T \left( \frac{1}{2} (\Delta\mathbf{R}_p - \Delta\mathbf{R}_p^T)^{\vee} \mathbf{R}_p^T (\mathbf{r}_d - \mathbf{r}) \right) = \mathbf{F}_{\vartheta}\mathbf{P}_p^T \left( \mathbf{R}_p^T (\mathbf{r}_d - \mathbf{r}) \right)^{\mathrm{P}}. \quad (102) $$

where $\varphi$ is the rotation angle and $^p\mathbf{x}$ a unit vector along the rotation axis (resolved in platform frame $\mathcal{F}_p$), and $\mathbf{r}_d$ and $\mathbf{r}_p$ is the position vector in $C_d$ and $C_p$, respectively. The formulation (101) uses a coordinate-free description of the platform pose, allowing for use of any parameterization to express the desired pose $C_p^d$, and thus $\Delta C_p$, which can of course be parameterized in terms Euler angles for instance.

A remark on this iterative solution scheme seems in order. It is often proposed to solve the inverse kinematics by integrating (25) in order to recover the joint variables according to platform motion as originally proposed in [128]. The accuracy of this solution depends on the numerical integration scheme. Moreover, numerical constraint stabilization methods must be used in order to reduce numerical drifts caus-
ing constraint violations, e.g. Baumgarte stabilization. Iterations of (101), on the other hand, achieve numerical accuracy up to machine precision.

Given the task space velocity $\mathbf{V}_t$ and acceleration $\dot{\mathbf{V}}_t$ of the platform, the velocity of all joints is given by (25) and the acceleration as

$$ \ddot{\vartheta} = \mathbf{F}_{\vartheta} \dot{\mathbf{V}}_t + \dot{\mathbf{F}}_{\vartheta} \mathbf{V}_t. \quad (103) $$

The latter is already determined by evaluating (39).

## 9.2 Kinematically Redundant Simple PKM

The desired PKM motion is described in terms of the motion of the platform and the 'redundant' joints (assumed to be actuated). Following the derivation in sec. 9.1 the solution to the geometric inverse kinematics problem of the mechanism is

$$ \Delta\vartheta = \mathbf{F}_{\vartheta} \left( \mathbf{P}_{\mathrm{p}}^{\mathrm{T}} (\Delta\mathbf{C}_{\mathrm{p}} - \mathbf{I})^{\vee} \right). \quad (104) $$

This is a solution to the geometric inverse kinematics problem of the mechanism where the kinematic redundancy is explicitly resolved by prescribing the 'redundant' joint motions. If the latter are not available, the increments of actuator coordinates can be determined as

$$ \Delta\vartheta_{\text{act}} = \mathbf{J}_{\text{IK}} \mathbf{P}_{\mathrm{p}}^{\mathrm{T}} (\Delta\mathbf{C}_{\mathrm{p}} - \mathbf{I})^{\vee} \quad (105) $$

with the inverse kinematics Jacobian $\mathbf{J}_{\text{IK}}$ in (96). These are used to provide the 'redundant' coordinates $\vartheta_r$ in (104).

Given the desired platform and actuator velocities $\mathbf{s}^d$, the joint velocities are determined by (67), and the accelerations via its time derivative. If a pseudoinverse solution is preferred, the actuator velocities $\dot{\vartheta}_{\text{act}}$ can be determined with (95), and those of the 'redundant' joints, $\dot{\vartheta}_r$, can be used in $\mathbf{s}^d$.

For completeness, it should be mentioned that a 'decentralized' IK solution is given by $\dot{\vartheta}_{(l)} = \mathbf{J}_{t(l)}^{+} \mathbf{D}_{t(l)} \mathbf{V}_t + \mathbf{N}_{t(l)} \dot{\vartheta}_{0(l)}$, where $\mathbf{J}_{t(l)}^{+}$ is a (weighted) pseudoinverse, $\mathbf{N}_{t(l)}$ is a projector to the null-space of $\mathbf{J}_{t(l)}$, and $\dot{\vartheta}_{0(l)}$ is an arbitrary null-space velocity of limb $l$. This IK solution minimizes the overall motions of each limb individually. In contrast, the IK Jacobian (96) uses the pseudoinverse of the matrix $\mathbf{B}$, and thus minimizes the overall actuator motions.

# 10 Forward Kinematics of Simple PKM Mechanisms

The forward kinematics problem of the manipulator is to find the platform motion for given motion of the actuators. The geometric forward kinematics problem, however, requires again solving for the configuration of the PKM, i.e. for $\vartheta$, for given $\vartheta_{\text{act}}$. This is referred to as the geometric forward kinematics problem of the mechanism. Underactuated PKM are excluded in the following.

## 10.1 Kinematically Non-Redundant Simple PKM

The forward kinematics problem does generally not have a unique solution, but a locally unique solution can be determined via continuation from one time step to another. To this end, a known solution of the manipulator forward kinematics problem is used as starting point for the inverse kinematics problem of mechanism.

For a non-redundantly full-actuated PKM, the $N_{\text{act}} = \delta$ actuator coordinates $\vartheta_{\text{act}}$ serve as generalized coordinates, denoted with $\mathbf{q} := \vartheta_{\text{act}}$. Consider the transition from the preceding time instant $t_{k-1}$ to the current time instant $t_k$ with corresponding actuator coordinates $\vartheta_{\text{act}}(t_{k-1})$ and $\vartheta_{\text{act}}(t_k) = \vartheta_{\text{act}}(t_{k-1}) + \Delta\vartheta_{\text{act}}$. The corresponding relative change of the platform configuration is found from (105). Combining this with (101), and assuming sufficiently small motions, yields

$$ \Delta\vartheta = \mathbf{F}_{\vartheta}\mathbf{J}_{\text{IK}}^{-1}\Delta\vartheta_{\text{act}}. \quad (106) $$

The platform pose is finally determined by using the forward kinematics mapping (5) of one of the limbs.

In case of a redundantly full-actuated PKM, the $N_{\text{act}} > \delta$ actuator coordinates are not independent. Thus (105) is an overdetermined system of $N_{\text{act}}$ linear equations for the $\delta = \delta_{\text{p}}$ components of the relative platform configuration $\mathbf{P}_{\mathrm{p}}^{\mathrm{T}}(\Delta\mathbf{C}_{\mathrm{p}} - \mathbf{I})^{\vee}$. Replacing the inverse of the IK Jacobian by the right pseudoinverse leads to $\Delta\vartheta = \mathbf{F}_{\vartheta}\mathbf{J}_{\text{IK}}^{+}\Delta\vartheta_{\text{act}}$. This is only a solution if $\vartheta_{\text{act}}(t_k)$, and thus $\Delta\vartheta_{\text{act}}$, are consistent with the geometric loop constraints. This is important, since in practice, $\vartheta_{\text{act}}$ are measured with finite precision so that they do not satisfy the loop constraints. Then the actuator increment $\Delta\vartheta_{\text{act}}$ determined with the pseudoinverse minimizes the error due to the inconsistency of $\Delta\vartheta_{\text{act}}$. An alternative is to use a set of $\delta$ actuator variables as generalized coordinates $\mathbf{q}$ and use (106) with the corresponding $\delta \times \delta$ submatrix $\mathbf{H}$ in (59) instead of $\mathbf{J}_{\text{IK}}$.

Given the actuator velocity $\dot{\vartheta}_{\text{act}}$ and acceleration $\ddot{\vartheta}_{\text{act}}$, the task is to find the velocity and acceleration of all joints. The solution is given by combining (25) with the inverse kinematics solution (35), which yields

$$ \dot{\vartheta} = \mathbf{F}_{\vartheta}\mathbf{J}_{\text{IK}}^{-1}\dot{\vartheta}_{\text{act}}, \quad \ddot{\vartheta} = \mathbf{F}_{\vartheta}\mathbf{J}_{\text{IK}}^{-1}\ddot{\vartheta}_{\text{act}} + (\dot{\mathbf{F}}_{\vartheta}\mathbf{J}_{\text{IK}}^{-1} + \mathbf{F}_{\vartheta}\dot{\mathbf{J}}_{\text{IK}}^{-1})\dot{\vartheta}_{\text{act}}. \quad (107) $$

For redundantly actuated PKM, the inverse of $\mathbf{J}_{\text{IK}}$ is replaced by the pseudoinverse. Alternatively, a subset of $\delta$ actuator coordinates, summarized in $\mathbf{q}$, is used, and with (59) it is $\dot{\vartheta} = \mathbf{F}_{\vartheta}\mathbf{H}^{-1}\dot{\mathbf{q}}$.

## 10.2 Kinematically Redundant Simple PKM

The solution to the geometric forward kinematic problem follows by inserting (105) in the inverse kinematics solution (104) as

$$ \Delta\vartheta = \mathbf{F}_{\vartheta} \left( \frac{\mathbf{J}_{\text{IK}}^{-1} \Delta\vartheta_{\text{act}}}{\Delta\vartheta_{\text{r}}} \right) \quad (108) $$
where the pseudoinverse of $J_{IK}$ is used in case of redundantly actuated kinematically redundant PKM. Notice that the $\Delta\vartheta_r$ are contained in $\Delta\vartheta_{act}$.

The velocity forward kinematics solution of the manipulator is given by $V_t = J_{IK}^+ \dot{\vartheta}_{act}$. Inserting this into (67) yields the solution of the velocity and acceleration forward kinematics solution of the mechanisms as

$$ \dot{\vartheta} = \mathbf{F}_{\vartheta} \left( \mathbf{J}_{IK}^{-1} \dot{\vartheta}_{act} \right) \qquad (109) $$

$$ \ddot{\vartheta} = \mathbf{F}_{\vartheta} \left( \mathbf{J}_{IK}^{-1} \ddot{\vartheta}_{act} + \dot{\mathbf{J}}_{IK}^{-1} \dot{\vartheta}_{act} \right) + \dot{\mathbf{F}}_{\vartheta} \left( \mathbf{J}_{IK}^{-1} \dot{\vartheta}_{act} \right) $$

where again the pseudoinverse of $J_{IK}$ is used in case of redundantly actuated kinematically redundant PKM.

## 11 Applications of the EOM

The EOM serve various purposes. Prevailing are the numerical time integration (forward dynamics), the determination of control forces for a desired motion (inverse dynamics), and the calculation of the non-linear feed-forward part in model-based control schemes. The task space formulation will be used in the following since this is preferred for control applications.

### 11.1 Forward Dynamics — Time Integration

The forward dynamics problem is to determine the PKM motion for given actuator forces $\mathbf{u}(t)$ and external loads $\mathbf{W}_p$ applied to the platform. This necessitates numerical time integration of the EOM.

The dynamics of a non-redundant simple PKM is governed by the EOM (42), which is a system of $\delta$ first-order ODEs in the $\delta+N$ variables $V_t$ and $\vartheta$. Complementing (42) by (25) yields a system of $\delta+N$ ODEs. Substituting $\dot{\vartheta}$ in the generalized Coriolis matrix by $V_t$, using (25), yields

$$ \begin{aligned} \mathbf{M}_t(\vartheta) \dot{\mathbf{V}}_t &= \mathbf{W}_t(\vartheta) + \mathbf{W}_t^{\text{grav}}(\vartheta) - \mathbf{C}_t(\vartheta, \mathbf{V}_t) \mathbf{V}_t + \mathbf{J}_{IK}^T(\vartheta) \mathbf{I}_0 \\ \dot{\vartheta} &= \mathbf{F}(\vartheta) \mathbf{V}_t. \end{aligned} \qquad (111) $$

This is a system of $\delta+N$ first-order ODEs, which is nonlinear in $V_t(t)$ and $\vartheta(t)$, and linear in their times derivatives (if the dependency of $\mathbf{C}$ on $\vartheta$ is kept, (110) is bilinear in $\vartheta$ and $V_t$ since $\dot{\mathbf{F}}(t)$ is linear in $\vartheta$). It can be easily solved for the derivatives, which is helpful since numerical integration schemes for explicit ODEs are frequently used. The EOM (110) govern the dynamics, whereas the kinematic reconstruction equations (111) recover the joint motions corresponding to the platform velocity. The advantage of this formulation is that it provides a task space formulation, in terms of task space velocities, without the need for an explicit selection of generalized coordinates. Rather the complete vector of (dependent) joint variables $\vartheta$ is used to represent the PKM configuration. A solution $\vartheta(t)$ must satisfy the geometric constraints (13). Equation (111) is a parameterization

of the corresponding velocity constraints (14). In general, solutions obtained by numerical integration of (111) violate the geometric constraints, which are called hidden constraints of (111). This is a classical topic in computational MBS dynamics, and various numerical constraint stabilization methods for the numerical integration of ODEs with hidden constraints exist [129, 130] to ensure that the numerical solution evolves on the c-space $V$, i.e. the solution variety (16).

The EOM (74) of a kinematically redundant simple PKM, together with the kinematic reconstruction equations (67), allow to compute the dynamic behavior. Replacing $\dot{\vartheta}$ by $\mathbf{s}$ in the generalized Coriolis matrix, using (67), yields

$$ \mathbf{M}(\vartheta)\dot{\mathbf{s}} = \mathbf{Q}(\vartheta) + \mathbf{Q}^{\text{grav}}(\vartheta) - \mathbf{C}(\vartheta, \mathbf{s})\mathbf{s} + \mathbf{J}_{IK}^T(\vartheta)\mathbf{u} \qquad (112) $$

$$ \dot{\vartheta} = \mathbf{F}(\vartheta)\mathbf{s} \qquad (113) $$

with $\mathbf{F}_{\vartheta}$ in (68). This is a system of $\delta+N$ first-order ODEs in the variables $\vartheta$ and $\mathbf{s}$. This is again linear in their time derivatives.

### 11.2 Inverse Dynamics

The inverse dynamics problem is to determine the actuator forces $\mathbf{u}(t)$ necessary to achieve a desired motion, i.e. the complete trajectory of the PKM is known. That is, for given $\vartheta, V_t, \dot{V}_t$, the EOM are to be evaluated. The joint velocity $\dot{\vartheta}$ and acceleration $\ddot{\vartheta}$ are known with the inverse kinematics relations (29), (39) of the mechanism.

The inverse dynamics solution for a non-redundantly actuated kinematically non-redundant simple PKM ($\delta = N_{act}$) follows by solving (42) for $\mathbf{u}$, using $\mathbf{Q}^{\text{act}} = \mathbf{J}_{IK}^T \mathbf{u}$, as

$$ \mathbf{u}(t) = \mathbf{J}_{IK}^T (\mathbf{M}_t \dot{\mathbf{V}}_t + \mathbf{C}_t \mathbf{V}_t - \mathbf{W}_t - \mathbf{W}_t^{\text{grav}}). \qquad (114) $$

For a redundantly actuated PKM the inverse dynamics solution is not unique. A particular solution is given as

$$ \mathbf{u}(t) = (\mathbf{J}_{IK}^T)^+ (\mathbf{M}_t \dot{\mathbf{V}}_t + \mathbf{C}_t \mathbf{V}_t - \mathbf{W}_t - \mathbf{W}_t^{\text{grav}}) + \mathbf{N}_{IK} \mathbf{u}_0 \qquad (115) $$

where $(\mathbf{J}_{IK}^T)^+$ is the pseudoinverse and $\mathbf{N}_{IK} \mathbf{J}_{IK}^T$ projector to the null-space of $\mathbf{J}_{IK}^T$. Different weights can be used to determine the pseudoinverse and thus the null-space projector [25]. $\mathbf{u}_0$ represents actuator forces that do not affect the PKM motion, but rather lead to internal prestress.

The inverse dynamics solution for a non-redundantly actuated kinematically redundant PKM is readily found by solving (74) for $\mathbf{u}$ as

$$ \mathbf{u}(t) = \mathbf{J}_{IK}^{-T} (\mathbf{M}\ddot{\mathbf{s}} + \mathbf{C}\mathbf{s} - \mathbf{Q}_t - \mathbf{Q}_t^{\text{act}}) \qquad (116) $$

and for a redundantly actuated kinematically redundant PKM as

$$ \mathbf{u}(t) = (\mathbf{J}_{IK}^T)^+ (\mathbf{M}\ddot{\mathbf{s}} + \mathbf{C}\mathbf{s} - \overline{\mathbf{Q}} - \overline{\mathbf{Q}}^{\text{grav}}) + \mathbf{N}_{IK} \mathbf{u}_0. \qquad (117) $$
## 11.3 Inverse Dynamics Evaluation for given Motion of Platform and Redundant Joints -Feed Forward Control

One way to improve the performance of classical linear control schemes for PKM is to introduce a model-based non-linear feed forward term, i.e. the actuator forces that would ideally steer the PKM along the desired trajectory. The inverse dynamics solution (114), respectively (115), provides such a non-linear feed forward control command. Within the task space control scheme, however, only the platform trajectory is given. The problem thus splits into the inverse kinematics problem of the mechanism and the subsequent inverse dynamics evaluation.

For a kinematically non-redundant simple PKM, given the platform motion, at time $t$, the inverse kinematics solutions $\vartheta(t), \dot{\vartheta}(t), \ddot{\vartheta}(t)$ are determined using (106) and (107). The feed forward control forces are then given by the inverse dynamics solution is (114), respectively (115).

In case of kinematically redundant simple PKM, in addition to the platform motion, the motion $\vartheta_r(t)$ of the redundant joints is prescribed. If the latter is not available, it can be determined by the pseudoinverse solution, as described above. The inverse kinematics solution is given by (104) and (67). Inserted into (116) respectively (117) yields the feed forward control forces.

## 11.4 Inverse Dynamics Evaluation for given Actuator Motion -Model-Based Control

Advanced model-based control schemes (e.g. augmented PD and computed torque control) require a feed forward command deduced from the actual state of the PKM. The latter is only accessible indirectly via measurement of the actuator motion. The evaluation thus requires solution of the forward kinematics problem of the mechanism, followed by the evaluation of the EOM.

The desired control forces are determined by evaluation of the EOM depending on the actual model-based control scheme. The feedback linearizing computed torque controller in task space, for instance, is

$$ \mathbf{u} = \mathbf{J}_{\text{IK}}^{-T} (\mathbf{M}_t (\dot{\mathbf{V}}_t^\text{d} - \mathbf{K}_D \mathbf{e}_V - \mathbf{K}_P \mathbf{e}_P) + \mathbf{C} (\vartheta, \dot{\vartheta}) \mathbf{V}_t - \mathbf{W}_t (\vartheta) - \mathbf{W}_t^{\text{grav}} (\vartheta)) \quad (118) $$

with velocity tracking error $\mathbf{e}_V := \mathbf{V}_t^\text{d} - \mathbf{V}_t$ and position tracking error $\mathbf{e}_P := \mathbf{P}_p^T \log (\mathbf{C}_p^{-1} \mathbf{C}_p^\text{d})$, using (125). Therein, $\vartheta, \dot{\vartheta}$ are calculated from the (measured) actuator motion, as described above, and $\mathbf{C}_p^\text{d}, \mathbf{V}_t^\text{d}$ and $\dot{\mathbf{V}}_t^\text{d}$ are according to the desired platform motion. For redundantly actuated PKM the pseudoinverse of $\mathbf{J}_{\text{IK}}^T$ is used in (118).

When assuming small errors, the position error reduces to $\log (\mathbf{C}_p^{-1} \mathbf{C}_p^\text{d}) \approx (\phi \xi, \Delta \mathbf{r})$ in (127). This resembles the use of the rotation error vector in quaternion-based task space control. The reason why the log mapping appears is the use of (body-fixed) twists, instead of treating positions and orientations decoupled.

## 12 Parallel Computation

Since the presented formulations make use of the special topology of simple PKM, they can be evaluated in parallel. The crucial observation is that the forward and inverse kinematics as well as the EOM of the $L$ limbs (sections 4.1, 5.2, 5.3, 6.1, 6.3) can be evaluated independently on a distributed computing facility. The idea of evaluating the kinematic as well as dynamic equations in parallel for the $L$ limbs was already reported for the special case of planar 3RPR and spatial 6UPS PKM in [131].

For example, evaluation of the inverse dynamics solution (114), i.e. determination of the actuator forces $\mathbf{u}$ for given $\vartheta, \mathbf{V}_t, \dot{\mathbf{V}}_t$, proceeds as follows. First, for a given pose, i.e. the vector of joint variables $\vartheta$, the task space Jacobians $\mathbf{J}_{t(l)}, l = 1, \dots, L$ and their inverse are computed in parallel for all limbs. This yields $\bar{\mathbf{F}}_{(l)}$ in (28) and the IK Jacobian $\mathbf{J}_{\text{IK}}$ in (35), and the time derivatives of the joint variables as $\ddot{\bar{\mathbf{V}}}_{(l)} = \bar{\mathbf{F}}_{(l)} \mathbf{V}_t$. Second, the time derivatives $\dot{\bar{\mathbf{F}}}_{(l)}(\bar{\mathbf{V}}_{(l)}, \dot{\bar{\mathbf{V}}}_{(l)})$, and thus $\ddot{\bar{\mathbf{V}}}_{(l)} = \bar{\mathbf{F}}_{(l)} \dot{\mathbf{V}}_t + \dot{\bar{\mathbf{F}}}_{(l)} \mathbf{V}_t$, are computed for the individual limbs in parallel. Third, the mass and Coriolis matrices, $\bar{\mathbf{M}}_{(l)}$ and $\bar{\mathbf{C}}_{(l)}$ in (19) and (20), and then the EOM (18) are evaluated for all limbs. The final non-parallel step is to evaluate (41), i.e. premultiplication with $(\mathbf{P}_p^T \bar{\mathbf{F}}_p^T)$. The described parallel computing scheme applies analogously to kinematically redundant PKM.

Clearly, all three steps can be pursued separately for each limb. The computational efficiency can be improved by using recursive $O(n)$ algorithms for evaluating the kinematic relations [11, 80]. Instead of computing the task space Jacobians and their time derivatives in closed form with (7) and (49), respectively, an $O(n)$ algorithm would be running for each limb. The performance can still be improved by using an $O(n)$ Newton-Euler algorithm [11, 78, 81] for the inverse dynamics of the individual limbs, instead of computing $\bar{\mathbf{M}}_{(l)}$ and $\bar{\mathbf{C}}_{(l)}$ explicitly. To this end, after $\ddot{\bar{\mathbf{V}}}_{(l)}$ and $\ddot{\bar{\mathbf{V}}}_{(l)}$ are computed in parallel, the EOM (18) are evaluated with a recursive $O(n)$ algorithm along with the Newton-Euler equations of the platform.

## 13 Conclusion

Most practically used PKM are topologically simple, i.e. their platform is connected in parallel by serial kinematic chains (limbs). The contribution of this paper is a modular framework for the modeling of topologically simple redundant and non-redundant PKM. The modularity is achieved by independently formulating the EOM of the individual limbs (in joint coordinates) and Newton-Euler equations of the platform (in task space coordinates). The inverse kinematics Jacobians of the limbs are then used to express their states in terms of the platform state, and the principle of virtual power then yields the overall EOM of the PKM in terms of task space coordinates. A formulation in terms of actuator coordinates is derived by incorporating inverse kinematics relations. The approach shares some concepts of other tailored methods for topologically simple PKM such as [64, 94]. The main difference is that these formulations
are derived in terms of actuator coordinates, which does not allow exploiting the modularity. The modularity of the presented formulation allows 1) to derive the EOM of the limbs using an arbitrary formalism, and 2) to evaluate these EOM in parallel.

In this paper, a Lie group formulation of the EOM is used that has been introduced for serial robots and tree-topology MBS. Besides its compactness, which is beneficial for code implementations, it gives rise to a user-friendly modeling. All information about the joint kinematics is encoded in vectorial data that can be easily determined (e.g. from CAD models) rather than following restrictive modeling conventions (e.g. DH-parameterization); the Universal Robotic Description Format (URDF) is a recent example where such data is used. The frame invariance of such geometric formulations is further exploited for an efficient modeling of structurally identical limbs.

This paper shall also serve as a reference and starting point for future research. The presented approach is applicable to topologically simple PKM. An obvious direction of research will address its extension to PKM whose limbs are not simple kinematic chains, but comprise closed loops, as in case of the Delta robot for example. Another research direction concerns the computational efficiency as well as parallel computing strategies. For instance, an immediate efficiency gain will be achieved by using (parallel) $O(n)$ algorithms for evaluation of the EOM of the limbs.

Finally it should be emphasized that the Lie group approach merely provides a consistent mathematical framework for the well-established robot modeling approach using homogenous transformation matrices, and should thus be easily accessible to the robotics community. It supports the recent trend towards user friendly mathematical modeling approaches.

## A Geometric Background -Lie Group SE (3)

In the following some basic facts on the Lie group SE (3) of rigid body motions are summarized as far as necessary in the paper. For a detailed introduction the reader is referred to the textbooks [11-13, 74].

The relative configuration of two frames $\mathcal{F}_1$ and $\mathcal{F}_2$ is described by a vector $^1\mathbf{r}_{12} \in \mathbb{R}^3$ and a rotation matrix $\mathbf{R}_{12} \in \mathcal{SO}(3)$. The vector $^1\mathbf{r}_{12}$ is measured from the origin of $\mathcal{F}_1$ to that of $\mathcal{F}_2$ and resolved in $\mathcal{F}_1$, and $\mathbf{R}_{12}$ transforms coordinates of a vector resolved in $\mathcal{F}_2$ to coordinates of the same vector resolved in $\mathcal{F}_1$. Both are summarized in the 'homogenous' frame transformation matrix

$$ \mathbf{C}_{12} = \begin{pmatrix} \mathbf{R}_{12} & ^1\mathbf{r}_{12} \\ \mathbf{0} & 1 \end{pmatrix} \in \mathcal{SE}(3) \quad (119) $$

which is referred to as the relative configuration of $\mathcal{F}_2$ w.r.t. $\mathcal{F}_1$. The relative configuration of another frame $\mathcal{F}_3$ relative to $\mathcal{F}_1$ is then $\mathbf{C}_{13} = \mathbf{C}_{12}\mathbf{C}_{23}$. Moreover, the matrices of the form (119) form the Lie group SE (3). A 'distance' between

two configurations $\mathbf{C}_1^{-1}\mathbf{C}_2$ is given by

$$ d(\mathbf{C}_1^{-1}\mathbf{C}_2) = \alpha \|\xi\| + \beta \|\mathbf{r}_1 - \mathbf{r}_2\| \quad (120) $$

with $\tilde{\xi} = \log \mathbf{R}_1^{-1}\mathbf{R}_2$ and $\log$ in (127). The actual value depends on the two parameters $\alpha$ and $\beta$.

The motion of a rigid body is represented by the motion of a body-fixed frame $\mathcal{F}$. Any rigid body motion is a screw motion. For finite motions this fact is known as Chasles-theorem [12,13,64], and for instantaneous motions as Mozzicuachy theorem [132]). Denote with $\mathbf{e} \in \mathbb{R}^3$ a unit vector along the screw axis, with $\mathbf{p} \in \mathbb{R}^3$ be the position vector of a point on that axis measured in $\mathcal{F}$, and $h \in \mathbb{R}$ the pitch of the screw. Then the screw coordinate vector associated to the (finite) motion of $\mathcal{F}$, relative to its initial configuration, is

$$ \mathbf{X} = \begin{pmatrix} \mathbf{e} \\ \mathbf{p} \times \mathbf{e} + h\mathbf{e} \end{pmatrix} =: \begin{pmatrix} \xi \\ \eta \end{pmatrix} \in \mathbb{R}^6. \quad (121) $$

When written in the form (121), these are called ray coordinates (or twist coordinates) of a screw. To any screw coordinate vector can be assigned a unique a $4 \times 4$ matrix as follows

$$ \mathbf{X} = \begin{pmatrix} \xi \\ \eta \end{pmatrix} \in \mathbb{R}^6 \mapsto \hat{\mathbf{X}} = \begin{pmatrix} \tilde{\xi} \\ \eta \\ 0 \\ 0 \end{pmatrix} \in \mathcal{SE}(3) \quad (122) $$

where $\tilde{\xi} \in \mathcal{SO}(3)$ is the screw symmetric matrix associated to the vector $\xi \in \mathbb{R}^3$. These matrices form the Lie algebra of $\mathcal{SE}(3)$, which is, via (122) isomorphic to the algebra of screws. The inverse to the 'hat' operation defined in (122), is denoted with $\mathbf{A}^{\vee}$, i.e. $\mathbf{A} \in \mathcal{SE}(3) \mapsto \mathbf{A}^{\vee} \in \mathbb{R}^6$, which returns the $\mathbb{R}^6$ vector.

The homogenous transformation matrix describing the screw motion according to the screw coordinates $\mathbf{X}$ is given by the exponential of $\hat{\mathbf{X}}$, which attains the closed form [11, 12, 133]

$$ \exp(\varphi\hat{\mathbf{X}}) = \begin{pmatrix} \mathbf{R} & (\mathbf{I} - \mathbf{R})\mathbf{p} + \varphi h\mathbf{e} \\ \mathbf{0} & 1 \end{pmatrix}, \quad (123) $$

where $\varphi$ is the rotation angle. The rotation matrix is determined as $\mathbf{R} := \exp(\varphi\hat{\mathbf{e}})$, where the exponential is given by the Euler-Rodrigues formula

$$ \exp(\varphi\hat{\mathbf{e}}) = \mathbf{I} + \sin\varphi\hat{\mathbf{e}} + (1 - \cos\varphi)\hat{\mathbf{e}}^2. \quad (124) $$

The transformation matrix $\mathbf{C} = \exp(\varphi\hat{\mathbf{X}})$ describes the (finite) motion of frame $\mathcal{F}$ relative to its initial configuration. Alternatively, if the two frames $\mathcal{F}_1$ and $\mathcal{F}_2$ initially ($\varphi = 0$) coincide, then their relative configuration after a screw motion with (constant) screw coordinates $\mathbf{X}$ (expressed in $\mathcal{F}_1$) is $\mathbf{C}_{12} = \exp(\varphi\hat{\mathbf{X}})$.
Given a transformation matrix $C \in SE(3)$, the screw coordinates $\mathbf{X}$ so that $\mathbf{C} = \exp \hat{\mathbf{X}}$ are determined by the log mapping. This reads explicitly

$$ \mathbf{X} = \begin{pmatrix} \xi \\ \eta \end{pmatrix} = \log \mathbf{C}, \quad \text{with} \quad \tilde{\xi} = \log \mathbf{R}, \quad \eta = (\mathrm{dexp}_{\xi})^{-1} \mathbf{r} \qquad (125) $$

where $\mathrm{dexp}_{\xi}$ is the matrix form of the right-trivialized differential of $\exp$ [133], and the log mapping on $SO(3)$

$$ \log \mathbf{R} = \frac{\varphi}{2 \sin \varphi} (\mathbf{R} - \mathbf{R}^T) \in \mathit{so}(3) \qquad (126) $$

that returns $\xi = \varphi e$ with rotation axis $e$ and angle $\varphi$ in (124). For small motions, i.e. $||\xi|| \ll 1$ and $||\mathbf{r}|| \ll 1$, (125) can be approximated as

$$ \mathbf{X} = \begin{pmatrix} \xi \\ \eta \end{pmatrix} \approx \log \mathbf{C}, \quad \text{with} \quad \tilde{\xi} = \frac{1}{2} (\mathbf{R} - \mathbf{R}^T), \quad \eta = \mathbf{r}. \qquad (127) $$

Screw (twist) coordinates are frame dependent. Let $\mathbf{X}_2$ be the screw coordinates represented in a frame $\mathcal{F}_2$, and let $\mathbf{C}_{12}$ be the transformation from $\mathcal{F}_2$ to $\mathcal{F}_1$ in (119). The corresponding transformation of screw coordinates is then $\mathbf{X}_1 = \mathbf{Ad}_{\mathbf{C}_{12}}\mathbf{X}_2$, with the adjoint transformation matrix

$$ \mathbf{Ad}_{\mathbf{C}_{12}} = \begin{pmatrix} \mathbf{R}_{12} & \mathbf{0} \\ \hat{\mathbf{r}}_{12}\mathbf{R}_{12} & \mathbf{R}_{12} \end{pmatrix}. \qquad (128) $$

The infinitesimal aspect of such a transformation of screw coordinates is given by the Lie bracket of two screws, which is expressed as

$$ [\mathbf{X}_1, \mathbf{X}_2] := \mathbf{ad}_{\mathbf{X}_1} \mathbf{X}_2 = \begin{pmatrix} \tilde{\xi}_1 & \mathbf{0} \\ \hat{\eta}_1 & \xi_1 \end{pmatrix} \begin{pmatrix} \xi_2 \\ \eta_2 \end{pmatrix} = \begin{pmatrix} \eta_1 \times \xi_2 + \xi_1 \times \eta_2 \\ \xi_1 \times \xi_2 \end{pmatrix} \qquad (129) $$

with the matrix

$$ \mathbf{ad}_{\mathbf{X}} = \begin{pmatrix} \tilde{\xi} & \mathbf{0} \\ \hat{\eta} & \tilde{\xi} \end{pmatrix}. \qquad (130) $$

Twist (rigid body velocities) and wrenches are screws. Twists are represented in ray coordinates (121) while wrenches are represented in axis coordinates. The axis coordinates of a screw are simply obtained by swapping the angular and translational parts

$$ \mathring{\mathbf{X}} = \begin{pmatrix} \mathbf{p} \times \mathbf{e} + h\mathbf{e} \\ \mathbf{e} \end{pmatrix} = \begin{pmatrix} \mathbf{0} & \mathbf{I}_3 \\ \mathbf{I}_3 & \mathbf{0} \end{pmatrix} \mathbf{X} \qquad (131) $$

Axis coordinates are often used [11, 12] since it allows writing the reciprocal product of two screws as $\mathring{\mathbf{X}}_1^T \mathbf{X}_2 = \xi_1^T \eta_2 + \xi_2^T \eta_1$.

## B Kinematics of Serial Chain using the Product of Exponents

Consider a serial kinematic chain comprising $n$ rigid bodies that are connected by $n$ screw joints (i.e. revolute, prismatic or helical). Denote with $\vartheta_i$ the joint variable of joint $i$, and with $\vartheta = (\vartheta_1, \dots, \vartheta_n) \in \mathbb{R}^n$ the joint variable vector. Each body is equipped with a body-fixed reference frame $\mathcal{F}_i$. The frame transformation $\mathbf{C}_i \in SE(3)$ from $\mathcal{F}_i$ to a world-fixed inertial frame, denoted $\mathcal{F}_0$, represents the absolute configuration body $i$. Let $\mathbf{A}_i \in SE(3)$ be the configuration of body $i$ in the reference configuration $\vartheta = \mathbf{0}$, and denote with $\mathbf{Y}_i \in \mathbb{R}^6$ the screw coordinate vector, (2) or (3), associated to joint $i$ represented in the inertial frame $\mathcal{F}_0$ in the reference configuration. Then the configuration of body $i$ is given in terms of the joint variables as $\mathbf{C}_i = f_i(\vartheta)$, with

$$ f_i(\vartheta) := \exp(\vartheta_1 \mathbf{Y}_1) \exp(\vartheta_2 \mathbf{Y}_2) \cdots \exp(\vartheta_i \mathbf{Y}_i) \mathbf{A}_i. \qquad (132) $$

Clearly $\mathbf{A}_i = f_i(\mathbf{0})$. This is expression is known as the product of exponentials (POE), that was introduced by Brockett [8] and is a central relation for kinematics modeling of spatial mechanisms [11–13, 74, 80].

The body-fixed twist of body $i$ is determined in terms of the joint velocities $\dot{\vartheta}$ as $\mathbf{V}_i = \mathbf{J}_i \dot{\vartheta}$, by the (geometric) Jacobian

$$ \mathbf{J}_i(\vartheta) = \begin{pmatrix} \mathbf{J}_{i,1} & \cdots & \mathbf{J}_{i,i-1} & \mathbf{J}_{i,i} & \mathbf{0} & \cdots & \mathbf{0} \end{pmatrix} \in \mathbb{R}^{6,n} \qquad (133) $$

where the $j$th column of $\mathbf{J}_i$ is given as

$$ \mathbf{J}_{i,j} = \mathbf{Ad}_{\mathbf{C}_{i,j}} \mathbf{X}_j. \qquad (134) $$

Thus the $j$th column is the instantaneous screw coordinate vector of joint $j$ represented in the reference frame $\mathcal{F}_i$ on body $i$.

### Newton-Euler Equations for a Rigid Body

Consider a rigid body with mass $m$. Denote with $\mathbf{\Theta}_b$ the inertia tensor of a rigid body w.r.t. an arbitrary body-fixed reference frame $\mathcal{F}_b$, and let $\mathbf{d}_{bc}$ be the vector from the origin of that frame to the center of mass (COM) of the body. Then the inertia matrix of the body w.r.t. to $\mathcal{F}_b$ is [81]

$$ \mathbf{M}_b = \begin{pmatrix} \mathbf{\Theta}_b & m^b \tilde{\mathbf{d}}_{bc} \\ -m^b \tilde{\mathbf{d}}_{bc} & m \mathbf{I} \end{pmatrix}. \qquad (135) $$

Let $\mathbf{V}_b$ be the body twist and $\mathbf{W}_b$ be total wrench acting on the body, both represented in $\mathcal{F}_b$. The dynamics is then governed by

$$ \mathbf{M}_b \dot{\mathbf{V}}_b - \mathbf{ad}_{\mathbf{V}_b}^T \mathbf{M}_b \mathbf{V}_b = \mathbf{W}_b. \qquad (136) $$

This is a compact form of the Newton-Euler editions in an arbitrary body-fixed reference frame. Throughout the paper the Newton-Euler equations, and thus the mass matrix, will be expressed in the reference frame $\mathcal{F}_i$ of body $i$.
D Symbols

<table>
  <tr>
    <td>F<sub>0</sub></td>
    <td>world-fixed inertia frame (IFR)</td>
  </tr>
  <tr>
    <td>F<sub>i(l)</sub></td>
    <td>body-fixed reference frame at body i of limb l</td>
  </tr>
  <tr>
    <td>F<sub>p</sub></td>
    <td>platform reference frame</td>
  </tr>
  <tr>
    <td>F'<sub>0</sub></td>
    <td>construction frame of the representative limb</td>
  </tr>
  <tr>
    <td>F'<sub>p</sub></td>
    <td>reference frame at the platform of the representative limb</td>
  </tr>
  <tr>
    <td>F<sub>0(l)</sub></td>
    <td>world fixed mount frame where limb l is connected</td>
  </tr>
  <tr>
    <td>F'<sub>p(l)</sub></td>
    <td>mount frame at the platform where limb l is connected</td>
  </tr>
  <tr>
    <td>N<sub>l</sub></td>
    <td>Number of 1-DOF joints in limb l</td>
  </tr>
  <tr>
    <td>N</td>
    <td>Total number of 1-DOF joints of the PKM</td>
  </tr>
  <tr>
    <td>n = N - δ<sub>l</sub></td>
    <td>Number of 1-DOF joints in limb l when platform is removed</td>
  </tr>
  <tr>
    <td>n</td>
    <td>Total number of 1-DOF joints of the tree-topology system (platform removed)</td>
  </tr>
  <tr>
    <td>N<sub>act</sub></td>
    <td>Number actuated joints in limb l</td>
  </tr>
  <tr>
    <td>n<sub>act(l)</sub> ∈ N<sup>N<sub>act(l)</sub></sup></td>
    <td>index set of the actuated joints in limb l</td>
  </tr>
  <tr>
    <td>L</td>
    <td>Number of limbs</td>
  </tr>
  <tr>
    <td>n<sub>l</sub> = N<sub>l</sub> - δ<sub>l</sub></td>
    <td>Number of 1-DOF joints in limb l when platform is removed</td>
  </tr>
  <tr>
    <td>δ<sub>l</sub></td>
    <td>DOF of the joint connecting limb l to the platform</td>
  </tr>
  <tr>
    <td>δ<sub>p</sub></td>
    <td>DOF of the platform</td>
  </tr>
  <tr>
    <td>r<sub>l</sub> = rank J&#773;<sub>p(l)</sub></td>
    <td>DOF of the platform when only connected to limb l</td>
  </tr>
  <tr>
    <td>ϑ<sub>(l)</sub> ∈ V<sup>N<sub>l</sub></sup></td>
    <td>vector of joint variables of limb l</td>
  </tr>
  <tr>
    <td>ϑ ∈ V<sup>N</sup></td>
    <td>overall vector of joint variables</td>
  </tr>
  <tr>
    <td>ϑ<sub>act</sub> ∈ V<sup>N<sub>act</sub></sup></td>
    <td>vector of joint variables of actuated joints</td>
  </tr>
  <tr>
    <td>ϑ&#773;<sub>(l)</sub> ∈ V<sup>n<sub>l</sub></sup></td>
    <td>vector of joint variables of limb l when platform is removed</td>
  </tr>
  <tr>
    <td>ϑ&#773; ∈ V<sup>n</sup></td>
    <td>overall vector of joint variables of all limbs when platform is removed</td>
  </tr>
  <tr>
    <td>C<sub>p</sub> ∈ SE (3)</td>
    <td>platform pose, i.e. configuration of F<sub>p</sub> relative to F<sub>0</sub></td>
  </tr>
  <tr>
    <td>C<sub>i(l)</sub> ∈ SE (3)</td>
    <td>pose of body i of limb l, i.e. configuration of F<sub>i(l)</sub> relative to F<sub>0</sub></td>
  </tr>
  <tr>
    <td>C<sub>i,j</sub> ∈ SE (3)</td>
    <td>pose of body j relative to body i</td>
  </tr>
  <tr>
    <td>S<sub>0(l)</sub> ∈ SE (3)</td>
    <td>transformation from mount frame F<sub>0(l)</sub> of limb l to spatial IFR F<sub>0</sub> at the ground</td>
  </tr>
  <tr>
    <td>S<sub>p(l)</sub> ∈ SE (3)</td>
    <td>transformation from mount frame F<sub>p(l)</sub> of limb l to reference frame F<sub>p</sub> at the platform</td>
  </tr>
  <tr>
    <td>V<sub>p</sub> ∈ SE (3)</td>
    <td>platform twist in body-fixed representation</td>
  </tr>
  <tr>
    <td>V<sub>t</sub> ∈ R<sup>δ<sub>p</sub></sup></td>
    <td>vector comprising the δ<sub>p</sub> non-zero components that are used as EE speeds</td>
  </tr>
  <tr>
    <td>W<sub>t</sub> ∈ R<sup>δ<sub>p</sub></sup></td>
    <td>vector comprising the δ<sub>p</sub> non-zero components that are used as EE forces/torques</td>
  </tr>
  <tr>
    <td>P&#773;<sub>act</sub> ∈ R<sup>N<sub>act,n</sub></sup></td>
    <td>selection matrix extracting the actuator coordinates ϑ<sub>act</sub> from the joint coordinate vector ϑ&#773;</td>
  </tr>
  <tr>
    <td>P<sub>p</sub> ∈ R<sup>6,δ<sub>p</sub></sup></td>
    <td>matrix that assigns the task space velocity to the platform twist coordinates</td>
  </tr>
  <tr>
    <td>J<sub>p(l)</sub></td>
    <td>forward kinematics Jacobian of limb l</td>
  </tr>
  <tr>
    <td>J<sub>t(l)</sub></td>
    <td>task space Jacobian of limb l</td>
  </tr>
  <tr>
    <td>J<sub>IK</sub></td>
    <td>inverse kinematics Jacobian of the manipulator</td>
  </tr>
  <tr>
    <td>J<sub>FK</sub></td>
    <td>forward kinematics Jacobian of the manipulator</td>
  </tr>
  <tr>
    <td>Y<sub>i(l)</sub> ∈ R<sup>6</sup></td>
    <td>screw coordinate vector of joint i of limb l represented in F<sub>0</sub> in reference configuration</td>
  </tr>
  <tr>
    <td>X<sub>i(l)</sub> ∈ R<sup>6</sup></td>
    <td>screw coordinate vector of joint i of limb l represented in body-fixed frame F<sub>i(l)</sub></td>
  </tr>
  <tr>
    <td>u ∈ R<sup>N<sub>act</sub></sup></td>
    <td>vector of actuator forces/torques</td>
  </tr>
</table>
## References

[1] J. Merlet, *Parallel Robots*. Springer, 2006.

[2] C. Gosselin and L. Schreiber, “Redundancy in parallel mechanisms: A review,” *ASME. Appl. Mech. Rev.*, vol. 10, no. 1, p. 15 pages, 2018.

[3] M. Bennehar, A. Chemori, M. Bouri, L. Jenni, and F. Pierrot, “A new rise-based adaptive control of pkms: design, stability analysis and experiments,” *International Journal of Control*, vol. 91, no. 3, pp. 593–607, 2018.

[4] K. Lilly and D. Orin, “Alternate formulations for the manipulator inertia matrix,” *The International Journal of Robotics Research*, vol. 10, no. 1, pp. 64–74, 1991.

[5] G. Rodriguez, A. Jain, and K. Kreutz-Delgado, “A spatial operator algebra for manipulator modeling and control,” *The International Journal of Robotics Research*, vol. 10, no. 4, pp. 371–381, 1991.

[6] J. J. Uicker, B. Ravani, and P. N. Sheth, *Matrix Methods in the Design Analysis of Mechanisms and Multi-body Systems*. Cambridge University Press, 2013.

[7] A. Jain, “Graph theoretic foundations of multibody dynamics, part ii: Analysis and algorithms,” *Multi-body System Dynamics*, vol. 26, no. 3, pp. 335–365, Oct 2011.

[8] R. W. Brockett, “Robotic manipulators and the product of exponentials formula,” *Mathematical Theory of Networks and Systems, Lecture Notes in Control and Information Sciences*, vol. 58, pp. 120–129, 1984.

[9] F. Park, B. Kim, C. Jang, and J. Hong, “Geometric algorithms for robot dynamics: A tutorial review,” *ASME. Appl. Mech. Rev.*, vol. 70, no. 1, p. 18 pages, 2018.

[10] J. Herve, “Intrinsic formulation of problems of geometry and kinematics of mechanisms,” *Mech. Mach. Theory*, vol. 17, no. 3, pp. 179–184, 1982.

[11] K. M. Lynch and F. C. Park, *Modern Robotics*. Cambridge, 2017.

[12] R. Murray, Z. Li, and S. Sastry, *A Mathematical Introduction to Robotic Manipulation*. CRC Press, 1994.

[13] J. Selig, *Geometric Fundamentals of Robotics*. Springer, 2005.

[14] M. Carricato and V. Parenti-Castelli, “Singularity-free fully-isotropic translational parallel mechanisms,” *The International Journal of Robotics Research*, vol. 21, no. 2, pp. 161–174, 2002.

[15] C. Gosselin and X. Kong, “Kinematics and singularity analysis of a novel type of 3-crr 3-dof translational parallel manipulator,” *The International Journal of Robotics Research*, vol. 21, no. 9, pp. 791–798, 2002.

[16] X. Kong and C. M. Gosselin, *Type Synthesis of Linear Translational Parallel Manipulators*. Dordrecht: Springer Netherlands, 2002, pp. 453–462.

[17] H. S. Kim and L.-W. Tsai, *Evaluation of a Cartesian Parallel Manipulator*. Dordrecht: Springer Netherlands, 2002, pp. 21–28.

[18] H. Kim and L. Tsai, “Design optimization of a cartesian parallel manipulator,” *ASME Journal of Mechan-

ical Design*, vol. 125, no. 1, pp. 43–51, 2003.

[19] D. Stewart, “A platform with 6 degrees of freedom,” *Proc. Institution of Mechanical Engineers*, vol. 180, no. 15, pp. 371–386, 1965.

[20] K. Lee and D. Shah, “Dynamic analysis of a three-degrees-of-freedom in-parallel actuated manipulator,” *IEEE Journal on Robotics and Automation*, vol. 4, no. 3, pp. 361–367, June 1988.

[21] Y. Nakamura and M. Ghodoussi, “Dynamics computation of closed-link robot mechanisms with nonredundant and redundant actuators,” *IEEE Transactions on Robotics and Automation*, vol. 5, no. 3, pp. 294–302, June 1989.

[22] V. Mata, S. Provenzano, J. Cuadrado, and F. Valero, “Inverse dynamic problem in robots using gibbs-appell equations,” *Robotica*, vol. 20, no. 1, pp. 59–67, 2002.

[23] V. Mata, N. Farhat, M. Diaz-Rodriguez, A. Valera, and A. Page, “Dynamic parameter identification for parallel manipulators,” in *Parallel Manipulators, towards New Applications, (Huapeng Wu edt.). IntechOpen, 2008*.

[24] E. Abedloo, A. Molaei, and H. D. Taghirad, “Closed-form dynamic formulation of spherical parallel manipulators by gibbs-appell method,” in *RSI/ISM International Conference on Robotics and Mechatronics, Tehran, Iran*, October 15-17 2014, pp. 576–581.

[25] A. Müller, “Internal preload control of redundantly actuated parallel manipulators –its application to backlash avoiding control,” *IEEE Trans. Robotics*, vol. 21, no. 4, pp. 668–677, 2005.

[26] P. Nikravesh, “Systematic reduction of multibody equations of motion to a minimal set,” *Int. J. Non-Linear Mechanics*, vol. 25, no. 2, pp. 143–151, 1990.

[27] R. Wehage and E. J. Haug, “Generalized coordinate partitioning for dimension reduction in analysis of constrained dynamic systems,” *Journal of Mechanical Design*, vol. 104, pp. 247–255, 1982.

[28] K. T. Wehagea, R. A. Wehageb, and B. Ravani, “Generalized coordinate partitioning for complex mechanisms based on kinematic substructuring,” *Mech. Mach. Theory*, vol. 92, pp. 464–483, 2015.

[29] P. Maisser, “Differential-geometric methods in multibody dynamics,” *Nonlinear Anal.*, vol. 30, no. 8, pp. 5127–5133, 1997.

[30] P. Voronets, “Equations of motion for nonholonomic systems,” *Matem. Sbornik*, vol. 22, no. 4, 1901.

[31] P. Woronetz, “Über die Bewegung eines st arren Körpers, der ohne Gleitung auf einer beliebigen Fläche rollt,” pp. 410–453, 1910.

[32] P. Guglielmetti and R. Longchamp, “A closed form inverse dynamics model of the delta parallel robot,” *IFAC Proceedings Volumes*, vol. 27, no. 14, pp. 51–56, 1994, fourth IFAC Symposium on Robot Control, Capri, Italy, September 19-21, 1994. [Online]. Available: http://www.sciencedirect.com/science/article/pii/S1474667017472946

[33] B. Dasgupta and T. Mruthyunjaya, “A Newton-Euler
formulation for the inverse dynamics of the Stewart platform manipulator,” *Mechanism and Machine Theory*, vol. 33, no. 8, pp. 1135–1152, 1998.

[34] J. Wang and C. M. Gosselin, “A new approach for the dynamic analysis of parallel manipulators,” *Multibody System Dynamics*, vol. 2, no. 3, pp. 317–334, Sep 1998. [Online]. Available: https://doi.org/10.1023/A:1009740326195

[35] B. Ding, B. Cazzolato, S. Grainger, and R. Stanley, “Active preload control of a redundantly actuated stewart platform for backlash prevention,” *Robotics and Computer-Integrated Manufacturing*, vol. 32, pp. 11–24, 2015.

[36] E. Haug, *Computer-Aided Kinematics and Dynamics of Mechanical Systems*. Allyn and Bacon, 1989.

[37] P. Nikravesh, *Computer-aided analysis of mechanical systems*. Prentice Hall, 1988.

[38] A. A. Shabana, *Dynamics of Multibody Systems*, 4th ed. Cambridge University Press, 2013.

[39] E. Bayo, J. G. D. Jalon, and M. A. Serna, “A modified Lagrangian formulation for the dynamic analysis of constrained mechanical systems,” *Computer Methods in Applied Mechanics and Engineering*, vol. 71, no. 2, pp. 183–195, 1988.

[40] E. Bayo and R. Ledesma, “Augmented Lagrangian and mass-orthogonal projection methods for constrained multibody dynamics,” *Nonlinear Dynamics*, vol. 9, no. 1, pp. 113–130, Feb 1996.

[41] J. Chung and G. Hulbert, “The generalized-α method,” *ASME. J. Appl. Mech*, vol. 60, no. 2, pp. 371–375, 1993.

[42] N. Orlandea, D. Calahan, and M. Chace, “A sparsity oriented approach to the dynamic analysis and design of mechanical systems –part 1,” *ASME. J. Eng. Ind.*, vol. 99, no. 3, pp. 773–779, 1977.

[43] ——, “A sparsity oriented approach to the dynamic analysis and design of mechanical systems –part 2,” *ASME. J. Eng. Ind.*, vol. 99, no. 3, pp. 780–784, 1977.

[44] P. Malczyk, J. Fraczek, F. González, and J. Cuadrado, “Index-3 divide-and-conquer algorithm for efficient multibody system dynamics simulations: theory and parallel implementation,” *Nonlinear Dynamics*, vol. 95, no. 1, pp. 727–747, Jan 2019.

[45] Brüls, A. Cardona, and M. Arnold, “Lie group generalized-alpha time integration of constrained flexible multibody systems,” *Mech. Mach. Theory*, vol. 34, pp. 121–137, 2012.

[46] A. Müller, “Lie-group integration method for constrained multibody systems in state space,” *Multibody System Dynamics*, vol. 34, no. 3, pp. 275–305, 2015.

[47] J. D. Jalon, J. Unda, and A. Avello, “Natural coordinates for the computer analysis of multibody systems,” *Computer Methods in Applied Mechanics and Engineering*, vol. 56, no. 3, pp. 309–327, 1986. [Online]. Available: http://www.sciencedirect.com/science/article/pii/0045782518000447

[48] J. G. de Jalon and E. Bayo, *Kinematic and Dynamic Simulation of Multibody Systems: The Real Time*

Challenge. Berlin, Heidelberg: Springer, 1994.

[49] J. Zhao, F. Chu, and Z. Feng, “Kinematics of spatial parallel manipulators with tetrahedron coordinates,” *IEEE Transactions on Robotics*, vol. 30, no. 1, pp. 233–243, Feb 2014.

[50] J. Zhao, Z. Feng, F. Chu, and N. Ma, *Advanced Theory of Constraint and Motion Analysis for Robot Mechanisms*. Elsevier, 2014.

[51] A. K. Sharma and S. K. Saha, “Dynamics of a space manipulator: Relative vs. natural coordinates,” *The Proceedings of the Asian Conference on Multibody Dynamics*, vol. 2016.8, 2016.

[52] W. Schielen, “Dynamics of complex multibody systems,” *Solids Mech. Arch.*, vol. 9, no. 2, pp. 159–195, 1984.

[53] T. Kane and D. Levinson, *Dynamics: Theory and Applications*. Mcgraw Hill, 1985.

[54] ——, *Elastic Multibody Dynamics*. Springer, 2008.

[55] J. Wittenburg, “Dynamics of multibody systems –a brief review,” *Acta Astronautica*, vol. 20, pp. 89–92, 1989. [Online]. Available: http://www.sciencedirect.com/science/article/pii/009457658990057X

[56] ——, *Dynamics of Multibody Systems*, 2nd ed. Springer, 2008.

[57] M. Chace, “Analysis of the time-dependence of multi-freedom mechanical systems in relative coordinates,” *ASME J. Eng. Ind.*, vol. 89, no. 1, pp. 119–125, 1967.

[58] D. Orin, R. McGhee, M. Vukobratović, and G. Hartoch, “Kinematic and kinetic analysis of open-chain linkages utilizing newton-euler methods,” *Mathematical Biosciences*, vol. 43, no. 1, pp. 107–130, 1979. [Online]. Available: http://www.sciencedirect.com/science/article/pii/0025556479901044

[59] G. Rodriguez, “Kalman filtering, smoothing, and recursive robot arm forward and inverse dynamics,” *IEEE Journal on Robotics and Automation*, vol. 3, no. 6, pp. 624–639, December 1987.

[60] J. Hollerbach, “A recursive Lagrangian formulation of manipulator dynamics and a comparative study of dynamics formulation complexity,” *IEEE Transactions on Systems, Man, and Cybernetics*, vol. 10, no. 11, pp. 730–736, Nov 1980.

[61] W. Blajer, R. Seifried, and K. Kołodziejczyk, “Servo-constraint realization for underactuated mechanical systems,” *Archive of Applied Mechanics*, vol. 85, no. 9, pp. 1191–1207, Sep 2015. [Online]. Available: https://doi.org/10.1007/s00419-014-0959-2

[62] J. Luh and Yuan-Fang Zheng, “Computation of input generalized forces for robots with closed kinematic chain mechanisms,” *IEEE Journal on Robotics and Automation*, vol. 1, no. 2, pp. 95–103, June 1985.

[63] J. Angeles and S. Lee, “The formulation of dynamical equations of holonomic mechanical systems using a natural orthogonal complement,” *ASME J. Appl. Mech.*, vol. 9, no. 5, pp. 243–244, 1988.
[64] J. Angeles, *Fundamentals of robotic mechanical systems*, 3rd ed. Springer, 2007.

[65] R. Huston and C. Passerello, “On constraint equations
a new approach,” *ASME J. Applied Mechanics*, vol. 1974, pp. 780–784, 1977.

[66] K. E. Zanganeh, R. Sinatra, and J. Angeles, “Kinematics and dynamics of a six-degree-of-freedom parallel manipulator with revolute legs,” *Robotica*, vol. 15, no. 4, pp. 385–394, 1997.

[67] S. K. Saha and W. O. Schiehlen, “Recursive kinematics and dynamics for parallel structured closed-loop multibody systems,” *Mechanics of Structures and Machines*, vol. 29, no. 2, pp. 143–175, 2001.

[68] P. Maisser, “Analytische Dynamik von Mehrkörpersystemen,” *Z. Angew. Math. Mech.*, vol. 68, no. 10, pp. 463–481, 1988.

[69] C. Benedict and D. Tesar, “Model formulation of complex mechanisms with multiple inputs: Part 1 – geometry,” *ASME J. Mech. Design*, vol. 100, pp. 474–754, 1978.

[70] M. Thomas and D. Tesar, “Dynamic modeling of serial manipulator arms,” *ASME J. Dynamic Systems, Measurement, and Control*, vol. 104, pp. 218–228, 1982.

[71] K. Sugimoto, “Kinematic and dynamic analysis of parallel manipulators by means of motor algebra,” *ASME J. Mech., Trans., and Automation*, vol. 109, no. 1, pp. 3–7, 1987.

[72] L. Tsai, “Solving the inverse dynamics of a stewart-gough manipulator by the principle of virtual work,” *ASME J. Mech. Des.*, vol. 122, no. 1, pp. 3–9, 1999.

[73] J. Gallardo, J. Rico, A. Frisoli, D. Checcacci, and M. Bergamasco, “Dynamics of parallel manipulators by means of screw theory,” *Mechanism and Machine Theory*, vol. 38, no. 11, pp. 1113–1131, 2003. [Online]. Available: http://www.sciencedirect.com/science/article/pii/S009414X0060154X

[74] J. Lerbet, *Multi-Body Kinematics and Dynamics with Lie Groups*. ISTE Press - Elsevier, 2017.

[75] L. Yanzhu, “Screw-matrix method in dynamics of multibody systems,” *Acta Mechanica Sinica*, vol. 4, no. 2, pp. 165–174, May 1988. [Online]. Available: https://doi.org/10.1007/BF02487718

[76] C. D. Mladenova, “Group theory in the problems of modeling and control of multi-body systems,” *J. Geom. Symmetry Phys.*, vol. 8, pp. 17–121, 2006. [Online]. Available: https://doi.org/10.7546/jgsp-8-2006-17-121

[77] F. C. Park, “Computational aspects of the product-of-exponentials formula for robot kinematics,” *IEEE Transactions on Automatic Control*, vol. 39, no. 3, pp. 643–647, March 1994.

[78] F. Park, J. Bobrow, and S. Ploen, “A lie group formulation of robot dynamics,” *The International Journal of Robotics Research*, vol. 14, no. 6, pp. 609–618, 1995.

[79] S. R. Ploen and F. C. Park, “Coordinate-invariant algorithms for robot dynamics,” *IEEE Transactions on Robotics and Automation*, vol. 15, no. 6, pp. 1130–1135, Dec 1999.

[80] A. Müller, “Screw and lie group theory in multibody dynamics -motion representation and recursive kine-

matics of tree-topology systems,” *Multibody System Dynamics*, vol. 43, no. 1, pp. 1–34, 2018.

[81] ——, “Screw and lie group theory in multibody dynamics-recursive algorithms and equations of motion of tree-topology systems,” *Multibody System Dynamics*, vol. 42, no. 2, pp. 219–248, 2018.

[82] S. R. Ploen and F. C. Park, “A lie group formulation of the dynamics of cooperating robot systems,” *Robotics and Autonomous Systems*, vol. 21, no. 3, pp. 279–287, 1997, critical Issues in Robotics. [Online]. Available: http://www.sciencedirect.com/science/article/pii/S0921889096008020

[83] F. Park, J. Choi, and S. Ploen, “Symbolic formulation of closed chain dynamics in independent coordinates,” *Mech. Mach. Theory*, vol. 34, no. 5, pp. 731–751, 1999.

[84] F. Park and M. Kim, “Lie theory, riemannian geometry, and the dynamics of coupled rigid bodies,” *Zeitschrift für angewandte Mathematik und Physik (ZAMP)*, vol. 51, no. 5, pp. 820–834, 2000.

[85] R. Featherstone, *Rigid Body Dynamics Algorithms*. Springer, 2008.

[86] V. Damic and M. Cohodar, “Dynamic analysis of Stewart platform by bond graphs,” *Procedia Engineering*, vol. 100, pp. 226–233, 2015, 25th DAAAM International Symposium on Intelligent Manufacturing and Automation, 2014.

[87] A. Jain, “Graph theoretic foundations of multibody dynamics, part i: structural properties,” *Multibody Syst. Dyn.*, vol. 26, pp. 307–333, 2011.

[88] D. Talaba, “Mechanical models and the mobility of robots and mechanisms,” *Robotica*, vol. 33, no. 1, pp. 181–193, 2015.

[89] A. Müller, “Kinematic topology and constraints of 30060154 loop linkages,” *Robotica*, vol. 36, pp. 1641–1663, 2018.

[90] L. Tsai and F. Tahmasebi, “Synthesis and analysis of a new class of six-degree-of-freedom parallel minima-nipulators,” *J. Robotic Syst.*, vol. 10, no. 5, pp. 561–580, 1993.

[91] L. Tsai, “The Jacobian analysis of a parallel manipulator using reciprocal screws,” in *Advances in Robot Kinematics: Analysis and Control*, J. Lenarčič and M. Husty, Eds. Springer, Dordrecht, 1998, pp. 327–336.

[92] A. Jain, “Unified formulation of dynamics for serial rigid multibody systems,” *Journal of Guidance, Control and Dynamics*, vol. 14, pp. 531–542, 1991.

[93] S. Saha, “The UDU$^T$ decomposition of manipulator inertia matrix,” in *IEEE Conf. Robot. Automat. Nagoya, Japan*, vol. 3, May 2127, 1995, pp. 2829–2834.

[94] S. Briot and W. Khalil, *Dynamics of Parallel Robots*. Springer, 2015.

[95] I. Ebrahimi, J. Carretero, and R. Boudreau, “3-prrr redundant planar parallel manipulator: Inverse displacement, workspace and singularity analyses,” *Mech. Mach. Theory*, vol. 42, pp. 1007–1016, 2007.

[96] S. Cha, T. A. Lasky, and S. A. Velinsky, “Singular-
ity avoidance for the 3-rrr mechanism using kinematic redundancy,” in *Proceedings 2007 IEEE International Conference on Robotics and Automation*, April 2007, pp. 1195–1200.

[97] S.-H. Cha, T. Lasky, and S. Velinsky, “Determination of the kinematically redundant active prismatic joint variable ranges of a planar parallel mechanism for singularity-free trajectories,” *Mechanism and Machine Theory*, vol. 44, no. 5, pp. 1032–1044, 2009. [Online]. Available: http://www.sciencedirect.com/science/article/pii/S0094114X18305034008001001

[98] I. Ebrahimi, J. A. Carretero, and R. Boudreau, “Kinematic analysis and path planning of a new kinematically redundant planar parallel manipulator,” *Robotica*, vol. 26, no. 3, p. 405413, 2008.

[99] J. V. C. Fontes, N. B. F. da Silva, and M. M. da Silva, “Feedforward control for the kinematically redundant manipulator 3prrr,” in *Advances in Mechanism and Machine Science*, T. Uhl, Ed. Cham: Springer International Publishing, 2019, pp. 2119–2128.

[100] J. Kotlarski, H. Abdellatif, and B. Heimann, “Improving the pose accuracy of a planar 3rrr parallel manipulator using kinematic redundancy and optimized switching patterns,” in *2008 IEEE International Conference on Robotics and Automation*, May 2008, pp. 3863–3868.

[101] J. Kotlarski, T. Do Thanh, B. Heimann, and T. Ortmair, “Optimization strategies for additional actuators of kinematically redundant parallel kinematic machines,” in *2010 IEEE International Conference on Robotics and Automation*, May 2010, pp. 656–661.

[102] J. V. C. Fontes, J. C. Santos, and M. M. d. Silva, “Optimization strategies for actuators of kinematically redundant manipulators to achieve high dynamic performance,” in *Joint Conference on Robotics: SBR-LARS Robotics Symposium and Robocontrol, 18-23 October 2014, San Carlos - Sao Paulo, Brazil*, Oct 2014, pp. 31–36.

[103] A. G. Ruiz, J. C. Santos, J. Croes, W. Desmet, and M. M. da Silva, “On redundancy resolution and energy consumption of kinematically redundant planar parallel manipulators,” *Robotica*, vol. 36, no. 6, p. 809821, 2018.

[104] O. G. Alba, J. A. Pamanes, and P. Wenger, “Trajectory planning of a redundant parallel manipulator changing of working mode,” in *12th IFTOM World Congress, Besançon (France), June 18-21, 2017*, p. 6.

[105] D. Reveles, J. A. Pamanes, and P. Wenger, “Trajectory planning of kinematically redundant parallel manipulators by using multiple working modes,” *Mechanism and Machine Theory*, vol. 98, pp. 216–230, 2016. [Online]. Available: http://www.sciencedirect.com/science/article/pii/S0094114X15002368

[106] A. L. Orekhov and N. Simaan, “Directional stiffness modulation of parallel robots with kinematic redundancy and variable stiffness joints,” *ASME J. of Mech. and Rob.*, vol. 11, 2019.

[107] M. G. Mohamed and C. M. Gosselin, “Design and

analysis of kinematically redundant parallel manipulators with configurable platforms,” *IEEE Transactions on Robotics*, vol. 21, no. 3, pp. 277–287, June 2005.

[108] B. N. R. Abadi, M. Farid, and M. Mahzoon, “Redundancy resolution and control of a novel spatial parallel mechanism with kinematic redundancy,” *Mechanism and Machine Theory*, vol. 133, pp. 112–126, 2019. [Online]. Available: http://www.sciencedirect.com/science/article/pii/S0094114X18305034008001001

“Kinematic analysis for a six-degree-of-freedom 3-prps parallel mechanism,” *IEEE Journal on Robotics and Automation*, vol. 4, no. 5, pp. 561–565, Oct 1988.

[110] R. I. Alizade, N. R. Tagiyev, and J. Duffy, “A forward and reverse displacement analysis of a 6-dof in-parallel manipulator,” *Mechanism and Machine Theory*, vol. 29, no. 1, pp. 115–124, 1994. [Online]. Available: http://www.sciencedirect.com/science/article/pii/S0094114X94900248

[111] C. Gosselin, T. Laliberte, and A. Veillette, “Singularity-free kinematically redundant planar parallel mechanisms with unlimited rotational capability,” *IEEE Transactions on Robotics*, vol. 31, no. 2, pp. 457–467, April 2015.

[112] L.-T. Schreiber and C. Gosselin, “Exploiting the kinematic redundancy of a (6+3) degrees-of-freedom parallel mechanism,” *ASME J. Mechanical Design*, vol. 11, no. 2, p. 10 pages, 2019.

[113] ——, “Kinematically redundant planar parallel mechanisms: Kinematics, workspace and trajectory planning,” *Mechanism and Machine Theory*, vol. 119, pp. 91–105, 2018. [Online]. Available: http://www.sciencedirect.com/science/article/pii/S0094114X17308524

[114] C. Wampler, “Inverse kinematic functions for redundant manipulators,” in *Proceedings. 1987 IEEE International Conference on Robotics and Automation*, 31 March-3 April 1987, Raleigh, NC, USA, vol. 4, March 1987, pp. 610–617.

[115] M. Galicki, “Time-optimal controls of kinematically redundant manipulators with geometric constraints,” *IEEE Transactions on Robotics and Automation*, vol. 16, no. 1, pp. 89–93, Feb 2000.

[116] S. Ma and M. Watanabe, “Time optimal path-tracking control of kinematically redundant manipulators,” *JSME International Journal Series C Mechanical Systems, Machine Elements and Manufacturing*, vol. 47, no. 2, pp. 582–590, 2004.

[117] C. Gibson and K. Hunt, “Geometry of screw systems-1: Screws: Genesis and geometry,” *Mech. Mach. Theory*, vol. 25(1), pp. 1–10, 1990.

[118] ——, “Geometry of screw systems-2: classification of redundant systems,” *Mech. Mach. Theory*, vol. 25(1), pp. 11–27, 1990.

[119] J. R. Martinez and J. Duffy, “Classification of screw systems-i. one- and two-systems,” *Mech. Mach. Theory*, vol. 27(4), pp. 459–470, 1992.

[120] ——, “Classification of screw systems-ii. three-
systems,” *Mech. Mach. Theory*, vol. 27(4), pp. 471–490, 1992.

[121] J. Merlet, “Singularity configurations of parallel manipulators and Grassman geometry,” *The International Journal of Robotics Research*, vol. 10(2), pp. 123–134, 1991.

[122] F. Hao and J. M. McCarthy, “Conditions for line-based singularities in spatial platform manipulators,” *Journal of Robotic Systems*, vol. 15, no. 1, pp. 43–55, 1998.

[123] I. Bonev and C. Gosselin, “Singularity analysis of 3-dof planar parallel mechanisms via screw theory,” *ASME J. Mechanical Design*, vol. 125, no. 3, pp. 573–581, 2003.

[124] A. Wolf and M. Shoham, “Investigation of parallel manipulators using linear complex approximation,” *ASME J. Mechanical Design*, vol. 125, no. 3, pp. 564–572, 2003.

[125] C. Gosseling and J. Angeles, “Singular analysis of closed-loop kinematic chains,” *IEEE Trans. Robotics and Automation*, vol. 6, no. 3, pp. 281–290, 1990.

[126] L. Tsai, *Robot Analysis: The Mechanics of Serial and Parallel Manipulators*. John Wiley & Sons, Inc., 1999.

[127] B. Siciliano and O. Khatib, *Springer Handbook of Robotics*, 2nd ed. Springer, 2016.

[128] D. E. Whitney, “Resolved motion rate control of manipulators and human prostheses,” *IEEE Transactions on Man-Machine Systems*, vol. 10, no. 2, pp. 47–53, June 1969.

[129] U. M. Ascher, H. Chin, and S. Reich, “Stabilization of daes and invariant manifolds,” *Numerische Mathematik*, vol. 67, no. 2, pp. 131–149, Mar 1994.

[130] U. M. Ascher, “Stabilization of invariants of discretized differential systems,” *Numerical Algorithms*, vol. 14, no. 1, pp. 1–24, Apr 1997.

[131] C. Gosselin, “Parallel computational algorithms for the kinematics and dynamics of planar and spatial parallel manipulators,” *ASME J. Dyn. Sys., Meas., Control.*, vol. 118, no. 1, pp. 22–28, 1996.

[132] E. Kreyszig, *Differential Geometry*. Courier Corporation, 1959.

[133] A. Müller, “Coordinate mappings for rigid body motions,” *ASME Journal of Computational and Nonlinear Dynamic*, vol. 12(2), 2016.