1 Introduction

Parallel manipulators, also known as parallel robots, are increasingly applied in various fields of industry and science. An example of such application of this technology is high-accuracy elevator design, which applies a Stewart platform structure [1,2,3,4,5,6,7]. This construction is a type of a parallel manipulator, which consists of three or six arms connected to a platform. The translation actuators are attached to three positions on the platform’s base plate and extend to three attachment points on the top plate, allowing for three-dimensional movements. Sometimes, in special designs, translation joins are replaced by rotational ones without limiting the operation capacity [8,9,10]. These properties warrant control precision, which makes a Stewart platform an ideal tool for structural analysis and testing devices for different tasks such as elevators, positioners, vehicle/airplane simulators or space systems [11,12,13,14,15].

In recent years, the design and control of parallel structures have become more and more advanced, which allows for a widespread application. The latest findings in this field are very significant. For instance, the manuscript [16] presents some of the main components of Stewart platforms with a precise and original method of analytical geometry for determining the kinematic and dynamic parameters of a parallel movable structure. Unlike other methods, this approach is an exact analytical calculation technique, rather than an iterative-approximate one.

A distinct example in the topic of considered area is the paper [5], which presents an isotropic Stewart configuration. The paper shows the design of the structure and construction of one experimental prototype of the platform. The isotropic characteristics are then tested through verification experiments based on the static principle. In addition, the paper establishes and analyses a model of the isotropic dynamics of the Stewart platform.

The paper [7] explores the dynamics and control of a six-axis vibro-isolator via a flexible Stewart platform, whilst, the manuscript [17] presents, a new dynamic model of the Stewart platform with flexible hinges based on the complex Kane equation with the principle of virtual forces.

Another noteworthy manuscript is [18], which offers an analysis of a Stewart platform that is capable of generating six degrees of freedom spatial orbits. In research studies, authors investigate a method of using spatial orbits to test MEMS inclinometers. Moreover, inverse and forward kinematics are analysed to control and measure the position and orientation of the robot. Furthermore, the platform is steered to generate conical motion, which the sensitivities of the gyroscope, accelerometer and tilt sensor are determined from.

Additional works, such as [19,20,21,22,23,24,25,26,27], also present extensive research on the Stewart platform, which offers many opportunities for development and expansion of a given scientific field. They focus on modeling of the system’s kinematics and dynamics.

Regarding the nonlinear dynamic phenomenon related to mechanical, structural, civil, aerospace, oceanic, electrical and control systems [28,29,30,31] the extensive research studies conducted on the control of nonlinear dynamics of Stewart platform have been described in this paper.

In this manuscript, we attempt to extend the current state of knowledge, to include new expertise and open a new direction of development of the Steward platform technology. Industrial tasks aimed at lifting assignments, especially if high precision is needed. Thus, we present design and construction of a Stewart platform prototype as well as extensive process of modeling of the dynamics. Naturally, we also consider complex research studies and control scenarios of the system. The novelty of the manuscript can be summarised as follows:

  • The design of the Stewart platform presented in the article is a new concept relative to parallel solutions commonly found in the literature. We have introduced three symmetrical leg structures, which entails a more complex kinematic construction representing new properties.

  • We have accounted for the efficiency of transmissions, which affects the behavior of the entire system due to the control tasks.

  • In the simulation studies, we have applied the sin\(^2\) trajectory. Therefore, the control process does not require a large start torque in the initial phase of the platform movement.

This manuscript is structured as follows. After the Introduction, Sect. 2 and 3 present the system’s parameters and properties. Having assessed the feasibility of the system in Sect. 4, we determine the dynamic model of examined system in Sect. 5. In Sect. 6, we propose the control mechanisms of the robot. We thereafter analyse the platform’s motion in Sects. 7–9. Section 10 presents the physical realisation of the prototype and show the results of the verification tests of real-life Stewart platform. The Conclusion section finalises the manuscript.

2 Description of the proposed Stewart platform

Describing the projected system in a precise manner is an important first step in development of a Stewart platform model, which is a high-precision real-life elevator. Such a platform is essential in the automation industry and preferred thanks to its valuable properties.

A crucial assumption about the model is that the top of the platform cannot rotate around the z axis (Yaw rotation). Thus, in the designing platform, the rods are linked with the power system tips with the controlling plane using restricted ball connections (having two DoFs - Degrees of Freedom). The configuration of the system is 3-RSS (Rotary-Spherical-Spherical), where only the first rotary joints are the drive nodes, whilst, the spherical joins transfer the torque. This enables rotation of the rod ends around all the axes. Such an approach leads to great difficulties in determining the model, but allows for meeting the assumptions about the functioning of the Stewart platform as an elevator.

In the design process, we assumed that the elevator would lift a mass of 100 kg to a height of tens of centimeter. Note that, given the importance of the accuracy of movement and ensuring the minimization of the dynamic deviation of the platform, the drive is not fully synchronous due to its complex structure. The drive consists of frequency inverters, three-phase servomotors (in some cases induction motors with a special performance) as well as gears dedicated to these servomotors.

Furthermore, we have assumed that the mass of the platform itself is 30 kg, the weight of the rods connecting the tips of the drive with the platform is 5 kg and the weight of the strengthened arms from the gears is 10 kg. The lifting height determines the parameters of the arms of the drive system and the length of the rods connecting the motion system with the platform. In the process of deducting the dependencies, we assumed that: the parts denoted with the letter C are the characteristic points of the platform and define their coordinates xy and z, the parts denoted with the letter B are the points of attachment of the drive’s arms, while the parts denoted with the letter A denote the central points of the transmission shaft connected to the drive’s arms (please see Fig. 1).

Fig. 1
figure 1

The scheme of the Stewart platform

The drive’s arms rotate around an axis passing through the centre of the gear shaft. In the case of the A3 point, the axis is parallel to the y of the entire system. The other rotation axes have been obtained by rotating mentioned axis by 120 or 240 degrees, respectively. The values \(q_{1} \), \( {q}_{2}\) and \({q}_{3}\), depicted in the Fig. 1, are rotation angles of the arms mounted to the transmission. R is the length of mentioned arms, L is the length of the rods connecting the tip of the drive arms with the mounting points on the platform, b is a half distance between the mounting points on the platform, a and c are distances generated thanks to the equilateral triangle position of C1, C2 and C3 points. With such a platform design, the focal point of this equilateral triangle, marked in the Fig. 1 with, a circle connected to the arms, moves only vertically and its height at the beginning of the global system xyz is denoted with \({h}_{0}\).

