1 Introduction

The development of parallel mechanisms starts in early 1950’s with the Stewart–Gough platform. In 1955, Gough built a prototype of a 6-DOF closed-loop parallel manipulator for positioning and orientation of a moving platform to test tire wear [14]. In 1965, Stewart presented a 6-DOF closed-loop parallel manipulator for use as a flight simulator [1, 14].

Early research on parallel manipulators were concentrated primarily on 6-DOF parallel manipulators based on Stewart–Gough platform. In the 80’s and 90’s, there has been an increasing interest in the development of parallel manipulators. In the 2000’s parallel manipulators with fewer than 6-DOF, so called low-DOF parallel manipulators, have attracted the attention of industry and academia because several industrial applications requires motions with less than 6-DOF. A low-DOF parallel manipulator exhibits interesting features compared to 6-DOF parallel manipulators such as: simpler mechanical design, lower manufacturing and operating costs, larger workspace volume (reducing the legs interference), and simpler control [4].

Scientific studies on low-DOF parallel manipulators were concentrated primarily on symmetric kinematic structures, proving to be one of the main area of study in the robotics research community. Di Gregorio and Parenti Castelli [3] presented a 3-DOF parallel robot with three RRPRR legs. They presented the kinematic model and the singularity analysis for this robot. Gosselin and Kong [6] presented a 3-DOF translational parallel robot, with fully decoupled input–output equations, in a Canadian provisional patent application. Kim and Tsai [10] presented a 3-DOF translational parallel manipulator called Cartesian Parallel Manipulator with three PRRR legs.

In the last decade, some authors proposed asymmetrical kinematic structure which exhibit interesting features when compared to the symmetric one. Toz and Kucuk [22] designed an asymmetric generalized Stewart–Gough platform and developed a dimensional optimization. The condition number and minimum singular value of the Jacobian matrix are employed to perform the dexterous workspace optimization. Li and Huang [12] used the constraint-synthesis method to develop the type synthesis of 4-DOF parallel manipulators with full-cycle mobility. They enumerated novel 4-DOF symmetrical and asymmetrical parallel manipulators. Karouia and Hervé [9], presented the structural synthesis of asymmetrical non-overconstrained 3-DOF spherical parallel mechanisms. They developed the mobility analysis of the limbs and analysed the geometrical conditions of the limb assembly to achieve the spherical motion. Refaat et al. [15] introduces four families of asymmetrical 3-DOF rotational-translational parallel-kinematics mechanisms based on Lie group theory and four novel mechanisms were presented as representatives of the four families. Lu and Hu [13], presented a family of asymmetric \(2UPU+X\) parallel manipulators. They analysed the kinematic characteristics, the singularities and their active/constrained forces for three asymmetric 3-\(UPU, 2UPU+SPR\), and \(2UPU+RPRU\) parallel manipulators. Gallardo et al. [5] applied screw theory to investigate the kinematics of a three-legged parallel manipulator with asymmetrical limbs and decoupled motions. They developed the forward kinematics and analyse the velocity and acceleration of the parallel manipulator.

In 2013, Simoni et al. [19] presented a novel class of parallel mechanism called Triflex which are 3-DOF variable-configuration parallel mechanisms with self-aligning that can change their form (base, legs or moving platform) without changing the characteristics of motion of the moving platform. The change in form is managed by additional passive/null degrees-of-freedom of self-aligning. The kinematic structure of the Triflex was inspired by the fully decoupled 3-DOF translational parallel manipulators introduced by Gosselin and Kong [6, 11] and Kim and Tsai [10] and it is based on a symmetrical kinematic chain. Simoni et al. [20] presented the design and prototyping of a fully decoupled 3-DOF variable-configuration parallel manipulator with self-aligning called Triflex I. Simoni et al. [21] presented the kinematic analysis of the Triflex I using Davies method. As presented by Simoni et al. [1921] this new class of parallel robots can be portable and they can be installed in any place because it is only necessary to have three independent vectors to fix the legs of the robot. The fixation of the robot can be done by vaccum suckers or magnetic depending on the material of the floor.

Also in 2013, Simas et al. [18] presented a novel class of parallel manipulators with self-aligning called Triflex II. Di Gregorio [2] presented the kinematic analysis of a single-loop translational manipulator and Di Gregorio and Simas [7] presented the dimensional synthesis of the single-loop translational parallel manipulator PRRR-PRPU inspired on Triflex II. Simas and Di Gregorio [16] presented a general technique to evaluate the effects od manufacturing errors on positioning precision during design and as a case study they analyses a special case o the Triflex II with perpendicular axes. Simas and Di Gregorio [17] also studied the geometric error effects on manipulators’ positioning precision formulating a general method and applying the method to another special case of the Triflex II robot.

Up to now, only special cases of the Triflex II robot were presented. This paper introduce the kinematic analysis of the general Triflex II. The Triflex II is a \(\overline{P}RRR\) + \(\overline{P}RRU+\overline{P}RRS\) asymmetrical structure parallel mechanism with self-aligning and three translational degrees of freedom. Its kinematic chain is asymmetrical and it exhibits interesting features when compared with the Triflex I [1921] and the special cases of Triflex II presented in the literature [2, 7, 16, 17].

