Skip to main content
Log in

Improved general solution for the dynamic modeling of Gough–Stewart platform based on principle of virtual work

  • Original Paper
  • Published:
Nonlinear Dynamics Aims and scope Submit manuscript

Abstract

This paper presents an improved general dynamic formulation, inverse and direct dynamics, of 6-UPS Gough–Stewart parallel robot based on the virtual work method. The new formulation offers a reduction in the computational time and improves accuracy of the dynamics equations. This method allows elimination of constraint forces/moments at the passive joints from equations of motion. Since, the dynamic formulations are derived in joint space, the concept of direct link Jacobian matrices are employed to obtain all rigid bodies’ twists. The direct link Jacobian matrices convert the twist of the rigid bodies to actuated joints velocities. Moreover, more accurate formulation is obtained by considering the angular velocity and acceleration vectors of the robot’s legs. In the process of solving the direct dynamics problem, a modified hybrid strategy is employed to obtain the near-exact solution for the direct kinematics problem (DKP). The modified hybrid strategy combines the artificial neural network and the third-order Newton–Raphson method. This strategy satisfies both goals to find the nearest exact solution and reduces execution time for the DKP. Next, two numerical examples are presented and the results are verified using a commercial dynamics modeling software. Finally, for comparison, Euler–Lagrange formulation is also obtained. Results indicates that the proposed dynamics formulation offers a significant improvement in both accuracy and execution time.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Institutional subscriptions

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10
Fig. 11

Similar content being viewed by others

Abbreviations

\(\hbox {B}\left\{ {x,y,z} \right\} \) :

Fixed coordinate frame which is attached to center of fixed platform

\(\hbox {T}\left\{ {u,v,w} \right\} \) :

Moving coordinate frame which is attached to center of moving platform, P

\(\left\{ {{\mathcal {F}}i} \right\} \) :

Local coordinate frames which is attached to ith cylinder at ith passive U-joint

\(\alpha _i \) :

A constant value denotes the angle of vector of \({ }^\mathrm{B} \mathbf{a}_i \), about x-axis of frame \(\left\{ \mathrm{B} \right\} \)

\(\gamma _i \) :

Rotation angle of ith passive U-joint about y-axis of local frame \(\left\{ {\mathrm{B}_i } \right\} \)

\(\psi _i \) :

Rotation angle of ith passive U-joint about x-axis of local frame \(\left\{ {\mathrm{T}_\mathrm{i} } \right\} \)

\({ }_{\mathrm{T}}^{\mathrm{B}} \mathbf{R}\) :

Rotation matrix to transfer a vector defined in \(\left\{ {\mathrm{T}} \right\} \) to \(\left\{ {\mathrm{B}} \right\} \)

\({ }_{{\mathcal {F}}i}^{\mathrm{B}} \mathbf{R}\) :

Rotation matrix to transfer a vector defined in \(\left\{ {{\mathcal {F}}i} \right\} \) to \(\left\{ \mathrm{B} \right\} \) for ith U-joint

\({ }^\tau \varvec{\vartheta }\) :

Arbitrary \({{\varvec{\vartheta }}}\) vector that is defined in arbitrary coordinate frame \(\{{\tau }\}\)

\({a}_1, \ldots , {a}_6 \) :

Distance between the center of fixed platform and passive U-joints

\({b}_1, \ldots , {b}_6 \) :

Distance between the center of moving platform and passive S-joints

\({q}_1^{\mathrm{ac}}, \ldots , {q}_6^{\mathrm{ac}}\) :

Translational variables for the actuated prismatic joint

\({x}_{\mathrm{P}}, {y}_{\mathrm{P}}, {z}_{\mathrm{P}}\) :

Translational variables of the tool tip, point P

\({\theta }, \varphi , \lambda \) :

The Euler angles about the x-, y- and z-axes of moving platform

\({e}_1 \) :

Center of gravity for cylindrical part of the actuated prismatic joints

\({e}_2 \) :

Center of gravity for position of the actuated prismatic joints

\(\mathbf{a}_i \) :

Position vector located on ith passive U-joint in frame \(\left\{ \mathrm{B} \right\} \)

\(\mathbf{b}_i \) :

Position vector connecting the end-effector to the ith passive S-joint, \(\mathrm{S}_i \)

\(\mathbf{q}_i^{\mathrm{ac}} \) :

Position vector which specifies length of ith actuated prismatic joint

\(\mathbf{p}\) :

Position vector of the tool tip, point P

\(\hat{\mathbf{q}}_i^{\mathrm{ac}} \) :

Unit vector along ith actuated link

\(\mathbf{r}_{1i}, \mathbf{r}_{2i}\) :

Position vectors located on the center of gravity of ith actuator’s cylinder and piston

\({\dot{\mathrm{q}}_{1}^{\mathrm{ac}},\ldots ,\dot{\mathrm{q}}_{6}^{\mathrm{ac}}}\) :

Values of prismatic actuated joints rate

\(\dot{\mathrm{x}}_{\mathrm{P}}, \dot{\mathrm{y}}_{\mathrm{P}}, \dot{\mathrm{z}}_{\mathrm{P}}\) :

Values of Cartesian velocities of the tool tip

\(\omega _x, \omega _y, \omega _z \) :

Values of angular velocities of the moving platform

\(\dot{\mathrm{x}}_{\mathrm{S}i}, \dot{\mathrm{y}}_{\mathrm{S}i}, \dot{\mathrm{z}}_{\mathrm{S}i}\) :

Values for velocities of the ith passive S-joint, \(\hbox {S}_i\)

\({\ddot{\mathrm{q}}_{1}^{\mathrm{ac}},\ldots ,\ddot{\mathrm{q}}_{6}^{\mathrm{ac}}}\) :

Values of prismatic actuated joints acceleration

\(\ddot{\mathrm{x}}_{\mathrm{P}}, \ddot{\mathrm{y}}_{\mathrm{P}}, \ddot{\mathrm{z}}_{\mathrm{P}}\) :

Values of Cartesian accelerations of the tool tip

\(\dot{\upomega }_x, \dot{\upomega }_y, \dot{\upomega }_z\) :

Values of angular accelerations of the moving platform

\(\ddot{\mathrm{x}}_{\mathrm{S}i}, \ddot{\mathrm{y}}_{\mathrm{S}i}, \ddot{\mathrm{z}}_{\mathrm{S}i}\) :

Values for accelerations of the ith passive S-joint, \(\hbox {S}_i \)

\(\dot{\mathbf{q}}^{\mathrm{ac}}\) :

Vector of the prismatic actuated joint rates, \(\{\dot{\mathrm{q}}_{1}^{\mathrm{ac}}\quad \ldots \quad \dot{\mathrm{q}}_{6}^{\mathrm{ac}}\}^{\mathrm{T}}\)

\({\varvec{v}}_{\mathrm{P}} \) :

Cartesian velocity vector for the tip, \(\{{v_{\mathrm{P}x} }\quad {v_{\mathrm{P}y} }\quad {v_{\mathrm{P}z}}\}^{\mathrm{T}} =\left\{ \dot{\mathrm{x}}_{\mathrm{P}}, \quad \dot{\mathrm{y}}_{\mathrm{P}}, \quad \dot{\mathrm{z}}_{\mathrm{P}}\right\} ^{\mathrm{T}}\)

\(\varvec{\upomega }_{\mathrm{MP}}\) :

Angular velocity vector of the moving platform, \(\{{\omega _x }\quad {\omega _y }\quad {\omega _z }\}^{\mathrm{T}}\)

\({\varvec{v}}_{\mathrm{S}i} \) :

Velocity vector of the ith spherical joint, \(\{\dot{\mathrm{x}}_{\mathrm{S}_{i}}, \quad \dot{\mathrm{y}}_{\mathrm{S}_{i}}, \quad \dot{\mathrm{z}}_{\mathrm{S}_{i}}\}^{\mathrm{T}}\)

\(\varvec{\upomega }_{\mathrm{Leg},i} \) :

Angular velocity of the ith actuated link

\({\varvec{v}}_{\mathrm{C.G.1}\, i}\) :

Cartesian velocity of the mass center of ith actuator’s cylinder

\({\varvec{v}}_{\mathrm{C.G.2}\, i} \) :

Cartesian velocity of the mass center of ith actuator’s piston

\({\ddot{\mathbf{q}}^{\mathrm{ac}}}\) :

Vector of the prismatic actuated joint accelerations, \(\{{\ddot{\mathrm{q}}_{1}^{\mathrm{ac}},\ldots ,\ddot{\mathrm{q}}_{6}^{\mathrm{ac}}}\}^{\mathrm{T}}\)

\(\dot{{\varvec{v}}}_{\mathrm{P}}\) :

Cartesian acceleration vector for the tip, \(\{{\dot{v}_{\mathrm{P}x} } {\dot{v}_{\mathrm{P}y} } {\dot{v}_{\mathrm{P}z}}\}^{\mathrm{T}} =\left\{ \ddot{\mathrm{x}}_{\mathrm{P}}, \ddot{\mathrm{y}}_{\mathrm{P}}, \ddot{\mathrm{z}}_{\mathrm{P}}\right\} ^{\mathrm{T}}\)

\({\dot{{\varvec{\upomega }}}_{\mathrm{MP}}}\) :

Angular acceleration vector of the moving platform, \(\{\dot{\upomega _x }\quad {\dot{\upomega }_y }\quad {\dot{\upomega }_z }\}^{\mathrm{T}}\)

\(\dot{{\varvec{v}}}_{\mathrm{S}i}\) :

Acceleration vector of the ith spherical joint, \(\{\ddot{\mathrm{x}}_{\mathrm{S}_{i}}, \quad \ddot{\mathrm{y}}_{\mathrm{S}_{i}}, \quad \ddot{\mathrm{z}}_{\mathrm{S}_{i}}\}^{\mathrm{T}}\)

\({\dot{\varvec{\upomega }}_{\mathrm{Leg},i}}\) :

Angular acceleration of the ith actuated link

