Keywords

1 Introduction

The \(3\)-RPRS manipulator is a six-degrees-of-freedom spatial parallel manipulator, which is recently introduced in [1], where the inverse kinematics has been solved. In [2], the forward kinematic (FK) problem has been solved using a joint-space formulation where an 8-degree polynomial equation, namely, the forward kinematic univariate (FKU) (as defined in [3]), has been derived in terms of one of the joint-space variables. In the current work, a geometric approach has been followed to solve the FK problem of the \(3\)-RPRS manipulator in a similar manner as is done for the \(3\)-RPS manipulator in [4]. The manipulator is hypothetically divided into two kinematic sub-chains. Once the input joint variables are fixed, the FK problem converts into an intersection problem of two plane algebraic circular curves corresponding to each of the sub-chains. To obtain the intersection points, a 16-degree FKU has been obtained and it is found that the FKU is even-powered, making it effectively a degree eight polynomial equation. A numerical example is used to illustrate the formulation.

The rest of the paper is organised as follows: in Sect. 2, the geometry of the \(3\)-RPRS manipulator is discussed. Formulation of the FK problem leading to the derivation of the FKU is presented in Sect. 3.

The formulation is illustrated via a numerical example in Sect. 4. The conclusions are presented in Sect. 5.

2 Geometry of the \(3\)-RPRS Manipulator

The moving platform of the \(3\)-RPRS manipulator is in the form of an equilateral triangle, which is inscribed in a circle of radius \({a}\). Each vertex of the said triangle, denoted by \(\varvec{p}_{i} \), \(i = 1, 2, 3\), is connected to the fixed base of the manipulator through a RPRS leg. Only the first two joints, R (revolute) and P (prismatic) of each leg are active (i.e., actuated). The three prismatic joints are mounted on the fixed circular guide of rectangular cross-section, such that their axes intersect at the centre of the guide. A rigid strut of length l, connected to the moving platform via a spherical joint, joins the prismatic pair at the base of each leg via a rotary joint.

As shown in Fig. 1a, the fixed coordinate system \(\{0\}\), given by \(\varvec{o} _{0}\)-\(\varvec{X} _0\varvec{Y} _0\varvec{Z} _0\), is positioned at the centre of the circular guide fixed at the base platform. The coordinate system attached to the moving platform \(\{1\}\), given by \(\varvec{o} _{1}\)-\(\varvec{X} _1\varvec{Y} _1\varvec{Z} _1\), has its origin \(\varvec{o} _{1}\), located at the centroid of the triangle \(\varvec{p} _1\varvec{p} _2\varvec{p} _3\). The \(\varvec{X} _{1}\) axis is directed towards the centre of the spherical joint at \(\varvec{p} _{1}\). Consider another moving coordinate system \(\{2\}\), denoted by \(\varvec{o} _{2}\)-\(\varvec{X} _2\varvec{Y} _2\varvec{Z} _2\), which is obtained by rotating the fixed coordinate system \(\{0\}\) about its \(\varvec{Z} _{0}\) axis through an angle \(\theta _{1}\) in the counter clockwise sense, such that the \(\varvec{X} _{2}\) axis is always aligned with the first prismatic joint axis. The passive rotary joints are located at the points denoted by \(\varvec{b} _{i}\), which are given in the frames \(\{0\}\) and \(\{2\}\), respectively, as

Fig. 1
figure 1

The \(3\)-RPRS manipulator and its conceptual decomposition

$$\begin{aligned} {}^0\varvec{b} _i&= [{d} _{i}\cos \theta _i, {d} _{i}\sin \theta _i, 0]^\top , \end{aligned}$$
(1)
$$\begin{aligned} {}^2\varvec{b} _i&= [{d} _{i}\cos \theta _{i1}, {d} _{i}\sin \theta _{i1}, 0]^\top , \text {where}, \theta _{i1} = \theta _i - \theta _1, \quad i = 1, 2, 3, \end{aligned}$$
(2)

and \({d} _{i}\) is the ith prismatic joint extension (measured from the origin \(\varvec{o} _0\)), \(\theta _{i}\) is the counterclockwise rotation of the ith prismatic joint axis, measured from the axis \(\varvec{X} _0\) about the \(\varvec{Z} _0\) axis.