The main feature of the kinematic structure is that there is no requirement for precision of the bases of the legs, or, the positioning of the legs, as well as their orientations will be set in agreement with the configuration of the operating environment. Throughout the paper, the equation for forward and inverse position and differential kinematics are presented and discussed, including an analysis of its workspace in agreement with a study of singularities. Finally, the forward and inverse kinematic equations proposals are validated through trajectories defined for the active joints of the Triflex II mechanism.

2 Triflex II mechanism

This section describes the topological kinematic design of the Triflex II.

2.1 Conceptual design

Triflex II is a \(\overline{P}RRR+\overline{P}RRU+\overline{P}RRS\) Footnote 1 asymmetrical variable-configuration parallel mechanism with self-aligning. The design introduces a moving platform connected to a base by three serial kinematic chains. Figure 1 shows the conceptual design of the Triflex II.

Fig. 1
figure 1

Triflex II asymmetrical and self-aligning parallel mechanism

Figure 2 presents the model of the Triflex II mechanism developed on a 3D printer where the base (the black piece) allows the fixing of the legs in different positions and directions.

Fig. 2
figure 2

Triflex II model built in a 3D printer

Each serial kinematic chain, or leg, receives a designation in agreement with its last joint.

The first leg, called \(L_u\), is a \(\overline{P}RRU\) subchain fixed with respect to the reference frame (\(O_o-x_oy_oz_o\)), by vector \(\mathbf {v}_u\). Leg \(L_u\) comprises of a prismatic joint \(P_u\), with displacement \(d_u\), two rotative joints: \(r_{u1}\) and \(r_{u2}\) and a universal joint \(U_{p}\), centered at point \(A_u\), that connects the leg to the moving platform. The prismatic joint \(P_u\), the rotative joints \(r_{u1}\) and \(r_{u2}\) and the first rotation of the \(U_p\) universal joint are directed according to the unitary vector \(\mathbf {n}_u\). The leg \(L_u\) has two links with length \(l_{u1}\) and \(l_{u2}\).

The second leg, called \(L_s\), is a \(\overline{P}RRS\) subchain fixed in relation to the reference frame (\(O_o-x_oy_oz_o\)) by vector \(\mathbf {v}_s\). Leg \(L_s\) comprises of a prismatic joint \(P_s\) with displacement \(d_s\) and two rotative joints: \(r_{s1}\) and \(r_{s2}\) and a spherical joint \(S_{p}\), centered at point \(A_s\), that connects the leg to the moving platform. The prismatic joint \(P_s\) and the rotative joints \(r_{s1}\) and \(r_{s2}\) are directed according to the vector \(\mathbf {n}_s\). The leg \(L_s\) has two links with length \(l_{s1}\) and \(l_{s2}\).

The third leg, called \(L_r\), is a \(\overline{P}RRR\) subchain fixed in relation to the reference frame (\(O_o-x_oy_oz_o\)) by the vector \(\mathbf {v}_r\). Leg \(L_r\) consists of a prismatic joint \(P_r\) with displacement \(d_r\) and two rotative joints: \(r_{r1}\) and \(r_{r2}\) and a rotative joint \(R_{p}\) that connects the leg to the moving platform. The prismatic joint \(P_r\) and the rotative joints \(r_{r1}, r_{r2}\) and \(R_{p}\) are directed according to the vector \(\mathbf {n}_r\). The leg \(L_r\) has two links with length \(l_{r1}\) and \(l_{r2}\) and the point \(A_r\) defined by the intersection between the axis of the rotative joint \(R_p\) and the plane of the moving platform.

The moving platform is connected to the legs by three points: \(A_r\) where leg \(L_r\) is attached, \(A_u\) where leg \(L_u\) is attached and \(A_s\) where leg \(L_s\) is attached. The sides of the moving platform have lengths \(e_1\) between the point \(A_r\) and \(A_u, e_2\) between the point \(A_u\) and \(A_s\) and \(e_3\) between the point \(A_s\) and \(A_r\). On the moving platform is defined the point E, called the point action, where the end-effector will be attached.

An important constructive characteristic of the Triflex II mechanism is the fact that the three points, \(A_u, A_s\) and \(A_r\) define a plane (called \(\pi _r\)-plane as detailed in Fig. 4) that has its normal vector, parallel to the vector \(\mathbf {n}_r\) and containing the leg \(L_r\) and the second rotative joint of the \(U_p\) joint of the leg \(L_u\).

The differences in the kinematic conception of each leg, the dimensional independence of the lengths of links and the sides of the moving platform characterize the Triflex II mechanism as an asymmetrical mechanism in agreement with Simoni et al. [21]. The freedom to positioning and directioning of the bases of each leg (defined by vectors \(\mathbf {v}_i\) and their respectives \(\mathbf {n}_i\), with \(i=u,s,r\)) characterizes the Triflex II robot as self-aligning from point of view of its kinematic chain. The limitations in this self-aligning will be discussed in the study of singularities in later sections.

2.2 Geometry of the Triflex II

This section presents the preliminary equation and the geometric settings for the Triflex II mechanism.

The first relation defines the coordinates of the action point E on the moving platform. The action point E is defined as a linear combination of \(A_r, A_u\) and \(A_s\) by

