• No results found

Musculoskeletal Modeling of Ballet

N/A
N/A
Protected

Academic year: 2021

Share "Musculoskeletal Modeling of Ballet"

Copied!
106
0
0

Loading.... (view fulltext now)

Full text

(1)

Linköping University | Department of Management and Engineering Master’s thesis, 30 credits| Master’s programme Spring 2020| LIU-IEI-TEK-A--20/03947—SE

MUSCULOSKELETAL

MODELLING OF BALLET

Bharath

Hungenahalli Shivanna

Supervisor: Joakim Holmberg Examiner: Jonas Stålhand

Linköping University SE-581 83 Linköping, Sweden +46 013 28 10 00, www.liu.se

(2)

Abstract

This thesis work comprises the working and simulation procedures being involved in simulating motion capture data in AnyBody Modeling System. The motion capture data used in this thesis are ballet movements from dancers of Östgöta ballet and dance academy. The ballet movements taken into consideration are the arabesque on demi point and pirouette. The arabesque on demi pointe was performed by two dancers but the pirouette is performed by only one dancer. The method involved recording ballet movements by placing markers on the dancers body and using this motion capture data as input to AnyBody Modeling System to create a musculoskeletal simulation.

The musculoskeletal modelling involved creating a very own Qualisys marker protocol for the markers placed on the ballet dancers. Then implementing the marker protocol onto a human model in AnyBody Modeling System by making use of the AnyBody Managed Modeling Repository (TM) and obtain the kinematics from the motion capture. To best fit the human model to the dancers anthropometry, scaling of the human model is done, environment conditions such as the force plates are provided. An optimization algorithm is conducted for the marker positions to best fit the dancers anthropometry by running parameter identification. From the kinematics of the motion capture data, we simulate the inverse dynamics in AnyBody Modeling System.

The simulations explains a lot of parameters which describes the ballet dancers. Results such as center of mass, center of pressure, muscle activation, topple angle are presented and discussed. Moreover, we compare the models of the dancers and draw conclusion about the body balance, effort level and muscles activated during the ballet movements.

(3)

Acknowledgements

I would like to thank my thesis supervisor Joakim Holmberg at the Division of Solid Mechanics, Linköping University, for always taking the time to give advice and guidance in this project. His superficial guidance of kinematic modeling was very useful concerning this thesis.

I also received additional support from the AnyBody team through AnyScript.org fo-rum by Søren Tørholm the Manager Consulting Support at AnyBody Technology A/S and Pavel Galibarov, senior member at AnyBody Technology A/S on Musculoskeletal Modelling errors.

A special thanks to Rector of Östgöta Ballet Dance Academy, Marlene Jacobsson for spending time in training the dancers and being a part of the mocap trails and helping me understand ballet movements while analyzing results.

(4)

Contents

1 Introduction 6

1.1 Background and motivation . . . 6

1.2 Problem formulation . . . 7 1.3 Limitations . . . 8 2 Theoretical background 9 2.1 Biomechanics . . . 9 2.1.1 Musculoskeletal System . . . 9 2.1.2 Musculoskeletal modelling . . . 9

2.2 Multibody dynamics-equations of motion . . . 10

2.3 Inverse dynamics and Muscle recruitment . . . 13

2.4 Constant force muscle model . . . 16

2.5 Scaling musculoskeletal models . . . 18

2.6 Parameter Optimization . . . 19

2.7 Force Plates . . . 20

2.7.1 TYPE-3 Force plates . . . 20

2.7.2 Force Plate corners . . . 21

2.7.3 Force Plate Origin . . . 22

2.7.4 Force plate channel . . . 23

3 Methodology 24 3.1 Pre-Study . . . 25

3.2 C3D data . . . 25

3.3 Motion capture . . . 26

3.4 Mocap trials . . . 29

3.4.1 Arabesque Mocap stances . . . 29

3.4.2 Pirouette Mocap stances . . . 30

3.5 Simulation in AnyBody Modeling System . . . 32

3.5.1 Marker Protocol . . . 33

3.5.2 Parameter Identification . . . 35

(5)

3.8.3 Contact Detection on limbs . . . 46

4 Results and Discussion 51 4.1 Result terminology . . . 51

4.2 MA stepping into arabesque . . . 53

4.2.1 COM and COP of MA dancer while stepping into arabesque . . . 54

4.2.2 Joint angle of MA dancer while stepping into arabesque . . . 55

4.2.3 Muscles activation of MA while stepping into arabesque . . . 57

4.3 SA stepping into arabesque . . . 59

4.3.1 COM and COP of SA dancer while stepping into arabesque . . . 60

4.3.2 Joint angle of SA dancer while stepping into arabesque . . . 61

4.3.3 Muscle activity of SA dancer while stepping into arabesque . . . . 63

4.4 Comparison of MA and SA dancer while stepping into arabesque . . . 65

4.4.1 Topple angles . . . 65

4.4.2 Muscle activity . . . 66

4.4.3 Joint reaction forces . . . 69

4.5 SA performing pirouette . . . 74

4.5.1 COM and COP of SA dancer while performing the pirouette . . . 75

4.5.2 Joint angle of the SA dancer while performing the pirouette . . . 76

4.5.3 Muscle activity of SA dancer while performing pirouette . . . 78

4.5.4 Topple angle of SA dancer while performing the pirouette . . . 79

4.6 Motion capture and marker tracking . . . 81

4.7 Inverse dynamics . . . 82

5 Sources of Error 83 5.1 Error sources in the model . . . 83

5.2 Model data uncertainties . . . 83

5.3 Boundary conditions . . . 84

5.4 Error sources in basic assumptions . . . 84

5.5 Errors in Software . . . 84

6 Conclusion 86 Bibliography 87 7 Appendix 91 7.1 Initial position . . . 91

7.2 Parameter Identification of SA and MA . . . 93

7.2.1 Objective function . . . 93

7.3 Joint movements . . . 95

7.4 Muscles in the trunk and legs . . . 96

(6)

List of Figures

2.1 Simple vs realistic representation of human upper extremity [21]. . . 15

(a) Human forearm with load acting . . . 15

(b) Human forearm with muscles . . . 15

2.2 The C3D Force plate coordinated order [35]. . . 22

2.3 Origin data for eight channel force platforms [36]. . . 22

2.4 Force platform signals by type [37]. . . 23

3.1 A flow chart showing how the work was carried out though out the project to simulate a mocap data into AnyBody Modeling System. . . 24

3.2 The complete marker set from Qualisys Marker protocol [18]. . . 27

(a) Upper body CAST . . . 27

(b) Lower body CAST . . . 27

3.3 Marker placement according to the Qualisys marker protocol while MA dancer is in static stance. . . 28

(a) Markers placed on MA dancer given by red dots . . . 28

(b) Markers placed on MA dancer from MOKKA . . . 28

3.4 The complete marker set according to the Qualisys marker protocol while MA dancer is in dynamic stance. . . 28

(a) Markers placed on MA dancer given by red dots . . . 28

(b) Markers placed on MA dancer from MOKKA . . . 28

3.5 Arabesque mocap stances. The first row of figures are the front view covering from head to the toe including the force plates. The second row of figures are the side view focusing from the hip to toe region. . . 30

(a) SA dancer . . . 30

(b) MA dancer . . . 30

3.6 Pirouette mocap stances by SA dancer. The first row of figures are the front view covering from head to the toe including the force plates. The second row of figures are the side view focusing from the hip to toe region. 31 3.7 The complete marker set from Vicon marker protocol [19] . . . 33

3.8 Difference from the Vicon marker protocol to the Qualisys marker protocol [18]. . . 34

(7)

LIST OF FIGURES

3.13 Human ground residuals. The green line indicates the force provided at the pelvis in +z direction, while the rest of the coloured lines are force

provided to the pelvis in the other directions. . . 45

3.14 Contact with force plate by MA dancer while stepping into arabesque on demi pointe at 2.19 sec. Here the exact time of contact on force plate was observed. . . 47