The positions of the vertices of the top platform in terms of the active and passive variables are given by

$$\begin{aligned} {}^0\varvec{p} _{i}&= {}^0\varvec{b} _{i} +\varvec{R} _Z (\theta _i)[{l} \cos \phi _i, 0, l\sin \phi _i]^\top , \end{aligned}$$
(3)
$$\begin{aligned} {}^2{\varvec{p}}_i&={}^2 {\varvec{b}}_i+\varvec{R} _{Z}(\theta _{i1})[{l} \cos \phi _i, 0, l\sin \phi _i]^\top , \quad i = 1, 2, 3, \end{aligned}$$
(4)

where \(\phi _i\) is the ith passive joint angle made by the strut, measured from the prismatic joint axis.

The position and orientation (or the pose) of the moving platform can be specified uniquely, once the variables, \(\varvec{q} = [\theta _1, \theta _2, \theta _3, {d} _1, {d} _2, {d} _3, \phi _1, \phi _2, \phi _3]^\top \) are known. Out of these, \(\varvec{\theta } = [\theta _1, \theta _2, \theta _3, {d} _1, {d} _2, {d} _3]^\top \) are the active (i.e. actuated) joint variables and \(\varvec{\phi } = [\phi _1, \phi _2, \phi _3]^\top \) are the passive (i.e., unactuated) joint variables.

3 Geometric Formulation of the FK Problem

In the FK problem, the actuator inputs \(\varvec{\theta }\), are known and the pose of the top platform is to be determined via the computation of the remaining configuration variables \(\varvec{\phi }\), from the kinematic constraint equations, that the manipulator needs to satisfy at all times. Towards this, the manipulator is hypothetically decomposed into two kinematic sub-chains at one of the three spherical joints. Consequently, the loop-closure constraints are formulated using the fact that the position of the endpoints of the said sub-chains should be identical.

In Fig. 1b, the manipulator is divided into two kinematic sub-chains at the spherical joint \(\varvec{p} _1\) and this leads to two hypothetically distinct points \(\varvec{p} _{c_1}\) and \(\varvec{p} _{s_1}\), where \(\varvec{p} _{c_1}\) is the point representing the tip of the serial kinematic chain \(\varvec{o} _{0}\varvec{b} _{1}\varvec{p} _{1}\) and \(\varvec{p} _{s_1}\) is the coupler point of the spatial RSSR linkage \(\varvec{b} _{2}\varvec{p} _{2}\varvec{p} _{3}\varvec{b} _{3}\). Geometrically, the locus of the point \(\varvec{p} _{c_1}\), which is the circle \({C = 0}\), should intersect the coupler surface \({S = 0}\), traced by the coupler point \(\varvec{p} _{s_1}\). In order to identify the locus of the points \(\varvec{p} _{c_1}\) and \(\varvec{p} _{s_1}\) and to make those computations easier, all the calculations are performed in the coordinate system \(\{2\}\).

3.1 Number of Assembly Modes of the 3-RPRS Manipulator in The FK Problem

As the name suggests, assembly modes in the FK problem are the different configurations in which the manipulator can be assembled while keeping the actuators fixed at a given set of inputs. The number of assembly modes possible can be found by identifying the various configurations in which the decomposed sub-chains can be assembled back. In other words, it is equal to the number of intersection points possible between the loci of \(\varvec{p} _{c_1}\) and \(\varvec{p} _{s_1}\).

It is shown in [5, p. 433], that the degree of the surface traced by the coupler point of a general spatial RSSR link is 16. Further, in [6], the circularity of the said surface is stated to be 8. Consider the RSSR linkage \(\varvec{b} _{2}\varvec{p} _{2}\varvec{p} _{3}\varvec{b} _{3}\), as shown in Fig. 1b. The degree and the circularity of the coupler surface \(S = 0\), traced by the point \(\varvec{p} _{s_1}\), are \(n_{S} = 16\) and \(c_{S} = 8\), respectively.

Considering the other sub-chain \(\varvec{o} _{0}\varvec{b} _{1}\varvec{p} _{1}\), in Fig. 1b. Point \(\varvec{p} _{c_1}\), which is attached to a rotary joint at \(\varvec{b} _1\) with a strut traces a circle \(C = 0\), with its centre at \(\varvec{b} _1\). Therefore, its degree \({n_{C}} = 2\) and circularity \({c_{C}} = 1\). The number of points of intersection of the coupler surface \(S = 0\) with the circle \(C = 0\) can be calculated by using the extension of the Bezout’s theorem (see [7]):