\({\dot{\varvec{v}}}_{\mathrm{C.G.1} \,i}\) :

Cartesian acceleration of the mass center of ith actuator’s cylinder

\({\dot{\varvec{v}}}_{\mathrm{C.G.2}\, i}\) :

Cartesian acceleration of the mass center of ith actuator’s piston

\(\dot{\mathbf{t}}_{\mathrm{MP}} \) :

Twist vector of the moving platform, \(\{{{\varvec{v}}_\mathrm{P}^\mathrm{T} }\quad {\varvec{\upomega }_{\mathrm{MP}}^\mathrm{T} }\}^{\mathrm{T}}\)

\({ }^{{\mathcal {F}}i} \mathbf{t}_{\mathrm{cyl},i} \) :

Twist vector of ith actuator’s cylinder

\({ }^{{\mathcal {F}}i} \mathbf{t}_{\mathrm{pis},i} \) :

Twist vector of ith actuator’s piston

\({\dot{\mathbf{t}}}_{\mathrm{MP}}\) :

Vector of the moving platform acceleration, \(\{{\dot{\varvec{v}}_\mathrm{P}^\mathrm{T} }\quad {\dot{\varvec{\upomega }}_{\mathrm{MP}}^\mathrm{T} }\}^{\mathrm{T}}\)

\({ }^{{\mathcal {F}}i} {\dot{\mathbf{t}}}_{\mathrm{cyl},i}\) :

Acceleration vector of ith actuator’s cylinder, \(\left\{ {{ }^{{\mathcal {F}}i} {\dot{\varvec{v}}}_{\mathrm{C.G.1} i}^{\mathrm{T}}}\quad { }^{{\mathcal {F}}i}{{\dot{\varvec{\upomega }}}}_{\mathrm{Leg},i}^{\mathrm{T}}\right\} ^{\mathrm{T}}\) in \(\left\{ {{\mathcal {F}}i} \right\} \)

\({ }^{{\mathcal {F}}i} {\dot{\mathbf{t}}}_{\mathrm{psi},i}\) :

Acceleration vector of ith actuator’s piston, \(\{ {{ }^{{\mathcal {F}}i} \dot{{\varvec{v}}}_{\mathrm{C.G.2} i}^{\mathrm{T}}}\quad { }^{{\mathcal {F}}i}{{\dot{\varvec{\upomega }}}}_{\mathrm{Leg},i}^{\mathrm{T}}\}^{\mathrm{T}}\) in \(\left\{ {{\mathcal {F}}i} \right\} \)

\(\mathbf{J}_{\mathrm{MP}i} \) :

A \(3\times 6\) matrix which maps \(\mathbf{t}_{\mathrm{MP}} \) to velocity of the ith spherical joint, \({\varvec{v}}_{\mathrm{S}i} \)

\(\mathbf{J}_{\mathrm{MP}} \) :

Inverse Jacobian matrix \(\left( {6\times 6 \mathrm{matrix}} \right) \) which maps \(\mathbf{t}_{\mathrm{MP}} \) to \({\dot{\mathbf{q}}^{\mathrm{ac}}}\)

\(\mathbf{J}_{\omega i} \) :

A \(3\times 6\) matrix which maps \(\mathbf{t}_{\mathrm{MP}} \) to \({ }^{{\mathcal {F}}i} \varvec{\upomega }_{\mathrm{Leg},i}\)

\(\mathbf{J}_{v1, i} \) :

A \(3\times 6\) matrix which maps \(\mathbf{t}_{\mathrm{MP}} \) to \({ }^{{\mathcal {F}}i} {\varvec{v}}_{\mathrm{C.G.1} i} \)

\(\mathbf{J}_{v2, i} \) :

A \(3\times 6\) matrix which maps \(\mathbf{t}_{\mathrm{MP}} \) to \({ }^{{\mathcal {F}}i} {\varvec{v}}_{\mathrm{C.G.2} i} \)

\(\mathbf{J}_{\mathrm{inv, cyl},i} \) :

Inverse ith link Jacobian matrix \(( 6\times 6 \mathrm{matrix} )\) which maps \(\mathbf{t}_{\mathrm{MP}} \) to \({ }^{{\mathcal {F}}i} \mathbf{t}_{\mathrm{cyl},i} \)

\(\mathbf{J}_{\mathrm{inv, pis},i} \) :

Inverse ith link Jacobian matrix \(( 6\times 6 \mathrm{matrix} )\) which maps \(\mathbf{t}_{\mathrm{MP}} \) to \({ }^{{\mathcal {F}}i} \mathbf{t}_{\mathrm{pis},i} \)

\(\mathbf{J}_{\mathrm{dir, cyl},i}\) :

Direct ith link Jacobian matrix \(( 6\times 6~\mathrm{matrix} )\) which maps \(\mathbf{t}_{\mathrm{MP}} \) to \({\dot{\mathbf{q}}^{\mathrm{ac}}}\)

\(\mathbf{J}_{\mathrm{dir, pis},i} \) :

Direct ith link Jacobian matrix \(( 6\times 6~\mathrm{matrix} )\) which maps \(\mathbf{t}_{\mathrm{MP}} \) to \({\dot{\mathbf{q}}^{\mathrm{ac}}}\)

\(\mathbf{w}_{\mathrm{ext}} \) :

Applied external wrench exerted to end-effector define in \(\left\{ \mathrm{B} \right\} \)

\(\mathbf{f}^{\mathrm{ac}}\) :

Actuated joints forces

\(\mathbf{w}_{\mathrm{MP}} \) :

Resultant wrench due to external wrench and inertia of the moving platform

\({ }^{{\mathcal {F}}i} \mathbf{w}_{\mathrm{cyl},i} \) :

Resultant wrench due to inertia of ith actuator’s cylinder defined in \(\left\{ {{\mathcal {F}}i} \right\} \)

\({ }^{{\mathcal {F}}i} \mathbf{w}_{\mathrm{pis},i} \) :

Resultant wrench due to inertia of ith actuator’s piston defined in \(\left\{ {{\mathcal {F}}i} \right\} \)

\({\updelta \mathbf{q}}^{\mathrm{ac}}\) :

Virtual translational vector of actuated joints

\({\updelta \mathbf{t}}_{\mathrm{MP}} \) :

Virtual twist vector of the moving platform

\({\updelta }^{{\mathcal {F}}i} \mathbf{t}_{\mathrm{cyl},i} \) :

Virtual twist vector of ith actuator’s cylinder defined in \(\left\{ {{\mathcal {F}}i} \right\} \)

\(\updelta ^{{\mathcal {F}}i} \mathbf{t}_{\mathrm{pis},i} \) :

Virtual twist vector of ith actuator’s piston defined in \(\left\{ {{\mathcal {F}}i} \right\} \)

\({m}_{\mathrm{MP}} \) :

Mass of the moving platform

\({m}_{\mathrm{cyl},i} \) :

Mass of the ith actuator’s cylinder

\({m}_{\mathrm{pis},i} \) :

Mass of the ith actuator’s piston

\(\mathbf{g}\) :

Gravitational acceleration vector defined in \(\left\{ \mathrm{B} \right\} ,\, \mathbf{g}=\left\{ 0\quad 0\quad 9.81 \right\} ^{\mathrm{T}}\)

\({ }^\mathrm{B} \mathbf{I}_{\mathrm{MP}} \) :

Inertia matrix of the moving platform with respect to the base frame, \(\left\{ \mathrm{B}\right\} \)

\({ }^{{\mathcal {F}}i} \mathbf{I}_{\mathrm{cyl},i} \) :

Inertia matrix of ith actuator’s cylinder defined in \(\left\{ {{\mathcal {F}}i} \right\} \)

\({ }^{{\mathcal {F}}i} \mathbf{I}_{\mathrm{pis},i} \) :

Inertia matrix of ith actuator’s piston defined in \(\left\{ {{\mathcal {F}}i} \right\} \)