The axis parallel to the x line located at \({h_0}\) is the axis around which the platform model rotates, while \(\varphi \) denotes the coordinate of this movement. The platform rotates around the axis parallel to the y line at \({h_0}\) according to \(\vartheta \). We denote the platform’s mass as \({m}_{t}\) and the masses of the arms attached to the transmission as \({m}_{r}\). In our modeling, we also assumed that there is an additional mass on the platform, denoted as \({m}_{L}\). Since this mass may be eccentric to the centre of the platform, the model considers any shifts in three axes of the centre of mass of the load and the resulting changes in the moments of inertia of the load relative to the axis of the coordinate system.

After having explained the notions, we discuss the properties of the designing system in next section.

3 Kinematics analysis

At the core of modelling process, we need to consider the constraints between the attachment points. As part of this, we need to take into account the basic relationships between the positions C1, C2 and C3, which depend on the angles of rotation of the frame and its lifting, as well as the positions of points B1, B2 and B3, which depend on the angles of rotation of the arms attached to the transmission.

If \({x}_{C1}, {y}_{C1}\) and \({z}_{C1}\) denote the coordinates of point C1, \({x}_ {C2}, {y}_{C2}\), while \({z}_{C2}\) stands for the coordinates of the point C2, \({x}_{C3}, {y}_{C3}\) and \({z}_{C3}\) describe the point C3, \({x}_{B1}, {y}_{B1}\) and \({z}_{B1}\) mark the coordinates of point B1, \({x}_{B2}, {y}_{B2}\) and \({z}_{B2}\) denote coordinates of point B2 and finally \({x}_{B3}, {y}_{B3}\) and \(\textit{z}_{B3}\) denote the coordinates of point B3, then the equations defining the relationships between the mentioned values have the following form

$$\begin{aligned}{} & {} \left( x_{B1} - x_{C1} \right) ^{2} + \left( y_{B1} - y_{C1}\right) ^{2}\nonumber \\{} & {} + \left( z_{B1} - z_{C1} \right) ^{2} = L^{2}, \end{aligned}$$
(1)
$$\begin{aligned}{} & {} \left( x_{B2} - x_{C2} \right) ^{2} + \left( y_{B2} - y_{C2}\right) ^{2}\nonumber \\{} & {} + \left( z_{B2} - z_{C2} \right) ^{2} = L^{2}, \end{aligned}$$
(2)
$$\begin{aligned}{} & {} \left( x_{B3} - x_{C3} \right) ^{2} + \left( y_{B3} - y_{C3}\right) ^{2}\nonumber \\{} & {} + \left( z_{B3} - z_{C3} \right) ^{2} = L^{2}. \end{aligned}$$
(3)

Moreover, according to the Fig. 1, additional properties can be stated as follows:

$$\begin{aligned} \begin{aligned} x_{B1}&= -a + f(u), \;\; y_{B1}= -b - \sqrt{3}f(u), \;\; \\ z_{B1}&= -Ru,\\ x_{B2}&= -a + f(v), \;\; y_{B2} = -b - \sqrt{3}f(v), \;\; \\ z_{B2}&= -Rv,\\ x_{B3}&= c - 2f(w), \;\; y_{B3} = 0, \;\; z_{B3} = -Rw,\\ \end{aligned} \end{aligned}$$
(4)

where \(f(x)=- \left( \frac{1}{2} \right) R \; \root \of {(1-x^{2})}\), \(u =\mathrm{{cos}}({q}_{1})\), \(v = \mathrm{{cos}}({q}_{2})\) and \(w = \mathrm{{cos}}({q}_{3})\), respectively. In order to find a solution of considered equations, it is necessary to meet the conditions of positivity of the root functions, which, according to the MATLAB code, have the following forms:

$$\begin{aligned} \begin{aligned}&f \left( x_{C1}, y_{C1}, z_{C1} \right) \\&\quad = -z_{C1}^{2} (2 R^{2} \left( y_{C1} + b \right) \left( x_{C1} + a \right) \;\sqrt{3} + y_{C1}^{4} \\&\qquad + 4 y_{C1}^{3}b + \bigg (-2L^{2} - R^{2} + 2x_{C1}^{2} + 4x_{C1}a\\ {}&\qquad + 2z_{C1}^{2} + 2a^{2} +6b^{2}\bigg ) y_{C1}^{2}\\ {}&\qquad - b\left( L^{2} + \frac{1}{2} R^{2} - a^{2} - 2ax_{C1} - b^{2} - x_{C1}^{2} -z_{C1}^{2}\right) \\&\quad y_{C1} + b^{4} + \left( -2L^{2} - R^{2} + 2x_{C1}^{2} +4ax_{C1}+2z_{C1}^{2} +2a^{2}\right) \\&\quad b^{2} + L^{4} + \bigg (-2R^{2} - 2x_{C1}^{2} - 4ax_{C1} -2z_{C1}^{2} -2a^{2})L^{2}+R^{4} \\&\quad + \left( x_{C1}^{2} + 2ax_{C1} - 2z_{C1}^{2} + a^{2}\right) R^{2}\\ {}&\qquad +\bigg (x_{C1}^{2} +2ax_{C1}+z_{C1}^{2} +a^{2}\bigg )^{2}\bigg ), \end{aligned}\nonumber \\ \end{aligned}$$
(5)
$$\begin{aligned} \begin{aligned}&f \left( x_{C2}, y_{C2}, z_{C2} \right) \\&\quad = -z_{C2}^{2} (-2 R^{2} \left( - y_{C2} + b \right) \left( x_{C2} + a \right) \;\sqrt{3}\\&\qquad + y_{C2}^{4} - 4 y_{C2}^{3}b + (-2L^{2} - R^{2} + 2x_{C2}^{2} + 4ax_{C2} + 2z_{C2}^{2}\\&\qquad + 2a^{2} +6b^{2}) y_{C2}^{2} + 4b\left( L^{2} + \left( \frac{1}{2}\right) R^{2}-a^{2}-2ax_{C2} - b^{2}\right. \\&\qquad \left. - x_{C2}^{2}- z_{C2}^{2}\right) y_{C2}+b^{4}+ \bigg (-2L^{2} - R^{2} + 2x_{C2}^{2} + 4ax_{C2} \\&\qquad + 2z_{C2}^{2} + 2a^{2}\bigg )b^{2}+ L^{4} +\bigg (-2R^{2} - 2x_{C2}^{2} - 4ax_{C2} - 2z_{C2}^{2}\\ {}&\quad - 2a^{2}\bigg )L^{2}+R^{4}+ \left( x_{C2}^{2} +2ax_{C2} - 2z_{C2}^{2} + 2a^{2}\right) R^{2} \\&\qquad + \left( x_{C2}^{2} + 2ax_{C2}+ z_{C2}^{2} + a^{2}\right) ^{2}\bigg ), \end{aligned}\nonumber \\ \end{aligned}$$
(6)