$$\begin{aligned} n = {n_{S}n_{C} - 2c_{S}c_{C} = 16\times 2 - 2\times 8\times 1 = 16. } \end{aligned}$$
(5)

Therefore, the maximum number of ways in which the \(3\)-RPRS manipulator can be assembled is 16. This result is the same for the \(3\)-RRS and \(3\)-RPS manipulators because of their architectural similarity. All of these have moving triangular platforms connected to the rest of the respective manipulators via spherical joints located at the vertices of the triangle.

3.2 Derivation of the Circularity Constraint, \({C} = \textit{0}\)

Given the input variables \(\varvec{\theta }\), one can determine the positions of the points \(\varvec{b} _1\), \(\varvec{b} _2\) and \(\varvec{b} _3\). Let \({}^{2}\varvec{p} _{c_1} = {}^{2}\varvec{p} _{s_1} = {}^{2}\varvec{p} _1 = [{x}, {y}, {z} ]^\top \). The locus of the point \(\varvec{p} _{c_1}\) is a circle of radius l, with its centre at \(\varvec{b} _1\). The circle lies in the plane \(\varvec{o} _{0}\varvec{b} _{1}\varvec{p} _{1}\), which contains the first limb. The algebraic equations representing the circle \({C} = 0\) in the coordinate system \(\{2\}\) are derived from the constraint equations as follows:

  • Leg-length constraint: The distance between the points \(\varvec{p} _{c_1}\) and \(\varvec{b} _1\) is equal to \({l}\). This leads to the equation of a sphere centred at \(\varvec{b} _1\):

    $$\begin{aligned} \xi _1 \,{\mathop {=}\limits ^{\Delta }}\, ({}^{2}\varvec{p} _{c_1} - {}^{2}\varvec{b} _1 )\cdot ({}^{2}\varvec{p} _{c_1} - {}^{2}\varvec{b} _1 ) = {l} ^2. \end{aligned}$$
    (6)
  • Planarity constraint: The strut \(\varvec{p} _{c_1}\varvec{b} _1\) is always perpendicular to the axis of the rotary joint at \(\varvec{b} _1\). This leads to the equation of the plane in which the point \(\varvec{p} _{c_1}\) is confined to move, which is obtained as follows:

    $$\begin{aligned}&\xi _2 \,{\mathop {=}\limits ^{\Delta }}\, ({}^{2}\varvec{p} _{c_1} - {}^{2}\varvec{b} _1 )\cdot \varvec{e} _{\varvec{Y} _2} = 0, \text {where } \varvec{e} _{\varvec{Y} _2} = [0, 1, 0]^\top ; \end{aligned}$$
    (7)
    $$\begin{aligned} \Rightarrow&{y} =0. \end{aligned}$$
    (8)

The equation of the circle \({C} ({x}, {z}) = 0\) is obtained by substituting the plane equation \({y} = 0\) in the leg-length constraint Eq. (6).

3.3 Derivation of the Coupler Surface, \(S = \textit{0}\)