3.15 Contact detection limb2 p1 (heel) node for MA while stepping into arabesque. The green line represent the z axis, while y axis in red and x axis in blue. 47 3.16 Contact detection limb2 p2 (toe) node for MA while stepping into arabesque. The green line represent the z axis, y axis in red and x axis in blue. . . . 48

3.17 In contact muscles switching on contact at 2.19 s for MA dancer while stepping into arabesque. . . 48

3.18 No contact muscles switching off on contact at 2.19 s for MA dancer while stepping into arabesque. . . 49

3.19 Human ground residuals switching off at 2.19 sec for MA dancer while stepping into arabesque.The green line indicates the force provided at the pelvis in +z direction, while the rest of the coloured lines are force provided to the pelvis in the other directions. . . 49

3.20 Net effect measure switching on at 2.19 sec for MA dancer while stepping into arabesque. This is the readings of the force plates while MA dancer steps on the it. The green line represent the z axis, y axis in red and x axis in blue. . . 50

3.21 Contact detection corrected after changing threshold values. . . 50

(a) MA dancer contact detection for all trials . . . 50

(b) SA dancer contact detection for all trials . . . 50

4.1 Joint reaction forces different orientation . . . 51

(a) front view . . . 51

(b) side view . . . 51

4.2 Topple angles while stepping into arabesque and while performing the pirouette. The angle made between the green line (COM) and the yel-low vertical line from the COP. the red ball is the COM. . . 52

(a) arabesque trial . . . 52

(b) pirouette trial . . . 52

4.3 Stepping into arabesque of MA dancer. The first row of figures are the front view covering from head to the toe including the force plates. The second row of figures are the side view focusing from the hip to toe region. The third row of figures are side view of MA dancer after analysis in AnyBody Modeling System . . . 53

4.4 COM for MA . . . 54

(8)

LIST OF FIGURES

4.9 Muscles activated while stepping into arabesque of MA dancer. Muscle

names in bold letters correspond to high activity in that phase. . . 58

4.10 Stepping into arabesque of SA dancer with the global coordinates. The first row of figures are the front view covering from head to the toe including the force plates. The second row of figures are the side view focusing from the hip to toe region. The third row of figures are side view of SA dancer after analysis in AnyBody Modeling System. . . 59

4.11 COM for SA. . . 60

4.12 COP for SA. . . 61

4.13 Joint angle output of left leg for SA. . . 62

4.14 Joint angle output of right leg for SA. . . 62

4.15 Muscle activity for SA while stepping into arabesque. . . 64

4.16 Muscles activated while stepping into arabesque of SA dancer. Muscle names in bold letters correspond to high activity in the phase. . . 64

4.17 Topple angle comparison while stepping into arabesque. . . 66

(a) Topple angle of MA dancer . . . 66

(b) Topple angle of SA dancer . . . 66

4.18 Muscle activity for left leg while stepping into arabesque. . . 67

4.19 Muscle activity for right leg while stepping into arabesque. . . 68

4.20 Trunk Muscle activity while stepping into arabesque. . . 68

4.21 Left leg proximal distal force . . . 70

4.22 Right leg proximal distal force . . . 71

4.23 Joint angle comparison while stepping into arabesque . . . 71

4.24 Left leg anterior posterior force . . . 72

4.25 Right leg anterior posterior force . . . 72

4.26 Proximal distal force at L4L5 joint . . . 73

4.27 Pirouette of SA dancer. The first row of figures are the front view covering from head to the toe including the force plates. The second row of figures are the side view focusing from the hip to toe region. The third row of figures are side view of SA dancer after analysis in AnyBody Modeling System . . . 74

4.28 Center of mass for SA while performing the pirouette. . . 75

4.29 Center of pressure for SA while performing the pirouette. . . 76

4.30 Joint angle output of left leg for SA while performing pirouette. . . 77

4.31 Joint angle output of right leg for SA while performing pirouette. . . 77

(9)

LIST OF FIGURES

7.5 Stances of MA dancer stepping into arabesque en fondu . . . 97

7.6 Stances of SA dancer stepping into arabesque en fondu . . . 98

7.7 Stances of MA dancer low retiee derriee into a plie . . . 99

7.8 Stances of SA dancer low retiee derriee into a plie . . . 100

(10)

List of Tables

3.1 The measured entities of the ballet dancers weight and body dimensions. 29 3.2 Corrected force values with scale factors for MA dancer . . . 44 3.3 Corrected force values with scale factors for SA dancer . . . 44 3.4 Finalized scale factors for MA and SA dancer . . . 44 7.1 The assigned initial positions for different section of the human model in

AnyBody Modeling System . . . 92 7.2 Individual body segment parameters after the parameter identification . 93

(11)

1.

Introduction

1.1

Background and motivation

Motion capture (mocap) is a way to record any movement of objects or people, it is also called motion tracking. These recordings are nowadays used in entertainment, sports, medical applications, ergonomics and robotics. This cutting edge method captures the performance of an actor so that it can be translated into an action of a computer generated 3D character on screen. Due to this fact, it plays a wide role in film making and game development industry. In order to analyze sports performance and to test human limits on muscle threshold before failure, mocap is a supportive method with huge potential. The same technique is applied to observe and analyze ballet movements in professional ballet dancers. By utilizing this mocap data on a musculoskeletal model an estimation of muscle activations and joint reactions during ballet movement can be obtained. Form the results obtained it is possible to understand the full capacity of a muscle or a tendon to withstand fatigue loads before failure.

Studies from the Royal Swedish Opera House in Stockholm from 1988-1993, show a recorded 390 injuries by 98 ballet dancers over this period of 5 years. That is around 0.6 injuries for 1000 dance hours due to which there is an average sick leave of 2 to 3 weeks [6]. Both male and female dancers suffered from traumatic injuries (ankle sprain and stress fracture). Male dancers suffered more frequently at the knee joint while female dancers suffered overuse injuries at the foot and ankle region. Studies have also shown increased arthrosis in foot, knee and hip joints [1] [2]. This condition is unfortunate, because there is no cure for arthrosis. There are only temporary treatments to reduce pain or improve quality of life. This gives the motivation to analyze ballet movements, and predict the overloading and overuse of muscles. Furthermore, this study could be helpful as it shows the critical joints while performing ballet movements and can be used for further investigation.

The ultimate aim of the thesis is to build a musculoskeletal model in AnyBody Modeling System (www.anybodytech.com) from the given ballet movement (mocap) data sets, and use this model to analyze the muscle activation patterns in order to maintain the body balance, and how close to maximum effort are the muscles during ballet movements.

(12)

CHAPTER 1. INTRODUCTION

1.2

Problem formulation

Ballet comprise several very athletic movements and the prevalence of injuries are very high [4]. What are the muscle activation patterns to keep balance and how close to maximum effort do the muscles perform? This question is important because fatigue seems to be closely related to injury [4].

The task is to implement some data-sets after measurements into AnyBody Modeling System, thus creating musculoskeletal models. These models will be evaluated to see which level of musculoskeletal modeling that is feasible and suitable for both these spe-cific data-sets and for ballet in general. Moreover, muscle activation patterns and muscle effort will be studied.

The work task consists of the following steps:

• literature review of the field (this includes general multibody dynamics), • implementation of 8 data-sets of ballet dancers in AnyBody Modeling System, • pick data-sets with similar kind of movements (from different dancers) to implement

and study muscle activation patterns and muscle effort, • study body balance, topple angle and joint loads, • documentation of the major muscles used.

(13)

CHAPTER 1. INTRODUCTION

1.3

Limitations

Some limitations that have been considered for this project are the following: • the computations are run on a standard desktop,

• only two dancers with different height and weight are used for ballet movements, • using simple muscle model with constant force while musculoskeletal modeling, • pirouette and grande de jambe mocap trial available only for one dancer,

• limited maker data for marker tracking head, hand, knee. These are driven using extra drivers in the AnyBody Modeling, System.

(14)

2.

Theoretical background

2.1

Biomechanics