References

  1. Kamali, K., Akbarzadeh, A.: A novel method for direct kinematics solution of fully parallel manipulators using basic regions theory. J. Syst. Control Eng. 225(5), 683–701 (2011)

    Google Scholar 

  2. Akbarzadeh, A., Enferadi, J.: A virtual work based algorithm for solving direct dynamics problem of a 3-RRP spherical parallel manipulator. J. Intell. Robot. Syst. 63, 25–49 (2011)

    Article  Google Scholar 

  3. Akbarzadeh, A., Enferadi, J., Sharifnia, M.: Dynamics analysis of a 3-RRP spherical parallel manipulator using the natural orthogonal complement. Multibody Syst. Dyn. 29(4), 361–380 (2013)

    Article  MathSciNet  Google Scholar 

  4. Kordjazi, H., Akbarzadeh, A.: Inverse dynamics of a 3-prismatic–revolute–revolute planar parallel manipulator using natural orthogonal complement. Proc. Inst. Mech. Eng. Part I J. Syst. Control Eng. 225(3), 258–269 (2011)

    Google Scholar 

  5. Pedrammehr, S., Mahboubkhah, M., Khani, N.: Improved dynamic equations for the generally configured Stewart platform manipulator. J. Mech. Sci. Technol. 26(3), 711–721 (2012)

    Article  Google Scholar 

  6. Do, W.Q.D., Yang, D.C.H.: Inverse dynamic analysis and simulation of a platform type of robot. J. Robot. Syst. 5(3), 209–227 (1998)

    Article  MATH  Google Scholar 

  7. Dasgupta, B., Mruthyunjaya, T.S.: A Newton–Euler formulation for the inverse dynamics of Stewart platform manipulator. Mech. Mach. Theory 33(8), 1135–1152 (1998)

    Article  MathSciNet  MATH  Google Scholar 

  8. Dasgupta, B., Mruthyunjaya, T.S.: Closed-form dynamic equations of the general Stewart platform through Newton–Euler approach. Mech. Mach. Theory 33(7), 993–1012 (1998)

    Article  MathSciNet  MATH  Google Scholar 

  9. Fu, S., Yao, Y., Wu, Y.: Comments on “A Newton–Euler formulation for the inverse dynamics of the Stewart platform manipulator”. Mech. Mach. Theory 42, 1668–1671 (2007)

    Article  MATH  Google Scholar 

  10. Geng, Z., Haynes, L.S., Lee, J.D., Carroll, R.L.: On the dynamic model and kinematic analysis of a class of Stewart platforms. Robot. Auton. Syst. 9(4), 237–254 (1992)

    Article  Google Scholar 

  11. Lebret, G., Liu, K., Lewis, F.L.: Dynamic analysis and control of a Stewart platform manipulator. J. Robot. Syst. 10(5), 629–655 (1993)

    Article  MATH  Google Scholar 

  12. Ting, Y., Chen, Y.S., Jar, H.C.: Modeling and control for a Gough–Stewart platform CNC machine. J. Robot. Syst. 21(11), 609–623 (2004)

    Article  MATH  Google Scholar 

  13. Wang, W., Yang, H.Y., Zou, J., Ruan, X.D., Fu, X.: Optimal design of Stewart platforms based on expanding the control bandwidth while considering the hydraulic system design. J. Zhejiang Univ. Sci. A 10(1), 22–30 (2009)

    Article  MATH  Google Scholar 

  14. Guo, H.B., Li, H.R.: Dynamic analysis and simulation of a six degree of freedom Stewart platform manipulator. Proc. Inst. Mech. Eng. Part C J. Mech. Eng. Sci. 220, 61–72 (2006)

    Article  Google Scholar 

  15. Tsai, L.W.: Solving the inverse dynamics of Stewart–Gough manipulator by the principle of virtual work. J. Mech. Des. 122, 3–9 (2000)

    Article  Google Scholar 

  16. Abedinnasab, M.H., Vossoughi, G.R.: Analysis of a 6-DOF redundantly actuated 4-legged parallel mechanism. Nonlinear Dyn. 58(1–2), 611–622 (2009)

    Article  MATH  Google Scholar 

  17. Liu, M.J., Li, C.X., Li, C.N.: Dynamics analysis of the Gough–Stewart platform manipulator. IEEE Trans. Robot. Autom. 16(1), 94–98 (2000)

    Article  Google Scholar 

  18. Khalil, W., Guegan, S.: Inverse and direct dynamic modeling of Gough–Stewart robots. IEEE Trans. Robot. Autom. 20(4), 754–762 (2004)

    Article  Google Scholar 

  19. Huang, X., Liao, Q., Wei, Sh: Closed-form forward kinematics for a symmetrical 6–6 Stewart platform using algebraic elimination. Mech. Mach. Theory 45(2), 327–334 (2010)

    Article  MATH  Google Scholar 

  20. Lee, T.Y., Shim, J.K.: Forward kinematics of the general 6–6 Stewart platform using algebraic elimination. Mech. Mach. Theory 36(9), 1073–1085 (2001)

    Article  MATH  Google Scholar 

  21. Husty, M.L.: An algorithm for solving the direct kinematics of general Stewart–Gough platforms. Mech. Mach. Theory 31(4), 365–379 (1996)

    Article  Google Scholar 

  22. Rolland, L.: Synthesis of the forward kinematics problem algebraic modeling for the general parallel manipulator: displacement-based equations. Adv. Robot. 21(9), 1071–1092 (2007)

    Article  Google Scholar 

  23. Rolland, L.: Certified solving of the forward kinematics problem with an exact algebraic method for the general parallel manipulator. Adv. Robot. 19(9), 995–1025 (2005)

    Article  Google Scholar 

  24. Nanua, P., Waldron, K.J., Murthy, V.: Direct kinematic solution of a Stewart platform. IEEE Trans. Robot. Autom. 6(4), 438–443 (1990)

    Article  Google Scholar 

  25. Innocenti, C., Parenti-Castelli, V.: Direct position analysis of the Stewart platform mechanism. Mech. Mach. Theory 25(6), 611–621 (1990)

    Article  Google Scholar 

  26. Dasgupta, B., Mruthyunjay, T.S.: The Stewart platform manipulator: a review. Mech. Mach. Theory 35, 15–40 (2000)

    Article  MathSciNet  MATH  Google Scholar 

  27. Innocenti, C.: Forward kinematics in polynomial form of the general Stewart platform. Trans. ASME J. Mech. Des. 123, 254–260 (2001)

    Article  Google Scholar 

  28. Ku, D.M.: Direct displacement analysis of a Stewart platform mechanism. Mech. Mach. Theory 34, 453–465 (1999)

    Article  MATH  Google Scholar 

  29. Liu, K., Fitzgerzld, J.M., Lewis, F.L.: Kinematic analysis of a Stewart platform manipulator. IEEE Trans. Ind. Electron. 40(2), 282–293 (1993)

    Article  Google Scholar 

  30. Parikh, P., Lam, S.: A hybrid strategy to solve the forward kinematics problem in parallel manipulators. IEEE Trans. Robot. 21(1), 18–25 (2005)

  31. Darvishi, M.T., Barati, A.: A third-order Newton-type method to solve systems of nonlinear equations. Appl. Math. Comput. 187(2), 630–635 (2007)

    Article  MathSciNet  MATH  Google Scholar 

  32. Kardan, I., Akbarzadeh, A.: An improved hybrid method for forward kinematics analysis of parallel robots. Adv. Robot. 29(6), 401–411 (2015)

    Article  Google Scholar 

  33. McPhee, J., Shi, P., Piedbuf, J.C.: Dynamics of multibody systems using virtual work and symbolic programming. Math. Comput. Modell. Dyn. Syst. Methods Tools Appl. Eng. Relat. Sci. 8(2), 137–155 (2002)

    Article  MATH  Google Scholar 

  34. Gallardo, J., Rico, J.M., Frisoli, A., Checcacci, D., Bergamasco, M.: Dynamics of parallel manipulators by means of screw theory. Mech. Mach. Theory 38, 1113–1131 (2003)

    Article  MathSciNet  MATH  Google Scholar 

  35. Xi, F., Sinatra, R.: Inverse dynamics of hexapods using the natural orthogonal complement method. J. Manuf. Syst. 21(2), 73–82 (2002)

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Alireza Akbarzadeh.

Appendices

Appendix 1

1.1 A1.1 Matrices for the moving platform velocity relations

The matrix \(\mathbf{J}_{\mathrm{MP}i} \) in Eq. (13) is given below

$$\begin{aligned} \mathbf{J}_{\mathrm{MP}{i}} =\left[ {{\begin{array}{ll} {\mathbf{I}_{3\times 3} }&{} {-\mathbf{b}_i \times \mathbf{I}_{3\times 3} } \\ \end{array} }} \right] \quad \hbox {for}\quad i=1,\,\ldots ,\,6 \end{aligned}$$
(74)

where

$$\begin{aligned} \mathbf{b}_{i} \times \mathbf{I}_{3\times 3}= & {} \left[ {{\begin{array}{lll} {\mathbf{b}_{i} \times \left\{ {{\begin{array}{l} 1 \\ 0 \\ 0 \\ \end{array} }} \right\} }&{} {\mathbf{b}_{i} \times \left\{ {{\begin{array}{l} 0 \\ 1 \\ 0 \\ \end{array} }} \right\} }&{} {\mathbf{b}_{i} \times \left\{ {{\begin{array}{l} 0 \\ 0 \\ 1 \\ \end{array} }} \right\} } \\ \end{array} }} \right] \nonumber \\= & {} \left[ {{\begin{array}{c@{\quad }c@{\quad }c} 0&{} {-b_{iz}}&{} {b_{iy}} \\ {b_{iz}}&{} 0&{} {-b_{ix}} \\ {-b_{iy}}&{} {b_{ix}}&{} 0 \\ \end{array} }} \right] \quad \hbox {for}\quad i=1, \ldots , 6\nonumber \\ \end{aligned}$$
(75)

and matrix \(\mathbf{J}_{\mathrm{MP}} \) in Eq. (17) is given as follows

$$\begin{aligned} \mathbf{J}_{\mathrm{MP}} =\left[ {{\begin{array}{c} {{ }^{{\mathcal {F}}1} \mathbf{J}_{\mathrm{MP}1 \left( {3 \times 1{-} 6} \right) } } \\ \vdots \\ {{ }^{{\mathcal {F}}6} \mathbf{J}_{\mathrm{MP}6 \left( {3 \times 1{-} 6} \right) } } \\ \end{array} }} \right] _{6\times 6} \end{aligned}$$
(76)

1.2 A1.2 Matrices for the velocity relations of the robot’s legs

The matrix \(\mathbf{J}_{{\omega i}} \) in Eq. (28) is given below

$$\begin{aligned} \mathbf{J}_{{\omega }{i}}= & {} \frac{1}{q_{i}^{\mathrm{ac}} }{ }^{{\mathcal {F}}{i}} \mathbf{k}_{\mathrm{U}{i}} \left[ {{\begin{array}{l} {\frac{1}{\cos \left( {{{\psi }} _{i} } \right) }{ }^{{\mathcal {F}}{i}} \mathbf{J}_{\mathrm{MP}{i} \left( {1 \times 1{-} 6} \right) } } \\ {-{ }^{{\mathcal {F}}{i}} \mathbf{J}_{\mathrm{MP}{i} \left( {2 \times 1{-} 6} \right) } } \\ \end{array} }} \right] \nonumber \\= & {} \frac{1}{q_{i}^{\mathrm{ac}} }\left[ {{\begin{array}{l} {-{ }^{{\mathcal {F}}{i}} \mathbf{J}_{\mathrm{MP}{i} \left( {2 \times 1{-} 6} \right) } } \\ {{ }^{{\mathcal {F}}{i}} \mathbf{J}_{\mathrm{MP}{i} \left( {1 \times 1{-} 6} \right) } } \\ {-\tan \left( {{{\psi }} _{i} } \right) { }^{{\mathcal {F}}{i}} \mathbf{J}_{\mathrm{MP}{i} \left( {1 \times 1{-} 6} \right) } } \\ \end{array} }} \right] _{3\times 6} \nonumber \\&\hbox {for}\quad {i}=1,\,\ldots , \, 6 \end{aligned}$$
(77)