The surface traced by the coupler point of the RSSR chain \(\varvec{b} _1\varvec{p} _1\varvec{p} _2\varvec{b} _2\), can be formulated in terms of the vector of the variables \(\varvec{\theta } _s =[\phi _2, \phi _3, {x}, {y}, {z}, {l} _2, {l} _3, \theta _{21},\theta _{31}]^\top \). Out of these variables \({l} _2, {l} _3, \theta _{21}, \theta _{31}\) are specified in the FK problem. Hence, the coupler surface can be expressed in terms of \({x, y, z} \) after eliminating the passive variables \(\phi _2, \phi _3\) from the constraint equations. The constraint equations are derived in the following:

  • Loop-closure constraint: The first constraint is defined by closing the RSSR loop, the geometric condition being that the distance between the points \(\varvec{p} _2\) and \(\varvec{p} _3\) is a constant:

    $$\begin{aligned} {g} _{1}(\phi _2, \phi _3) \,{\mathop {=}\limits ^{\Delta }}\, ({}^{2}\varvec{p} _{2} - {}^{2}\varvec{p} _{3} )\cdot ({}^{2}\varvec{p} _{2} - {}^{2}\varvec{p} _3 ) - 3{a} ^2 = 0. \end{aligned}$$
    (9)
  • Rigidity constraints: The remaining two constraint equations can be formulated by using the fact that the distance between the points \(\varvec{p} _{s_1}\) and \(\varvec{p} _j\)\({j} = 2, 3\) are also fixed as the moving platform is rigid:

    $$\begin{aligned} {g} _{2}(\phi _2, {x, y, z})&\,{\mathop {=}\limits ^{\Delta }}\, ({}^{2}\varvec{p} _{s_1} - {}^{2}\varvec{p} _{2} )\cdot ({}^{2}\varvec{p} _{s_1} - {}^{2}\varvec{p} _2 ) - 3{a} ^2 = 0, \end{aligned}$$
    (10)
    $$\begin{aligned} {g} _{3}(\phi _3,{x, y, z})&\,{\mathop {=}\limits ^{\Delta }}\, ({}^{2}\varvec{p} _{s_1} - {}^{2}\varvec{p} _{3} )\cdot ({}^{2}\varvec{p} _{s_1} - {}^{2}\varvec{p} _3 ) - 3{a} ^2 = 0. \end{aligned}$$
    (11)

The passive variables \(\phi _2, \phi _3\) are eliminated by the following procedure: Eqs. (9), (10) and (11) are linear in terms of \(\cos \phi _2, \sin \phi _2, \cos \phi _3, \sin \phi _3\). Solving for \(\cos \phi _2\), \(\sin \phi _2\) from Eqs. (9), (10) and substituting these in the identity \(\cos ^2\phi _2 + \sin ^2\phi _2 = 1\) gives an equation in terms of \(\phi _3, {x, y, z} \):

$$\begin{aligned} \begin{aligned}&g_1(\phi _2, \phi _3) = 0 \\&g_2(\phi _2, {x, y, z}) = 0 \end{aligned}\ \Bigg ) {\mathop {\longrightarrow }\limits ^{\times \phi _2}} {h_1} (\phi _3, {x, y, z}) = 0, \end{aligned}$$
(12)

where the symbol ‘\({\mathop {\longrightarrow }\limits ^{\times \phi _2}} \)’ denotes the elimination of the variable \(\phi _2\) from the equations preceding it. The solution of \(\phi _2\) can be uniquely identified by using the two-argument inverse tangent function\({{\mathrm{atan2}}}(\sin (\cdot ), \cos (\cdot ))\):

$$\begin{aligned} \phi _2 = {{\mathrm{atan2}}}(\sin \phi _2, \cos \phi _2). \end{aligned}$$
(13)

Equation (12) is not linear in terms of \(\cos \phi _3, \sin \phi _3\). The variable \(\phi _3\) is eliminated after transforming the equations \(h_1=0, g_3=0\) to their respective algebraic forms, via the tangent half-angle substitution: \({t} _3 = \tan \left( \frac{\phi _3}{2}\right) \). After the transformation, Eq. (12) becomes a polynomial equation, namely, \({s} _1 = 0\), of degree four in \({t} _3\) and Eq. (11) becomes a quadratic equation, \({s} _2 = 0\), in the variable \({t} _3\). The coupler surface can be obtained by finding the resultant of \({s} _1 = 0\) and \({s} _2 = 0\) with respect to the variable \(t_3\). This elimination procedure is summarised schematically below:

$$\begin{aligned} \begin{aligned} {h} _1(\phi _3, {x, y, z}) = 0&{\mathop {\longrightarrow }\limits ^{\phi _3 \rightarrow {t} _3}} {s} _1(t_3, {x, y, z}) = 0\\ {g} _3(\phi _3, {x, y, z}) = 0&{\mathop {\longrightarrow }\limits ^{\phi _3 \rightarrow {t} _3}} {s} _2(t_3, {x, y, z}) = 0 \end{aligned} \Bigg ) {\mathop {\longrightarrow }\limits ^{\times t_3}} {S} ({x, y, z}) = 0. \end{aligned}$$
(14)