Biomechanics is the study of how motions in living organisms are caused by applied loads. This field of study is useful for getting a better understanding on how these loads influence the properties, structure and functions of living organisms and also on the structures of which they interact with. Biomechanics is a broad field of study which includes for example studies on how gravity affect the growth of plants, how birds are able to fly and also human athletic performance. The field of biomechanics also address health issues such as diseases and injury and how to treat such issues [5].

2.1.1

Musculoskeletal System

The musculoskeletal system (locomotor system) is an organ system which enable an or-ganism to move, support and maintain stability during any movement. This system comprise bones, muscles, cartilages, tendons, ligaments, joints and other connective tis-sues that support and bind the tissue organs together. Some of the primary functions of the musculoskeletal system include supporting the body, providing motion and protecting vital organs. It is the muscles which keep the bones intact and that allows their move-ment. To allow motion, bones are again connected through articulating joints, and these are protected by cartilages that prevents wear and tear at the joints during motion [39]. There are three types of muscle tissue that exist in the body. Those are the skeletal muscles, the smooth muscles and the cardiac muscles. The skeletal and smooth muscles are part of the musculoskeletal system. While the skeletal muscles provides help in body locomotion, the smooth muscles do so in involuntary actions. The cardiac muscles are muscles present only inside the heart.

The skeletal muscles consist of long muscle fibres, called sacromeres, which are made of myofilaments actin and myosin. The sacromeres are bound externally by sacrolemma and internally by many striated myofibrils. These myofibrils play an important role when it

(15)

CHAPTER 2. THEORETICAL BACKGROUND

be modelled as frictionless with a common point/line of attachment. The muscles will run from one segment to another connecting at the joints. These muscles are responsible for generating forces in the system and work like a force actuator [3].

2.2

Multibody dynamics-equations of motion

The dynamics of a spatial multibody system can be described in several ways [7]. We make use of absolute coordinates for the segments in the system and apply Newton-Euler equations of motion.

The spatial position for a segment with respect the reference frame is qi = rTi , pTi

T where ri = [xi, yi, zi]T and pi = [e0i, e1i, e2i, e3i]T are the translational and rotational

coordinate vectors, respectively, where i corresponds to the segment. The four Euler parameters of pi describes three rotational dimensions and are related through pTi pi = 1,

resulting in 6 degrees of freedom for each segment. A common problem with angular orientation of segments in spatial systems is that more than one combination of rotations can yield the same result. By using Euler parameters this is avoided. The velocity of segment i is therefore represented by vi = ˙rTi , ω

0T i

T

, where ω0

i is the angular velocity of

segment i and the apostrophe indicates that the angular velocity refers to a segment-fixed local coordinate system [10]. Define the matrix

Li =   −e1i e0i e3i −e2i −e2i −e3i e0i e1i −e3i e2i e1i e0i  

so that LiLTi = I, where I is a 3 × 3 identity matrix. Now ˙pi can be expressed in terms

of ω0 i as ˙ pi = 1 2L T i ω 0 i . (2.1)

The acceleration of segment i is ˙vi = ¨riT, ˙ω0Ti

T

. Expressing ¨pi in terms of ˙ωi0 is possible

as ¨ pi = 1 2L T i ω˙ 0 i− 1 4 ω 0T i ω 0 i pi . (2.2)

(16)

CHAPTER 2. THEORETICAL BACKGROUND

Φ = Φ (q, t) = 0 . (2.3)

where q denotes the column matrix of nc coordinates, where nc is the kinematic

con-straints. A column matrix with all the nc system coordinates is denoted by q =

[q1, q2, ...., qnc]T where T is the transpose of a matrix. If there are no mixed

coordi-nates added to the absolute coordicoordi-nates, there will be 3nb system coordinates, where nb

is the number of segments, the orientation of the segment is described by θi and thus

given as: q= [x1,y1,θ1,....,xnb,ynb,θnb]T. The equation 2.3 is called holonomic system as

all the constraints are written in terms of the configuration q and the time t the time derivative of equation 2.3 is

Φqq + Φ˙ t= 0 (2.4)

and

Φqq + (Φ¨ qq)˙ qq + 2Φ˙ qtq + Φ˙ tt = 0 . (2.5)

In equations (2.4) and (2.5), ˙q and ¨q are vectors of velocities and accelerations for the segments in the system; the matrix Φq is called the constraint Jacobian, It comprises the

partial derivatives of the constraint equations with respect to the spatial positions. From the above equation (2.5)

γ = − (Φqq)˙ qq − 2Φ˙ qtq − Φ˙ tt .

To express the constraint equations in terms of v and ˙v, equations (2.1) and (2.2) are used as shown below. To facilitate compact writing we also define L = [L1, L2, . . . , Lb]

for i = 1, 2, . . . , b, where b is the number of segments in the system. Partitioning the constraint Jacobian makes it possible to write each constraint equation (row) in the velocity constraint equations (2.4) as

(17)

CHAPTER 2. THEORETICAL BACKGROUND

Subscript r and p denotes partial derivatives with respect to translational and rotational spatial positions, respectively. Now the velocity constraint equations can be written as

Φq∗v = −Φt . (2.6)

In the acceleration constraint equations (2.5), each constraint equation can be written as [Φr, Φp]  ¨ r ¨ p  = −  [Φr, Φp]  ˙r ˙ p  q  ˙r ˙ p  − 2 [Φr, Φp]t  ˙r ˙ p  − Φtt

and then modified using (2.2), which leads to

 Φr, 1 2ΦpL T   ¨ r ˙ ω0  = −  Φr, 1 2ΦpL T  ˙r ω0  q  ˙ r 1 2L Tω0  + − 2  Φr, 1 2ΦpL T  t  ˙r ω0  − Φtt− 1 4 ω 0T ω0 Φpp .

Now the acceleration constraint equations can be written as

Φq∗v = γ˙ #. (2.7)

In equations (2.6) and (2.7), Φq∗ is the modified constraint Jacobian and γ# is the modified right side of the kinematic acceleration equations. That is, expressed in terms of v and ˙v using ω0 and ˙ω0 instead of ˙q and ¨q using ˙p and ¨p. The kinematics is now

fully described.

The Newton–Euler equations of motion for an unconstrained segment i are Ni 0 0 Ji0   ¨ri ˙ ωi0  +  0 ω0i× (J0 iω 0 i)  = fi n0i  (2.8) where Ni is the mass matrix and Ji0 is the inertia tensor for segment i; fi is the sum of

all forces and n0

i is the sum of all moments acting on segment i. For convenience, the

(18)

CHAPTER 2. THEORETICAL BACKGROUND

where Mi is the segment (total) inertia matrix; ˙vi is the segment acceleration vector; bi

contains fictitious forces such as Coriolis; gi is the segment force vector.

If (2.9) is repeated for i = 1, 2, . . . , b, we get

M1v˙1+ b1 = g1

M2v˙2+ b2 = g2

...

Mbv˙b + bb = gb

and using M = diag [M1, M2, . . . , Mb] we write this as

M ˙v + b = g (2.10)

which is the equations of motion for an unconstrained system of segments. Whereas for a constrained system, we will have joint forces at the connecting segments that can also be referred to as the constraint forces, gc, which can be expressed in terms of the modified

constraint Jacobian and a vector of Lagrange multipliers as [10]

gc= ΦTq∗λ . (2.11)

Adding the constraint forces, (2.11), to the right hand side of (2.10) yield the equations of motion for a spatial system of constrained segments [10]

M ˙v + b = g + ΦTq∗λ . (2.12)

2.3

Inverse dynamics and Muscle recruitment

(19)

CHAPTER 2. THEORETICAL BACKGROUND

the actuators. Also, rearranging the terms from (2.10) the equations of motion can be written as

ΦTq∗λ + gu = M ˙v + b − gk , (2.13) such that only the left hand side of (2.13) contains unknowns.

To facilitate the representation of each individual muscle in the equations of motion, (2.13) is reformulated as

Cf = r , (2.14)