and matrices \(\mathbf{J}_{v1, i} \) and \(\mathbf{J}_{v2, i} \) in Eq. (31) are given below

$$\begin{aligned} \mathbf{J}_{v1, i}= & {} \frac{\hbox {e}_1 }{\hbox {q}_i^{\mathrm{ac}} }\left[ {{\begin{array}{l} {{ }^{{\mathcal {F}}i} \mathbf{J}_{\mathrm{MP}i \left( {1{-} 2 \times 1{-} 6} \right) } } \\ {\mathbf{0}_{1\times 6} } \\ \end{array} }} \right] _{3\times 6}, \nonumber \\ \mathbf{J}_{v2, i}= & {} \frac{1}{\hbox {q}_i^{\mathrm{ac}} }\left[ {{\begin{array}{l} {\left( {\hbox {q}_i^{\mathrm{ac} } -\hbox {e}_2 } \right) { }^{{\mathcal {F}}i} \mathbf{J}_{\mathrm{MP}i \left( {1{-} 2 \times 1{-} 6} \right) } } \\ {\hbox {q}_i^{\mathrm{ac}} \,{ }^{{\mathcal {F}}i} \mathbf{J}_{\mathrm{MP}i \left( {3 \times 1{-} 6} \right) } } \\ \end{array} }} \right] _{3\times 6} \nonumber \\&\hbox {for}\quad {i}=1,\,\ldots , \, 6 \end{aligned}$$
(78)

1.3 A1.3 Matrices for the moving platform acceleration relations

The matrices in Eqs. (38) and (43) are given as follows

$$\begin{aligned}&{} \mathbf{N}_i =\left( {\varvec{\upomega }_{\mathrm{MP}}\cdot \mathbf{b}_i } \right) \mathbf{I}_{3\times 3}, \quad \mathbf{m}_i =-\left( {\varvec{\upomega }_{\mathrm{MP}}\cdot {\varvec{\upomega }}_{\mathrm{MP}} } \right) \mathbf{b}_i \nonumber \\&\quad \hbox {for}\quad i=1,\, \ldots , \, 6 \end{aligned}$$
(79)

and

$$\begin{aligned}&{} \mathbf{N}=\left[ {{\begin{array}{c} {{ }^{{\mathcal {F}}1} \mathbf{N}_{1 \left( {3 \times 1{-} 3} \right) } } \\ \vdots \\ {{ }^{{\mathcal {F}}6} \mathbf{N}_{6 \left( {3 \times 1{-} 3} \right) } } \\ \end{array} }} \right] _{6\times 3}, \nonumber \\&{} \mathbf{m}=\left\{ {{\begin{array}{c} {{ }^{{\mathcal {F}}1} m_{1 \left( 3 \right) } -q_1^{\mathrm{ac}} {\varOmega }_1 } \\ \vdots \\ {{ }^{{\mathcal {F}}6} m_{6 \left( 3 \right) } -q_6^{\mathrm{ac}} {\varOmega }_6 } \\ \end{array} }} \right\} _{6\times 1} \end{aligned}$$
(80)

where \({ }^{{\mathcal {F}}i} m_{i\left( k \right) } \) is the kth element of vector \({ }^{{\mathcal {F}}i} \mathbf{m}_i \) and \({ }^{{\mathcal {F}}i} \mathbf{N}_{i\left( {k \times 1{-} 3} \right) } \) is the kth row of \({ }^{{\mathcal {F}}i} \mathbf{N}_i \).

1.4 A1.4 Matrices for the acceleration relations of the robot’s legs

The matrices in Eqs. (48) and (50) are given as follows

$$\begin{aligned}&{{\varvec{\Omega }}_{{{\omega }}i}} = - 2\frac{{{\dot{\mathrm{q}}}_i^{\mathrm{{ac}}}}}{{{q}_i^{\mathrm{{ac}}}}}{\left[ {\begin{array}{*{20}{c}} {{{\mathbf{J}}_{{{\omega }}i~\left( {1{-}2\mathrm{{~}} \times \mathrm{{~}}1{-}6} \right) }}}\\ { - \tan \left( {{\psi _i}} \right) {{\mathbf{J}}_{{{\omega }}i~\left( {2\mathrm{{~}} \times \mathrm{{~}}1{-}6} \right) }}} \end{array}} \right] _{3 \times 6}},\nonumber \\&\quad {{\mathbf{N}}_{{{\omega }}i}} = \frac{1}{{\mathrm{{q}}_i^{\mathrm{{ac}}}}}{\left[ {\begin{array}{*{20}{c}} { - {}_{}^{\mathcal{F}i}{{\mathbf{N}}_{i~\left( {2 \times 1{-}3} \right) }}}\\ {{}_{}^{\mathcal{F}i}{{\mathbf{N}}_{i~\left( {1~ \times ~1{-}3} \right) }}}\\ { - \tan \left( {{\psi _i}} \right) {}_{}^{\mathcal{F}i}{{\mathbf{N}}_{i~\left( {1~ \times ~1{-}3} \right) }}} \end{array}} \right] _{3 \times 3}}\nonumber \\&{} \mathbf{m}_{{\omega }i}=\frac{1}{\hbox {q}_i^{\mathrm{ac}} }\left\{ {{\begin{array}{c} {-{ }^{{\mathcal {F}}i} {m}_{i \left( 2 \right) } +\mathrm{q}_i^{\mathrm{ac}} { }^{{\mathcal {F}}i} {\omega }_{\mathrm{Leg},iy} { }^{{\mathcal {F}}i} {\omega }_{\mathrm{Leg},iz} } \\ {{ }^{{\mathcal {F}}i} {m}_{i \left( 1 \right) } -\mathrm{q}_i^{\mathrm{ac}} { }^{{\mathcal {F}}i} {\omega }_{\mathrm{Leg},ix} { }^{{\mathcal {F}}i} {\omega }_{\mathrm{Leg},iz} } \\ {-\tan \left( {\psi _i } \right) { }^{{\mathcal {F}}i} {m}_{i \left( 1 \right) } -\mathrm{q}_i^{\mathrm{ac}} \left( {1+2\tan ^{2}\left( {\psi _i } \right) } \right) { }^{{\mathcal {F}}i} {\omega }_{\mathrm{Leg},ix} { }^{{\mathcal {F}}i} {\omega }_{\mathrm{Leg},iy} } \\ \end{array} }} \right\} \nonumber \\&\quad \hbox {for}\quad i=1, \ldots , 6 \end{aligned}$$
(81)

and

$$\begin{aligned}&{{\varvec{\Omega }}_{v1,i}} = - 2e_1\frac{{{\dot{\mathrm{q}}}_i^{{\mathrm{ac}}}}}{{q}_{i}^{{{\mathrm{ac}}}^2}}{\left[ {\begin{array}{*{20}{c}} {{}_{}^{\mathcal{F}i}{{\mathbf{J}}_{{\mathrm{MP}}i\left( {1{-}2~ \times ~1{-}6} \right) }}}\\ {{\mathbf{0}_{1 \times 6}}} \end{array}} \right] _{3 \times 6}},\nonumber \\&\quad {{\varvec{\Omega }}_{v2,i}} = 2{{e}_2}\frac{{{\dot{\mathrm{q}}}_i^{{\mathrm{ac}}}}}{{q}_{i}^{{{\mathrm{ac}}}^2}}{\left[ {\begin{array}{*{20}{c}} {{}_{}^{\mathcal{F}i}{{\mathbf{J}}_{{\mathrm{MP}}i\left( {1{-}2~ \times ~1{-}6} \right) }}}\\ {{\mathbf{0}_{1 \times 6}}} \end{array}} \right] _{3 \times 6}}\nonumber \\&{} \mathbf{N}_{v1, i} =\frac{e_1 }{q_i^{\mathrm{ac}} }\left[ {{\begin{array}{c} {{ }^{{\mathcal {F}}i} \mathbf{N}_{i \left( {1{-} 2 \times 1{-} 3} \right) } } \\ {\mathbf{0}_{1\times 3} } \\ \end{array} }} \right] _{3\times 3}, \nonumber \\&\quad \mathbf{N}_{v2, i} =\frac{1}{q_i^{\mathrm{ac}} }\left[ {{\begin{array}{c} {\left( {q_i^{\mathrm{ac} } -e_2 } \right) { }^{{\mathcal {F}}i} \mathbf{N}_{i \left( {1{-} 2 \times 1{-} 3} \right) } } \\ {q_i^{\mathrm{ac}} { }^{{\mathcal {F}}i} \mathbf{N}_{i \left( {3 \times 1{-} 3} \right) } } \\ \end{array} }} \right] _{3\times 3}\nonumber \\&{} \mathbf{m}_{v1, i} =\frac{e_1 }{q_i^{\mathrm{ac}} }\left\{ {{\begin{array}{c} {{ }^{{\mathcal {F}}i} \mathbf{m}_{i \left( {1{-} 2} \right) } } \\ {q_i^{\mathrm{ac}} {\varOmega }_i } \\ \end{array} }} \right\} , \nonumber \\&\quad \mathbf{m}_{v2, i} =\frac{1}{q_i^{\mathrm{ac}} }\left\{ {{\begin{array}{c} {\left( {q_i^{\mathrm{ac} } -e_2 } \right) { }^{{\mathcal {F}}i} \mathbf{m}_{i \left( {1{-} 2} \right) } } \\ {q_i^{\mathrm{ac}} \left( {{ }^{{\mathcal {F}}i} \mathbf{m}_{i (3)} -e_2 {\varOmega }_i } \right) } \\ \end{array} }} \right\} \nonumber \\&\hbox {for}\quad i=1, \ldots , 6 \end{aligned}$$
(82)

1.5 A1.5 Matrices for equations of motion