$$\begin{aligned} E=K_uA_u+K_rA_r+K_sA_s \end{aligned}$$
(1)

where \(K_u, K_r\) and \(K_s\) are known scalar values.

Without loss of generality, and in order to simplify the kinematic modeling, the \(z_o\) axis of the reference coordinate system can be chosen parallel to vector \(\mathbf {n}_r\) and the vector \(\mathbf {v}_r\) will be considered a null vector. Thus according to these definitions the unitary vectors \(\mathbf {n}_u, \mathbf {n}_s\) and \(\mathbf {n}_r\) have the following known coordinates

$$\begin{aligned} \mathbf {n}_u=\left[ \begin{array}{c} n_{u_x}\\ n_{u_y}\\ n_{u_z} \end{array} \right] \quad \mathbf {n}_s=\left[ \begin{array}{c} n_{s_x}\\ n_{s_y}\\ n_{s_z} \end{array} \right] \quad \mathbf {n}_r=\left[ \begin{array}{c} 0\\ 0\\ 1 \end{array} \right] \end{aligned}$$
(2)

and the vectors \(\mathbf {v}_u, \mathbf {v}_s\) and \(\mathbf {v}_r\) have the following known coordinates

$$\begin{aligned} \mathbf {v}_u=\left[ \begin{array}{c} v_{u_x}\\ v_{u_y}\\ v_{u_z} \end{array} \right] \quad \mathbf {v}_s=\left[ \begin{array}{c} v_{s_x}\\ v_{s_y}\\ v_{s_z} \end{array} \right] \quad \mathbf {v}_r=\left[ \begin{array}{c} 0\\ 0\\ 0 \end{array} \right] \end{aligned}$$
(3)

Considering \(n_r\) parallel to \(z_o\) axis, the displacements of the moving platform is always perpendicular to \(z_o\) axis, and the set of four fixed angles: \(\alpha , \beta , \gamma\) and \(\delta\), shown in Fig. 3, can be defined in \(x_oy_o\)-plane, where

  • \(\alpha\) is the angle between \(x_o\) and the projection of the vector \(\mathbf {n}_u\) on the \(x_oy_o\)-plane (\(n_{u_{xy}}\)), obtained by the relation: \(\alpha =Atan2(n_{u_y},n_{u_x})\).

  • \(\beta\) is the angle between the line extension of the first universal joint axis, on leg \(L_u\), and the line extension of the side \(e_1\) on moving platform. The angle \(\beta\) has a fixed value depending on how was constructed Triflex II mechanism.

  • \(\gamma\) is an angle between \(x_0\) axis to the line extension of the moving platform side \(e_1\). \(\gamma\) can be computed by the relation: \(\gamma =\alpha +\beta\).

  • \(\delta\) is the angle between the line extension of the moving platform side \(e_1\) and the line of the moving platform side \(e_2\). \(\delta\) is constant and depend on how was constructed Triflex II mechanism.

Fig. 3
figure 3

Set of angles of the Triflex II moving platform

2.3 Mobility analysis of the Triflex II

In agreement with Kong and Gosselin [11] the instantaneous mobility of a parallel manipulator is given byFootnote 2

$$\begin{aligned} M=6-c+\sum _{i=1}^m R^i \end{aligned}$$
(4)

where, c is the order of wrench system of the moving platform and \(R^i=f^i-6+c^i\) is the redundant DOF of leg i; moreover, \(f^i\) and \(c^i\) are the DOF and the wrench system of leg i, respectively.

The Triflex II has a \((PRRR)+(PRRU)+(PRRS)\) kinematic chain. The wrench system of each leg is given by

  • (PRRR): 2-\(\zeta _\infty\)-system;

  • (PRRU): 1-\(\zeta _\infty\)-system;

  • (PRRS): 0-system.

The wrench system of the Triflex II moving platform is a 3-\(\zeta _\infty\)-system because, for parallel manipulators, the wrench system is given by

$$\begin{aligned} {\mathcal {W}}=\sum _{i=1}^{m} {\mathcal {W}}^{i} \end{aligned}$$
(5)

where \({\mathcal {W}}^{i}=\bigcap _{j=1}^{f^i} {\mathcal {W}}_j^i\) and \({\mathcal {W}}_j^i\) is the wrench system of joint j in leg i.

The redundant DOF of each leg of the Triflex II is given by

  • \((PRRR): R^i=4-(6-2)=0\);

  • \((PRRU): R^i=5-(6-1)=0\);

  • \((PRRS): R^i=6-(6-0)=0\).

Thus, the mobility of the Triflex II is given by

$$\begin{aligned} \begin{array}{l} M=6-c+\sum \nolimits _{i=1}^m R^i.\\ M=6-3+0\\ M=3 \end{array} \end{aligned}$$

As the wrench system of the moving platform is a 3-\(\zeta _\infty\)-system, the twist system is 3-\(\xi _0\)-system and Triflex II has three translational degrees of freedom. The set of actuated joints are \(P_u, P_s\) and \(P_r\) as indicated in Fig. 1.

3 Inverse and forward kinematics

This section presents the closed-form solution of the inverse and forward kinematics of the Triflex II mechanism. The procedure is based on algebraic method and geometric analysis and some geometrical entities needed, are defined below.