where r is simply the right hand side of (2.13). f is the force vector consisting of muscle tendon forces, ft, and constraint (reaction) forces, λ. C is a coefficient matrix for the

unknown muscle tendon and constraint forces in f. In AnyBody Modeling System, the main type of model analysis performed is inverse dynamics. The muscle forces that are used to solve the dynamic forces and motions are based on the generally formulated optimization problem: min f G(f (m)) subject to Cf = r, 0 ≤ fi(m) ≤ Ni, i ∈ {1, ..., n(m)}, (2.15)

for an objective function G, which is minimized with respect to the unknown forces f. The constraint equation makes sure that the dynamic equilibrium equations holds, where C is the coefficient-matrix for all the unknown forces and r contains all known applied loads and inertia forces [15]. Furthermore, 0 ≤ f(m)

i ≤ Ni states that the muscles can

only pull and not exceed the maximum force of the ith muscle Ni.

In AnyBody Modeling System, inverse dynamics is said to be the central of operations. When running the inverse dynamics operations the muscle forces and the joint angles are computed by taking inertia dynamics into account. Consider a simple example of the human forearm with a load acting on the palm in the vertical downward direction as in figure [2.1]a. It is understood that the muscles are only allowed to pull. Which makes it possible to calculate the muscle forces by using simple moment equilibrium equation by

(20)

CHAPTER 2. THEORETICAL BACKGROUND

(a) Human forearm with load acting (b) Human forearm with muscles Figure 2.1: Simple vs realistic representation of human upper extremity [21]. But there are many complications when it comes to realistic cases, which could be chal-lenging. If we count from the glenohumeral joint (a ball and socket joint between the scapula and the humerus) to the wrist, the arm has 7 independent degrees of freedom. Also many more muscles are involved in flexing of the elbow in comparison to a single bicep muscle in figure 2.1b. Therefore multiple degrees of freedom and muscles lead to a more complex system of equilibrium equations, which is hard to solve by hand calcu-lations. Another complication is the muscle wrapping over the bones from the origin to insertion point. As the muscles provide force at the bone it is wrapping over and not just the origin and insertion points which is not easy to trace and will hinder the mechanics of the problem. The figure shown here does not move as living bodies usually do. Movement complicates the case significantly by adding inertia forces to the problem and by changing the equilibrium equations from one time step to the next. So it is virtually impossible to simulate realistic musculoskeletal system by hand or even develop them bottom-up by general mathematical software. The viable option is to use a computer system designed for this particular purpose. Another complexity that has not been mentioned yet: the body has many more muscles that is needed to balance its degrees of freedom. This means there are infinite possibilities with muscle recruitment in the body. So its important to know how muscle recruitment works in AnyBody Modeling System.

(21)

CHAPTER 2. THEORETICAL BACKGROUND

The equilibrium equations are constraints in this problem. Whatever solution we find must balance the external forces. The requirement for positive muscle forces has also been added as a constraint to the problem. Only solutions adhering to these two requirements are acceptable, but out of these many solutions there is going to be change such that the function G minimises, and furthermore going to anticipate that this function depends on the muscle forces. This seems reasonable because muscle recruitment is probably a result of biological adaptation and muscle work is costly for the organism and should be minimized in an environment, where resources are limited. Polynomial muscle recruit-ment [22] is used in AnyBody Modeling System. p is the order of the criterion, and the value is usually 3. Increasing the power of the criterion get the muscles to work more and more together and allow the organism to carry larger loads without overloading any individual muscle. G = X i  fi Ni p , i ∈ {1, ..., n} (2.16)

2.4

Constant force muscle model

Contraction dynamics is a dynamical process from the active state of the muscle to force-generation. A common type of muscle model is the 3-element Hill-model. The contraction dynamics equation can be written as [10]:

ft lt(q(t), lce(t)) −fpe(lce(t)) + a(t)fl(lce(t)) fv ˙lce(t)cos θ = 0 , (2.17) where t is time; lt and lce are the normalized tendon and muscle (contractile element)

lengths, respectively; q is segment positions; a is muscle activation; ˙lce is the velocity

of change in muscle (contractile element) length; θ is the pennation angle; fpe is the

force in the parallel element; fl and fv are the force-length and force-velocity relations,

respectively. Lmtis the length of the muscle-tendon, the relation between tendon and the

contractile element length is given by

Lmt = Lt+ Lcecos θ . (2.18)

Lt and Lce are normalized by

lt= L

t− Lsl

(22)

CHAPTER 2. THEORETICAL BACKGROUND

where Lsl is tendon slack length and Lopt is optimal muscle fiber length of the contractile

element, i.e. where the overlap of actin and myosin is such that maximum contractile force can be produced. Assuming a linear dependence between muscle activation and tendon force yields

ft= ft0+ H · a , (2.21)

H = f

t1− ft0

a1− a0 , (2.22)

where H is the tendon force gradient (slope), the superscript “1” means full muscle acti-vation and “0” means zero actiacti-vation. a = 1 is maximum contraction of the contractile element.

A constant force muscle is the simplest possible muscle model. It means that a muscle always can produce a force that corresponds to its maximum isometric force (fmax),

regardless of the muscle’s current length or contraction velocity [10]; i.e. in analogy to equation (2.17), fl ≡ fv ≡ 1. Moreover, there is no passive force in the muscle model

and no pennation angle, i.e. fpe ≡ 0 and θ ≡ 0. Consequently, ft0 = 0 and ft1 = 1,

yielding H = 1 (analog to equation (2.22)). Due to this redundancy of the musculoskeletal system, the force sharing between the muscles is solved by optimization. The force sharing between muscles, when using a constant force muscle model, can therefore be formulated as min a,β β s.t.    ai ≤ β , i ∈ {1, . . . , n} 0 ≤ ai ≤ 1 , i ∈ {1, . . . , n} C? ijai = d?j i ∈ {1, . . . , n} , j ∈ {1, . . . , dof } . (2.23)

where a is a is a vector comprising the activations of all muscles; β is an artificial variable; n is the number of muscles; dof is the number of degrees of freedom in the model [17]. In this case the muscle force Fm is then computed by

(23)

CHAPTER 2. THEORETICAL BACKGROUND

2.5

Scaling musculoskeletal models

The musculoskeletal modelling is much more than trying to get the kinematics to run, because the scaling pertains not only to the overall geometry but also some intrinsic properties such as the muscle insertion points, muscle parameters and wrapping surfaces. The scaling procedures in AnyBody Modeling System is implemented in such a way that it allows user defined scaling laws. The scaling procedures are tested for geometrical and kinematical compatibility on the so called AnyFamily. The AnyFamily refers to a group of different anthopometric models. It comprises of anthopometric data for a wide range of population which is useful while scaling musculoskeletal models [14].

A segment/bone for a human model, is done by making segments and giving the segment mass properties which also requires a number of nodes defined in the segment’s local coordinate system. The nodes are used for joint centers, muscle insertions, and so on. The nodes of each segment are subjected to scaling such as [20]:

s = Sp + t (2.25)

s is the position vector of the node in the local coordinate system of the scaled segment. pis the original nodal location. S is a 3x3 scaling matrix. It takes care of the real scaling of the relative nodal position. t is a translation vector. The translation plays the role of moving the local coordinate system relative to the actual geometry of the segment. This transformation allows for non-uniform scaling rotation and translation depending on the S and t, which are computed from the segment lengths (L) and masses (m). Three different strategies for this computation have been attempted. They all rely on two different scaling factors [14]:

kL = L1 L0 (2.26) km = m1 m0 (2.27)

which express the scaling of segment length and segment mass respectively relative to a reference configuration.

Method 1: Uniform Scaling

In this method a uniform scaling in done using a diagonal matrix with the same scaling factors on all diagonal positions. The muscle strength and mass are based on the idea that

(24)

CHAPTER 2. THEORETICAL BACKGROUND

the notation that muscle strength depends on cross sectional area while muscle weight depends on the volume. As this method is the simplest and the first choice for scaling musculoskeletal models it does not seem to capture the physics behind the longitudinal segments whose strength and stiffness depend non linearly on their thickness [20].