The matrices in Eq. (58) are given as follows

$$\begin{aligned} \mathbf{M}_{\mathrm{MP}}= & {} \left[ {{\begin{array}{c} {-\hbox {m}_{\mathrm{MP}} \mathbf{J}_{v_{\mathrm{MP}} }^{-1} } \\ {-{ }^\mathrm{B} \mathbf{I}_{\mathrm{MP}} \mathbf{J}_{{\omega }_{\mathrm{MP}} }^{-1} } \\ \end{array} }} \right] _{6\times 6}, \nonumber \\ \mathbf{C}_{\mathrm{MP}}= & {} \left[ {{\begin{array}{c} {-{m}_{\mathrm{MP}} \mathbf{J}_{v_{\mathrm{Cor},\mathrm{MP}} } } \\ {-{ }^\mathrm{B} \mathbf{I}_{\mathrm{MP}} \mathbf{J}_{{\omega }_{\mathrm{Cor},\mathrm{MP}} } -\left( {{{\varvec{\upomega }} }_{\mathrm{MP}} \times \mathbf{I}_{3\times 3} } \right) { }^\mathrm{B} \mathbf{I}_{\mathrm{MP}} \mathbf{J}_{{\omega }_{\mathrm{MP}} }^{-1} } \\ \end{array} }} \right] _{6\times 6}\nonumber \\ \mathbf{w}_{{g}_{\mathrm{MP}} }= & {} \left\{ {{\begin{array}{c} {{m}_{\mathrm{MP}} \mathbf{g}} \\ {\mathbf{0}_{3\times 1} } \\ \end{array} }} \right\} , \quad \mathbf{w}_{\mathrm{ext}} =\left\{ {{\begin{array}{c} {\mathbf{f}_{\mathrm{ext}} } \\ {\mathbf{n}_{\mathrm{ext}} } \\ \end{array} }} \right\} \end{aligned}$$
(83)

where

$$\begin{aligned}&{} \mathbf{J}_{v_{\mathrm{MP}} }^{-1} =\mathbf{J}_{\mathrm{MP}\left( {1{-} 3} \right) \times \left( {1{-} 6} \right) }^{-1}, \quad \mathbf{J}_{{\omega }_{\mathrm{MP}} }^{-1} =\mathbf{J}_{\mathrm{MP}\left( {4{-} 6} \right) \times \left( {1{-} 6} \right) }^{-1}\nonumber \\&{} \mathbf{J}_{v_{\mathrm{Cor},\mathrm{MP}} } =\mathbf{J}_{\mathrm{Cor},\mathrm{MP}\left( {1{-} 3} \right) \times \left( {1{-} 6} \right) }, \nonumber \\&{} \mathbf{J}_{{\omega }_{\mathrm{Cor},\mathrm{MP}} }=\mathbf{J}_{\mathrm{Cor},\mathrm{MP}\left( {4{-} 6} \right) \times \left( {1{-} 6} \right) } \end{aligned}$$
(84)

and matrices in Eq. (61) are given as follows

$$\begin{aligned}&\mathbf{M}_{\mathrm{cyl},i} =\left[ {{\begin{array}{c} {-\hbox {m}_{\mathrm{cyl},i} \mathbf{J}_{v1, i} \mathbf{J}_{\mathrm{MP}}^{-1} }\\ {-{ }^{{\mathcal {F}}i} \mathbf{I}_{\mathrm{cyl},i} \mathbf{J}_{{\omega }i} \mathbf{J}_{\mathrm{MP}}^{-1} } \\ \end{array} }} \right] _{6\times 6}, \nonumber \\&\mathbf{w}_{\mathrm{g}_{\mathrm{cyl},i} } =\left\{ {{\begin{array}{c} {\hbox {m}_{\mathrm{cyl},i} { }_\mathrm{B}^{{\mathcal {F}}i} \mathbf{R}\, \mathbf{g}} \\ {\mathbf{0}_{3\times 1} } \\ \end{array} }} \right\} \nonumber \\&\mathbf{C}_{\mathrm{cyl},i} =\left[ {{\begin{array}{c} {-\hbox {m}_{\mathrm{cyl},i} \mathbf{J}_{v _{\mathrm{Cor, cyl},i}}} \\ {-{ }^{{\mathcal {F}}i} \mathbf{I}_{\mathrm{cyl},i} \mathbf{J}_{{\omega } _{\mathrm{Cor, cyl},i}} -\left( {{ }^{{\mathcal {F}}i} {\varvec{\upomega }}_{\mathrm{Leg},i} \times \mathbf{I}_{3\times 3} } \right) { }^{{\mathcal {F}}i} \mathbf{I}_{\mathrm{cyl},i} \mathbf{J}_{{\omega }i} \mathbf{J}_{\mathrm{MP}}^{-1} } \\ \end{array} }} \right] _{6\times 6}\nonumber \\&\quad \hbox {for}\quad i=1,\,\ldots , \, 6 \end{aligned}$$
(85)

and

$$\begin{aligned} \mathbf{M}_{\mathrm{pis},i}= & {} \left[ {{\begin{array}{c} {-\hbox {m}_{\mathrm{pis},i} \mathbf{J}_{v2, i} \mathbf{J}_{\mathrm{MP}}^{-1} } \\ {-{ }^{{\mathcal {F}}i} \mathbf{I}_{\mathrm{pis},i} \mathbf{J}_{{\omega }i} \mathbf{J}_{\mathrm{MP}}^{-1} } \\ \end{array} }} \right] _{6\times 6}, \nonumber \\ \mathbf{w}_{\mathrm{g}_{\mathrm{pis},i} }= & {} \left\{ {{\begin{array}{c} {\hbox {m}_{\mathrm{pis},i} { }_\mathrm{B}^{{\mathcal {F}}i} \mathbf{R}\,\mathbf{g}} \\ {\mathbf{0}_{3\times 1} } \\ \end{array} }} \right\} \nonumber \\ \mathbf{C}_{\mathrm{pis},i}= & {} \left[ {{\begin{array}{c} {-\hbox {m}_{\mathrm{pis},i} \mathbf{J}_{v _{\mathrm{Cor, pis},i}}} \\ {-{ }^{{\mathcal {F}}i} \mathbf{I}_{\mathrm{pis},i} \mathbf{J}_{{\omega } _{\mathrm{Cor, pis},i}} -\left( {{ }^{{\mathcal {F}}i} {\varvec{\upomega }}_{\mathrm{Leg},i} \times \mathbf{I}_{3\times 3} } \right) { }^{{\mathcal {F}}i} \mathbf{I}_{\mathrm{pis},i} \mathbf{J}_{{\omega }i} \mathbf{J}_{\mathrm{MP}}^{-1} } \\ \end{array} }} \right] _{6\times 6}\nonumber \\&\hbox {for}\quad i=1, \ldots , 6 \end{aligned}$$
(86)

where

$$\begin{aligned} \mathbf{J}_{v _{\mathrm{Cor, cyl},i}}= & {} \mathbf{J}_{\mathrm{Cor}, \mathrm{cyl},i \left( {1{-} 3} \right) \times \left( {1{-} 6} \right) } ,\nonumber \\ \mathbf{J}_{{{\omega }_{\mathrm{Cor, cyl},i}}}= & {} \mathbf{J}_{\mathrm{Cor}, \mathrm{cyl},i \left( {4{-} 6} \right) \times \left( {1{-} 6} \right) }\nonumber \\ \mathbf{J}_{v _{\mathrm{Cor, pis},i}}= & {} \mathbf{J}_{\mathrm{Cor}, \mathrm{pis},i \left( {1{-} 3} \right) \times \left( {1{-} 6} \right) } ,\nonumber \\ \mathbf{J}_{{\omega } _{\mathrm{Cor, pis},i}}= & {} \mathbf{J}_{\mathrm{Cor}, \mathrm{pis},i \left( {4{-} 6} \right) \times \left( {1{-} 6} \right) }\nonumber \\&\hbox {for}\quad i=1,\,\ldots , \,6 \end{aligned}$$
(87)

Appendix 2

To obtain the overall direct acceleration relation, Eq. (44), as a function of \({\ddot{\mathbf{q}}}^\mathrm{ac}\) and \({\dot{\mathbf{q}}}^\mathrm{ac}\), vectors \(\varvec{\upomega }_\mathrm{MP} \) and \(\mathbf{m}\) must be obtained as functions of \({\dot{\mathbf{q}}}^\mathrm{ac}\). Using Eq. (18), \(\varvec{\upomega }_{\mathrm{MP}} \) can be obtained as function of \({\ddot{\mathbf{q}}}^\mathrm{ac}\) as below

$$\begin{aligned} \varvec{\upomega }_{\mathrm{MP}} =\mathbf{J}_{{\mathrm{MP}}_{\left( {4{-} 6} \right) \times 6}}^{-1} {\dot{\mathbf{q}}}^\mathrm{ac} \end{aligned}$$
(88)

Therefore, using Eq. (88), we can write

$$\begin{aligned} \varvec{\upomega }_{\mathrm{MP}} \cdot \varvec{\upomega }_{\mathrm{MP}} =\Vert \varvec{\upomega }_{\mathrm{MP}}\Vert ^{2}=\varvec{\upxi }_{1\times 6} {\dot{\mathbf{q}}}^\mathrm{ac} \end{aligned}$$
(89)

where

$$\begin{aligned} {\varvec{\upxi }}_{{1 \times 6}} = \mathop {\sum }\limits _{{{j} = 1}}^{3} {\mathbf {J}}_{{{{\mathrm{MP}}}}{{\left( {4{-}6} \right) \times 6~\left( {{\mathrm{row}}~{j}} \right) }}}^{{-1}} \left( {\dot{\mathbf{q}}}^{{{{\mathrm{ac}}}}^{{\mathrm{T}}}} {\mathbf {J}}_{{{{\mathrm{MP}}}}{{\left( {4{-}6} \right) \times 6~\left( {{\mathrm{row}}~{j}} \right) }}}^{{- \mathrm{T}}} \right) \nonumber \\ \end{aligned}$$
(90)