Considering three planes: \(\pi _u, \pi _s\) and \(\pi _r\), depicted on Fig. 4, defined respectively by the vectors \(\mathbf {n}_u, \mathbf {n}_s\) and \(\mathbf {n}_r\) and the points \(B_u, B_s\) and \(B_r\). Note that \(\mathbf {n}_u, \mathbf {n}_s\) and \(\mathbf {n}_r\) are parallel with respect to the prismatic joints of legs \(L_u, L_r\) and \(L_r\) respectively, and \(B_u, B_s\) and \(B_r\) are the respective displacement of such prismatic joints.

The \(\pi _u\)-plane contains the point \(A_u\), the \(\pi _s\)-plane contains the point \(A_s\) and the \(\pi _r\)-plane contains the points \(A_u, A_s, A_r, E\) and the whole moving platform.

Fig. 4
figure 4

Geometrical definitions to Triflex II mechanism

In agree with the definitions above and Fig. 4, let us to consider

  • \(\mathbf {f}_u=\overrightarrow{B_uA_u}\,\rightarrow\) on the \(\pi _u\)-plane;

  • \(\mathbf {f}_s=\overrightarrow{B_sA_s}\,\rightarrow\) on the \(\pi _s\)-plane and

  • \(\mathbf {f}_r=\overrightarrow{B_rA_r}\,\rightarrow\) on the \(\pi _r\)-plane.

It is interesting to note that according to the geometry of the Triflex II mechanism, for \(i=u,s,r\), the links \(l_{i1}\) and \(l_{i2}\) of each leg \(L_i\) are contained in \(\pi _i\)-plane, therefore the positions of the passive rotative joints \(r_{i2}\) can assume angular values with positive or negative signs. In other words, for each leg, two poses are always possible. Combining the number of poses for each leg we have a total of \(2^3=8\) possible poses for the Triflex II.

Based on these geometrical definitions of the Triflex II mechanism, the inverse and forward kinematics models can be obtained in analytical way.

3.1 Inverse kinematics

The objective of the inverse kinematics is to compute \(d_u, d_s\) and \(d_r\) displacements, as shown in Fig. 1, as function of a desired coordinates of the point E on the moving platform.

In agreement with Eq. (1), the point E can be computed as a linear combination of the points \(A_u, A_s\) and \(A_r\).

Note that the coordinates of the point \(A_u\) and \(A_s\) can be written as function of the coordinates of the point \(A_r\) and the angles \(\gamma\) and \(\delta\) by

$$\begin{aligned} A_u=A_r+e_1\left[ \begin{array}{c} \cos (\gamma ) \\ \sin (\gamma ) \\ 0 \end{array} \right] \end{aligned}$$
(6)

and

$$\begin{aligned} A_s=A_r+e_1\left[ \begin{array}{c} \cos (\gamma ) \\ \sin (\gamma ) \\ 0 \end{array} \right] + e_2\left[ \begin{array}{c} \cos (\gamma +\delta ) \\ \sin (\gamma +\delta ) \\ 0 \end{array} \right] \end{aligned}$$
(7)

Substituting Eqs. (6) and (7) on Eq. (1), we have

$$\begin{aligned} A_r=\frac{1}{K_u+K_s+K_r}\left( E-F_1-F_2 \right) \end{aligned}$$
(8)

where

$$\begin{aligned} F_1=e_1\left[ \begin{array}{c} \cos (\gamma ) \\ \sin (\gamma ) \\ 0 \end{array} \right] (K_u+K_s) \end{aligned}$$
(9)

and

$$\begin{aligned} F_2=e_2\left[ \begin{array}{c} \cos (\gamma +\delta ) \\ \sin (\gamma +\delta ) \\ 0 \end{array} \right] K_s \end{aligned}$$
(10)

The coordinates computed to the point \(A_r\) are used to compute the coordinates of the points \(A_u\) and \(A_s\) by Eqs. (6) and (7).

Note also from Fig. 4 that

$$\begin{aligned} \begin{array}{l} \mathbf {n}_u\cdot \mathbf {f}_u=0 \\ \mathbf {n}_s\cdot \mathbf {f}_s=0 \\ \mathbf {n}_r\cdot \mathbf {f}_r=0 \end{array} \end{aligned}$$
(11)

and

$$\begin{aligned} \mathbf {f}_i = A_i-B_i \quad \text {for} \,\, i=u,s,r \end{aligned}$$
(12)

where \(B_i\) coordinates are given by

$$\begin{aligned} B_i=\mathbf {v}_i + d_i \mathbf {n}_i \end{aligned}$$
(13)

Substituting Eqs. (12) and (13) in Eq. (11), \(d_u, d_s\) and \(d_r\) can be computed by

$$\begin{aligned} \begin{array}{rcl} d_u = {\mathbf{n}}_u \cdot (A_u-{\mathbf{v}}_u) \\ d_s = {\mathbf {n}}_s \cdot (A_s-{\mathbf {v}}_s) \\ d_r = {\mathbf{n}}_r \cdot (A_r-{\mathbf{v}}_r) \end{array} \end{aligned}$$
(14)

3.2 Forward kinematics

The objective of the forward kinematics is to compute the coordinates of the point E as function of the displacements \(d_u, d_s\) and \(d_r\).

