1. Introduction
In the framework of biomechanics, the dynamics of the human body plays an important role: it is necessary to apply knowledge of the joint contact forces during certain human kinematics motion to analyse the joint loading, and to define the synovial joints (hip, knee, ankle, etc.) tribological behaviour and mechanical performances. It is necessary to estimate the friction and the wear of the articulated surfaces [
1,
2,
3], to predict some articular diseases such as the osteoarthritis [
4,
5] and to design prostheses able to replace the worn natural joint [
6,
7,
8] or to investigate the influence of some properties on the prosthesis performance [
9,
10,
11], etc.
The in vitro or in vivo approaches to study biomechanical phenomena, are characterised by a wide deviation of the measurement results. Since they are dependent on many parameters and vary from subject to subject [
12,
13,
14], many experiments are required to define an average behaviour of a certain physical system. For these reasons, the in silico approach is becoming a very suitable way to overcome the described issues, and many software, able to solve numerically dynamical musculoskeletal systems, have been developed by researchers, such as OpenSim, AnyBody, etc.
Each software is built with algorithms used to approach mathematical problems; despite them being computationally optimized to solve problems, they are not fully controllable and they are not easy to use as a subroutine in more complex models.
A musculoskeletal system can be seen as a set of bodies; the bones, linked by joints which, simultaneously, allow and constrain the relative motions between them. It is moved by a complex actuation system composed by “deformable actuators” attached to the bodies, the muscles, governed by neural excitation signals [
15]. In order to analyse the joint contact forces of an articulated system subjected to a known motion, one of the best ways to achieve the goal is to solve the inverse dynamics problem with a multibody approach, after performing the scaling and the inverse kinematics [
16] to adapt the musculoskeletal system to the particular subject and motion.
With reference to the above issues, an analysis of scientific literature furnishes interesting findings.
In [
6] the authors analysed the differences between two multibody musculoskeletal models of the upper limb, an anatomical one and one provided with a reverse shoulder prosthesis. They focused on the comparison between the muscles’ lengths, forces and joint reactions by varying the shoulder replacement location and geometry.
In [
9] the authors validated the quality of a multibody simulation in the framework of above-knee amputees subjects based on a socket. They compared the calculated loads acting on the socket interface with the ones acquired by measurement devices applied on six subjects during level walking captured in gait laboratories, obtaining good agreements.
In [
11] the authors discussed the theoretical multibody approaches and contact simulations in the framework of mechanical hands so as to adapt them to prosthetic hands. They studied the dynamical behaviour of the finger and the phalanx in order to analyse the grasping ability of the artificial hand.
In [
17] the authors proposed to associate a fatigue model to the muscle one, in a general multibody simulation, considering the muscular force history, to evaluate its fitness level. The authors, with reference to a simple upper extremity system subjected to gravity and a concentrated load, obtained interesting results in terms of the increase of the muscles activation and/or of the number of recruited muscles after a loss of force production capacity.
In [
18] the authors furnished a detailed description of the main techniques used to solve the inverse dynamics of musculoskeletal systems, showing the joint modelling, the muscular tissue dynamics and the physiological criteria. They applied the model in the case of the gait analysis of a geometrically reliable whole body.
In [
19] the authors showed the multibody analysis potential to solve problems in the framework of the craniofacial biomechanics of both human and non-human applications.
In [
20] the authors performed an overview on the multibody kinematic optimization, focusing on the reliability of the kinematical analysis associated to the upper limb modelling with respect to the motion of the soft tissue artefacts, the skin, which in general provides errors.
In [
21] the authors developed an interesting multibody model of the human spine by discretising the linked intervertebral discs by a series of rotational joints, obtaining reliable results and pointing out on the model utility in the framework of the seating systems comfort investigation and of the surgical field.
In the above scientific framework, the aim of this paper is to develop, step by step, an explicit analytical multibody model representing the “core model” of a novel algorithm written by the authors in the Matlab environment, able to solve the inverse dynamics of upper limb musculoskeletal systems, allowing the explicit control of the involved variables. The reliability of the model is evaluated by performing a comparison with the results of an inverse dynamics analysis obtained from the open-source software OpenSim on the upper limb system subjected to a known kinematics example.
3. Results and Discussion
In this section, the results regarding the simulation of the upper limb subjected to gravity during a simple kinematics are discussed. The input data are taken from the OpenSim model “arm26” [
22]. As already mentioned, the analysed upper limb is composed of three bodies: ground, humerus and forearm; these are linked by two revolute joints, the shoulder and elbow, whose main data (inertial properties, relative locations and rotation axes) are listed in
Table 1,
Table 2,
Table 3 and
Table 4.
The musculoskeletal system is moved by six muscles (long triceps, lateral triceps, medial triceps, long biceps, short biceps and brachialis), characterised by parameters included in the
Table 5.
The wrapping surfaces included are a cylinder fixed to the ground interacting with the long triceps, a first ellipsoid interacting with the long biceps, a second ellipsoid interacting with the long triceps (both the ellipsoids are fixed to the humerus) and a cylinder fixed to the humerus interacting with all the triceps on the back and with the brachialis on the front. The wrapping surfaces have locations
and orientations
with respect to the reference joints, these are reported in
Table 6, along with the surface geometries.
The degrees of freedom are the shoulder and the elbow rotations and the analysed kinematics, as reported in
Figure 7, which shows the movement of the elbow from 0° to 90° during 1 s while the shoulder does not move.
In order to prove the reliability of the kinematical analysis,
Figure 8;
Figure 9 show the comparison between the system configuration (the position of the bodies with their mass centre, the muscles and the wrapping surfaces) in the OpenSim model and in the Matlab model, in correspondence of the first and the last time instants. The kinematical analysis can be viewed in
Supplementary Materials—Video S1.
The long biceps wrapped on the ellipsoid keeps its path on the surface during the simulation because the shoulder angle is constant; it is shown in
Figure 10.
The wrapping muscles on the cylinder close to the elbow are viewed in
Figure 11 at the start and at the end of the analysis time period, in order to show the brachialis wrapping on the cylinder front and the triceps wrapping on the cylinder back. The complete time evolution of the muscles’ wrapping on the cylinder is available in
Supplementary Materials—Video S2.
A first quantitative comparison in the framework of the kinematical analysis is shown in
Figure 12 on the muscles’ fibre length
, which also accounts for the muscle wrapping.
Given that the comparison is satisfactory, the unique noticeable difference is related to the long biceps fibre length, probably due to a different wrapping algorithm used by the OpenSim software. After the kinematical analysis, the results of the inverse dynamics are shown in the
Figure 13, in which the comparison between OpenSim and Matlab is made on the driving forces (rheonomic Lagrange multipliers
). The inverse dynamics outputs result in a very satisfactory match between the Matlab model and the OpenSim software.
The tool “Static Optimization” in OpenSim does not take into account the muscle passive force and allows choosing between the physiological criterion by using the muscle’s force–length–velocity relationships or not. In the latter option the muscular activation
is intended as the ratio between the muscle force
and the maximum isometric force
, bounded between 0 and 1. In the configuration of non-physiological criterion, the comparison on the muscles’ activation is shown, respectively, in
Figure 14. The comparison of the muscle forces is not shown because in this case the forces are proportional to the activations. The evaluated activations
calculated with the Matlab model are slightly underestimated with respect to the ones evaluated by OpenSim, which, moreover, show some discontinuities.
The results obtained with the physiological criterion but not taking into account the passive muscle forces are shown in
Figure 15, in terms of muscle activations
, and in
Figure 16, in terms of muscle forces
. In this configuration there are small underestimations and overestimations in different parts of the time period and the OpenSim software returns some discontinuities, regarding both the activations and the muscle forces.
The “Computed Muscle Control” tool in OpenSim [
36] allows evaluating the muscle activations, also considering the passive muscle forces, by calculating through PID controllers the muscle actions necessary to obtain the minimum difference between the trajectories of the degrees of freedom simulated with the forward dynamics and the ones known by inverse kinematics. The comparison results regarding the muscle activation
and the muscle forces
are shown respectively in
Figure 17 and in
Figure 18. In this last configuration, which includes all the analysed phenomena, despite the good qualitative match between the Matlab model and the OpenSim software, there are some discrepancies, probably due to the different approaches with respect to static optimization. While the muscle activations are underestimated, the muscle forces seems to be more similar to each other, except for the first instants of the time period discussed.
Another interesting result is obtained regarding the residual actuators
(which are the rheonomic Lagrange multipliers
of Equation (33)), also provided in the OpenSim tools, in this configuration. With reference to
Figure 19, the residual actuators show a similar behaviour, both quantitively and qualitatively. The quantitative response of the residual actuators shows that the particular muscles’ topology, together with their characteristic parameters listed in
Table 5, does not fully satisfy the equation of motion, since they result from the minimization, but their role is marginal if compared to the rheonomic Lagrange multipliers coming from the inverse dynamics (
Figure 13) and, in fact, the residual action is needed just to reach the minimization convergence and to complete the calculus, not for substituting the real actuators represented by the muscles.
Once the inverse dynamics problem of the musculoskeletal system is solved, the Matlab model provides the joint reactions. In
Figure 20, the joint reactions
(which are the scleronomic Lagrange multipliers
of Equation (33)) which act on the upper limb joints during the analysed kinematics are shown.
4. Conclusions
The objective of this work was to propose and to describe step by step the procedure to achieve a general multibody approach able to solve the inverse dynamics problem of a musculoskeletal system, the upper limb, implemented in a novel code developed in the Matlab environment. By knowledge of the musculoskeletal system degrees of freedom together with the system’s topology, the model allows a kinematical analysis based on the evaluation of the constraints’ kinematical behaviour. Subsequently, associating an actuator for each degree of freedom and including the external forces, the inverse dynamics is solved by calculating the rheonomic Lagrange multipliers, related to the driving actions that lead the system to move following the known kinematics. The knowledge of the muscles’ topology leads the kinematical analysis to evaluate the muscle paths between the bodies and around the wrapping surfaces fixed to the bodies: in the case of wrapped muscle, an algorithm based on the calculus of geodesic curves is used. The muscle paths are involved in the elaboration of the muscles’ lengths, deformation velocities and pennation angles, in order to include in the equation of motion, through the Hill muscle model, the muscles’ passive forces and the muscles’ activations. The last step of the model is to analyse the muscular recruitment through static optimization: the evaluation of the set of muscles’ activation levels and joint reaction forces, able to minimize the global activation and to satisfy the equation of motion.
The effectiveness of the model was examined by its application on an upper limb model subjected to a simple kinematics and to gravity forces. All the inputs data were taken from the OpenSim software and the simulation results were compared with the ones provided by the software, obtaining a general satisfactory qualitative and quantitative matching:
- -
despite the kinematical analysis, exactness is noticeable, the only difference found was a small overestimation of the long biceps muscle fibre length, probably due to the different wrapping algorithm used by OpenSim;
- -
the inverse dynamics in terms of driving force results were almost completely matched;
- -
the static optimization was characterised by a general underestimation of the muscles’ activations in all the cases considered (both physiological and non-physiological criterion in absence of passive muscles’ forces and physiological criterion considering the passive muscle actions compared with the Computed Muscle Control tool of OpenSim). The underestimation was regained by comparing the muscle forces, the differences were probably due to the different approaches in the minimization techniques and, certainly, to the different approach to the inverse dynamics of the Computed Muscle Control;
- -
the good outcome of the comparison was also confirmed by the matching of the residual actuators.
In summary, with the limitation of its validation with only one imposed upper limb kinematics, the model resulted as a suitable, open and fully controllable tool in the framework of the multibody musculoskeletal dynamics of the human upper limb. However, despite the model being characterised by the accurate analytical description of important muscular phenomena (muscle dynamics, recruitment and wrapping), it has to process more complex kinematics in order to perform a more accurate validation and to design a fully in silico optimization model of the artificial human joints. The deepening of the involved phenomena is always a stimulating necessity, in order to understand more clearly the human body mechanical behaviour, so future research perspectives will be devoted to:
- -
a full validation with more upper limb kinematics;
- -
the application of the model in the framework of the lower limb musculoskeletal system, in order to compare the simulated joint reactions with the in vivo measurements during the gait analysis;
- -
the coupling of the model with a lubrication one, in order to estimate the wear of an artificial joint or to evaluate the joints friction forces or torques to include in the equation of motion as non-conservative actions;
- -
the upgrade of the model by including the forward dynamics, in order to make a detailed comparison with the Computed Muscle Control tool of the OpenSim software;
- -
the deepening of the Hill muscle model, in order to include the tendon dynamics;
- -
the possible applications of the model in the framework of the biomechatronics and robotics fields.