By substituting Eqs. (89) into (79), vectors \(\mathbf{m}_i\) and \({}^{{\mathcal {F}}i} \mathbf{m}_i \) can be rewritten in terms of \({\dot{\mathbf{q}}}^\mathrm{ac}\) as follows

$$\begin{aligned}&{\mathbf {m}}_{{i}} = - \left( {{\varvec{\upomega }}_{{{\mathrm{MP}}}} \cdot {\varvec{\upomega }}_{{{\mathrm{MP}}}}}\right) {\mathbf {b}}_{{i}} = {\varvec{\upeta }}_{{{i}} _{{3\times 6}}} ~{\dot{\mathbf{q}}}^{{{\mathrm{ac}}}}\nonumber \\&{{}}^{{{{\mathcal {F}}}{i}}} {\mathbf {m}}_{{i}} = {}_{{}}^{{{{\mathcal {F}}}{i}}} {\varvec{\upeta }}_{{{i}}_{{3 \times 6}}} ~{\dot{\mathbf{q}}}^{{{\mathrm{ac}}}} \qquad \qquad \hbox {for} \quad i = 1, \ldots , ~6 \end{aligned}$$
(91)

where \(\varvec{\upeta }_{{i}_{3\times 6}} =-\mathbf{b}_{{i}_{3\times 1}} \varvec{\upxi }_{1\times 6} \) and \({ }^{{\mathcal {F}}i} \varvec{\upeta }_{{i}_{3\times 6}} ={ }_{\mathrm{B}}^{{{\mathcal {F}}i}} \mathbf{R} \varvec{\upeta }_{{i}_{3\times 6}} \). Also, value of \({\varOmega }_i \), Eq. (41), can be derived as a function of \({\dot{\mathbf{q}}}^\mathrm{ac}\) using Eq. (33) as

$$\begin{aligned} {{\varOmega }}_{{i}}= & {} - \left( {{}}^{{{{\mathcal {F}}}{i}}} {{\omega }}_{{{\mathrm{Leg}},{ix}}}^{2} + {}^{{{{\mathcal {F}}}{i}}} {{\omega }}_{{{\mathrm{Leg}},{iy}}}^{2} \right) = {\varvec{\upzeta }}_{{{i}} {{1 \times 6}}} ~{\dot{\mathbf{q}}}^{{{\mathrm{ac}}}}\nonumber \\&\quad {\hbox {for}}\quad i = 1, \ldots , ~6 \end{aligned}$$
(92)

where

$$\begin{aligned} {\varvec{\upzeta }}_{{{i}}_{{1 \times 6}}}= & {} - \mathop {\sum }\limits _{{{j} = 1}}^{2} \left[ {{\mathbf {J}}_{{{{\omega }}{i}}} ~{\mathbf {J}}_{{{\mathrm{MP}}}}^{{ - 1}}} \right] _{{\left( {{\mathrm{row}}~{j}} \right) }} \left( {{\dot{\mathbf{q}}}^{{{\mathrm{ac}}}^{{\mathrm{T}}}} \left[ {{\mathbf {J}}_{{{{\omega }}{i}}} ~{\mathbf {J}}_{{{\mathrm{MP}}}}^{{ - 1}} } \right] _{{\left( {{\mathrm{row}}~{j}} \right) }}^{{\mathrm{T}}} } \right) \nonumber \\&\quad {\hbox {for}}\quad i = 1, \ldots ,6 \end{aligned}$$
(93)

Consequently, substituting Eqs. (91) and (92) into Eq. (80), vector \(\mathbf{m}\) is rewritten as a function of \({\dot{\mathbf{q}}}^\mathrm{ac}\) as follows

$$\begin{aligned} \mathbf{m}=\varvec{\Lambda }_{6\times 6} \,{\dot{\mathbf{q}}}^\mathrm{ac} \end{aligned}$$
(94)

where vector \(\mathbf{m}\) is shown in “Appendix 1” and matrix \(\varvec{\Lambda }_{6\times 6} \) is obtained as below

$$\begin{aligned} {\varvec{\Lambda }}_{{6 \times 6}} = \left[ \begin{array}{c} {{}}^{{{{\mathcal {F}}}1}} {\varvec{\upeta }}_{{1}_{{~3 \times \left( {1{-}6} \right) }}} - {\mathrm{q}}_{1}^{{{\mathrm{ac}}}} {\varvec{\upzeta }}_{1} \\ \vdots \\ {{}}^{{{{\mathcal {F}}}6}} {\varvec{\upeta }}_{{6}_{{~3 \times \left( {1{-}6} \right) }}} - {\mathrm{q}}_{6}^{{{\mathrm{ac}}}} {\varvec{\upzeta }}_{6} \end{array} \right] _{{6 \times 6}} \end{aligned}$$
(95)

Therefore, using Eq. (44), we can write

$$\begin{aligned}&{\mathbf {J}}_{{{\mathrm{Cor}},~{\mathrm{MP}}}} \left( {{\mathbf {q}}^{{{\mathrm{ac}}}} ,{\dot{\mathbf{q}}}^{{{\mathrm{ac}}}} } \right) \nonumber \\&\quad = - {\mathbf {J}}_{{{\mathrm{MP}}}}^{{ - 1}} \left( {{\mathbf {N}}~{\mathbf {J}}_{{{{\mathrm{MP}}}}{{\left( {4{-}6} \right) \times 6}}}^{{ - 1}} + {\varvec{\Lambda }}_{{6 \times 6}} } \right) \end{aligned}$$
(96)

where matrix \(\mathbf{N}\) is shown in “Appendix 1.”

Appendix 3

1.1 A3.1 Obtaining the values of \(\ddot{\gamma }_{i}\) and \(\ddot{\psi }_{i}\)

As stated earlier, the cross product of both sides of Eq. (39) with unit vector \(^{{\mathcal {F}}i}\hat{\mathbf{q}}_i^\mathrm{ac} \) leads to obtain values of \({\ddot{\gamma }}_i\) and \(\ddot{\psi }_i\). This yields

$$\begin{aligned}&^{\mathcal {F}i} \hat{\mathbf{q}}_{i}^{\mathrm{ac}} \times \left( ^{\mathcal {F}i} \dot{{\varvec{\upomega }}}_{\mathrm{Leg,}i} \times ^{\mathcal {F}i} \hat{\mathbf{q}}_{i}^{\mathrm{ac}} \right) = \frac{1}{{\mathrm{q}_{i}^{\mathrm{ac}} }}\left( ^{\mathcal {F}i} \hat{\mathbf{q}}_{i}^{\mathrm{ac}} \times ^{\mathcal {F}i} \dot{{\varvec{v}}}_{\mathrm{S}i} \right) \nonumber \\&\quad -\,2\frac{{\dot{\mathrm{q}}_{i}^{\mathrm{ac}} }}{{\mathrm{q}_{i}^{\mathrm{ac}} }}\left( ^{{{{\mathcal {F}}i}}} \hat{\mathbf{q}}_{i}^{\mathrm{ac}} \times \left( {}^{{{{\mathcal {F}}}i}} {\varvec{\upomega }}_{\mathrm{Leg,}i} \times ^{{{{\mathcal {F}}}i}} \hat{\mathbf{q}}_{i}^{\mathrm{ac}} \right) \right) \nonumber \\&\quad -\, ^{{{{\mathcal {F}}}{i}}} \hat{\mathbf {q}} _{{i}}^\mathrm{ac} \times \left( {^{{{{\mathcal {F}}}{i}}} {\varvec{\upomega }}_{{{\mathrm{Leg}},{i}}} \times \left( {^{{{{\mathcal {F}}}{i}}} {\varvec{\upomega }}_{{{\mathrm{Leg}},{i}}} \times ^{\mathcal {F}i}\hat{\mathbf {q}} _{{i}}^\mathrm{ac} } \right) } \right) \nonumber \\&\quad \hbox {for}\quad i=1, \ldots , 6 \end{aligned}$$
(97)

where \(^{{{{\mathcal {F}}}{i}}} \hat{\mathbf{q}} _{{i}}^{{{\mathrm{ac}}}} \times \left( ^{{{{\mathcal {F}}}{i}}} {{\dot{{\varvec{\upomega }} }}}_{{{\mathrm{Leg}},{i}}} \times ^{{{{\mathcal {F}}}{i}}} \hat{\mathbf{q}}_{{i}}^{{{\mathrm{ac}}}} \right) = \left\{ {\begin{array}{lll} ^{{{{\mathcal {F}}}{i}}} {{\dot{{{\upomega }} }}}_{{{\mathrm{Leg}},{ix}}} &{} ^{{{{\mathcal {F}}}{i}}} {{\dot{{{\upomega }}}}}_{{{\mathrm{Leg}},{iy}}} &{} 0 \\ \end{array} } \right\} ^{{\mathrm{T}}} \). Using Eq. (28) yield

$$\begin{aligned}&^{{{{\mathcal {F}}}{i}}} \hat{\mathbf{q}}_{{i}}^{{{\mathrm{ac}}}} \times \left( {^{{{{\mathcal {F}}}{i}}} {{\varvec{\upomega }}}_{{{\mathrm{Leg}},{i}}} \times ^{{{{\mathcal {F}}}{i}}} \hat{\mathbf{q}}_{{i}}^{{{\mathrm{ac}}}} } \right) \nonumber \\&\quad = \left[ {\begin{array}{*{20}c} {{\mathbf {J}}_{{{{{\omega }}}{i~}\left( {1{-}2~ \times ~1{-}6} \right) }} } \\ {\mathbf{0}_{{1 \times 6}} } \\ \end{array} } \right] _{{3 \times 6}} {\mathbf {t}}_{{{\mathrm{MP}}}} \qquad {\mathrm{for}}~{i} = 1,~ \ldots , ~6\nonumber \\ \end{aligned}$$
(98)