The coordinates of the point E can be obtained from the coordinates of the points \(A_u, A_s\) and \(A_r\) using some geometric relations, as pointed on Eq. (1).

Consider the coordinates of the points \(A_u, A_s\) and \(A_r\), written in their respective vectors

$$\begin{aligned} \begin{array}{c} A_u=\left[ \begin{array}{c} A_{u_x}\\ A_{u_y}\\ A_{u_z}\\ \end{array} \right] \\ \\ A_s=\left[ \begin{array}{c} A_{s_x}\\ A_{s_y}\\ A_{s_z}\\ \end{array} \right] \\ \\ A_r=\left[ \begin{array}{c} A_{r_x}\\ A_{r_y}\\ A_{r_z}\\ \end{array} \right] \end{array} \end{aligned}$$
(15)

Once the moving platform lies in the \(\pi _r\)-plane (see Figs. 1, 4), \(A_{u_z}, A_{s_z}\) and \(A_{r_z}\) are given by

$$\begin{aligned} A_{u_z}=A_{s_z}=A_{r_z}=\left( \mathbf {v}_r + d_r \mathbf {n}_r \right) \cdot z_o \end{aligned}$$
(16)

Using the definitions for \(\mathbf {n}_r\) and \(\mathbf {v}_r\) from Eqs. (2) and (3) it is obtained that

$$\begin{aligned} A_{u_z}=A_{s_z}=A_{r_z}=d_r \end{aligned}$$
(17)

The next step consists in computing the coordinates x and y of the points \(A_u, A_s\) and \(A_r\).

From Eqs. (11) and (12), it is known that

$$\begin{aligned} \begin{array}{ll} \mathbf {n}_u \cdot \left( A_u-B_u \right) =0 & \qquad \text {(a)}\\ \\ \mathbf {n}_s \cdot \left( A_s-B_s \right) =0 & \qquad \text {(b)}\\ \\ \mathbf {n}_r \cdot \left( A_r-B_r \right) =0 & \qquad \text {(c)} \end{array} \end{aligned}$$
(18)

and from Eq. (13), it is known that

$$\begin{aligned} \begin{array}{ll} B_u = \left( \mathbf {v}_u +d_u \mathbf {n}_u \right) & \qquad \text {(a)} \\ \\ B_s = \left( \mathbf {v}_s +d_s \mathbf {n}_s \right) & \qquad \text {(b)} \\ \\ B_r = \left( \mathbf {v}_r +d_r \mathbf {n}_r \right) & \qquad \text {(c)} \end{array} \end{aligned}$$
(19)

Combining Eqs. (17), (18b) and (18c) with Eqs. (19b) and (19c) we have

$$\begin{aligned} \begin{array}{l} n_{u_x} A_{u_x}+n_{u_y} A_{u_y}=d_u-n_{u_z} A_{u_z}+ \mathbf {n}_u \cdot \mathbf {v}_u \\ n_{s_x} A_{s_x}+n_{s_y} A_{s_y}=d_s-n_{s_z} A_{s_z}+ \mathbf {n}_s \cdot \mathbf {v}_s \end{array} \end{aligned}$$
(20)

From Eqs. (6) and (7), \(A_{s_x}\) and \(A_{s_y}\) can be written as function of \(A_{u_y}\) and \(A_{u_y}\) by

$$\begin{aligned} \begin{array}{l} A_{s_x}=A_{u_x}+e_2 \cos (\gamma +\delta ) \\ A_{s_y}=A_{u_y}+e_2 \sin (\gamma +\delta ) \\ \end{array} \end{aligned}$$
(21)

Substituting Eq. (21) in Eq. (20) the following matricial form is obtained

$$\begin{aligned} M\left[ \begin{array}{c} A_{u_x} \\ A_{u_y} \end{array} \right] =N \quad {\text{and }} \quad \left[ \begin{array}{c} A_{u_x} \\ A_{u_y} \end{array} \right] =M^{-1}N \end{aligned}$$
(22)

where

$$\begin{aligned} M=\left[ \begin{array}{cc} n_{u_x} & n_{u_y} \\ n_{s_x} & n_{s_y} \end{array} \right] \end{aligned}$$
(23)

and

$$\begin{aligned} N=\left[ \begin{array}{l} d_u+\mathbf {n}_u \cdot \mathbf {v}_u - n_{u_z} A_{u_z}\\ d_s+\mathbf {n}_s \cdot \mathbf {v}_s - \mathbf {n}_s \cdot \left[ \begin{array}{l} e_2 \cos (\gamma +\delta ) \\ e_2 \sin (\gamma +\delta ) \\ A_{u_z} \end{array} \right] \end{array} \right] \end{aligned}$$
(24)

With the computed values of the coordinates \(A_{u_x}\) and \(A_{u_y}\), the coordinates of the points \(A_s\) and \(A_r\) are obtained using Eqs. (6) and (7), as following

$$\begin{aligned} A_r & = A_u -e_1\left[ \begin{array}{c} \cos (\gamma ) \\ \sin (\gamma ) \\ 0 \end{array} \right] \end{aligned}$$
(25)
$$\begin{aligned} A_s & = A_u +e_2\left[ \begin{array}{c} \cos (\gamma +\delta ) \\ \sin (\gamma +\delta ) \\ 0 \end{array} \right] \end{aligned}$$
(26)

