Keywords

1 Introduction

Inverse kinematics, which is also called inverse position problem, is aimed at formulating kinematic equation of a mechanism at the given pose and solving all the joint parameters (variables). It is a fundamental problem in kinematical analysis, design and synthesis for both serial mechanisms (SMs) and parallel mechanisms (PMs) [3, 7]. Solving analytical solution of inverse kinematics is the prerequisite for trajectory planning, precise control and manipulation of mechanisms. Because all the joint parameters of a PM can be obtained through solving the joint parameters in each of its limbs sharing the same moving platform, inverse kinematics of a PM can be decomposed into several inverse kinematics problems of SMs. According to the mathematical tools that are used to formulate kinematic equations, the existing methods to deal with inverse kinematics can be classified into two categories, i.e., vector chain based method and exponential matrix based method.

In vector chain based method, three-dimensional position vectors are used to formulate the kinematic equations through building the mapping between the positions and orientations of the given pose. In the formulated position equations, all joint parameters are independent and decoupled. Hence, the equations can be solved by means of elimination. The vector chain based method can be traced back to the early research of theoretical kinematics, and detailedly discussed and concluded by Wampler [8] and Craig [1]. Based upon this, inverse kinematics of SMs constituted by six revolute (R) joints are solved by Raghavan and Roth [5] through engine value and vector analysis of several univariate polynomial equation with high-order. Because lower mobility SM can be regarded as the sub-chain of six degree-of-freedom (DoF) SM, and six DoF SM can be regarded as the sub-chain of SM with higher DoFs, this method can be extended to solve any SM. It should be noted that nonlinear equations relating the joint parameters and the given orientations needed to be solved when the number of DoFs of the SM is more than three. This brings huge difficulties to analytical solution of inverse kinematics. Thus, numerical methods are usually needed when solving higher DoF SMs.

Using exponential matrix with joint parameter to describe pose transformation between adjacent links, the kinematic equation can be obtained by multiplying these matrices together. In the formulated kinematic equation, all the joint parameters are in the exponents, the algebraic operations can only be carried out using Baker-Campbell-Hausdorff formula or Taylor series expansion. Because there are too many terms in the expanded matrix polynomials, the kinematic equations are hard to be analytically solved. Thus, solution of inverse kinematics mostly relies on numerical methods [2]. For the kinematic equations formulated by exponential matrix based method, inverse kinematics can also be solved by geometrical methods. Based upon Kahan’s research work, Paden [4] decomposed the inverse kinematics of SMs into several typical sub-problems through concluding the common structure units of SMs. The analytical solution of each sub-problem is given by geometrical and algebraic derivations. It should be noted that the Paden-Kahan sub-problems do not cover all the possible structure units of SMs. Hence, some SMs cannot be solved applying these sub-problems.

From the above analysis, it can be concluded that the existing methods cannot obtain analytical solution of inverse kinematics for arbitrary SMs because of the mathematical tools used. Both vector chain and exponential matrix have some limitations in describing finite motions and formulating kinematic equations of mechanisms. Hence, the clear algebraic mapping between all the joint parameters and the given pose has not been built. As the concise and non-redundant description of finite motions with analytical composition screw triangle product [6], finite screw has the potential to overcome the limitations of vector chain and exponential matrix. As shown in the authors’ previous work [6, 9, 10], the algebraic structures of finite screws were revealed and the derivative mapping between finite and instantaneous screws was built, resulting in a general and consistent method to unify type synthesis and kinematic analysis under the umbrella of screw theory. In this paper, inverse kinematics will be carried out employing finite screws, which leads to a systematic and thorough theoretical framework that unifies topological, position and orientation (pose), velocity modeling and analysis together.

Based upon the authors’ previous work, this paper presents a generalized method to analytically do inverse kinematics of PMs using finite screw theory. The paper is organized as follows. Having a brief review of the state-of-the-art of the existing methods for inverse kinematics in Sect. 1, Sect. 2 presents the new method to algebraically formulate kinematic equations of a PM and its limbs employing finite screws. In Sect. 3, the general procedures to analytically solve the finite screw based kinematic equation are given. A PM with three translational and one rotational Schoenflies motion is taken as an example to verify the validity of the proposed method in Sect. 4 before the conclusions are drawn in Sect. 5.