S =   kl kl kl  , F = F0· km2/3 (2.28)

Method 2: Non-Uniform Scaling

In this method the models are scaled non-uniformly taking into account the body segment areas are made of soft tissues packed all around them in an organized manner. This idea leads to a scaling in the perpendicular directions which is square rooted and dependent on the mass as well as the length. The scaling of muscle force is non linear with the power of 2/3, this comes from the notation that muscle strength depends on cross sectional area while muscle weight depends on the volume as done in uniform scaling.

S11 = S33= r km kL , S22= kL = L1 L0 , F = F0· km2/3 (2.29)

Method 3: Mass-fat Scaling

This method of model scaling is similar to that of method 2 but this method takes into account the body fat percentage [14]. It is based on the observation that the total weight of the body is from fat, muscle, and other tissues. To take into account the fat percentage we can measure it directly for an individual or estimate it from the body mass index, BMI [12]. The contribution of other tissues to the body weight is estimated to 50%.

Rmuscle = 1 − Rf at− Rother (2.30)

The muscle strength can then be estimate as: F = F0 km kL Rmuscle,1 Rmuscle,0 = F0 km kL 1 − Rother− Rf at,1 1 − Rother− Rf at,0 (2.31)

(25)

CHAPTER 2. THEORETICAL BACKGROUND

Here the model specification uses a minimal and non minimal sets of system coordinates as well as side constraints on the model parameters. This leads to a large scale nonlinear and non-convex constrained optimisation problem.

A local minimiser for the large scale optimization problem is found efficient due to a special structure in the linearised Karush Kuhn Tucker (KKT) first-order optimality conditions, rather than having to solve a large set of linear equations to find a search direction, it can be found by solving a series of much small linear sets of equations. the method is easily turned into a global optimisation method by starting the local optimisation method from multiple initial conditions. When a model is formulated using a minimal set of generalised coordinates and there are no constraints on the constant model parameters, the optimisation problem in [23] and Reinbolt [13] will lead to identical solutions.

2.7

Force Plates

The motion capture environment is integrated with force plates on the ground surface. The motion capture is done to extract the kinematic data from the ballet dancers. As the force plates being are an integrated part of the motion capture they will generate the ground reaction forces of the ballet dancer along with the kinematics which is recorded during the motion capture trial. This motion capture data is stored in transferable format called the C3D format.

The force plates are classified by their force plate types. Force plate type determine the way the ground reaction forces are recorded. TYPE-1 plates have three force outputs (Fx,Fy and Fz) and one moment output Mzand the center of pressure output (Pxand Py).

The TYPE-2 plates provide three force outputs and three moment outputs(Mx,My,Mz)

and use a single scaling factor applied to each analog channel. TYPE-3 force plates provide force outputs from the plate corners while TYPE-4 force plates are similar to TYPE-2. [33]

2.7.1

TYPE-3 Force plates

The force plate type used in this thesis are TYPE-3. TYPE-3 force plates (Kistler piezo-electric plates) provide eight force channels with outputs that measures piezo-electrical charge in terms of pico coloumbs (pC) per newton applied. The analog scale values for TYPE-3 force plates are calculated from the information provided by the force plate manufacturer, about the sensitivity of the force plate transducer, gains of the charge amplifier [34] etc. TYPE-3 plate produces three sets of force output signals each with their own calibration

(26)

CHAPTER 2. THEORETICAL BACKGROUND Fx 7.87 pC per Newton

Fy 7.85 pC per Newton Fz 3.89 pC per Newton

Using the example above with a calibration of 7.87 pC/N and a charge amplifier range of 5000pC (fs range) for a 10 volt output yields a scale factor:

SCALE =  V oltage_range resolution · calibration  · f srange 10 · gain  ·  1 GEN SCALE  (2.32) SCALE = 20 4096 · 7.87 · 5000 10 · 1 · 1 1 = 0.310217 (2.33) where,

V oltage_range is the total ADC range in volts, resolution is the total ADC resolution in bits, ex is the platform excitation voltage, gain is the gain setting on the force plat-form amplifier for that particular channel (in this example, x4000). GENSCALE is a single floating-point value that is a universal common analog scaling factor for all analog channels, it is set to 1.

Thus, the Fx Scale value is 0.310 newtons per volt, which is entered as negative value to produce an output in terms of reactive force.

2.7.2

Force Plate corners

The force plate corners is an array (3,4,USED) of the floating-point values that record the locations of the force plate corners in the reference coordinate system. The first dimension specifies the X, Y, Z coordinate and the second dimension specifies the corners (1-4) in reference to the quadrant numbers in the X-Y plane of the force platform coordinate system (not the 3D point reference coordinate system). These are +x +y, -x +y, -x +y and +x -y with respect to the force plate coordinate system [35].

(27)

CHAPTER 2. THEORETICAL BACKGROUND

Figure 2.2: The C3D Force plate coordinated order [35].

2.7.3

Force Plate Origin

The Force plate origin parameter is an array (3,USED) of floating-point values whose interpolation values depends on the type of force plate used. The origin vector is set up to enable the transformation of the force vectors as measured by the transducers, to the lab coordinate system via the center of the working surface. For a TYPE -3 force plate, these values record the sensor offsets. Origin(1) must contain the distance between the transducer axes and the force platform y-axis. Origin(2) must contain the distance between transducer axes and the force platform x-axis. Origin(3) should contain the distance between the force plate origin and the surface of the force platform. Since the force platform z-axis projects down, this value will normally be negative as it stores the distance within the force plate coordinate system [36].

(28)

CHAPTER 2. THEORETICAL BACKGROUND

2.7.4

Force plate channel

The Force plate channel parameter is an array of signed integer data values that record which analog channels contain specific force plate data. The force plate outputs may be connected to any convenient analog input channels in any order that is convenient to the user, provided that the assignment of force plate signals to analog channels is correctly specified in this parameter. While it is recommended that force plate channels be connected to the analog recording device in a logical fashion it is not essential that they are stored in any fixed order within the C3D file. Any application that reads force plate data must use this parameter to determine the force plate channel to analog channel assignments [37].

(29)

3.

Methodology

A summarizing flow chart of how the work was carried out can be seen in figure 3.1 below.

Figure 3.1: A flow chart showing how the work was carried out though out the project to simulate a mocap data into AnyBody Modeling System.

(30)

CHAPTER 3. METHODOLOGY

3.1

Pre-Study

The project started of with learning the AnyBody Modeling System, by making use of the tutorials in the documentation of AnyBody Technology. The AnyScript modelling language which is used for modelling in AnyBody is studied. Here the structure of the language, key modelling points such as the segments, joints, muscles, kinematics and forces are studied. Later on, the construction of a complex biomechanical model (full body models) from the model repository is used. The human body model created from the template will adapt to the mocap trial to explain the reaction of the human body to an environment. All the templates are taken from an inbuilt model repository. This is called the AMMR abbreviated as the AnyBody Managed Model Repository [16], which is a collection of human body models that are based on the latest research.

3.2

C3D data

To simulate motion data in AnyBody Modeling System an input file containing the motion data is required. A C3D file is used to store the motion data. This format is useful since it can be transferred from one manufacturer to another and be used. It can store 3D and analog data in an unprocessed form (3D coordinates). The file format has the following abilities:

• can store physical data of the environment such as used EMG channels, Force plates types, Force plate positions, marker sets,

• data from the 3D points monitored in the test environment, • subject information (name, age, weight, height),

• gait information (gait timing),

(31)

CHAPTER 3. METHODOLOGY

3.3

Motion capture