Then by Eq. (1)

$$\begin{aligned} E=K_uA_u+K_rA_r+K_sA_s. \end{aligned}$$

4 Singularities analysis

The singular configuration of the Triflex II mechanism, depends on the existence of linear dependence between rows or columns, or the presence of rows or columns of zeros on the matrix M, as it can be seen in Eq. (22) where the coordinates of point \(A_u\) depends on the inversion of the matrix M.

Geometrically the singularities of the Triflex II mechanism occur when the vectors \(\mathbf {n}_u, \mathbf {n}_s\) and \(\mathbf {n}_r\) are coplanar, or parallel two by two, the controlled platform displacements are restricted to planes. If the three vectors \(\mathbf {n}_u, \mathbf {n}_s\) and \(\mathbf {n}_r\) are parallel the controlled platform displacements are restricted in one direction, or the direction of these vectors.

Analytically, the linear dependence between rows and columns of the matrix M means the parallelism between the vectors \(\mathbf {n}_u\) and \(\mathbf {n}_s\), depicted as example in the Fig. 5. The presence of zeros in the first row of the matrix M means that the vector \(\mathbf {n}_u\) is parallel with the vector \(\mathbf {n}_r\), whereas a line of zeros in the second row of M means that \(\mathbf {n}_s\) is parallel to \(\mathbf {n}_r\). If the first column of M is composed by zeros it means that \(\mathbf {n}_u, \mathbf {n}_s\) and \(\mathbf {n}_r\) belong to the \(y_oz_o\)-plane, whereas if the second column of M are zeros it means that \(\mathbf {n}_u, \mathbf {n}_s\) and \(\mathbf {n}_r\) belong to the \(x_oz_o\)-plane, restricting the platform movement to \(y_oz_o\)-plane or \(x_oz_o\)-plane respectively. If the vectors \(\mathbf {n}_u, \mathbf {n}_s\) and \(\mathbf {n}_r\) can be written as a linear function

$$\begin{aligned} f(\mathbf {n}_u, \mathbf {n}_s, \mathbf {n}_r)=\sum _{i=u,s,r}^ {a_i\mathbf {n}_i}=0 \end{aligned}$$

where \(a_i\) are constant values, they are coplanar and lie to a \(\pi _c\)-planeFootnote 3

Fig. 5
figure 5

Singular configuration: \(\mathbf {n}_u\) is parallel to \(\mathbf {n}_s\)

Fig. 6
figure 6

Singular configuration: \(\mathbf {n}_u, \mathbf {n}_s\) and \(\mathbf {n}_r\) are coplanar

Besides of the singularities from the vectors \(\mathbf {n}_u, \mathbf {n}_s\) and \(\mathbf {n}_r\), there are also singular configurations in the limits of the distances between points \(A_i\) and \(B_i\), for \(i=u,s\) and r. In this case the solutions to the forward and inverse kinematics exist if the inequalities presented on Eq. (27) are satisfied

$$\begin{aligned} \begin{array}{lcl} \Vert A_u-B_u\Vert < l_{u_1}+l_{u_2}\\ \Vert A_s-B_s\Vert < l_{s_1}+l_{s_2}\\ \Vert A_r-B_r\Vert < l_{r_1}+l_{r_2} \end{array} \end{aligned}$$
(27)

In this way, the Triflex II mechanism workspace is bounded by inequalities presented in Eq. (27), as well as the limits of displacements for prismatic joints \(d_u, d_s\) and \(d_r\) of each leg.

5 Differential kinematics

The differential kinematics model determines the relationship between velocities of the moving platform and the velocities of the robot actuators [8, 23].

Triflex II differential kinematics model is obtained by differentiating Eq. (14) for each leg i.e.

$$\begin{aligned} \begin{array}{ll} \dot{d}_u \! = \mathbf {n}_u \cdot \dot{A}_u \\ \dot{d}_s \! = \mathbf {n}_s \cdot \dot{A}_s \\ \dot{d}_r \! = \mathbf {n}_r \cdot \dot{A}_r \end{array} \end{aligned}$$
(28)

The moving platform linear velocities are obtained by differentiating Eq. (1)

$$\begin{aligned} \dot{E}= K_u\dot{A}_u + K_s\dot{A}_s + K_r\dot{A}_r \end{aligned}$$
(29)

As discussed above the moving platform moves in agreement with the prismatic linear movement defined by the direction of the vectors \(\mathbf {n}_u, \mathbf {n}_s\) and \(\mathbf {n}_r\). Triflex II mechanism is not able not change the orientation of the moving platform, in other words, the angular velocities of the moving platform is even 0 in the direction xy and z with respect to reference frame \(O_o-x_oy_oz_o\). Thus, differentiating Eqs. (6) and (7), it is noted that all points belonging to the moving platform have only linear displacements with the same magnitudes and directions i.e.

$$\begin{aligned} \dot{E}=\dot{A}_u = \dot{A}_s = \dot{A}_r \end{aligned}$$
(30)

Replacing Eq. (30) in Eq. (28) we have