2 Finite Screw Based Kinematic Equations

A finite motion of a rigid body from its initial pose to arbitrary pose can be presented as a rotation about the Chasles’ axis followed by a translation along that axis, which can be described by a finite screw \( \varvec{S}_{f} \) in quasi-vector [6] form as

$$ \varvec{S}_{f} = 2\,\tan \,\frac{\theta }{2}\left( {\begin{array}{*{20}c} {\varvec{s}_{f} } \\ {\varvec{r}_{f} \times \varvec{s}_{f} } \\ \end{array} } \right) + t\left( {\begin{array}{*{20}c} {\mathbf{0}} \\ {\varvec{s}_{f} } \\ \end{array} } \right) $$
(1)

where \( \varvec{s}_{f} \) and \( \varvec{r}_{f} \) denote the unit vector and position vector of the finite motion axis, \( \theta \) and \( t \) are the angular and linear displacement about/along that axis.

A SM constituted by n one-DOF joints (R joints and prismatic (P) joints) is shown in Fig. 1. Using finite screws to describe the finite motions generated by R and P joints, the finite motions realized by the end-effector can be expressed by screw triangle product [6]. Thus, the kinematic equation of a SM at a given pose can be formulated as

Fig. 1.
figure 1

Finite motions of a SM

$$ \varvec{S}_{{f,\text{SM},n}} \vartriangle \varvec{S}_{{f,\text{SM},n - 1}} \vartriangle \cdots \vartriangle \varvec{S}_{{f,\text{SM},1}} = \varvec{S}_{{f,\text{SM}}} $$
(2)
$$ \varvec{S}_{{f,\text{SM},k}} = \left\{ {\begin{array}{*{20}c} {2\tan \,\frac{{\theta_{{\text{SM},k}} }}{2}\left( {\begin{array}{*{20}c} {\varvec{s}_{{\text{SM},k}} } \\ {\varvec{r}_{{\text{SM},k}} \times \varvec{s}_{{\text{SM}k}} } \\ \end{array} } \right)} & {\text{R} {\text{ joint }}} \\ {t_{{\text{SM},k}} \left( {\begin{array}{*{20}c} {\mathbf{0}} \\ {\varvec{s}_{{\text{SM},k}} } \\ \end{array} } \right)} & {\text{P joint}} \\ \end{array} ,\,k = 1,2, \cdots ,n} \right. $$

where \( \varvec{S}_{{f,\text{SM}}} \) denotes the given pose of the SM, the denotations of the symbols in Eq. (2) can be referred to those in Eq. (1).

For a PM composed of l limbs, each limb is a SM sharing the same end-effector, i.e. the moving platform of the PM. Hence, all the joint parameters can be obtained through solving l kinematic equations relating l limbs in form of Eq. (2).

$$ \varvec{S}_{{f,i,n_{i} }} \vartriangle \varvec{S}_{{f,i,n_{i} - 1}} \vartriangle \cdots \vartriangle \varvec{S}_{f,i,1} = \varvec{S}_{f,PM} ,\,\,i = 1,2, \cdots ,l $$
(3)

where \( \varvec{S}_{f,i,k} \) (\( k = 1,2, \cdots ,ni \)) denotes the finite screw generated by the kth joint in the ith limb, \( \varvec{S}_{{f,\text{PM}}} \) is the given pose of the PM.

Equation (3) can be equivalently rewritten using screw triangle product, resulting in clear algebraic mappings between the joint parameters \( \theta_{i,k} \), \( t_{i,k} \) and the given pose \( \varvec{S}_{{f,\text{PM}}} \). In this way, the joint parameters can be solved by algebraic derivations.

3 Generalized Method to Solve Kinematic Equations

According to Reference [6], the resultant finite screw composited by several finite screws has the quasi-vector form of Eq. (1). Thus, the left side of Eq. (3) can always be rewritten into the following form

$$ \varvec{S}_{{f,i,n_{i} }} \vartriangle \varvec{S}_{{f,i,n_{i} - 1}} \vartriangle \cdots \vartriangle \varvec{S}_{f,i,1} = 2\,\tan \,\frac{{\theta_{i} }}{2}\left( {\begin{array}{*{20}c} {\varvec{s}_{f,i} } \\ {\varvec{r}_{f,i} \times \varvec{s}_{f,i} } \\ \end{array} } \right) + t_{i} \left( {\begin{array}{*{20}c} {\mathbf{0}} \\ {\varvec{s}_{f,i} } \\ \end{array} } \right) $$
(4)

where \( \varvec{s}_{f,i} \), \( \varvec{r}_{f,i} \), \( \theta_{i} \) and \( t_{i} \) of the ith limb are functions of the joint parameters \( \theta_{i,k} \), \( t_{i,k} \) of that limb.

If the pose of the PM is given as

$$ \varvec{S}_{{f,\text{PM}}} = 2\,\tan \,\frac{{\theta_{{\text{PM}}} }}{2}\left( {\begin{array}{*{20}c} {\varvec{s}_{{f,\text{PM}}} } \\ {\varvec{r}_{{f,\text{PM}}} \times \varvec{s}_{{f,\text{PM}}} } \\ \end{array} } \right) + t_{{\text{PM}}} \left( {\begin{array}{*{20}c} {\mathbf{0}} \\ {\varvec{s}_{{f,\text{PM}}} } \\ \end{array} } \right) $$
(5)

the following equations can be derived based upon Eqs. (3)–(5)

$$ \tan \,\frac{{\theta_{i} }}{2} = \tan \,\frac{{\theta_{{\text{PM}}} }}{2},\,\varvec{s}_{f,i} = \varvec{s}_{{f,\text{PM}}} $$
(6)
$$ \varvec{r}_{f,i} \times \varvec{s}_{f,i} + \frac{{t_{i} }}{{2\tan \,\frac{{\theta_{i} }}{2}}}\varvec{s}_{f,i} = \varvec{r}_{{f,\text{PM}}} \times \varvec{s}_{{f,\text{PM}}} + \frac{{t_{{\text{PM}}} }}{{2\tan \,\frac{{\theta_{{\text{PM}}} }}{2}}}\varvec{s}_{{f,\text{PM}}} $$
(7)

Equation (6) is the mapping between the joint parameters relating rotational motions of the ith limb and the orientation of the moving platform. Equation (7) is the mapping between the joint parameters relating translational motions of the limb and the position of the moving platform. When \( \varvec{S}_{{f,\text{PM}}} \) is given, all joint parameters can be analytically solved using Eqs. (6) and (7). The detailed steps of inverse kinematics for PMs are listed as follows:

Step 1: Formulate kinematic equations of each limb as Eq. (3) (Eqs. (6) and (7));

Step 2: Solve rotational parameters of each limb using Eq. (6);

Step 3: Solve translational parameters of each limb using Eq. (7).

4 Examples

A PM with Schoenflies motion is for example, this PM is composed of four limbs in which every two limbs placed oppositely have the same structures, i.e., P1P2P3R a R b and P1P2R a R a R c . Given \( \varvec{S}_{{f,\text{PM}}} \), we solve one limb P1P2P3R a R b and one limb P1P2R a R a R c in this Section.

Limb P 1 P 2 P 3 R a R b :

The kinematic equation can be formulated by Eqs. (3), (6) and (7)

$$ 2\,\tan \,\frac{{\theta_{b} }}{2}\left( {\begin{array}{*{20}c} {\varvec{s}_{b} } \\ {\varvec{r}_{b} \times \varvec{s}_{b} } \\ \end{array} } \right)\vartriangle 2\,\tan \,\frac{{\theta_{a} }}{2}\left( {\begin{array}{*{20}c} {\varvec{s}_{a} } \\ {\varvec{r}_{a} \times \varvec{s}_{a} } \\ \end{array} } \right)\vartriangle t_{{\text{P}_{3} }} \left( {\begin{array}{*{20}c} {\mathbf{0}} \\ {\varvec{s}_{{\text{P}_{3} }} } \\ \end{array} } \right)\vartriangle t_{{\text{P}_{2} }} \left( {\begin{array}{*{20}c} {\mathbf{0}} \\ {\varvec{s}_{{\text{P}_{2} }} } \\ \end{array} } \right)\vartriangle t_{{\text{P}_{1} }} \left( {\begin{array}{*{20}c} {\mathbf{0}} \\ {\varvec{s}_{{\text{P}_{1} }} } \\ \end{array} } \right) = \varvec{S}_{{f,\text{PM}}} $$
(8)
$$ \tan \,\frac{{\theta_{ba} }}{2} = \frac{{\left| {\tan \,\frac{{\theta_{a} }}{2}\varvec{s}_{a} + \tan \,\frac{{\theta_{b} }}{2}\varvec{s}_{b} + \tan \,\frac{{\theta_{a} }}{2}\tan \,\frac{{\theta_{b} }}{2}\left( {\varvec{s}_{a} \times \varvec{s}_{b} } \right)} \right|}}{{1 - \tan \,\frac{{\theta_{a} }}{2}\tan \,\frac{{\theta_{b} }}{2}\varvec{s}_{a}^{\text{T}} \varvec{s}_{b} }} = \tan \,\frac{{\theta_{{\text{PM}}} }}{2}, $$
$$ \varvec{s}_{ba} = \frac{{\tan \,\frac{{\theta_{a} }}{2}\varvec{s}_{a} + \tan \,\frac{{\theta_{b} }}{2}\varvec{s}_{b} + \tan \,\frac{{\theta_{a} }}{2}\tan \,\frac{{\theta_{b} }}{2}\left( {\varvec{s}_{a} \times \varvec{s}_{b} } \right)}}{{\left| {\tan \,\frac{{\theta_{a} }}{2}\varvec{s}_{a} + \tan \,\frac{{\theta_{b} }}{2}\varvec{s}_{b} + \tan \,\frac{{\theta_{a} }}{2}\tan \,\frac{{\theta_{b} }}{2}\left( {\varvec{s}_{a} \times \varvec{s}_{b} } \right)} \right|}} = \varvec{s}_{{f,\text{PM}}} $$
(9)
$$ \varvec{p}_{ba} + \frac{{\varvec{t} \times \varvec{s}_{ba} }}{2} + \frac{\varvec{t}}{{2\tan \frac{{\theta_{ba} }}{2}}} = \varvec{r}_{{f,\text{PM}}} \times \varvec{s}_{{f,\text{PM}}} + \frac{{t_{{\text{PM}}} }}{{2\tan \frac{{\theta_{{\text{PM}}} }}{2}}}\varvec{s}_{{f,\text{PM}}} $$
(10)

where

\( \varvec{p}_{ba} = \frac{{\tan \,\frac{{\theta_{a} }}{2}\left( {\varvec{r}_{a} \, \times \,\varvec{s}_{a} } \right)\, + \,\tan \,\frac{{\theta_{b} }}{2}\left( {\varvec{r}_{b} \, \times \,\varvec{s}_{b} } \right)\, + \,\tan \,\frac{{\theta_{a} }}{2}\tan \,\frac{{\theta_{b} }}{2}\left( {\varvec{s}_{a} \, \times \,\left( {\varvec{r}_{b} \, \times \,\varvec{s}_{b} } \right)\, + \,\left( {\varvec{r}_{a} \, \times \,\varvec{s}_{a} } \right)\, \times \,\varvec{s}_{b} } \right)}}{{\left| {\tan \,\frac{{\theta_{a} }}{2}\varvec{s}_{a} \, + \,\tan \,\frac{{\theta_{b} }}{2}\varvec{s}_{b} \, + \,\tan \,\frac{{\theta_{a} }}{2}\tan \,\frac{{\theta_{b} }}{2}\left( {\varvec{s}_{a} \, \times \,\varvec{s}_{b} } \right)} \right|}}, \)

\( \varvec{t} = t_{{\text{P}_{1} }} \varvec{s}_{{\text{P}_{1} }} + t_{{\text{P}_{2} }} \varvec{s}_{{\text{P}_{2} }} + t_{{\text{P}_{3} }} \varvec{s}_{{\text{P}_{3} }} \)

The two rotational parameters \( \theta_{a} \) and \( \theta_{b} \) can be solved from Eq. (9) as

$$ \theta_{a} = 2\arctan \left( {\frac{{\varvec{s}_{{f,\text{PM}}}^{\text{T}} \left( {\varvec{s}_{a} \times \varvec{s}_{b} } \right)}}{{\varvec{s}_{{f,\text{PM}}}^{\text{T}} \varvec{s}_{b} - \varvec{s}_{a}^{\text{T}} \varvec{s}_{b} \varvec{s}_{{f,\text{PM}}}^{\text{T}} \varvec{s}_{a} }}} \right),\,\theta_{b} = 2\arctan \left( {\frac{{\varvec{s}_{{f,\text{PM}}}^{\text{T}} \left( {\varvec{s}_{a} \times \varvec{s}_{b} } \right)}}{{\varvec{s}_{{f,\text{PM}}}^{\text{T}} \varvec{s}_{a} - \varvec{s}_{a}^{\text{T}} \varvec{s}_{b} \varvec{s}_{{f,\text{PM}}}^{\text{T}} \varvec{s}_{b} }}} \right) $$
(11)

The three translational parameters \( t_{{\text{P}_{1} }} \), \( t_{{\text{P}_{2} }} \) and \( t_{{\text{P}_{3} }} \) can be solved from Eq. (10) as

$$ t_{{\text{P}_{1} }} = \frac{{\varvec{t}^{\text{T}} \left( {\varvec{s}_{{\text{P}_{2} }} \times \varvec{s}_{{\text{P}_{3} }} } \right)}}{{\varvec{s}_{{\text{P}_{1} }}^{\text{T}} \left( {\varvec{s}_{{\text{P}_{2} }} \times \varvec{s}_{{\text{P}_{3} }} } \right)}},\,t_{{\text{P}_{2} }} = \frac{{\varvec{t}^{\text{T}} \left( {\varvec{s}_{{\text{P}_{1} }} \times \varvec{s}_{{\text{P}_{3} }} } \right)}}{{\varvec{s}_{{\text{P}_{2} }}^{\text{T}} \left( {\varvec{s}_{{\text{P}_{1} }} \times \varvec{s}_{{\text{P}_{3} }} } \right)}},\,t_{{\text{P}_{3} }} = \frac{{\varvec{t}^{\text{T}} \left( {\varvec{s}_{{\text{P}_{1} }} \times \varvec{s}_{{\text{P}_{2} }} } \right)}}{{\varvec{s}_{{\text{P}_{3} }}^{\text{T}} \left( {\varvec{s}_{{\text{P}_{1} }} \times \varvec{s}_{{\text{P}_{2} }} } \right)}} $$
(12)

where

$$ \varvec{t} = \left( {\frac{{\varvec{E}_{3} }}{{2\tan \,\frac{{\theta_{ba} }}{2}}} - \frac{{\tilde{\varvec{s}}_{ba} }}{2}} \right)^{ - 1} \left( {\varvec{r}_{{f,\text{PM}}} \times \varvec{s}_{{f,\text{PM}}} + \frac{{t_{{\text{PM}}} }}{{2\tan \,\frac{{\theta_{{\text{PM}}} }}{2}}}\varvec{s}_{{f,\text{PM}}} - \varvec{p}_{ba} } \right), $$

\( \varvec{E}_{3} \) is a unit matrix of order three, \( \tilde{\varvec{s}}_{ba} \) is the skew matrix of \( \varvec{s}_{ba} \).

Limb P 1 P 2 R a R a R c :

The kinematic equation can be formulated

$$ 2\,\tan \,\frac{{\theta_{c} }}{2}\left( {\begin{array}{*{20}c} {\varvec{s}_{c} } \\ {\varvec{r}_{c} \times \varvec{s}_{c} } \\ \end{array} } \right)\vartriangle 2\,\tan \,\frac{{\theta_{{a_{2} }} }}{2}\left( {\begin{array}{*{20}c} {\varvec{s}_{a} } \\ {\varvec{r}_{{a_{2} }} \times \varvec{s}_{a} } \\ \end{array} } \right)\vartriangle 2\,\tan \,\frac{{\theta_{{a_{1} }} }}{2}\left( {\begin{array}{*{20}c} {\varvec{s}_{a} } \\ {\varvec{r}_{{a_{1} }} \times \varvec{s}_{a} } \\ \end{array} } \right)\vartriangle t_{{\text{P}_{2} }} \left( {\begin{array}{*{20}c} {\mathbf{0}} \\ {\varvec{s}_{{\text{P}_{2} }} } \\ \end{array} } \right)\vartriangle t_{{\text{P}_{1} }} \left( {\begin{array}{*{20}c} {\mathbf{0}} \\ {\varvec{s}_{{\text{P}_{1} }} } \\ \end{array} } \right) = \varvec{S}_{{f,\text{PM}}} $$
(13)

The two rotational parameters \( \theta_{{a_{1} }} + \theta_{{a_{2} }} \) and \( \theta_{b} \) can be solved in the similar manner as Eqs. (9) and (11). The three translational parameters \( \theta_{{a_{1} }} \), \( t_{{\text{P}_{1} }} \) and \( t_{{\text{P}_{2} }} \) can be solved from the position part of Eq. (13)

$$ \varvec{t} = \left( {\frac{{\varvec{E}_{3} }}{{2\,\tan \,\frac{{\theta_{ca} }}{2}}} - \frac{{\tilde{\varvec{s}}_{ca} }}{2}} \right)^{ - 1} \left( {\varvec{r}_{{f,\text{PM}}} \times \varvec{s}_{{f,\text{PM}}} + \frac{{t_{{\text{PM}}} }}{{2\,\tan \,\frac{{\theta_{{\text{PM}}} }}{2}}}\varvec{s}_{{f,\text{PM}}} - \varvec{p}_{ca} } \right) $$
(14)

where

$$ \varvec{p}_{ca} = \frac{{\left( {\begin{array}{*{20}l} {\tan \,\,\frac{{\theta_{{a_{1} }} + \theta_{{a_{2} }} }}{2}\left( {\varvec{r}_{{a_{2} }} \times \varvec{s}_{a} } \right) + \tan \,\,\frac{{\theta_{c} }}{2}\left( {\varvec{r}_{c} \times \varvec{s}_{c} } \right)} \hfill \\ { + \tan \,\frac{{\theta_{{a_{1} }} + \theta_{{a_{2} }} }}{2}\tan \,\,\frac{{\theta_{c} }}{2}\left( {\varvec{s}_{a} \times \left( {\varvec{r}_{c} \times \varvec{s}_{c} } \right) + \left( {\varvec{r}_{{a_{2} }} \times \varvec{s}_{a} } \right) \times \varvec{s}_{c} } \right)} \hfill \\ \end{array} } \right)}}{{\left| {\tan \,\frac{{\theta_{{a_{1} }} + \theta_{{a_{2} }} }}{2}\varvec{s}_{a} + \,\tan \,\frac{{\theta_{c} }}{2}\varvec{s}_{c} + \,\tan \,\frac{{\theta_{{a_{1} }} + \theta_{{a_{2} }} }}{2}\,\tan \,\frac{{\theta_{c} }}{2}\left( {\varvec{s}_{a} \times \varvec{s}_{c} } \right)} \right|}} $$
$$ \varvec{t} = \left( {\exp \left( {\theta_{{a_{1} }} \tilde{\varvec{s}}_{a} } \right) - \varvec{E}_{3} } \right)\left( {\varvec{r}_{{a_{2} }} - \varvec{r}_{{a_{1} }} } \right) + t_{{\text{P}_{1} }} \varvec{s}_{{\text{P}_{1} }} + t_{{\text{P}_{2} }} \varvec{s}_{{\text{P}_{2} }} $$

The solution of Eq. (14) is

$$ \theta_{{a_{1} }} = 2\arctan \left( {\frac{{A \pm \sqrt {A^{2} + B^{2} - C^{2} } }}{B + C}} \right), $$
$$ t_{{\text{P}_{1} }} = \frac{{\left( {\varvec{t} - \left( {\exp \left( {\theta_{{a_{1} }} \tilde{\varvec{s}}_{a} } \right) - \varvec{E}_{3} } \right)\left( {\varvec{r}_{{a_{2} }} - \varvec{r}_{{a_{1} }} } \right)} \right)^{\text{T}} \left( {\varvec{s}_{{\text{P}_{2} }} \times \left( {\varvec{s}_{{\text{P}_{1} }} \times \varvec{s}_{{\text{P}_{2} }} } \right)} \right)}}{{\varvec{s}_{{\text{P}_{1} }}^{\text{T}} \left( {\varvec{s}_{{\text{P}_{2} }} \times \left( {\varvec{s}_{{\text{P}_{1} }} \times \varvec{s}_{{\text{P}_{2} }} } \right)} \right)}}, $$
$$ t_{{\text{P}_{2} }} = \frac{{\left( {\varvec{t} - \left( {\exp \left( {\theta_{{a_{1} }} \tilde{\varvec{s}}_{a} } \right) - \varvec{E}_{3} } \right)\left( {\varvec{r}_{{a_{2} }} - \varvec{r}_{{a_{1} }} } \right)} \right)^{\text{T}} \left( {\varvec{s}_{{\text{P}_{1} }} \times \left( {\varvec{s}_{{\text{P}_{1} }} \times \varvec{s}_{{\text{P}_{2} }} } \right)} \right)}}{{\varvec{s}_{{\text{P}_{2} }}^{\text{T}} \left( {\varvec{s}_{{\text{P}_{1} }} \times \left( {\varvec{s}_{{\text{P}_{1} }} \times \varvec{s}_{{\text{P}_{2} }} } \right)} \right)}} $$
(15)

where

$$ A = \left( {\varvec{s}_{a} \times \left( {\varvec{r}_{{a_{2} }} - \varvec{r}_{{a_{1} }} } \right)} \right)^{\text{T}} \left( {\varvec{s}_{{\text{P}_{1} }} \times \varvec{s}_{{\text{P}_{2} }} } \right),\,B = \left( {\varvec{r}_{{a_{2} }} - \varvec{r}_{{a_{1} }} } \right)^{\text{T}} \left( {\varvec{s}_{{\text{P}_{1} }} \times \varvec{s}_{{\text{P}_{2} }} } \right) $$
$$ C = \left( {\varvec{t} + \varvec{r}_{{a_{2} }} - \varvec{r}_{{a_{1} }} } \right)^{\text{T}} \left( {\varvec{s}_{{\text{P}_{1} }} \times \varvec{s}_{{\text{P}_{2} }} } \right) $$

In this way, all the joint parameters of this PM can be analytically solved.

5 Conclusions

This paper presents a generalized and analytical method to solve inverse kinematics of SMs and PMs using finite screw theory. The main merits of this method are:

  1. (1)

    The method can be applied to get analytical solution of inverse kinematics for arbitrary SMs and PMs.

  2. (2)

    The main advantage of this method is accuracy and the analytical solution can be directly used in trajectory planning, precise control of mechanisms.

  3. (3)

    United with the authors’ previous work, all topological, position and orientation (pose), velocity modeling and analysis can be unified into the systematic and consistent framework of screw theory.