The motion capture of ballet dancers was conducted at Linköping University Hospital, using the Qualisys Motion Capture System. A lab official from the motion capture lab guided us before the trials, regarding the camera settings, force plates and the lab global coordinate system. Two trained ballet dancers from the Östgöta ballet and dance academy volunteered for the motion capture trials, hereafter named SA and MA. For the motion capture we use makers on the bony landmarks of the body and capture the marker trajectory throughout the trials. The maker placement on the body is done in an organised manner. The placement of markers on the body is based on the Qualisys marker protocol [18] as seen in figure 3.2. The marker placement was done by a trained professional (lab official) as it was very important to place the markers on the exact bony landmark and some times it was necessary to palpate to find the approximate location on the body. The weight and height of the ballet dancer are recorded before starting trial. Static trials are done to ensure everything is working fine before dynamic trials are recorded.

It is important to label the markers in the Qualisys track manager after the recordings are finished to give a better understanding on marker placement on the body. Labelling of the markers in the Qualisys track manager software can be done by selecting each marker and giving it a name as shown in the figures 3.2. We use MOKKA Software (Motion Kinematic and Kinetic Analyzer) to view and label the markers in a C3D file.

(32)

CHAPTER 3. METHODOLOGY

(a) Upper body CAST (b) Lower body CAST

Figure 3.2: The complete marker set from Qualisys Marker protocol [18].

The markers placed on the thigh and the shank are on a flat plate. It is also advised to keep the markers in the same plane even during modelling in the markers protocol. Since the cameras are placed to capture every single marker in 3D, we can trace every marker individually throughout the simulation and check for its positions. The MOKKA software gives us the additional features in tracing individual markers, computing distance and angles between markers. It is also possible to create segments and planes for better

(33)

CHAPTER 3. METHODOLOGY

(a) Markers placed on MA dancer given by red dots

(b) Markers placed on MA dancer from MOKKA

Figure 3.3: Marker placement according to the Qualisys marker protocol while MA dancer is in static stance.

(a) Markers placed on MA dancer given by red dots

(b) Markers placed on MA dancer from MOKKA

Figure 3.4: The complete marker set according to the Qualisys marker protocol while MA dancer is in dynamic stance.

To get a more accurate human model inside AnyBody Modeling System, the weight and height of the test person are measured. These dimensions are later going to be used to scale the human body model in the AnyBody Modeling System. The dimensions that

(34)

CHAPTER 3. METHODOLOGY

Table 3.1: The measured entities of the ballet dancers weight and body dimensions. Measured entity MA dancer SA dancer

Body height 170 cm 158 cm

Body weight 62 kg 46 kg

3.4

Mocap trials

For the thesis only the arabesque of SA and MA dancer and the pirouette of SA dancer were selected for analysis. Although other types of ballet movements are available in the appendix section. Other ballet movements that were recorded are low retire derriere into a plie for SA and MA dancer, the grand rond de jambe at 90 degreees for MA dancer, standing in arabesque en fondu for SA and MA dancer. The entire mocap trial for arabesque and pirouette and also the other trials are divided into single stance at a specific time step. Five specific time steps are chosen for every trial in an organized manner and named as stances which helps for comparison.

3.4.1

Arabesque Mocap stances

Arabesque is the position that the dancer attains when she steps on the force platform. The entire arabesque can be divided into 5 stances as seen in figure 3.5.

• Stance 1 : The dancer takes the 1st position as called in ballet. There is 40-45 degree abduction of both feet in the transverse plane. The extent of foot abduction depends on the dancer. Glenohumeral abduction of both hands with an angle of 40-45 degrees in the frontal plane. The axis of motion is the sagittal axis through the center of the humeral head. The head is facing straight thus looking forward. • Stance 2: The dancer advances into the next stance by moving forward. There is

40-45 degree hip flexion in the left leg and 40-45 degree ankle plantar flexion on the left and the right foot.

• Stance 3: Stepping into arabesque is the 3rd Stance. The left leg has an ankle plantar flexion of 45 degree, while the right leg also has an ankle plantar flexion 45 degree. The left leg when stepping on to the platform is said to be in demi-point.

(35)

CHAPTER 3. METHODOLOGY

• Stance 5 : The dancer goes back to the 1st position as mentioned in the stance 1.

(a) SA dancer (b) MA dancer

Figure 3.5: Arabesque mocap stances. The first row of figures are the front view covering from head to the toe including the force plates. The second row of figures are the side view focusing from the hip to toe region.

3.4.2

Pirouette Mocap stances

The pirouette can be defined as a simple ballet turn in which the ballet dancer spins 360 degree on one foot. The pirouette is divided into five stances.

• Stance 1 : The dancer prepares herself for the spin, this is the initial stance before the lift off. The left leg being the base of the turn is placed forward with minimal amount of knee and hip flexion and the right leg is placed behind it. A wider base of support is utilized by the left leg. The left arm is in horizontal adduction to the posterior side of the frontal plane. Right arm has a horizontal adduction across chest with elbow flexion. The torso is brought closer to the ground. The left leg hip is in flexion and both the knees in flexion. Left foot is dorsiflexed with ankle in flexion.

• Stance 2: It is the lift off stance. The left foot is released from its flexion in the knee and hip. Thus making them straight with the spine. Simultaneously, the left heel lifts up pushing the body upwards and the right leg is lifted up accordingly

(36)

CHAPTER 3. METHODOLOGY

• Stance 3: The dancer is in the turn stance after the lift off stance. The dancer tries to maintain an ankle plantar flexion in the left foot while pushing the right leg inwards to the left knee, allowing hip and knee flexion. The spine is kept straight with the neck extended.

• Stance 4: In this stance the right knee is flexed and the toe is bought closer to the left knee. This is called the pirouette in position. The arms are bought closer to the trunk during this stance.

• Stance 5: The dancer has landed in the 5th position as called in ballet, with in-creased base of support and retracted arms keeping the body in balance.

Figure 3.6: Pirouette mocap stances by SA dancer. The first row of figures are the front view covering from head to the toe including the force plates. The second row of figures are the side view focusing from the hip to toe region.

(37)

CHAPTER 3. METHODOLOGY

3.5

Simulation in AnyBody Modeling System

AnyBody Modeling system has a template that is used in this thesis for connecting marker protocol to the human body model and several other settings such as the hu-man body model to environment connection (force plate), noise filter settings, parameter optimization, initial posture control, extra drivers for the human model etc.

The template Full body main.any was used from the mocap examples since it al-ready has the sub-functions and classes needed to drive a mocap data. The Full body main.anyhas 3 main sub function. Trial specific data.any, Subject specific data.any and the Lab specific data.any.

By loading the C3D file into Full body main.any in Trial specific data.any, it is noticed that the reference frame of the C3D file and the human body model in the soft-ware do not match, so it is manually changed to the reference frame of the human body model. Adjustments such that the C3D markers fit to the human body model is made. It is noticed that the human model is smaller than the C3D markers data, but that is to be scaled later in Subject specific data.any function. So the first step after importing the C3D file into the Full body main.any template is to adjust the initial posture of the human model in the template to fit the C3D markers data. The pelvis position of the human body model must coincide with the marker position of the C3D file. Since the markers from the C3D file are already labelled it is easier to just click on any of the markers in the model view to check its name. The initial posture adjustments are done in Trial specific data.any. After setting the initial posture it is advised to save and load the main file. Before running the analysis there are few more settings that needs to be considered. The main setting that needs to be checked is the Marker protocol. The marker protocol is the bridge to connecting the markers on the human model to C3D markers.

(38)

CHAPTER 3. METHODOLOGY

3.5.1

Marker Protocol

The marker protocol comprises all the red markers on the human body model as seen in figure 3.9 and 3.10, the task is to anchor these points onto the C3D blue markers to drive the human body model. The red markers placed on the human body model is offset joint location taken from real cadavers under careful inspections from professionals and input as "sRelOpt" in AnyBody Modeling System [32]. These "sRelOpt" values in the marker protocol corresponds to specific joint location and nodes of bone segments which can make the human body move, such as the elbow joint, wrist joint, knee joints etc. The C3D file is imported into the Full body main.any and the marker names are redone in the marker protocol according to the C3D file names as labelled in the Qualisys marker set. These names can be found in the model tree under the C3D file. It is noticed that the AnyBody Modeling System is using a marker protocol from Vicon and the measurement system used in the mocap trials is Qualysis marker protocol. The marker protocol is changed from Vicon marker protocol [19] in figure 3.7 to Qualysis marker protocol in figure 3.8.