and

$$\begin{aligned} \begin{aligned}&f \left( x_{C3}, y_{C3}, z_{C3} \right) \\&\quad = - (c^{4} - 4x_{C3}c^{3}+ \bigg (-2L^{2} - 2R^{2} + 6x_{C3}^{2}\\&\qquad + 2y_{C3}^{2}+ 2z_{C3}^{2}\bigg )c^{2}\\&\qquad +4x_{C3}\left( L^{2}+R^{2}- x_{C3}^{2} -y_{C3}^{2} -z_{C3}^{2}\right) c \\&\qquad + R^{4}+\left( -2L^{2} -2x_{C3}^{2} + 2y_{C3}^{2} - 2z_{C3}^{2}\right) R^{2}\\ {}&\qquad +\bigg (L^{2} - x_{C3}^{2}- y_{C3}^{2} - z_{C3}^{2})^{2}\bigg )z_{C3}^{2}. \end{aligned} \end{aligned}$$
(7)

Only the positivity of the above expressions (Eqs. 57) allows the Eqs. (1)–(3) to be solved, thanks to which we obtain functions defining cosines of coordinates \(\textit{q}_{1}\), \(\textit{q}_{2}\) and \(\textit{q}_{3}\).

To finally associate the coordinates \({q}_{1}\), \({q}_{2}\) and \({q}_{3}\) of their first and second derivatives with the rotation angles of the platform and its elevation \(\varphi \), \(\vartheta \) and \({h}_{0}\), we must determine the coordinates of the points \(x_{C1}\), \(y_{C1}\) and \(z_{C1}\), \(x_{C2}\), \(y_{C2}\) and \(z_{C2}\), \(x_{C3}\), \(y_{C3}\) and \(z_{C3}\). Given the coordinate system, we assumed for the flat platform, we can determine the position vectors of the respective points. For C1, C2 and C3 the vectors are as follows:

$$\begin{aligned} {\mathbf {u_{C1}}}= \begin{bmatrix} -a \\ -b \\ 0 \\ 1 \end{bmatrix},\; {\mathbf {u_{C2}}} = \begin{bmatrix} -a \\ b \\ 0 \\ 1 \end{bmatrix},\; {\mathbf {u_{C3}}} = \begin{bmatrix} c \\ 0 \\ 0 \\ 1 \end{bmatrix}. \end{aligned}$$
(8)

Considering the following transformation matrices, subject to the angles of rotation and elevation of the platform:

$$\begin{aligned} {\mathbf {T_x}}= & {} \begin{bmatrix} 1 &{} 0 &{} 0&{} 0\\ 0 &{} \mathrm{{cos}}(\varphi ) &{} -\mathrm{{sin}}(\varphi ) &{} 0 \\ 0 &{} \mathrm{{sin}}(\varphi ) &{} \mathrm{{cos}}(\varphi ) &{} h_{0} \\ 0 &{} 0 &{} 0&{} 1 \end{bmatrix}\,\,\,\textrm{and}\,\,\, \nonumber \\ {\mathbf {T_y}}= & {} \begin{bmatrix} \mathrm{{cos}}(\vartheta ) &{} 0 &{} \mathrm{{sin}}(\vartheta )&{} 0\\ 0 &{} 1 &{} 0 &{} 0 \\ -\mathrm{{sin}}(\vartheta ) &{} 0 &{} \mathrm{{cos}}(\vartheta ) &{} 0 \\ 0 &{} 0 &{} 0&{} 1 \end{bmatrix},\; \end{aligned}$$
(9)

we receive the coordinates of the points as follows:

$$\begin{aligned} \begin{aligned} x_{C1}&= -\mathrm{{c}}(\vartheta )a, \;\; y_{C1} = -\mathrm{{c}}(\varphi )b -\mathrm{{s}}(\varphi )\mathrm{{s}}(\vartheta )a, \\ z_{C1}&= -\mathrm{{s}}(\varphi )b+\mathrm{{c}}(\varphi ) \mathrm{{s}}(\vartheta )a+h_{0},\\ x_{C2}&= -\mathrm{{c}}(\vartheta )a,\;\; y_{C2} = \mathrm{{c}}(\varphi )b -\mathrm{{s}}(\varphi )\mathrm{{s}}(\vartheta )a,\\ z_{C2}&= \mathrm{{s}}(\varphi )b+\mathrm{{c}}(\varphi ) \mathrm{{s}}(\vartheta )a+h_{0},\\ x_{C3}&= \mathrm{{c}}(\vartheta )c,\;\; y_{C3} = \mathrm{{s}}(\varphi )\mathrm{{s}}(\vartheta )c,\\ z_{C3}&= -\mathrm{{c}}(\varphi )\mathrm{{s}}(\vartheta )c+h_{0}, \end{aligned} \end{aligned}$$
(10)

where s(.) and c(.) denote the sin(.) and cos(.) functions, respectively.

Having all the above, it is convenient to calculate the number of DoFs of the entire system using the Kutzbach-Grübler formula [32]

$$\begin{aligned} M=6(N-1-j)+ \sum _{i=1}^{j} f_i, \end{aligned}$$
(11)

where the new projected system has a moving and fixed body and an additional three-leg system, each has two moving body \(N=2+3\cdot 2=8\), number of all joints is \(j=9\), and number of joint’s freedom is \(f_{1,2,3}=1\) (three rotary joints) and \(f_{4-9}=2\) (six spherical joints) what finally give 3-DoF \((M=6(8-1-9)+ 3\cdot 1+6\cdot 2 =3\)).

In order to verify the obtained kinematics equations, we have carried out simulation studies on the feasibility of the given trajectories. To perform our simulation studies, we determine R and L values that meet the design conditions by the platform layout analysis. More specifically, we carry out an investigation of the possibility of movement in relation to the \(\varphi \), \(\vartheta \) and \(h_0\) for the selected parameters. For the reason of assumed movement from \(h_0=0.3\) to 1.3 m, we obtained the following dimensions: \(R=0.65, L=0.82\) and \(b=0.75\).

We received the results of the root functions for different platform heights. For the sake of clarity of this manuscript, we show only selected results below. For simplicity of the notation, the \(x_1\) coordinate in the figures below corresponds to the platform coordinate equal to \(x_{C1}\), the \(y_1\) to the \(y_{C1}\), the \(z_1\) to the \(z_{C1}\) and other coordinates, respectively.