$$\begin{aligned} \left[ \begin{array}{c} \dot{d}_u \\ \dot{d}_s \\ \dot{d}_r \end{array} \right] = \left[ \begin{array}{ccc} n_{u_x} & n_{u_y} & n_{u_z}\\ n_{s_x} & n_{s_y} & n_{s_z}\\ n_{r_x} & n_{r_y} & n_{r_z} \end{array} \right] \left[ \begin{array}{c} \dot{E}_x\\ \dot{E}_y\\ \dot{E}_z \end{array}\right] \end{aligned}$$
(31)

or

$$\begin{aligned} \left[ \begin{array}{c} \dot{d}_u \\ \dot{d}_s \\ \dot{d}_r \end{array} \right] = J \left[ \begin{array}{c} \dot{E}_x\\ \dot{E}_y\\ \dot{E}_z \end{array}\right] \end{aligned}$$
(32)

where J is the Jacobian matrix which map the moving platform linear velocities to the linear velocities of the active prismatic joint of each leg.

The relationship shown in Eq. (31) allows us to obtain an inverse map of the differential kinematics by

$$\begin{aligned} \left[ \begin{array}{c} \dot{E}_x\\ \dot{E}_y\\ \dot{E}_z \end{array}\right] = J^{-1} \left[ \begin{array}{c} \dot{d}_u\\ \dot{d}_s\\ \dot{d}_r \end{array}\right] \end{aligned}$$
(33)

Using \(\mathbf {n}_r=\left[ 0 \, 0 \, 1 \right] ^T\), as proposed in Eq. (2), the inverse Jacobian \(J^{-1}\) is given by

$$\begin{aligned} J^{-1}=\frac{1}{\left| J \right| } \left[ \begin{array}{ccc} n_{r_y} & - n_{u_y} & n_{s_z} n_{u_y} - n_{s_y} n_{u_z}\\ -n_{s_x} & n_{u_x} & -n_{s_z} n_{u_x} + n_{s_x} n_{u_z} \\ 0 & 0 & n_{s_y} n_{u_x} - n_{s_x} n_{u_y} \end{array} \right] \end{aligned}$$
(34)

The singularity analysis of the Triflex II mechanism given by Eqs. (31) and (34) are in agreement with the singularities discussed in Sect. 4, and it allows the avoidance of singularities in the displacements computed in the direct and inverse kinematics.

6 Numerical simulation results

The previously sections presented a set of analytical equations in order to compute the relationship between the moving platform and joints position and velocity of the Triflex II mechanism. In order to validate the analytical results, this section will present a numerical simulation of the Triflex II mechanism movements for a given spatial trajectory. The simulation environment is shown in Fig. 7.

Fig. 7
figure 7

Triflex II simulation environment

6.1 Design parameters