(39)

CHAPTER 3. METHODOLOGY

Figure 3.8: Difference from the Vicon marker protocol to the Qualisys marker protocol [18].

The marker protocols for Vicon and Qualisys have its own unique features. By comparing the figure 3.7 and figure 3.8, the red circles are not present in the Vicon marker protocol and these markers needs to be created to get the exact motion of the C3D data. These extra markers are added in the marker protocol function. 4 new markers on the thigh, 4 new markers on the shank and 3 new markers on the foot is created and assigned an appropriate position on its respective segments and labelled as done in the C3D files. For example a marker definition with comments.

#ifdef _LPSI // Marker on the Left Posterior Superior Iliac CreateMarkerDriver LPSI (

//Change the name here to the name of your Marker Protocol!: MarkerName= LPSI,

//Marker is assigned to Pelvis Segment

MarkerPlacement=Trunk.SegmentsLumbar.PelvisSeg,

// Is the position of the Marker good, or does it need to be optimised? OptX=OFF, OptY=OFF, OptZ=ON,

(40)

CHAPTER 3. METHODOLOGY

//Position of the Marker on the skeleton, relative to the segment. // the location is in the anatomical frame of segment

sRelOpt = {0.145,0.02, -0.04} };

#endif

If the names of the hip markers are changed in the marker protocol then the names needs to be changed also in the Trial specific data.any. The code above shows the marker and its name, which is assigned to a body segment. e.g. RTHI is assigned to the right thigh segment. RTHI marker is optimized in X, Y and Z direction having the X direction ON (Opt_=On). The marker is placed on the right thigh with an offset of sRelOpt = x,y,z. The sRelOpt value is changed since it was not the same in this case, so it would be best to place it close to an approximate location. Another alternative for marker placement would be to measure the distance between the markers on the subject used for trial which was not possible. The sRelOpt values are in meters and resembles the offset of the markers on an anatomical frame of the segment. The anatomical frame is a well defined reference frame on the segment constructed using bony-landmarks, almost all segments in the body models are equipped with one.

To visualize the anatomical frame add this code anywhere in the model (needs to be within Main brackets). It is possible to locate the anatomical frame in the model tree under model view-Ref Frames-show.

Main.HumanModel.BodyModel.Right.Leg.Seg.Shank.AnatomicalFrame ={ AnyDrawRefFrame drw = { ScaleXYZ= {1,1,1}0.3; RGB={0,0,1} } }

The default values used in sRelopt of the Full body main.any are very close to most other marker protocols, so there is not much of a change being done in the markers that have a similar positions to Qualisys marker protocol. Only the new markers that were created needed changes in the sRelOpt values and also the direction of optimization needed to be specified and most important was to assign the marker to the correct segment.

(41)

CHAPTER 3. METHODOLOGY

Figure 3.9: Parameter Optimization [27].

that the clinician does not know the exact location. The position of the markers placed cannot be certain all the time. Meaning, the markers on the skin are at an unknown distance from the bone, and not on the bony landmark just below the skin. It is not easy to comprehend which point corresponds to the bone’s local coordinate system. If there is an inaccuracy in the marker placements the resulting motion will also be inaccurate. So the green arrows tell us about the greatest uncertainty about whether the marker is placed in the model as it was in the experiment, and if allowed to be optimized. An added feature from the Full body main.any is that the model considers the segment lengths to be a variable, meaning the optimization also allows change in segment lengths in accordance with joint placements. Pretty much any parameter in a model can be made variable in optimization study [27]. So for my models the newly created markers are on the thigh and shank region, which are said to be optimized in all direction having X,Y,Z as green arrows. The new marker created on the right thigh region are RTH1, RTH2, RTH3, RTH4 and on the left thigh are LTH1, LTH2, LTH3, LTH4. The new markers on the right shank are RT1B, RT2B, RT3B, RT4B. And on the left shank are LT1B, LT2B, LT3B, LT4B. So the sRelOpt values given to the new markers on the thigh and shank region are approximate values. For the ankle region RTOE, RFM5, RFM2 are on the right foot and LTOE, LFM5, LFM2 on the left foot. RTOE and LTOE are locked from optimization in all directions. RFM5, RFM2 and LFM5 and LFM2 are locked only in Z direction and freed in X and Y directions.

(42)

CHAPTER 3. METHODOLOGY

Figure 3.10: Parameter optimization for the newly created markers on the body. Showing the right leg markers on the thigh shank and ankle region.

3.5.3

Scaling of the human Body Model

The musculoskeletal models needed to be scaled to the dancers dimensions to have a subject specific model for further analysis. AnyBody Modeling System has generic and user defines scaling laws for models in the repository (Refer to theory section 2.5). In this study, scaling was done using class template called AnyMan.any which holds the anthro-pometric data for the human model in general. So this AnyMan folder is modified for scaling as ScalingXYZMassFat.any folder. This takes the input from the Subject spe-cific data.any for body mass and weight and computes the BMI [12] and fat percentage using the BMI. The folder also comprises of individual segment masses and segment scale factors.

The ScalingXYZMassFat.any belongs to a scaling law called Scaling XYZ (Mass-fat Scal-ing from the theory section 2.5). There are different AnyMan.any files for different scalScal-ing

(43)

CHAPTER 3. METHODOLOGY

3.5.4

Force Plate settings

A class template was used for force plate input from the C3D file, called Force Plate Auto Detection. This template is used when the C3D file contains force plate data. Some of the basic settings of this class are listed below.

• Plate number: There are 3 force plates while MOCAP was done and being num-bered (1-3). In this thesis, the force plate number 2 is of main focus. This force plate number was chosen, because the dancers were only stepping/performing on force plate numbered 2.

• Force plate type: Type 3 force plate was used.

• Vertical direction : The vertical direction of the force plate used in the contact detection. The Possible values were "X", "Y", "Z", "Automatic" (defaults are set to "Automatic").

• Height tolerance: The height tolerance for contact detection was set at default to 0.07 m.

• Velocity Threshold: The velocity tolerance for contact detection was set to de-fault 2.2 m/s.

• Allow Multi limb contact: Switching this will specify if two feet can be in contact with the plate simultaneously. If it is set to OFF, only the leg with the lowest velocity will be assumed in contact. Setting this to off will prevent false contact detection in the swing phase from the collateral leg.

• Limb 1: Right leg. • Limb 2: Left leg.

• Contact Node 1: Heel contact node (P1).

(44)

CHAPTER 3. METHODOLOGY

Our force plate setting would look like this:

# class template ForcePlateAutoDetection ( PLATE NO, C3D OBJECT = Main.ModelSetup.C3DFileData, LIMB1 = Main.HumanModel.BodyModel.Right.Leg.Seg.Foot, LIMB2 = Main.HumanModel.BodyModel.Left.Leg.Seg.Foot, VerticalDirection = "Automatic", HeightTolerance = 0.045, VelThreshold = 2.0,

ALLOW MULTI LIMB CONTACT = 1, FORCE PLATE TYPE = 3,

CONTACT NODE1 = HeelContactNodeLow, CONTACT NODE2 = ToeLateralContactNode, CREATE KIN GRF = 0,

KIN GRF LIMB1 FUN = GlobalCopFun, KIN GRF LIMB2 FUN = GlobalCopFun, DRAW RAW FORCES = 1

)

3.5.5

Extra drivers

This class template was used because the markers present in the C3D file were not enough to drive the human model. So the Extradrivers.any template consists of set of auxillary drivers. They are useful/necessary in cases when the markers protocol doesn’t provide enough information to specify all degrees of freedom. Hence, these drivers complement a specific driver protocol. Many of the drivers are soft, and only serve to stabilize the solver in postures when the markers do not provide a unique kinematic solution. In this thesis, there are missing markers on the wrist, and for the kinematics of the human body model in the simulation to go smoothly we need to assign a driver to the wrist nodes. This prevents unwanted wrist motion. In this template is it possible explicitly define a driver to the wrist node to stabilize the posture during kinematics. Some drivers assigned to my body model due to lack of marker protocol information are:

(45)

CHAPTER 3. METHODOLOGY

3.5.6

C3D settings

Noise in the measurement system is always present in several different forms. Although it can be minimized by careful experimental procedures and good equipment, it can never be completely removed. Therefore, it is always necessary to filter mocap data before use. The AnyInputC3D class has a default built in filter. It is a special case of a more general filter class in AnyBody Modeling System, and the special case is a second-order, zero-phase Butterworth filter with a cutoff frequency of 10 Hz [28]. The settings used in the template are:

• N: is the order of the filter. The default value is 2 and higher values will lead to sharper cuts in the specified cutoff frequency.

• Fc: is the cutoff frequency and the default value is 10 Hz. In the process of reducing noise and unwanted elements of the signal. It is possible that the desirable parts of the signal are removed. 10 Hz is relatively safe value for experiments with human motion. In this thesis 5 Hz is the filter cut off frequency.

• W: is the nomalized cutoff frequency. Allowed values are between zero and one, and one corresponds to half of the sampling frequency.

• Type: filter used is low pass. This filter is relevant for a signal where the noise is of high frequency.

(46)

CHAPTER 3. METHODOLOGY

3.6

Running Parameter identification

After finishing all the above settings the simulation can be run. For a full body model with mocap data the simulation should always begin with running the parameter identification. The Run Parameter Identification option is found in the operations drop down. The simulation will start to run and in the model view, the model simulation is observed. The operation is completed after the optimization is converged on the output window. The optimized values is saved on to an text file. The optimization will provide the updated anthropometrical parameter and updated marker locations [27]. When using the same ballet dancer to perform multiple trials/movements without changing the markers, it is possible to use the saved anthropometrical parameters as there is no need run the optimization again.

3.7

Marker tracking and Inverse dynamics

After the body models are scaled by parameter optimization, one should run the kine-matics and the inverse dynamics. While we run the kinekine-matics in the model, the mocap marker based models requires an overdeterminate kinematic solver [27] due to the excess information provided from the markers. There is some performance issue while running Inverse dynamics, so the entire mocap analysis is split into 2 step procedure, i.e., separating the marker tracking from the inverse dynamics [27].

The overdeterminate kinematic analysis solves the model for positions and stores the joint angles as function of time, this is called the marker tracking. Later these joint angles are used with the determinate kinematic solver in the inverse dynamics analysis. The marker tracking and inverse dynamics can be done in a single step by using the Run analysis. This is found in the Operations window, it contains all the necessary options to run the analysis. So when the Run analysis is selected as analysis it loads the optimized model parameters that were saved previously, and runs the marker tracking also performs the calibration movements to adjust the tendon lengths and bone lengths and finally executing a dynamics analysis to determine the forces in the system [27].

(47)

CHAPTER 3. METHODOLOGY

3.8

Validation of musculoskelatal model

3.8.1

C3D Data Input

It was important to check the data that is fed to AnyBody Modeling software is correct and if it has reasonable characteristics and values. In the thesis, Motion Kinematic and Kinetic Analyzer (MOKKA) was used to view the C3D files after the mocap was done.

• First check was to observe all the markers placed during mocap are present in C3D file. It is important that this is checked because the markers are driving the human model in AnyBody Modeling System and any missing maker would lead to positional errors during run time.

• The labels present in the C3D files needed to be checked by comparing it to hu-man anthropometric data from Qualisys marker protocol. As this was the marker placement system that was used.

• Next step was to analyze the force plate data. The values from the Force plate should be reasonable i.e., for a static trial the weight of the body should be 9.81 times the mass of the subject.

After going through the models in MOKKA, it was found that the values recorded from the ground reaction forces of the force plates seem to be twice the value of the standing trail for MA dancer in figure 3.12. The dancers mass recorded was 62 kg which is 608.22 N approximately under zero acceleration of the body. But in the graph 3.12 the value shows a force of 1350.9 N. This value seems unreasonable for this dancers mass. This error has to be because of the force plate calibrations. Doing the mocap trials again was not an option. A scaling factor of 0.451 was used to downscale the force values throughout the trial to normalize the mass values. 1350.9 * 0.451 = 609.2 N, which is reasonable to the dancer weight of 608.22 N. This kind of validation was checked for all the trials being conducted. It was found that the values had been offset for all dancer trials. So the force plate values were changed for all the C3D files to suite a reasonable mass for the dancers see table:3.4. After scaling the forces with a suitable scaling factor. An average scaling value for each dancer was adapted this value is available in the table 3.4.

(48)

CHAPTER 3. METHODOLOGY

Figure 3.11: Force plate readings during dynamic trial for arabesque en fondue before Scaling for MA dancer.

(49)

CHAPTER 3. METHODOLOGY

Table 3.2: Corrected force values with scale factors for MA dancer

Description Arabesque demipointe Arabesque fondue Grand rand de jambe Low retire

Original Force 1343.2 N 1350.9 N 1376.6 N 1373.4 N

Actual Force 608.22 N 608.22 N 608.22 N 608.22N

Scale factor 0.453 0.451 0.442 0.443

After Scaling 608.46 N 609.2 N 608.45 N 608.416 N

Table 3.3: Corrected force values with scale factors for SA dancer

Description Arabesque demipointe Arabesque fondue Low retire Pirouette

Original Force 859.9 N 873.6 N 897.5 N 905 N

Actual Force 451.26 N 451.26 N 451.26 N 451.26N

Scale factor 0.525 0.516 0.503 0.498

After Scaling 452.7 N 450.776 N 451.442 N 451.233 N

Table 3.4: Finalized scale factors for MA and SA dancer dancer Scale factor

MA 0.45

SA 0.51

3.8.2

Human Ground Residuals

The scale factors were used to reduce the magnitude of reaction force from the force plates. This helped in analyzing why the human ground residuals never went to zero even after stepping on the force plates. The human ground residual is the "AnyReaction" force (Reaction forces in AnyBody Modeling System) used to balance the human body model under gravity. This reaction force mainly comes into picture when the model is not on the force plates. The reaction forces are applied to the human model in the pelvis section as shown below.

AnyReacForce HumanGroundResiduals = {

AnyKinMeasure PelvisPosX = ..BodyModel.Interface.Trunk.PelvisPosX; AnyKinMeasure PelvisPosY = ..BodyModel.Interface.Trunk.PelvisPosY; AnyKinMeasure PelvisPosZ = ..BodyModel.Interface.Trunk.PelvisPosZ; AnyKinMeasure PelvisRotX = ..BodyModel.Interface.Trunk.PelvisRotX; AnyKinMeasure PelvisRotY = ..BodyModel.Interface.Trunk.PelvisRotY; AnyKinMeasure PelvisRotZ = ..BodyModel.Interface.Trunk.PelvisRotZ; };

References

Related documents

persuasive design triggers within an e-grocery setting to reduce food waste, secondly, to develop guidelines (presented in a framework with example criteria and implementation) for

Däremot är denna studie endast begränsat till direkta effekter av reformen, det vill säga vi tittar exempelvis inte närmare på andra indirekta effekter för de individer som

These categories are: (1) articles in which value terms appear as a part of the research process; (2) articles in which value (and value-related concepts) are used in a

This errata deals with errors in the dissertation but not with errors in original publications attached to the printed version of the dissertation. Page Description At present

A common denominator for both Schenker and Stena was that both companies had knowledge of the potential positive effects of internal values, but it wasn’t prioritized and seen more

The study explores the influence of culture as an important key factor for the automotive companies’ to enhance organizational agility by asking the following research

The aim of this project is to obtain an overview of how Swedish facilities report releases based on values close to or below the reporting limit for the analytical methods used..

Among those respondents that more often said that organizational value ethics is important for the organization in which they work also more often said that ethical