After investigating the structure of the designed Stewart platform, we observed that the value of the \(x_{1}\) coordinate depended on the angle \(\vartheta \) only (see Fig. 2). Furthermore, it is possible to change the \(\varphi \) and \(\vartheta \) angles so that the \(y_{1}\) coordinate does not change despite the non-zero values of mentioned angles (see Fig. 3).

Fig. 2
figure 2

The \(x_1\) coordinate as a function of the \(\varphi \) and \(\vartheta \) angles

Fig. 3
figure 3

The \(y_1\) coordinate as a function of the \(\varphi \) and \(\vartheta \) angles

Going further, the conducted research showed that the function \(z_{1}\) changed practically linearly with the total increasing of the \(\varphi \) and \(\vartheta \) angles (see Fig. 4). We obtained similar properties for the root function, which reached a zero value for maximum \(\varphi \) and minimum \(\vartheta \) under \(h_0=0.3\) m (see Fig. 5). In this case, the distance between points \(C_1\) and \(A_1\) changes virtually linearly along with the change of arguments, which is an important piece of information in the context of designing the control system.

Fig. 4
figure 4

The \(z_1\) coordinate as a function of the \(\varphi \) and \(\vartheta \) angles

Fig. 5
figure 5

The distance between \(C_1\) and \(A_1\) points as a function of the \(\varphi \) and \(\vartheta \) angles

However, the \(y_2\) coordinate change is the “inverted” function of the \(y_1\) (see Fig. 6). And once again, the \(z_2\) coordinate depends virtually linearly on the combined value of \(\varphi \) and \(\vartheta \) (see Fig. 7).

Fig. 6
figure 6

The \(y_2\) coordinate as a function of the \(\varphi \) and \(\vartheta \) angles

Fig. 7
figure 7

The \(z_2\) coordinate as a function of the \(\varphi \) and \(\vartheta \) angles

Similarly to \(y_2\), \(x_3\) is an “inverted” function of \(x_1\) coordinate change (see Fig. 8). At the same time, behaviour of \(y_3\) is different from the performance of the abovementioned \(y_1\) and \(y_2\) variables (see Fig. 9).

Fig. 8
figure 8

The \(x_3\) coordinate as a function of the \(\varphi \) and \(\vartheta \) angles

Fig. 9
figure 9

The \(y_3\) coordinate as a function of the \(\varphi \) and \(\vartheta \) angles

The \(z_3\) value, received at the final stages of this exercise, together with the \(z_1\) and \(z_2\) coordinates, reveals virtually linear changes in a function of the angles \(\varphi \) and \(\vartheta \). This suggests that it is possible to precisely determine the height of the designed platform (see Figs. 4, 7 and 10). Moreover, in Fig. 11, the height of the point \(C_3\) is also a good factor of the distance between points \(C_3\) and \(A_3\). Thanks to this, we can apply simplified control method when high precision is not required, especially when the process management computer is not very efficient.

Fig. 10
figure 10

The \(z_3\) coordinate as a function of the \(\varphi \) and \(\vartheta \) angles

Fig. 11
figure 11

The difference in the distance between \(C_3\) and \(A_3\) and the height of the \(C_3\) point

Thereafter, we performed a set of simulation studies covering the analysis for various altitudes of the platform. However, due to space limitation reasons, we are in position to present only the most prominent results of those studies.

The relationship between the rotational velocities of the arms attached to the transmission and the velocities of variables \(\varphi \) and \(\vartheta \) and \(h_{0}\) can be formulated as follows:

$$\begin{aligned} \begin{bmatrix} \frac{dq_1}{dt}\\ \frac{dq_2}{dt} \\ \frac{dq_3}{dt} \end{bmatrix}=\textbf{I}_{3 \times 3} \begin{bmatrix} \frac{-1}{\sqrt{1-u^2}}\\ \frac{-1}{\sqrt{1-v^2}} \\ \frac{-1}{\sqrt{1-w^2}} \end{bmatrix} \begin{bmatrix} q_{11t} &{} q_{12t} &{} q_{13t}\\ q_{21t} &{} q_{22t} &{} q_{23t}\\ q_{31t} &{} q_{32t} &{} q_{33t}\\ \end{bmatrix} \begin{bmatrix} \frac{d\varphi }{dt}\\ \frac{d\vartheta }{dt} \\ \frac{dh_0}{dt} \end{bmatrix},\nonumber \\ \end{aligned}$$
(12)

where \(\textbf{I}_{3 \times 3}\) stands for the \(3 \times 3\) identity matrix and coefficients \(q_{nkt} \; (n,k=1,2,3)\) have been shown in the Eq. (A.1) of Appendix A section.

After analyzing the relationships between the variables related to the movement of the platform and the rotational variables of the drives, together with the velocities, we can determine the relationship of accelerations for the movement of the drive, which are described in the next section in the context of the dynamic model of the system.

4 Dynamics analysis of Stewart platform

Having the Eq. (12), we can apply the mentioned relationships and functions defining the coordinate values of points B1, B2 and B3 and points C1, C2 and C3 (Eq. 10) to determine the dynamic model of the platform using the Lagrangian equation.

Due to the space limitation, we are not in position to present a full description of the platform dynamic model in the main body of the manuscript, but we provide it in Appendix B. Here, we focus on the key part, which is the virtual work performed on the platform system by external and friction forces. For this purpose, we use the following auxiliary formulae:

$$\begin{aligned} \begin{aligned} M_1 =&\left( T_{s1}k_p\eta - M_{01}({\dot{q}}_1,t)\right) \left( \frac{-1}{\sqrt{1-u^2}}\right) \\&- \left( D_w k_p^2 + D_R\right) \frac{1}{1 - u^2}\left( q_{11t}{\dot{\varphi }} + q_{12t}{\dot{\vartheta }} + q_{13t}{\dot{h}}_0\right) , \end{aligned}\nonumber \\ \end{aligned}$$
(13)
$$\begin{aligned} \begin{aligned} M_2 =&\left( T_{s2}k_p\eta - M_{02}({\dot{q}}_2,t)\right) \left( \frac{-1}{\sqrt{1-v^2}}\right) \\&- \left( D_w k_p^2 + D_R\right) \frac{1}{1 - v^2}\left( q_{21t}{\dot{\varphi }} + q_{22t}{\dot{\vartheta }} + q_{23t}{\dot{h}}_0\right) , \end{aligned}\nonumber \\ \end{aligned}$$
(14)