The symbol ‘\({\mathop {\longrightarrow }\limits ^{\phi _3 \rightarrow {t} _3}} \)’ denotes the conversion of an equation in \(\phi _3\) into their algebraic form in \(t_3 = \tan (\phi _3/2)\). Equation \({S} ({x, y, z}) = 0\), which is in terms of the actuator variables and architecture parameters, defines the coupler surface of point \(\varvec{p} _{s_1}\) of the RSSR chain. The sizeFootnote 1 of the coupler surface is 218.053 MB.

The variable \({t} _3\) can be solved by equating the polynomial remainder obtained by dividing \({s} _1\) by \({s} _2\), with respect to the variable \({t} _3\) to zero. One can solve \({t} _3\) uniquely as the remainder is linear in \({t} _3\) and this solution is guaranteed to satisfy \({s} _1 = 0\) and \({s} _2 = 0\) simultaneously. Hence, the solution of the variable \({t} _3\) is obtained as follows:

$$\begin{aligned}&{s} _{1}({t} _3, {x, y, z}) = \alpha ({t} _3, {x, y, z}){s} _2({t} _3, {x, y, z}) + \beta ({t} _3, {x, y, z}) = 0,\nonumber \\&\beta ({t} _3, {x, y, z}) = 0 \Rightarrow \beta _1({x, y, z}){t} _3 + \beta _2({x, y, z}) = 0,\nonumber \\ \Rightarrow&{t} _3 = -\beta _2({x, y, z})/\beta _1({x, y, z}), \text { assuming } \beta _1({x, y, z}) \ne 0. \end{aligned}$$
(15)

Special cases such as \(\beta _1({x, y, z}) = 0\), need to be studied further, which fall outside the scope of the present paper.

3.4 Derivation of the FKU

A real point of intersection of the coupler surface \(S = 0\) with the circle \(C = 0\) implies that the manipulator can be assembled, with the dismantled spherical joint re-established at that point. To identify the intersection points, one can eliminate two of the variables \({x, y, z}\) and derive the FKU in terms of the remaining.

