Abstract
This paper presents a new perspective into the decomposition of the Generalized Inertia Matrix (GIM) of multibody systems with open kinematic architecture, serial or tree-type. Links and kinematic pairs are the two constituting elements of multibody systems. In this work, we propose to decompose a multi-branch multibody system into several kinematic modules. Each module is a set of serially connected links like a serial-chain system. Such a description allows one to obtain a block decomposition \(\bar{\mathbf{U}}\bar{\mathbf{D}}\bar{\mathbf{U}}^{T}\) of the GIM where \(\bar{\mathbf{U}}\) and \(\bar{\mathbf{D}}\) are the block upper-triangular and diagonal matrices, respectively. The results provide a recursive inverse of the GIM on module-level. Many new perspectives leading to macroscopic purview of the complex multibody systems are provided. Empowered with the proposed decomposition, an inter- and intra-modular efficient and numerically stable recursive dynamics algorithm for forward dynamics and simulation was possible. While recursive expressions are derived for a four degree-of-freedom gripper, numerical results are shown for a spatial biped.
Similar content being viewed by others
Abbreviations
- \(\mathbf{A}_{k^{i},(k - 1)^{i}}\), \(\bar{\mathbf{A}}_{i,j}\) :
-
The \(6\times6\) link-twist propagation and the \(6n^{i} \times6n^{j}\) module-twist propagation matrices
- \(\hat{\bar{\mathbf{A}}}_{i,j}\) :
-
\(6n^{i} \times6n^{j}\) articulated module-twist propagation matrix
- \(\bar{\mathbf{B}}\), \(\bar{\mathbf{B}}_{i}\) :
-
\(n \times n\) block upper triangular matrix, and \(n \times n\) \(i\)th Elementary Block Upper Triangular Matrix (EBUTM)
- \(\bar{\mathbf{D}}\) :
-
\(n \times n\) block diagonal matrix
- \(\mathbf{d}_{k^{i}}\), \(\tilde{\mathbf{d}}_{k^{i}}\) :
-
3-dimensional vector from the origin of link \(k^{i}\) to its center-of-mass, and \(3\times3\) skew symmetric matrix associated with \(\mathbf{d}_{k^{i}}\)
- \(\mathbf{f}_{k^{i}}\) :
-
3-dimensional vector of the force applied at origin \(O_{k^{i}}\) of link \(k^{i}\)
- \(\mathbf{I}\), \(\bar{\mathbf{I}}_{i,j}\) :
-
\(n \times n\) Generalized Inertia Matrix (GIM), and \(n^{i} \times n^{j}\) \(({i,j})\)th block element of \(\mathbf{I}\)
- \(\mathbf{I}_{k^{i}}\), \(\hat{\bar{\mathbf{I}}}_{i}\) :
-
\(3\times3\) inertia tensor of link \(k^{i}\) and \(n^{i} \times n^{i}\) inertia matrix of the articulated-module \(i\)
- \(k^{i}\) :
-
\(k\)th link in the \(i\)th module
- \(m_{k^{i}}\), \(\hat{m}_{k^{i}}\) :
-
Mass of the \(k\)th link (scalar), and mass moment of inertia of articulated-body \(k\) (scalar)
- \(\mathbf{M}_{k^{i}}\), \(\bar{\mathbf{M}}_{i}\), \(\mathbf{M}\) :
-
Mass matrices of link \(k^{i}\) \((6\times6)\), the \(i\)th module \((6n^{i} \times6n^{i})\), and generalized mass matrix \((6n \times6n)\)
- \(\tilde{\mathbf{M}}_{k^{i}}\), \(\hat{\mathbf{M}}_{k^{i}}\) :
-
\(6\times6\) mass matrices of \(k^{i}\) composite- and articulated-body
- \(\tilde{\bar{\mathbf{M}}}_{i}\), \(\hat{\bar{\mathbf{M}}}_{i}\) :
-
\(6n^{i} \times6n^{i}\) mass matrices of \(i\)th composite- and articulated-module
- \(\bar{\mathbf{N}}_{i}\) :
-
\(6n^{i} \times n^{i}\) module-joint-rate propagation matrix associated with the \(i\)th module
- \(\bar{\mathbf{N}}_{l}\), \(\bar{\mathbf{N}}_{d}\) :
-
\(6n \times6n\) and \(6n \times n\) module-level DeNOC matrices
- \(n^{i}\), \(n\) :
-
Number of links in \(i\)th module and total number of links
- \(\mathbf{n}_{k^{i}}\) :
-
3-dimensional vector of moments applied at \(O_{k^{i}}\) of link \(k^{i}\)
- \(O_{k^{i}}\), \(\dot{\mathbf{o}}_{k^{i}}\) :
-
Origin of link \(k^{i}\) and 3-dimensional linear velocity vector of the origin
- \(\mathbf{p}_{k^{i}}\) :
-
6-dimensional joint-rate propagation vector of link \(k^{i}\)
- \(\dot{\bar{\mathbf{q}}}_{i}\), \(\dot{\mathbf{q}}\) :
-
\(n^{i}\)-dimensional joint rate of \(i\)th module and \(n\)-dimensional vector of generalized joint rates
- \(s\) :
-
Total number of modules
- \(\mathbf{t}_{k^{i}}\), \(\bar{\mathbf{t}}_{i}\), \(\mathbf{t}\) :
-
6-dimensional vectors of twist, \(6n^{i}\)-dimensional module-twist and \(6n\)-dimensional generalized twist
- \(\mathbf{U}\), \(\bar{\mathbf{U}}\) :
-
\(n \times n\) upper-triangular matrix, \(n \times n\) module-level block upper-triangular matrix
- \(\bar{\mathbf{U}}_{i}\), \(\bar{\mathbf{U}}_{i,j}\) :
-
\(n \times n^{i}\) and \(n^{i} \times n^{j}\) matrices
- \(\hat{\bar{\mathbf{U}}}_{i,j}\) :
-
\(n^{i} \times n^{j}\) matrix
- \(\bar{\mathbf{V}}_{i}\) :
-
\(n^{i} \times n^{j}\) matrix
- \(\mathbf{0}\), \(\mathbf{O}\), \(\mathbf{1}\), \(\mathbf{1}_{i}\) :
-
A null vector, null matrix and an identity matrix of sizes compatible to the dimension of matrices and vectors where it appears, and \(n^{i} \times n^{i}\) identity matrix
- \(\beta\), \(\beta_{i}\) :
-
Parent, and parent of module \(i\)
- \(\boldsymbol{\gamma}_{i}\) :
-
Tree upstream from module \(i\)
- \(\boldsymbol{\eta}_{k}\), \(\tilde{\boldsymbol{\eta}}_{k}\) :
-
6-dimensional vectors
- \(\dot{\theta}_{k^{i}}\) :
-
Rate of joint \(k^{i}\)
- \(\boldsymbol{\mu}_{k}\), \(\tilde{\boldsymbol{\mu}}_{k}\) :
-
6-dimensional vectors
- \(\boldsymbol{\varphi }\) :
-
\(n\)-dimensional vector containing Coriolis, centripetal and gravity terms, along with the external forces
- \(\hat{\bar{\boldsymbol{\varphi }}}_{i}\), \(\tilde{\bar{\boldsymbol{\varphi }}}_{i}\) :
-
\(n^{i}\)-dimensional vectors
- \(\hat{\varphi }_{i}\), \(\tilde{\varphi }_{i}\) :
-
Scalars
- \(\boldsymbol{\psi}_{k}\), \(\hat{\boldsymbol{\psi}}_{k}\) :
-
6-dimensional vectors
- \(\bar{\boldsymbol{\Psi}}_{i}\) :
-
\(6n^{i} \times n^{i}\) matrices
- \(\bar{\boldsymbol{\Phi}}_{i}\) :
-
\(6n^{i} \times6n^{i}\) articulated module transformation matrix
- \(\boldsymbol{\omega}_{k^{i}}\), \(\tilde{\boldsymbol{\omega}}_{k^{i}}\) :
-
Angular velocity vector of the \(k\)th link, and \(3\times3\) skew symmetric matrix associated with \(\boldsymbol{\omega}_{k^{i}}\)
References
Eberhard, P., Schiehlen, W.: Computational dynamics of multibody systems: history, formalisms, and applications. J. Comput. Nonlinear Dyn. 1(1), 3–12 (2006)
Blajer, W., Bestle, D., Schiehlen, W.: An orthogonal complement matrix formulation for constrained multibody systems. J. Mech. Des. 116, 423–428 (1994)
Saha, S.K.: Analytical expression for the inverted inertia matrix of serial robots. Int. J. Robot. Res. 18(1), 116–124 (1999)
Hirschkorn, M., Kövecses, J.: The role of the mass matrix in the analysis of mechanical systems. Multibody Syst. Dyn. 30(4), 397–412 (2013)
Lilly, K.W., Orin, D.E.: Alternate formulations for the manipulator inertia matrix. Int. J. Robot. Res. 10(1), 64–74 (1991)
Angeles, J., Ma, O.: Dynamic simulation of n-axis serial robotic manipulators using a natural orthogonal complement. Int. J. Robot. Res. 7(5), 32–47 (1988)
Golub, G.H., Van Loan, C.F.: Matrix Computations, vol. 3. JHU Press, Baltimore (2012)
Featherstone, R.: Rigid Body Dynamics Algorithms. Springer, New York (2008)
Jain, A.: Robot and Multibody Dynamics: Analysis and Algorithms. Springer, New York (2010)
Saha, S.K.: Dynamics of serial multibody systems using the decoupled natural orthogonal complement matrices. J. Appl. Mech. 66, 986–996 (1999)
Shah, S.V., Saha, S.K.: Correlation between diagonal ratio and condition number of the generalize inertia matrix of a serial-chain. Arch. Mech. Eng. 60(1), 147–156 (2013)
Shah, S.V.: Modular framework for dynamics modeling and analysis of tree-type robotic system. Ph.D. thesis, IIT Delhi (2011). Download from http://surilshah.weebly.com/uploads/1/1/4/6/11462120/2011_thesis_surilshah.pdf
Shah, S.V., Saha, S.K., Dutt, J.K.: Modular framework for dynamic modeling and analyses of legged robots. Mech. Mach. Theory 49, 234–255 (2012)
Saha, S.K.: A decomposition of the manipulator inertia matrix. IEEE Trans. Robot. Autom. 13(2), 301–304 (1997)
Agrawal, A., Shah, S.V., Bandyopadhyay, S., Saha, S.K.: Dynamics of serial chains with large degrees-of-freedom. Multibody Syst. Dyn. 32(4), 273–298 (2014)
Featherstone, R.: Efficient factorization of the joint-space inertia matrix for branched kinematic tree. Int. J. Robot. Res. 24(6), 487–500 (2005)
Fijany, A., Featherstone, R.: A new factorization of the mass matrix for optimal serial and parallel calculation of multibody dynamics. Multibody Syst. Dyn. 29(1), 169–187 (2013)
Stelzle, W., Kecskeméthy, A., Hiller, M.: A comparative study of recursive methods. Arch. Appl. Mech. 66, 9–19 (1995)
Shah, S.V., Saha, S.K., Dutt, J.K.: Dynamics of Tree-type Robotic Systems, Intelligent Systems, Control and Automation. Science and Engineering Bookseries. Springer, Netherlands (2013)
Lilly, K.W.: Efficient Dynamic Simulation of Robotic Mechanisms. Kluwer Academic Publishers, Boston (1993)
Mohan, A., Saha, S.K.: A recursive, numerically stable, and efficient algorithm for serial robots. Multibody Syst. Dyn. 17(4), 291–319 (2007)
Park, J.H., Kim, K.D.: Biped robot walking using gravity-compensated inverted pendulum mode and computed torque control. In: IEEE Int. Conf. Robotics and Automation, pp. 3528–3533 (1998)
Cuadrado, J., et al.: Penalty, semi-recursive and hybrid methods for MBS real-time dynamics in the context of structural integrators. Multibody Syst. Dyn. 12(2), 117–132 (2004)
Higham, N.J.: Accuracy and Stability of Numerical Algorithms. SIAM, Philadelphia (2002)
Featherstone, R.: An empirical study of the joint space inertia matrix. Int. J. Robot. Res. 23(9), 859–871 (2004)
Author information
Authors and Affiliations
Corresponding author
Additional information
This paper builds on the Ph.D. thesis work [12] of the first author at IIT Delhi.
Appendix A
Appendix A
The inter- and intra-modular kinematic constraints leading to the module-level DeNOC matrices are obtained in Appendices A.1 and A.2, respectively. Appendix A.3 provides an illustration of the recursive block inverse of \(\bar{\mathbf{U}}\). Appendix A.4 presents a numerical validation of the decomposed GIM, whereas the steps of the forward dynamics algorithm are provided in Appendix A.5.
1.1 A.1 Intra-modular velocity constraints
As mentioned in the beginning of Sect. 2, module \(i\), for \(i= 1, \ldots, s\), in a tree-type system contains only serially connected links. Let us consider the \(k\)th link in the \(i\)th module, denoted #\(k^{i}\), connected to the link #\((k -1)^{i}\), by a 1-DOF revolute or prismatic joint \(k^{i}\), as shown in Fig. 11. The six-dimensional vector of twist associated with the angular velocity, \(\boldsymbol{\omega}_{k^{i}}\), and linear velocity, \(\dot{\mathbf{o}}_{k^{i}}\), of the origin of #\(k^{i}\) is defined as \(\mathbf{t}_{k^{i}} \equiv [\begin{array}{c@{\ }c} \boldsymbol{\omega}_{k^{i}}^{T} & \dot{\mathbf{o}}_{k^{i}}^{T} \end{array}]^{T}\). Next, the twist of #\(k^{i}\), \(\mathbf{t}_{k^{i}}\), can be written in terms of the twist of #\((k-1)^{i}\), \(\mathbf{t}_{(k - 1)^{i}}\), as
In Eq. (A.1), \(\dot{\theta}_{k^{i}}\) is the time rate of change of the angular or translational displacement of the \(k\)th joint depending on the type of joint, i.e., revolute or prismatic, respectively. The matrix \(\mathbf{A}_{k^{i},(k - 1)^{i}}\) is the \(6\times6\) twist-propagation matrix, and \(\mathbf{p}_{k^{i}}\) is the six-dimensional join motion-propagation vector. They are given by
where \(\tilde{\mathbf{a}}_{k^{i},(k - 1)^{i}}\) is the \(3\times3\) cross-product tensor associated with vector \(\mathbf{a}_{k^{i},(k - 1)^{i}}\), and \(\mathbf{e}_{k^{i}}\) is the unit vector along the axis of rotation or translation of the joint \(k^{i}\). Next, the vectors of module-twist and the independent module-joint-rates for the \(n^{i}\)-coupled links of the \(i\)th serial module are defined as
where \(\bar{\mathbf{t}}_{i}\) and \(\dot{\bar{\mathbf{q}}}_{i}\) are the \(6n^{i}\)- and \(n^{i}\)-dimensional vectors, respectively. Substituting Eq. (A.1) into Eq. (A.3), for \(k^{i} =1^{i}, \ldots,n^{i}\), the expression for the generalized twist of a serial module, \(\bar{\mathbf{t}}_{i}\), is obtained [10]:
In Eq. (A.4), \(6n^{i} \times6n^{i}\) and \(6n^{i} \times n^{i}\) matrices \(\bar{\mathbf{N}}_{i,l}\) and \(\bar{\mathbf{N}}_{i,d}\) are given by
The matrices \(\bar{\mathbf{N}}_{i,l}\) and \(\bar{\mathbf{N}}_{i,d}\) are referred here as the Decoupled Natural Orthogonal Complement (DeNOC) matrices of the serial-module, which are nothing but those reported in [10] for a serial robot.
1.2 A.2 Inter-modular velocity constraints
It is worth noting that Eq. (A.4) represents the twists of the links in the \(i\)th module if it emanates from the ground. However, in a tree-type system, each module, other than the base, is a child module, e.g., \(M_{i}\) in Fig. 1(b), which contains serially connected links and emerges from the last link of its parent module \(M_{\beta}\). Hence, the velocity constraints between the modules, i.e., at inter-modular level, will be derived in this section as an extension of the expression derived in Eq. (A.4). For the module \(M_{i}\), the \(6n^{i}\)-dimensional vector of module-twist, \(\bar{\mathbf{t}}_{i}\), which has \(n^{i}\) link twists, and the \(n^{i}\)-dimensional vector of module-joint-rate, \(\dot{\bar{\mathbf{q}}}_{i}\), having \(n^{i}\) joint rates are defined in Eq. (A.3). Next, it is shown that the module-twist \(\bar{\mathbf{t}}_{i}\), for \(M_{i}\), can be written in terms of the module-twist \(\bar{\mathbf{t}}_{\beta}\) (or \(\bar{\mathbf{t}}_{\beta_{i}}\)) of its parent \(M_{\beta}\) as
where \(\bar{\mathbf{A}}_{i,\beta}\) and \(\bar{\mathbf{N}}_{i}\) are the \(6n^{i} \times6n^{\beta}\) module-twist propagation and \(6n^{i} \times n^{i}\) module-joint-motion propagation matrices, respectively, which are given by
In Eq. (A.7), \(\bar{\mathbf{A}}_{i,\beta}\) propagates the twist of the parent module (\(\beta\)th) to the child module (\(i\)th); the last column contains the twist propagation matrix from the \(n\)th link of the \(\beta\)th module wherefrom the \(i\)th module emanates, to the different links of the \(i\)th module. Matrix \(\mathbf{A}_{k^{i},n^{\beta}}\) in the expression of \(\bar{\mathbf{A}}_{i,\beta}\) denotes the \(6\times6\) twist-propagation matrix from the twist of link #\(n^{\beta}\) (last link in the \(\beta\)th module) in module \(M_{\beta}\) to the twist of link #\(k^{i}\) in module \(M_{i}\). Moreover, \(\mathbf{A}_{k^{i},(k - 1)^{i}}\) and \(\mathbf{p}_{k^{i}}\) are defined in Eq. (A.2). Next, considering the links and joints of all the modules, the generalized twist vector, \(\mathbf{t}\), consisting of all module-twists, and the generalized joint-rate vector, \(\dot{\mathbf{q}}\), consisting of all module-joint-rates are defined as
In Eq. (A.8), the vector of module-twists \(\bar{\mathbf{t}}_{i}\) and module-joint-rates \(\dot{\bar{\mathbf{q}}}_{i}\) contain link twists and joint rates, respectively, as defined in Eq. (A.3). Substituting Eq. (A.6) into Eq. (A.8), for \(i = 1, \ldots, s\), the generalized twist \(\mathbf{t}\) is expressed as
where \(\bar{\mathbf{A}}\) and \(\bar{\mathbf{N}}_{d}\) are the \(6n \times6n\) and \(6n \times n\) matrices, and they are given as
In Eq. (A.10), \(\beta\) in \(\bar{\mathbf{A}}_{i,\beta}\) corresponds to the parent of \(i\), for \(i=1, \ldots,s\). Rearranging Eq. (A.10), the \(6n\)-dimensional generalized twist is given by
The \(6n \times6n\) matrix \(\bar{\mathbf{N}}_{l}\) can easily be obtained
where \(1_{i}\) represents the \(6n^{i} \times6n^{i}\) identity matrix, and \(\mathbf{O}\) is the null matrix of compatible dimension. Moreover, \(\bar{\mathbf{A}}_{i,j}\) and \(\bar{\mathbf{N}}_{i}\) are the \(6n^{i} \times6n^{j}\) module-twist propagation and the \(6n^{i} \times n^{i}\) module-joint-motion propagation matrices, in line with the twist-propagation matrix and joint-motion propagation vector from one link to the neighboring link connected by a single-degree-of-freedom joint [10]. The term \(\bar{\mathbf{A}}_{i,j}\), defined similar to \(\bar{\mathbf{A}}_{i,\beta}\) in Eq. (A.7), propagates the twist of the \(j\)th module relative to the \(i\)th one, where \(\bar{\mathbf{A}}_{j,i} \equiv \mathbf{O}\) if module \(M_{j}\) does not belong to the set \(\boldsymbol{\gamma}_{i}\) of all modules originating from \(M_{i}\), as shown in Fig. 3. The matrices \(\bar{\mathbf{N}}_{l}\) and \(\bar{\mathbf{N}}_{d}\) of Eq. (A.11) are nothing but the DeNOC matrices for the multi-modular tree-type system under study, rather than the multi-link system.
1.3 A.3 An illustration of recursive block inverse of \(\bar{\mathbf{U}}\)
The inverse of the block upper triangular matrix \(\bar{\mathbf{U}}\) can be obtained from Eq. (39) as
In order to comprehend recursive relationship for the block elements \(\hat{\bar{\mathbf{U}}}_{i,j}\), the tree-type system should have at least three serially connected modules. The example of gripper is simple enough as it contains only two serially connected module sets, i.e., (\(M_{1}, M_{2}\)) and (\(M_{1}, M_{3}\)). Therefore, let us consider a simplest system with three serially connected modules \(M_{1}\), \(M_{2}\) and \(M_{3}\). For such a three module system \(\bar{\mathbf{U}}^{ - 1}\) is expressed as
where the elements of EBUTM \(\bar{\mathbf{U}}_{2}\) and \(\bar{\mathbf{U}}_{3}\) are obtained from Eq. (30) and the resulting matrices \(\bar{\mathbf{U}}_{2}\) and \(\bar{\mathbf{U}}_{3}\) are given by
Substituting Eq. (A.15) into Eq. (A.14) \(\mathbf{U}^{ - 1}\) is expressed as
The \((1,3)\) block element in Eq. (A.16) denoted \(\hat{\bar{\mathbf{U}}}_{1,3}\) is the simplified expression which is obtained as follows:
where
It may be noted that, for the adjoining modules sets (\(M_{2}, M_{3}\)) and (\(M_{1},M_{2}\)), \(\hat{\bar{\mathbf{A}}}_{3,2} = \bar{\mathbf{A}}_{3,2}\) and \(\hat{\bar{\mathbf{A}}}_{2,1} = \bar{\mathbf{A}}_{2,1}\).
1.4 A.4 Numerical validation of the decomposed GIM of gripper
For the set of numerical values of the link masses and inertias, as given in Table 2, the GIM can be obtained for the configuration \(\theta_{1^{1}} = \theta_{1^{2}} = \theta_{2^{2}} = 0\) and \(\theta_{1^{3}}=90\), as
Its decomposed block matrices \(\bar{\mathbf{U}}\) and \(\bar{\mathbf{D}}\), and the corresponding block inverses \(\bar{\mathbf{U}}^{ - 1}\) and \(\bar{\mathbf{D}}^{ - 1}\), respectively, are obtained from Eq. (34) and Eq. (58) as follows:
and
It is now a simple matter to verify the correctness of the inverses by computing \(\mathbf{I}^{ - 1} = \bar{\mathbf{U}}^{ - 1}\bar{\mathbf{D}}^{ - 1}\bar{\mathbf{U}}^{ - T}\) as
Equation (A.22) was checked against numerical result obtained using MATLAB command “inv.”
1.5 A.5 Forward dynamics algorithm for a tree-type multibody system
Steps for recursive forward dynamics algorithm [12] are shown in Table 6.
Rights and permissions
About this article
Cite this article
Shah, S.V., Saha, S.K. & Dutt, J.K. A new perspective towards decomposition of the generalized inertia matrix of multibody systems. Multibody Syst Dyn 43, 97–130 (2018). https://doi.org/10.1007/s11044-017-9581-8
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s11044-017-9581-8