and

$$\begin{aligned} \begin{aligned} M_3 =&\left( T_{s3}k_p\eta - M_{03}({\dot{q}}_3,t)\right) \left( \frac{-1}{\sqrt{1-w^2}}\right) \\&- \left( D_w k_p^2 + D_R\right) \frac{1}{1 - w^2}\left( q_{31t}{\dot{\varphi }} + q_{32t}{\dot{\vartheta }} + q_{33t}{\dot{h}}_0\right) , \end{aligned}\nonumber \\ \end{aligned}$$
(15)

where \(T_{s1}\), \(T_{s2}\) and \(T_{s3}\) are motor torques, \(M_{01}\), \(M_{02}\) and \(M_{03}\) are resistance moments resulting from dry friction (which decreases quickly to zero after the start of the movement), \(D_{w}\) and \(D_{R}\) are coefficients of viscous friction, \(k_p\) is the gear ratio (determines the ratio of speeds on the primary and secondary sides of the gear) and \(\eta \) is the gear efficiency, which in general depends on the motor rotation speed. The use of the gear efficiency is a fact that should be emphasised, because this coefficient has a huge impact on the control tasks. Given the Eqs. (13)–(15) the external forces that influence the system are as follows:

$$\begin{aligned} \begin{aligned} {\tilde{P}}_{\varphi } = M_1 q_{11t} + M_2 q_{21t} + M_3 q_{31t} - D_{\varphi } {\dot{\varphi }}, \end{aligned} \end{aligned}$$
(16)
$$\begin{aligned} \begin{aligned} {\tilde{P}}_{\vartheta } = M_1 q_{12t} + M_2 q_{22t} + M_3 q_{32t} - D_{\vartheta } {\dot{\vartheta }}, \end{aligned} \end{aligned}$$
(17)

and

$$\begin{aligned} \begin{aligned} {\tilde{P}}_{h_{0}} = M_1 q_{13t} + M_2 q_{23t} + M_3 q_{33t} - D_{h_{0}}{\dot{h}}_{0}. \end{aligned} \end{aligned}$$
(18)

Equations (16)–(18) allow to determine the required torques of the motors and the implementation of the given trajectory using the inverse dynamics. This method is more precise than the more commonly used inverse kinematics for instance. However, in the considered complex model, inverse dynamics control requires a very efficient computer that can carry out the model identification process and select the regulator’s settings in a precise manner. The next section presents various control mechanisms.

5 Control mechanisms

In this section, we present some approaches concerning the control of the Stewart platform. We start with considering one of the most basic scenarios in following subsection.

5.1 Inverse kinematic control

The inverse dynamics and robust control method seem to be the most appropriate control for nonlinear Stewart platform. However, this method may prove too difficult due to the significant computing requirements. Below a general recommendation for inverse kinematics control, especially for matrix \(\textbf{K}\), has been given.

The abovementioned control method is extensively described in the literature [33,34,35,36,37]. Given the multivariable character of analysed Stewart system, we propose the MIMO control approach below. For \(\textbf{y}(t)\) denoting the vector of output variables and \(\textbf{x}(t)\) for the vector of state variables in form of

$$\begin{aligned} \begin{aligned} \textbf{x}(t)=\left[ \varphi (t), \vartheta (t), h_0(t), \frac{d\varphi (t)}{dt}, \frac{d\vartheta (t)}{dt}, \frac{dh_0 (t)}{dt}\right] ^\textrm{T}, \end{aligned}\nonumber \\ \end{aligned}$$
(19)

the model of the system can be given by following equation

$$\begin{aligned} \begin{aligned} \frac{d\textbf{x}(t)}{dt}=F(\textbf{x},t)\textbf{x}(t)+G(t,\textbf{u}(t)), \end{aligned} \end{aligned}$$
(20)

where \(\textbf{u}(t)\) is a control vector. Assuming that the vector of the state variables is also the vector of the output variables (\(\textbf{y}(t)=\textbf{x}(t)\)) and this is indeed true for analysed system (see Eq. 19), the control law can be defined in the following manner

$$\begin{aligned} \textbf{u}(t)=\textbf{K}\delta \textbf{y}(t), \end{aligned}$$
(21)

where

$$\begin{aligned} \begin{aligned}&\delta \textbf{y}(t)=\left[ \varphi _d(t)-\varphi (t), \vartheta _d(t)-\vartheta (t), h_{0d}(t)-h_0(t),... \right. \\&\left. ..., \frac{d\varphi _d(t)}{dt}-\frac{d\varphi (t)}{dt}, \frac{d\vartheta _d(t)}{dt}-\frac{d\vartheta (t)}{dt}, \frac{dh_{0d}(t)}{dt}-\frac{dh_0(t)}{dt}\right] ^\textrm{T}, \end{aligned}\nonumber \\ \end{aligned}$$
(22)

and, in the analysed system, the matrix \(\textbf{K}\) constitutes the proportional and derivative gain. Moreover, if we also know the maximum angular velocities of the arms attached to the gear

$$\begin{aligned} \begin{aligned} dq_{1max}&= \left\langle \left[ \frac{dq_{1}}{dt} \right] \right\rangle , dq_{2max}= \left\langle \left[ \frac{dq_{2}}{dt} \right] \right\rangle ,\\ dq_{3max}&= \left\langle \left[ \frac{dq_{3}}{dt} \right] \right\rangle , \end{aligned} \end{aligned}$$
(23)

then the gain matrix has the following form

$$\begin{aligned} \begin{aligned} \mathbf { K = \begin{bmatrix} \frac{dq_{1max}}{|\varphi |max} &{} \frac{dq_{1max}}{|\vartheta |max} &{}\frac{dq_{1max}}{|h_{0} |max} &{}\frac{dq_{1max}}{|\frac{d\varphi }{dt} |max} &{}\frac{dq_{1max}}{|\frac{d\vartheta }{dt} |max} &{}\frac{dq_{1max}}{|\frac{dh_{0}}{dt} |max} \\ \frac{dq_{2max}}{|\varphi |max} &{} \frac{dq_{2max}}{|\vartheta |max} &{}\frac{dq_{2max}}{|h_{0} |max} &{}\frac{dq_{2max}}{|\frac{d\varphi }{dt} |max} &{}\frac{dq_{2max}}{|\frac{d\vartheta }{dt} |max} &{}\frac{dq_{2max}}{|\frac{dh_{0}}{dt} |max} \\ \frac{dq_{3max}}{|\varphi |max} &{} \frac{dq_{3max}}{|\vartheta |max} &{}\frac{dq_{3max}}{|h_{0} |max} &{}\frac{dq_{3max}}{|\frac{d\varphi }{dt} |max} &{}\frac{dq_{3max}}{|\frac{d\vartheta }{dt} |max} &{}\frac{dq_{3max}}{|\frac{dh_{0}}{dt} |max} \\ \end{bmatrix}.} \end{aligned}\nonumber \\ \end{aligned}$$
(24)