Triflex II mechanism was set with the following parameters in order to perform the desired trajectory.

  • \(\mathbf {n}_u=\left[ 0.8 \, 0.6 \, 0 \right] ^T\)

  • \(\mathbf {n}_s=\left[ - 0.09901475 \, 0.9901475 \, -0.09901475 \right] ^T\)

  • \(\mathbf {n}_r=\left[ 0 \, 0 \, 1 \right] ^T\)

  • \(\mathbf {v}_u=\left[ -0.2 \, -0.10 \, 0.01 \right] ^T\, \mathrm{m}\)

  • \(\mathbf {v}_s=\left[ 0.3 \, -0.40 \, 0.01 \right] ^T \mathrm{m}\)

  • \(\mathbf {v}_r=\left[ -0.4 \, 0.2 \, -0.01 \right] ^T \,\mathrm{m}\)

  • \(K_u=0.3\);

  • \(K_s=0.5\);

  • \(K_r=0.2\);

  • \(e_1=0.4\,\mathrm{m}\);

  • \(e_2=0.35\,\mathrm{m}\);

  • \(\beta =0.3\,\mathrm{rad}\);

  • \(\delta =1.74329\,\mathrm{rad}\).

  • For leg \(L_u: \left\{ \begin{array}{c} l_{u_1}=0.55\,\mathrm{m}\\ l_{u_2}=0.40\,\mathrm{m} \end{array} \right.\)

  • For leg \(L_s: \left\{ \begin{array}{c} l_{s_1}=0.45\,\mathrm{m}\\ l_{s_2}=0.55\,\mathrm{m} \end{array} \right.\)

  • For leg \(L_r: \left\{ \begin{array}{c} l_{r_1}=0.32\,\mathrm{m}\\ l_{r_1}=0.35\,\mathrm{m} \end{array} \right.\)

6.2 Trajectory proposed

The proposed kinematic modeling is tested for a desired trajectory presented below. The displacements for each leg were defined as following:

  • Simulation time set to \(10\,s\) with \(\varDelta t=0.01\,s\).

  • To the prismatic joint \(P_u\) of the leg \(L_u\):

    • Positive displacement from \(d_u=0.40\,\mathrm{m}\) to \(d_u=0.60\,\mathrm{m}\), from time \(0\,s\) to time \(2.5\,\mathrm{s}\);

    • Maintain the position \(d_u=0.60\,\mathrm{m}\) until time \(7.5\,\mathrm{s}\);

    • Negative displacement to initial position, from \(d_u=0.60\,\mathrm{m}\) to \(d_u=0.40\,\mathrm{m}\) from time \(7.5\,s\) to time \(10.0\,\mathrm{s}\).

  • To the prismatic joint \(P_s\) of the leg \(L_s\):

    • Maintained on \(d_s=0.05\,\mathrm{m}\) from time \(0\,\mathrm{s}\) to time \(2.5\,\mathrm{s}\);

    • Positive displacement from \(d_s=0.05\,\mathrm{m}\) to \(d_u=0.15\,\mathrm{m}\) from time \(2.5\,\mathrm{s}\) to time \(5.0\,\mathrm{s}\);

    • Maintain the position \(d_s=0.15\,\mathrm{m}\) until time \(7.5\,\mathrm{s}\);

    • Negative displacement to initial position, from \(d_s=0.15\,\mathrm{m}\) to \(d_s=0.05\,\mathrm{m}\) from time \(7.5\,\mathrm{s}\) to time \(10.0\,\mathrm{s}\).

  • To the prismatic joint \(P_r\) of the leg \(L_r\):

    • Maintained on \(d_r=0.20\,\mathrm{m}\) from time \(0\,\mathrm{s}\) until time \(5.0\,\mathrm{s}\);

    • Positive displacement from \(d_r=0.20\,\mathrm{m}\) to \(d_r=0.35\,\mathrm{m}\) from time \(5.0\,\mathrm{s}\) to time \(7.5\,\mathrm{s}\);

    • Negative displacement to initial position from \(d_r=0.35\,\mathrm{m}\) to \(d_r=0.20\,\mathrm{m}\) from time \(7.5\,\mathrm{s}\) to time \(10.0\,\mathrm{s}\).

Figure 8 depicts the profile of each prismatic displacement.

Fig. 8
figure 8

Joints displacements

Using the specified sampling time: \(\varDelta t=0.01\,\mathrm{s}\), the desired velocities of each prismatic joint of each leg were computed by 1st order approximation and the results is shown in Fig. 9.

Fig. 9
figure 9

Joints velocities

6.3 Simulation

With the Triflex II parameters, and in agreement with the desired displacement to the prismatic joints, the position and differential kinematics to the point E were computed by proposed direct kinematics equations.

Using Eqs. (1), (22), (25) and (26) were computed the coordinates of the point E. The simulation profiles of the coordinates of the point E, are shown in Fig. 10.

Fig. 10
figure 10

Displacements simulated to the coordinates of the point E

The respective velocities to the point E were computed using Eq. (33), and the resultant profiles for each coordinate are shown in Fig. 11.

Fig. 11
figure 11

Velocities simulated to the point E

The proposed inverse kinematics equations were validated computing the profiles of position to \(d_u, d_s\) and \(d_r\) of the prismatic joints for each leg, applying as input the resultant profiles of the coordinates of the point E (see Fig. 10) and using Eqs. (6), (7), (8) and (14). The inverse differential kinematics equation was validated computing the profiles of velocities to \(\dot{d}_u, \dot{d}_s\) and \(\dot{d}_r\) of the prismatic joints for each leg, applying as input the resultant profiles of the coordinates of velocities of the point E (see Fig. 11), on Eq. (31).

The results of the inverse kinematics equation are similar to the profiles of the positions and velocities of the prismatic joint displacements \(d_u, d_s\) and \(d_r\) depicted on Figs. 8 and 9 respectively. Using a discrete version of the IAE criterion (Integral of the absolute magnitude of the error) the profiles were compared and resulted on \(IAE<10^{-15}\), indicating that the proposed modeling is correct, because the IAE has magnitude sufficiently small compared to the dimensions of the links of the robot.

7 Conclusion

This paper presented a parallel mechanism with asymmetrical kinematic structure and variable configuration called Triflex II mechanism.

The main features of the Triflex II mechanism are its asymmetric kinematic structure and its self-aligning characteristics. Additional degrees of freedom that do not interfere in the motion of the moving platform gives to Triflex II dexterity to adapt the prismatic joints in any position on the base, these additional degrees of freedom are called by Simoni et al. [20, 21] self-aligning degrees of freedom.

The complete kinematics model equations to position and velocities was developed and presented, allowing the research of new application to Triflex II. The singurities and the limits of workspace were also explored and presented.

The validation of the developed model and equations were performed using a desired profiles of positions and velocities for prismatic joint where the moving platform position and velocities were computed and vice-versa. Using the kinematic models, it was developed a computational simulation and the results obtained were satisfactory. The experiments were performed using different dimensions for links, moving platform and different positions and directions to the prismatic joints of each leg, aiming to explore the properties of asymmetry and self-aligning of the Triflex II robot.

Triflex II proved to be feasible and promising, encouraging researches and developments of new concepts of parallel mechanisms with asymmetric configuration properties and self-aligning. Another motivation to develop parallel mechanisms like Triflex are the applications. Like Triflex I (see Simoni et al. [1921]) Triflex II is also a portable robot, so it can be installed in any place to develop any task. For example, the Triflex robot can be applied to recover rotor blades in hydroelectric power plants because it can work in the confined space of the rotor and it can fit to the complex geometry of the blades.

As further works it is intended to develop a functional prototype of the Triflex II mechanism.