where \(\mathbf{J}_{{\omega }i \left( {m{-} n \times 1{-}6} \right) }\) is a matrix composed of mth to nth rows of matrix \(\mathbf{J}_{{\omega }i} \) and

$$\begin{aligned}&^{{{\mathbf {\mathcal {F}}}i}} \hat{\mathbf{q}}_{i}^{{{\text {ac}}}} \times \left( ^{{{\mathbf {\mathcal {F}}}i}} {\varvec{{\upomega }}} _{{{\text {Leg}},i}} \times \left( ^{{{\mathbf {\mathcal {F}}}i}} {\varvec{{\upomega }}}_{{{\text {Leg}},i}} \times ^{{{\mathbf {\mathcal {F}}}i}} \hat{\mathbf{q}}_{i}^{{{\text {ac}}}} \right) \right) \nonumber \\&\quad = \left\{ {\begin{array}{*{20}c} - ^{{{\mathbf {\mathcal {F}}}i}} \omega _{{{\text {Leg}},iy}} ~^{{{\mathbf {\mathcal {F}}}i}} \omega _{{{\text {Leg}},iz}} \\ ^{{{\mathbf {\mathcal {F}}}{i}}} {{{\omega }}} _{{{\text {Leg}},ix}} ~^{{{\mathbf {\mathcal {F}}}{i}}} \omega _{{{\text {Leg}},iz}} \\ 0 \\ \end{array} } \right\} \quad {\text {for}}~i = 1,~ \ldots , ~6\nonumber \\ \end{aligned}$$
(99)

Also, using Eq. (42) yield

$$\begin{aligned}&^{{{\mathbf {\mathcal {F}}}i}} \hat{\mathbf{q}}_{i}^{{{\text {ac}}}} \times ^{{{\mathbf {\mathcal {F}}}i}} \dot{{\varvec{v}}}_{{{\text {S}}i}} = \left[ {\begin{array}{*{20}c} { - ^{{{\mathbf {\mathcal {F}}}i}} {\mathbf {J}}_{{{\text {MP}}i~\left( {2~ \times ~1{-}6} \right) }} } \\ {^{{{\mathbf {\mathcal {F}}}i}} {\mathbf {J}}_{{{\text {MP}}i~\left( {1~ \times ~1{-}6} \right) }} } \\ {\mathbf{0}_{{1 \times 6}} } \\ \end{array} } \right] \dot{\mathbf{t}}_{\mathrm{MP}}\nonumber \\&\qquad + \left[ {\begin{array}{*{20}c} { - ^{{{\mathbf {\mathcal {F}}}i}} {\mathbf {N}}_{{i~\left( {2~ \times ~1{-}3} \right) }} } \\ {^{{{\mathbf {\mathcal {F}}}i}} {\mathbf {N}}_{{i~\left( {1~ \times ~1{-}3} \right) }} } \\ {{\mathbf {0}}_{{1 \times 3}} } \\ \end{array} } \right] {{\varvec{\upomega }}}_{{{\text {MP}}}} \nonumber \\&\qquad + \left\{ {\begin{array}{*{20}c} { - ^{{{\mathbf {\mathcal {F}}}i}} {\text {m}}_{{i~\left( 2 \right) }} } \\ {^{{{\mathbf {\mathcal {F}}}i}} {\text {m}}_{{i~\left( 1 \right) }} } \\ 0 \\ \end{array} } \right\} \,\,\,\,{\text {for}}\,~i = 1,~ \ldots , ~6 \end{aligned}$$
(100)

Substituting Eqs. (47) and (98)–(100) into (97), as well as substituting values of \(\dot{\psi }_i\) and \({\dot{\gamma }_i}\) as functions of components of vector \(^{{\mathcal {F}}i} \varvec{\upomega }_{\mathrm{Leg},i}\) as shown in Eq. (22), yield

$$\begin{aligned}&\left\{ {\begin{array}{*{20}c} {\ddot{\psi }_{i} } \\ {\ddot{\gamma }_{i} } \\ \end{array} } \right\} = \frac{1}{{\hbox {q}_{i}^{{{\text {ac}}}} }}\left( \left[ {\begin{array}{*{20}c} { - {}_{{}}^{{{{\mathcal {F}}}i}} {\mathbf {J}}_{{{\text {MP}}i~\left( {2~ \times ~1{-}6} \right) }} } \\ {\frac{1}{{\cos \left( {\psi _{i} } \right) }}{}_{{}}^{{{\mathbf {\mathcal {F}}}i}} {\mathbf {J}}_{{{\text {MP}}i~\left( {1~ \times ~1{-}6} \right) }} } \\ \end{array} } \right] {\dot{\mathbf{t}}}_{{{\text {MP}}}}\right. \nonumber \\&\quad +\,\left. \left[ {\begin{array}{*{20}c} { - {}_{{}}^{{{\mathbf {\mathcal {F}}}i}} {\mathbf {N}}_{{i~\left( {2~ \times ~1{-}3} \right) }} } \\ {\frac{1}{{\cos \left( {\psi _{i} } \right) }}{}_{{}}^{{{{\mathcal {F}}}i}} {\mathbf {N}}_{{i~\left( {1~ \times ~1{-}3} \right) }}} \\ \end{array} } \right] {{\varvec{\upomega }} }_{{{\text {MP}}}} + \left\{ {\begin{array}{*{20}c} { - {}_{{}}^{{{\mathbf {\mathcal {F}}}i}} {\text {m}}_{{i~\left( 2 \right) }} } \\ {\frac{1}{{\cos \left( {\psi _{i} } \right) }}{}_{{}}^{{{\mathbf {\mathcal {F}}}i}} {\text {m}}_{{i~\left( 1 \right) }} } \\ \end{array} } \right\} \right) \nonumber \\&\quad -\, 2\frac{{{{\dot{\hbox {q}}}}_{i}^{\text {ac}} }}{{{\text {q}}_{i}^{{{\text {ac}}}} }}\left[ {\begin{array}{*{20}c} {\begin{array}{*{20}c} {{\mathbf {J}}_{{\omega i~\left( {1~ \times ~1{-}6} \right) }} } \\ {\frac{1}{{\cos \left( {\psi _{i} } \right) }}{\mathbf {J}}_{{\omega i~\left( {2~ \times ~1{-}6} \right) }} } \\ \end{array} } \\ \end{array} } \right] _{{3 \times 6}}{\mathbf {t}}_{{{\text {MP}}}}\nonumber \\&\quad - \left\{ {\begin{array}{*{20}c} { - {}_{{}}^{{{\mathbf {\mathcal {F}}}i}} \omega _{{{\text {Leg}},iy}} ~{}_{{}}^{{{\mathbf {\mathcal {F}}}i}} \omega _{{{\text {Leg}},iz}} } \\ {\frac{2}{{\cos \left( {\psi _{i} } \right) }}{}_{{}}^{{{\mathbf {\mathcal {F}}}i}} \omega _{{{\text {Leg}},ix}} ~{}_{{}}^{{{\mathbf {\mathcal {F}}}i}} \omega _{{{\text {Leg}},iz}} } \\ \end{array} } \right\} \,\,\,\,{\text {for}}~i = 1,~ \ldots , ~6 \nonumber \\ \end{aligned}$$
(101)

Therefore, by substituting Eqs. (101) into (47), vector \(^{{\mathcal {F}}i} {\dot{{\varvec{\upomega }}}_{\mathrm{Leg},i}}\), will be rewritten in terms of the end-effector acceleration and velocity vectors in compact form as shown in Eq. (48).

1.2 A3.2 Obtaining the matrices \({{J}}_{Cor, cyl,i} \) and \({{J}}_{Cor, pis,i}\)

To derive the overall acceleration vectors of each leg in terms of \({\ddot{\mathbf{q}}^{\mathrm{ac}}}\) and \({\dot{\mathbf{q}}^{\mathrm{ac}}}\), the vectors of \(\mathbf{m}_{{\omega }i}, \mathbf{m}_{v1, i} \) and \(\mathbf{m}_{v2, i} \) should be obtained as function of \({\dot{\mathbf{q}}^\mathrm{ac}}\). Similar to Eq. (92), we can write

$$\begin{aligned} {^{{{{\mathcal {F}}}i}} {\omega }_{{{\text {Leg}},i~m}}} ^{{{{\mathcal {F}}}i}} {\omega }_{{{\text {Leg}},i~n}} = {{\varvec{\upzeta }}_{i}^{{mn}}}_{{1 \times 6}} ~\dot{\mathbf{q}}^{{{\text {ac}}}} \quad {\hbox {for}}\quad i = 1,~ \ldots , ~6\nonumber \\ \end{aligned}$$
(102)

where

$$\begin{aligned}&{\varvec{\zeta }}_{i}^{{mn}} = \left[ {\mathbf{J}_{{\omega i}} ~\mathbf{J}_{{{\text {MP}}}}^{{ - 1}} } \right] _{{\left( {{\text {row}}~m} \right) }}\nonumber \\&\qquad \left( {\dot{\mathbf{q}}^{{\mathrm{ac}}^{\mathrm{T}}}} ~\left[ {\mathbf{J}_{{\omega i}} ~\mathbf{J}_{{{\text {MP}}}}^{{ - 1}} } \right] _{{\left( {{\text {row}}~n} \right) }}^{{\text {T}}} \right) \,\,{\text {for}}~i = 1,~ \ldots , ~6\nonumber \\ \end{aligned}$$
(103)

By utilizing Eqs. (91), (92) and (102), the vectors \(\mathbf{m}_{{\omega }i},\mathbf{m}_{v1,i} \) and \(\mathbf{m}_{v2, i} \) from Eqs. (81) and (82) can be obtained as functions of \({\dot{\mathbf{q}}^{\mathrm{ac}}}\) as follows