Having the notion of the inverse kinematic control, we will now discuss more complex control law in the next section.

Fig. 12
figure 12

The structure of a robust controller

5.2 Inverse dynamic control

Employing the equations describing the external forces affecting the system (Eqs. 1618), it is possible to determine the required motor torques to accomplish the given trajectory by using inverse dynamics. For this reason, let us rewrite the nonlinear dynamic equations of the system to a more convenient form [38]:

$$\begin{aligned} \begin{aligned} \textbf{M}(\textbf{q}) \ddot{\textbf{q}} +\textbf{h}(\textbf{q}, \dot{\textbf{q}})= \textbf{u}. \end{aligned} \end{aligned}$$
(25)

The inverse dynamics control, allowing to determine the motor torques for considered system, can be written as follows:

$$\begin{aligned} \begin{aligned} \textbf{T}_r = F[\textbf{M}(\textbf{q})] \ddot{\textbf{q}}_r +\textbf{h}(\textbf{q}, \dot{\textbf{q}}). \end{aligned} \end{aligned}$$
(26)

This approach is more accurate than the inverse kinematics, yet it requires a very efficient computer for numerical calculation of the complex Stewart platform dynamics. Moreover, it allows to determine the equivalent acceleration in relation to the variables of the plant. In our case, for \(\varphi \), \(\vartheta \) and \(h_0\) system variables, the relation can be specified by the following equation:

$$\begin{aligned} \begin{aligned} \ddot{\textbf{q}}_r = \ddot{\textbf{q}}_d + \mathbf {K_D} (\dot{\textbf{q}}_d - \dot{\textbf{q}}) + \mathbf {K_P} (\textbf{q}_d - \textbf{q}), \end{aligned} \end{aligned}$$
(27)

where the lower index d denotes the designed values, i.e. acceleration, velocity and position of the variables. The \(\ddot{\textbf{q}}_r\) symbol is the desired acceleration for the variables in the system, whilst the \(\mathbf {K_P}\) and \(\mathbf {K_D}\) are matrices defining the gains of proportional (relative to positions) and differential (relative to velocities) controllers, respectively.

Although the use of nonlinear inverse dynamics control for a nonlinear object finally allows to obtain a closed linear object, there are always some drawbacks, for instance due to inaccurate parametric estimation of the process. Therefore, the best way seems to be to use the robust control, which is described in the next section.

5.3 The robust control

The presented in this section considerations are based on [38]. Thus, with the nonlinear object given by Eq. (25), the nonlinear control will always be based on the estimation:

$$\begin{aligned} \begin{aligned} \textbf{u}(t) = \hat{\textbf{M}}(\textbf{q})\ddot{\textbf{q}}_r +\hat{\textbf{h}}(\textbf{q}, \dot{\textbf{q}}). \end{aligned} \end{aligned}$$
(28)

Therefore, in nonlinear control, there is always some degree of inaccuracy expressed by the following formulae:

$$\begin{aligned} \begin{aligned} \Delta \textbf{M}=\hat{\textbf{M}}(\textbf{q})-\textbf{M}(\textbf{q}), \end{aligned} \end{aligned}$$
(29)

and

$$\begin{aligned} \begin{aligned} \Delta \textbf{h}=\hat{\textbf{h}}(\textbf{q}, \dot{\textbf{q}})-{\textbf{h}}(\textbf{q}, \dot{\textbf{q}}). \end{aligned} \end{aligned}$$
(30)

The control system preserves some degree of uncertainty \({\overline{\eta }}\). To deal with this inconvenience, we can use an additional external feedback loop, taking advantage of the robust control approach (see Fig. 12).

In case of the discussed method, we must determine the energy injection \(\Delta \ddot{\mathbf {q_r}}\) which is added to the control \(\ddot{\mathbf {q_r}}\). Naturally, the additional signal must be determined in line with control law. This manuscript uses the second Lyapunov method.

Remark 1

When the uncertainty \({\overline{\eta }}=0\), then \(\Delta \ddot{\mathbf {q_r}}=\textbf{0}\), which reduces the robust control to the above mentioned control with inverse dynamics.

Hence, the additional boost of external control loop in robust control can be described by the following formula:

$$\begin{aligned} \Delta \ddot{\mathbf {q_r}}=\left\{ \begin{array}{ll} -\rho (\textbf{e},t)\frac{\textbf{B}^\textrm{T}\textbf{P}\textbf{e}}{\Vert {\textbf{B}^\textrm{T}\textbf{P}\textbf{e}} \Vert }, &{} \textrm{for}\Vert {\textbf{B}^\textrm{T}\textbf{P}\textbf{e}} \Vert \ne 0\\ \textbf{0}, &{} \textrm{for}\Vert {\textbf{B}^\textrm{T}\textbf{P}\textbf{e}} \Vert = 0\\ \end{array} \right. , \end{aligned}$$
(31)

where matrix \(\textbf{P}\) is a solution of the Lyapunov equation:

$$\begin{aligned} \begin{aligned} \overline{\textbf{A}}^\textrm{T}\textbf{P}+\textbf{P}\overline{\textbf{A}}+\textbf{Q}=\textbf{0}, \end{aligned} \end{aligned}$$
(32)

with

$$\begin{aligned} \begin{aligned} \rho (\textbf{e},t)=\frac{1}{1-\alpha } \{ \alpha \textbf{Q}_1 + \Vert \textbf{K}\Vert + \Vert \textbf{e}\Vert + \overline{\textbf{M}} \phi (\textbf{e},t)\}, \end{aligned}\nonumber \\ \end{aligned}$$
(33)

under conditions

$$\begin{aligned} \begin{aligned} \Vert \Delta \ddot{\mathbf {q_r}}\Vert<\rho (\textbf{e},t) \,\, \textrm{and} \,\, \Vert {\overline{\eta }}\Vert <\rho (\textbf{e},t), \end{aligned} \end{aligned}$$
(34)

where \(\overline{\textbf{A}}\) stands for the Hurwitz matrix and \(\textbf{e}(t)\) is an error vector, whilst the rest of the parameters and variables are summarized in the Symbols section.

The Matlab robust control code developed by the authors is attached in Appendix A at the end of this manuscript.

Having the propositions of control methods, we will now analyse the platform’s motion.

6 Simulation studies

After establishing the dynamic model of the designed Stewart platform, we carry out simulation studies on position, velocity and acceleration of the platform.

To analyse the behaviour of the system, we consider the upward movement from 30 to 130 cms. After many tests, we reduce the simulation time to 2 s, when the dynamic properties of the system began to affect the final result to a larger extent.

Before the simulation studies were carried out, we assumed the trajectory concerning the changing of the position, velocity and acceleration for the variables \(\varphi \), \(\vartheta \) and \(h_0\), choosing sin\(^2\) trajectory. This kind of movement reveals its very favourable properties. Most notably, it does not require a rapid increase in torque generated by the motors and is characterised with simplicity of calculations.

The trajectory had been successfully verified in the previous studies of manipulators containing drives consisting of inverters and three-phase induction motors [39]. We present two options further in this section. The first approach, with zero reference values of \(\varphi \) and \(\vartheta \), and the second with varying mentioned values with opposite signs.

Fig. 13
figure 13

The analysis of the synchronous operation of the system – scenario 1

The analysis of the synchronous operation of the system consists of an elementary test on the correctness of the derived model of the system, together with the determined relationships between the platform variables (angles \(\varphi \), \(\vartheta \) and the height \(h_0\)) and the joints variables (\(q_1\), \(q_2\) and \(q_3\)). In the first simulation approach, we assume zero angles \(\varphi \) and \(\vartheta \) (see Fig. 13a). At the very beginning, we analyse the position’s characteristics. We received an overlapping peculiarity of the \(q_1\), \(q_2\) and \(q_3\), which indicates that operation of the drives is fully symmetrical in this case (see Fig. 13b).

Fig. 14
figure 14

The analysis of the system operation – scenario 2

At zero angles \(\varphi \) and \(\vartheta \), the overlapping plot of the velocities relative to \(q_1\), \(q_2\) and \(q_3\) indicates a fully synchronous operation of the drives. For the rotational variables of the drive, the asymmetric shape of the angular velocity characteristic results from the construction of the platform (see Fig. 13c, d).

The obtained results allowed to reliably determine the torques required from the motors and transmissions and thus to select motors and transmissions designated to work in the designed real-life Stewart platform.

Fig. 13e, f include all the parameters required for the mechanical part of the drive, such as gear strength, maximum transferable moments, gear ratio (speed changes), gear efficiency, motor rotational speed, useful motor torque and assumed platform movement speed. Thanks to the results and calculations, including the assumptions, we could narrow the selection of indicated drives to practically one family of motors and transmissions, which are the SIMOTIC S-1FK2xxxx Siemens AG servomotor and the Atlanta 98xxxx gearbox.

Going further, we perform additional simulation studies, under the conditions of changing \(\varphi \) and \(\vartheta \) angles. This is in order to examine the behaviour of the system when there is no drive synchronisation due to the control tasks. Moreover, one second after move time has been added to simulation time. This step let us verify the procedures for determining the trajectory of the platform’s movement after its formal stop. The results of the considered approach, treated as scenario 2, are presented in Fig. 14. As we can see in Fig. 14e, f, control on the sin\(^2\) characteristic allows to obtain very “reasonable” torque values at the end of the motion.

Having all necessary simulation studies on the motion of the platform, we will analyse the system based on inverse dynamic control in the section below.

6.1 Analysis of the system based on inverse dynamic control

In this section, we depict the process of controlling the position of the platform using the inverse dynamic control. Fig. 15a, b show that, using this method, we can obtain very precise horizontal stabilisation of the platform. This is because we can correct drawbacks due to asynchronous data transmission to the drives or errors resulting from minor differences in the characteristics of the motors.

Fig. 15
figure 15

The analysis of the system based on inverse dynamic control

Fig. 16
figure 16

The error analysis of the system based on inverse dynamic control

During the simulation studies, we noticed some interesting facts about the system’s precision, particularly about the system’s behaviour in the final part of the move when the platform (elevator) is stopping. At this stage, the regulator was not able to perfectly reset the speed for a time equal to 2 s, due to the kinetic energy contained in the system (see Fig. 15c, d). The waveforms of the angular velocity of the arms attached to the gear behave in a similar way.

Errors depicted in Fig. 16a, b are not too large. It is worth emphasising that the values of the angles \(\varphi \) and \(\vartheta \) remain at zero during the entire movement. Of course, in the simulation, there are no delays in the transmission of signals.

In the considered simulation, position errors at the end of the designed movement do not exceed 0.002 m and 0.0007 rad (approximately 0.042 degrees). It can therefore be assumed that the platform, moves practically horizontally despite the non-zero initial angles.

One of the solutions to deal with the accumulated energy in the final phase of the movement is to wait 0.5 s. This gives the regulators an opportunity to reduce occurred errors to less than 0.5 mms and 0.03 degrees in case of position control. In case of velocity regulation, the errors appearing during the simulation do not exceed 10 mm/s and 0.18 degrees per second (despite a lack of a central motion damper). Like in case of the position control, waiting for 0.5 s reduces these errors to less than 2 mm/s and 0.06 degrees per second (see Fig. 16c, d).

Although the above results seem to be quite acceptable, we will extend the analysis of the robust control in the next section.

6.2 Analysis of the system based on robust control

Robust control leads to better results than achieved so far in the manuscript. The real-life system consists of actuators, for which communication between controller and each servo drive by means of Profinet, is not synchronous (see Sect. 7), which leads to controlling drive systems by means of different parameters. These drawbacks can be practically eliminated thanks to applying robust control, which allows to obtain near synchronous behaviour of the Stewart-lift system. This can be confirmed with simulations, which we carried out assuming \(\varphi _i=0\) and \(\vartheta _i=0\).

Fig. 17
figure 17

The analysis of the system based on robust control

Having analysed the designed reference signals of positions and velocities together with the results obtained after the simulation, it can be concluded that the simulated and observed outcomes are practically identical (see Fig. 17).

Robust control is a perfect fit for the sin\(^2\) trajectory. The figures concerning the change of the rotational coordinates \(q_1\), \(q_2\) with velocities and accelerations, together with the torques, are as smooth as for inverse dynamic control but far more accurate (see Fig. 18).

Fig. 18
figure 18

The analysis of the system based on robust control – continued research with the zero initial values \(\varphi \) and \(\vartheta \)

In the simulations we obtain spectacularly small errors when resorting to the dynamic control method. Thanks to applying a relatively well-calibrated robust regulator, the height errors along the entire trajectory do not exceed \(4.5 \times 10^{-6}\) metre and are lower than \(1.5 \times 10^{-6}\) metre at the end point of the simulation. Similarly, the height change errors do not exceed \(8 \times 10^{-6}\) m/s and are practically equal to zero for times above 2 s. If the robust control method is applied, angular speed errors do not exceed \(1.3 \times 10^{-6}\) rad/s, i.e., c.a. \(7.4 \times 10^{-5}\) degrees/s (see Fig. 18e, f).

Table 1 The list of devices/modules used in the Stewart platform

Having the complete simulation studies of the system, let us employ the developed theoretical considerations to design and assemble the real-life Stewart platform in the next section.

7 Physical realization of the Stewart platform

Taking into account all the above theoretical and simulation considerations, we implement the algorithms on a real-life object. For this purpose, we developed a physical Stewart platform structure as described in the following sections.

7.1 The hardware layer of the Stewart platform

The core of the plant has been based on industrial Programmable Logic Controller. This approach is very convenient due to the limitation of the computing power and helps facilitate the implementation of the system. However, we also selected other modules key to the control process (see Table 1).

After designing and dimensioning the structure of the platform, we construct its 3D model and physical implementation. Due to the stability issues, next to the mentioned original 3-RSS configuration, we added 3-RRR legs to increase the level of system stability. The working system together with the essential components is depicted in Figs. 19, 20, 21, 22 and 23.

Fig. 19
figure 19

Source authors

The 3D CAD model of Stewart platform

Fig. 20
figure 20

Source authors

The dimensional diagram of the platform base

Fig. 21
figure 21

Source authors

The performed real-life Stewart platform with marked one servo drive with absolute encoder (green arrow), joins of drive leg (RSS), passive leg (\(\mathrm R_p R_p R_p\)) with universal U-joint, and absolute draw-wire encoder (red arrows)

Fig. 22
figure 22

Source authors

The performed control cabinet of the Stewart platform

Fig. 23
figure 23

Source authors

The HMI panel with the 3D visualisation

Fig. 24
figure 24

Source authors

Part of the code in TIA Portal environment

Fig. 25
figure 25

Source authors

The HMI screens in the development environment

Fig. 26
figure 26

Source authors

The configuration of the servomotors

Fig. 27
figure 27

Source authors

The received results for one of the drives – elevation movement from l0 to 250 mm. The left column is for the empty platform and right column is for the platform with 40.3 kg load - case l

Fig. 28
figure 28

Source authors

The received results for one of the drives – elevation movement from l0 to 250 mm. The left column is for the empty platform and right column is for the platform with 40.3 kg load - case 2

Fig. 29
figure 29

The repeatability analysis of the real-life system

Fig. 30
figure 30

The analysis of the tracing the sine reference trajectory by real-life Stewart platform

After introducing the hardware part of the designed system, we will focus on the software layer in the following section.

7.2 The software layer of the Stewart platform

The result of comprehensive work on the real-life system, parallel to the appliances, was the software layer which has been developed for management and control tasks. After implementing the theoretical results in TIA Portal (example part of the code has been depicted in Fig. 24), we prepared the HMI, together with the servo motors control, for the correct operation of the system (Figs. 25 and 26).

After the correct configuration of the physical system, we performed the verification tests as presented in the next section.

7.3 Verification tests of the real-life Stewart platform

Having a ready and fully operational real-life system, we performed verification tests of its actual operation. Based on the possibilities of the TIA Portal environment and selected Siemens drives, the measurement process was feasible to perform. In the following figures, we depict the results selected out of a large number. Figure 27 shows results for the up-elevating movement for milliseconds’ level sampling, which reveals the appropriate performance of the designed real-life Stewart platform. Additionally, we increased the value of the reference velocity to show that the developed system works with different operating parameters. However, the obtained results were still satisfactory with respect to occurring errors (see Fig. 28). In order to determine the absolute system accuracy and ensure for repetitiveness, we ran ten cycles of parallel platform movement in the following configuration: center\(\rightarrow \)up\(\rightarrow \)center\(\rightarrow \)bottom\(\rightarrow \)center (150 mm\(\rightarrow \)300 mm\(\rightarrow \)150 mm\(\rightarrow \)0 mm\(\rightarrow \)150 mm) platform position. Having obtained the errors from the absolute draw-wire encoder (see Table 1), with measurement accuracy of 0.1 mm/pulse, we verified the repeatability accuracy (the results are presented in Fig. 29).

Finally, we verified the dynamic control process for the real-life system. By using the ’Technology objects’ existing in Siemens T version controllers, we created sine trajectory, with an access ramp (see Fig. 30a). Since the mentioned trajectory must have an extortion, we created a virtual axis as a master for all axes of the platform (please see Fig. 30b). We used the ’Motion Control’ function to traverse the mentioned virtual axis, while at the same time measuring the values from encoders of all three axes and the draw-wire encoder indicating altitude of the platform. The obtained results, tracking a given trajectory, are shown in Fig. 30.

Having obtained the results, we are now turning to the conclusions in the next section of the paper.

8 Conclusions

In this manuscript, we presented a complete process, from the very beginning to physical realisation, of making useful Stewart platform with three degrees of freedom. We have introduced a new concept based on three symmetrical leg structures, which entails a more complex kinematic construction and represents new properties relative to parallel solutions commonly found in the literature.

After determining the geometry of the system, we carry out a comprehensive process of theoretical considerations, including determining the platform dynamics model. Consequently, we built a dynamic nonlinear system and verified it through simulation studies. We proposed the inverse, kinematic and dynamic, control approaches and for designed robust control we received high accuracy behavior. That is, for applying well-calibrated robust regulator, the position/height errors do not exceed \(4.5 \times 10^{-6} \)m for entire process of tracing sin\(^2\) trajectory. Whereas, the velocity errors for mentioned scenario is less than \(8 \times 10^{-6} \) m/s. Finally, after the testing and design phases, we developed and constructed a physical prototype, on which we implemented our algorithms. The verification of the real-life platform again have confirmed a high accuracy in the elevation tasks. The position error during the tracking the sine trajectory never exceeded \(\pm 0.08\) degree. While, the received velocity errors for lifting a 40.3 kg load can be limited to \(\pm 0.05\) rad/s after elevate operation.

Thanks to a metal frame and precise drive systems, the performed platform can be a very useful tool not only in industrial automation tasks, but also in precision robotics, for instance to expand the number of degrees of freedom of an industrial manipulators.