As the circle \({C} = 0\) lies in the plane \(\varvec{X} _2\varvec{Z} _2\), one can substitute \({y} = 0\) in \({S} = 0\). Tangent half-angle substitutions for \(\theta _{21}, \theta _{31}\) follow, to convert the resulting equation into its algebraic form.Footnote 2 This leads to the curve \({C} '({x, z}) = 0\) in the \(\varvec{X} _{2}\varvec{Z} _2\) plane:

$$\begin{aligned} {S} ({x, y, z}) = 0 \xrightarrow {{y} \rightarrow 0, \theta _{21} \rightarrow t_{21}, \theta _{31} \rightarrow t_{31}} C'({x, z}) = 0. \end{aligned}$$
(16)

The “size” of the curve \(C'(x, z) = 0\) is 24.450 MB, after using the in-built symbolic simplification routine of Mathematica, namely, Simplify. The curve \(C'(x, z) = 0\) is of degree 16 in \({x}\) and \({z}\) and the circularity of the curve is 8. The Bezout’s limit for the number of intersections of this circular curve with the circle \({C(x,z)} = 0\) is 16. By eliminating the variable \({x}\) from \({C(x,z)} = 0\) and \(C'(x,z) = 0\) via their resultant yields the FKU:

$$\begin{aligned} \begin{aligned} {C} '({x, z})&= 0\\ {C} ({x, z})&= 0 \end{aligned}\ \Bigg )\ {\mathop {\longrightarrow }\limits ^{\times {x}}} \zeta (z) = 0. \end{aligned}$$
(17)

The FKU \(\zeta \), has only the even-powered terms and hence can be written as a polynomial of degree 8 in \( {m} = {z} ^2\):

$$\begin{aligned} \zeta = \upsilon _{8}m^8 + \upsilon _{7}m^7 + \upsilon _{6}m^6 + \upsilon _{5}m^5 + \upsilon _{4}m^4 + \upsilon _{3}m^3 + \upsilon _{2}m^2 + \upsilon _{1}m + \upsilon _{0}. \end{aligned}$$
(18)

The “size” of the FKU has been reduced from approximately 3 GB to 902.911 MB by using the Simplify routine, on each of the coefficients, (\(\upsilon _{i}, i = 0,..., 8\)), individually.

Once the FKU equation \(\zeta = 0\), is solved for \({z}\), after substituting architecture and actuator values in it, one can find the corresponding values of \({x}\). The value of \({x}\) corresponding to each (real) value of \({z} \) can be uniquely determined by equating the polynomial remainder obtained by dividing \(C'(x, z)\) by C(xz) with respect to \({x}\) to zero and solving for \({x}\) in the same manner that was used for obtaining \(t_3\) in Sect. 3.3.

From the planarity constraint \(y=0\) for all the solutions of z and x, one can find all the passive angles \(\phi _i\) as well. After the passive angles are computed for all the real solutions \({z}\), one can get the positions of the points \({}^{0}\varvec{p} _i, i = 1, 2, 3\) and the pose of the end-effector is determined uniquely.

4 Numerical Results

The above procedure is illustrated below via an example. The numerical values are adopted from [2], so as to compare the final results with the same. The architecture parameters considered areFootnote 3\(l = 3\) and \( a = 2\). All the numerical results are obtained in Mathematica, with a precision of 50 significant digits after the decimal point.

Table 1 Forward kinematic solutions of the \(3\)-RPRS manipulator for the input variables: \(d_1 = \frac{6}{5}, d_2 = \frac{3}{2}, d_3 = \frac{17}{10}, \theta _1 = 0, \theta _2= \frac{7\pi }{12}, \theta _3 = \frac{7\pi }{4}\)

The numerical values of the active variables are chosen as: \(d_1 = \frac{6}{5}\), \(d_2 = \frac{3}{2}\), \(d_3 = \frac{17}{10}\), \(\theta _1 = 0\), \(\theta _2 = \frac{7\pi }{12}\), \(\theta _3 = \frac{7\pi }{4}\). The monic form of the FKU in this case, is shown belowFootnote 4:

$$\begin{aligned} \zeta&= {m^8-6.413 m^7-534.433 m^6+9911.630 m^5-47703.189 m^4 -250740.961m^3} \nonumber \\&\quad { +\, 3499560.799 m^2 - 3096233.726 m + 16559580.130 = 0, \text {where } m=z^2.} \end{aligned}$$
(19)

Equation (19) admits 4 real solutions (tabulated in Table 1), each leading to a pair of poses of the manipulator which have a mirror symmetry about the base plane, \(\varvec{X} _0\varvec{Y} _0\). The passive variables, \(\phi _i\), for each of the 8 poses, are enumerated in Table 1, which match those in Table 1 of [2] up to two digits after the decimal point.

Fig. 2
figure 2

Intersection of the constraint curves leading to the FK solutions

Fig. 3
figure 3

Forward kinematic poses 1–4 (numbered as per Table 1)

Fig. 4
figure 4

Forward kinematic poses 5–8 (numbered as per Table 1)

In order to validate the solutions further, they are substituting back into the constraint equations, \(\varvec{\eta } = [g_1, g_2, g_3, \xi _1, \xi _2]^\top \). The residual error, defined as \(\Vert {\varvec{\eta }}\Vert \), is found to be of the order of \(10^{-25}\). The accuracy of the results can be improved by increasing the working precision albeit at the cost of additional computations.

The time taken to obtain the numeric monic polynomial Eq. (19) by substituting all the parameters and variables with their numerical values in Eq. (18) is around 34 s, whereas the same equation, when obtained by substituting the numerical values at the stage of Eq. (17) is around 0.91 s. It is found that the accuracies of the results obtained are comparable in the two ways of computation.

The intersections of the coupler surface with the circle in the plane \(\varvec{X} _2 \varvec{Z} _2\), for this example, are shown in Fig. 2 and the different poses of the manipulator are shown in Figs. 3 and 4.

5 Conclusion

The forward kinematic problem of the \(3\)-RPRS manipulator is solved in this paper, using a geometric approach. The problem is reduced to the computation of the intersections between the constraint varieties generated by the individual sub-chains, into which the manipulator is decomposed hypothetically for the purpose of this work. A 16-degree FKU equation is obtained in the closed form, for a general architecture of the manipulator. The FKU is even-powered in the variable \({z}\) and, therefore, half of the solutions are mirror images to the other half, with respect to the base plane. The results are validated by finding the residues of the constraint equations.