$$\begin{aligned}&{} \mathbf{m}_{{\omega i}} = {\varvec{\Lambda }} _{{\omega i}} \dot{\mathbf{q}}^{\mathrm{ac}}, \mathbf{m}_{{v1, i}} = {\varvec{\Lambda }} _{{v1,i}} \dot{\mathbf{q}}^{\mathrm{ac}},\nonumber \\&{} \mathbf{m}_{{v2,~i}} = {\varvec{\Lambda }} _{{v2,i}} \dot{\mathbf{q}}^{\mathrm{ac}} \quad {\text {for}} \quad i = 1, \ldots ,6 \end{aligned}$$
(104)

where

$$\begin{aligned}&{\varvec{\Lambda }} _{{\omega i}} = \frac{1}{{{\text {q}}_{i}^{{{\text {ac}}}} }}\left[ {\begin{array}{*{20}c} -{^{{{\mathbf {\mathcal {F}}}i}}} {{\varvec{\upeta }}_{{i}_{{2 \times \left( {1{-}6} \right) }}} + {q}_{i}^{{{\text {ac}}}} {{\varvec{\upzeta }} _{i}^{{{yz}}}}_{{1 \times 6}}} \\ ^{{{\mathbf {\mathcal {F}}}i}} {\varvec{\upeta }} _{{i}_{{~1 \times \left( {1{-}6} \right) }}} - \mathrm{q}_{i}^{{{\mathrm{ac}}}} ~{{\varvec{\upzeta }} _{i}^{{{xz}}}}_{{1 \times 6}} \\ { - \tan \left( {\psi _{i} } \right) ^{{{\mathbf {\mathcal {F}}}i}} {\varvec{\eta }} _{{i}_{{~1 \times \left( {1{-}6} \right) }}} - {q}_{i}^{{\mathrm{ac}}} \left( {1 + 2\tan ^{2} \left( {\psi _{i} } \right) } \right) {{\varvec{\zeta }} _{i}^{{{xy}}}} _{{1 \times 6}} } \\ \end{array} } \right] _{{3 \times 6}}\nonumber \\&{\varvec{\Lambda }} _{{v1,i}} = \frac{{{\text {e}}_{1} }}{{{\text {q}}_{i}^{{{\text {ac}}}} }}\left[ {\begin{array}{*{20}c} ^{{{\mathbf {\mathcal {F}}}i}} {\varvec{\upeta }} _{{i} _{{~\left( {1{-}2~ \times ~1{-}6} \right) }}} \\ {{\text {q}}_{i}^{{{\text {ac}}}} ~{\varvec{\zeta }} _{{i} _{{1 \times 6}}} } \\ \end{array} } \right] _{{3 \times 6}},\nonumber \\&{\varvec{\Lambda }} _{{v2,i}} = \frac{1}{{{\text {q}}_{i}^{{{\text {ac}}}} }}\left[ {\begin{array}{*{20}c} {\left( {{\text {q}}_{i}^{{{\text {ac}}~}} - {\text {e}}_{2} } \right) ^{{{{\mathcal {F}}}i}} {\varvec{\upeta }} _{{i} _{{~\left( {1{-}2~ \times ~1{-}6} \right) }}} } \\ {{\text {q}}_{i}^{{{\text {ac}}}} \left( ^{{{{\mathcal {F}}}i}} {\varvec{\upeta }} _{{i} _{{~\left( {3 \times 1{-}6} \right) }}} - {\text {e}}_{2} {\varvec{\upzeta }} _{{i} _{{1 \times 6}}} \right) } \\ \end{array} } \right] _{{3 \times 6}}\nonumber \\&\quad {\hbox {for }}\quad i=1, \ldots , 6 \end{aligned}$$
(105)

Therefore, the overall direct link acceleration relations can be derived in terms of \({\ddot{\mathbf{q}}^{\mathrm{ac}}}\) and \({\dot{\mathbf{q}}}^\mathrm{ac}\) as shown Eq. (53) by substituting vectors \(\varvec{\upomega }_{\mathrm{MP}} \) and \(\mathbf{t}_{\mathrm{MP}} \) from Eq. (18) and vector \({\dot{\mathbf{t}}_\mathrm{MP}}\) from Eq. (45) as well as vectors \(\mathbf{m}_{{\omega }i} \), \(\mathbf{m}_{v1, i} \) and \(\mathbf{m}_{v2, i} \) from Eq. (104) into Eqs. (48) and (50). Consequently, matrices \(\mathbf{J}_{\mathrm{Cor}, \mathrm{cyl},\mathrm{i}} \) and \(\mathbf{J}_{\mathrm{Cor}, \mathrm{pis},\mathrm{i}} \) can be obtained as follows

$$\begin{aligned}&{} \mathbf{J}_{{{\mathrm{Cor, cyl}},i}} \nonumber \\&\;\;= \left[ {\begin{array}{*{20}c} {\mathbf{J}_{{v1, i}} \mathbf{J}_{{{\mathrm{Cor, MP}}}} + {\varvec{\Omega }} _{{v1, i}} \mathbf{J}_{{{\mathrm{MP}}}}^{{ - 1}} + \mathbf{N}_{{v1, i}} {\mathbf{J}_{{{\mathrm{MP}}}}^{{-1}}}_{{\left( {4{-}6} \right) \times 6}} + {\varvec{\Lambda }} _{{v1, i}} } \\ {\mathbf{J}_{{\omega i}} \mathbf{J}_{{{\mathrm{Cor, MP}}}} + {\varvec{\Omega }} _{{\omega i}} \mathbf{J}_{{{\text {MP}}}}^{{ - 1}} + \mathbf{N}_{{\omega i}} {\mathbf{J}_{{{\text {MP}}}}^{{ - 1}}} _{{\left( {4{-}6} \right) \times 6}} + {\varvec{\Lambda }} _{{\omega i}} } \\ \end{array} } \right] \nonumber \\&{} \mathbf{J}_{{\mathrm{Cor,pis},i}}\nonumber \\&\;\; = \left[ {\begin{array}{*{20}c} {\mathbf{J}_{{v2,i}} \mathbf{J}_{\mathrm{Cor, MP}} + {\varvec{\Omega }} _{{v2,i}} \mathbf{J}_{\mathrm{MP}}^{{ - 1}} + \mathbf{N}_{{v2,i}} {\mathbf{J}_{\mathrm{MP}}^{{ - 1}}} _{{\left( {4{-}6} \right) \times 6}} + {\varvec{\Lambda }} _{{v2,i}} } \\ {\mathbf{J}_{{\omega i}} \mathbf{J}_{\mathrm{Cor,MP}} + {\varvec{\Omega }} _{{\omega i}} \mathbf{J}_{\mathrm{MP}}^{{ - 1}} + \mathbf{N}_{{\omega i}} {\mathbf{J}_{\mathrm{MP}}^{{ - 1}}} _{{\left( {4{-}6} \right) \times 6}} + {\varvec{\Lambda }} _{{\omega i}} } \\ \end{array} } \right] \nonumber \\&\quad \hbox { for }\; i=1, \ldots , 6 \end{aligned}$$
(106)

Appendix 4

The angular velocity of the MP can be derived as function of three angular velocities contain derivatives of three Euler angles \({{\theta }},\, {{\upvarphi }}\) and \({{\lambda }}\), as follows

(107)

where and \(\hat{\mathbf{k}}\) are unit vectors along x-, y- and z-axes of the fixed coordinate frame \(\{\hbox {B}\}\) as well as \(\dot{\uptheta }\), \(\dot{\upvarphi }\) and \(\dot{\lambda }\) are the angular velocities about x-, \(y'\)- and \(z''\)-axes, respectively. Also, and \(\hat{\mathbf{k}}^{{\prime }{\prime }}\) are the unit vectors along rotated \(y'\)- and \(z''\)-axes, respectively (for more details see Fig. 12).

Therefore, Eqs. (107), (97) can be rewritten as matrix form as follows

$$\begin{aligned} {\varvec{\upomega }}_{\mathrm{MP}} =\left[ { \begin{array}{c@{\quad }c@{\quad }c} 1&{} 0&{} \hbox {s}\upvarphi \\ 0&{} \hbox {c}\theta &{} -\hbox {s}\theta \hbox {c}\upvarphi \\ 0&{} \hbox {s}\theta &{} \hbox {c}\theta \hbox {c}\upvarphi \\ \end{array}}\right] \left\{ \begin{array}{l} \dot{\uptheta } \\ \dot{\upvarphi } \\ \dot{\uplambda } \\ \end{array}\right\} = \mathbf{U} \left\{ \begin{array}{l} \dot{\uptheta } \\ \dot{\upvarphi } \\ \dot{\uplambda } \end{array}\right\} \end{aligned}$$
(108)

Furthermore, by time differentiating of Eqs. (107) or (108), the angular acceleration of the MP can be obtained as below

(109)

where

$$\begin{aligned} \dot{\mathbf{U}} = \left[ { \begin{array}{c@{\quad }c@{\quad }c} 0 &{} 0 &{} {\dot{{{\upvarphi }}} \hbox {c}\varphi } \\ 0 &{} { - \dot{{{\uptheta }}} \hbox {s}\theta } &{} { - \dot{{{\uptheta }}} \hbox {c}\theta \hbox {c}\varphi + \dot{{{\upvarphi }}} \hbox {s}\theta \hbox {s}\varphi }\\ 0 &{} {\dot{{{\uptheta }}}\hbox {c}\theta } &{} { - \dot{{{\uptheta }}} \hbox {s}\theta \hbox {c}\varphi - \dot{{{\upvarphi }}} \hbox {c}\theta \hbox {s}\varphi }\\ \end{array}}\right] \end{aligned}$$
(110)
Fig. 12
figure 12

Rotation from moving frame \(\{\hbox {T}\}\) to fixed coordinate frame \(\{\hbox {B}\}\) using Euler angles \(\theta \), \(\varphi \) and \(\lambda \)

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Kalani, H., Rezaei, A. & Akbarzadeh, A. Improved general solution for the dynamic modeling of Gough–Stewart platform based on principle of virtual work. Nonlinear Dyn 83, 2393–2418 (2016). https://doi.org/10.1007/s11071-015-2489-z

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s11071-015-2489-z

Keywords

Navigation