139
1 INTRODUCTION Overview The aim of virtual human development is to create a digital representation of a living human which exists within a computer. This tool, which is based on anatomically accurate models and realistic actions, will provide valuable feedback for designers, engineers, scientists, and doctors regarding how people will react or interact with new products, different environments, or anything else which can be presented in a digital form. While a complete representation of a human in a digital world is still a ways off there are currently significant advances being made in the development of an interactive real time virtual human. This is largely due to the convergence and development of several areas of knowledge, primarily engineering, gaming, and computer science. One lab that is very active in the development of virtual humans is the Virtual Soldier Research lab at the University of Iowa who is developing Santos. Past Work Mechanical models of the shoulder started out as simplified two-dimensional models that simply analyzed humeral movement with respect to a non-moving scapula (DeLuca and Forrest, 1973; Poppins an dWalker, 1978). About the same time Dvir and Berme as well as Jackson et al also published literature that presented shoulder models, which were also confined to single motion patterns (Dvir and Berme, 1978; Jackson et al, 1977). In 1987 Hogfors et al published a paper that presented a kinematic description of the shoulder, which consisted of three rigid bodies having 12 DOF (Hogfors et al, 1987). Muscles were modeled as a system of ideal strings, which were derived from dissection of four shoulder specimens. Van der Helm and Veenbaas published a paper in 1991 regarding the mechanical effect of muscles with large attachment sites and how it applies to the shoulder

1 INTRODUCTION Overview

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

1

INTRODUCTION

Overview

The aim of virtual human development is to create a digital representation of a

living human which exists within a computer. This tool, which is based on anatomically

accurate models and realistic actions, will provide valuable feedback for designers,

engineers, scientists, and doctors regarding how people will react or interact with new

products, different environments, or anything else which can be presented in a digital

form. While a complete representation of a human in a digital world is still a ways off

there are currently significant advances being made in the development of an interactive

real time virtual human. This is largely due to the convergence and development of

several areas of knowledge, primarily engineering, gaming, and computer science. One

lab that is very active in the development of virtual humans is the Virtual Soldier

Research lab at the University of Iowa who is developing Santos™.

Past Work

Mechanical models of the shoulder started out as simplified two-dimensional

models that simply analyzed humeral movement with respect to a non-moving scapula

(DeLuca and Forrest, 1973; Poppins an dWalker, 1978). About the same time Dvir and

Berme as well as Jackson et al also published literature that presented shoulder models,

which were also confined to single motion patterns (Dvir and Berme, 1978; Jackson et al,

1977).

In 1987 Hogfors et al published a paper that presented a kinematic description of

the shoulder, which consisted of three rigid bodies having 12 DOF (Hogfors et al, 1987).

Muscles were modeled as a system of ideal strings, which were derived from dissection

of four shoulder specimens.

Van der Helm and Veenbaas published a paper in 1991 regarding the mechanical

effect of muscles with large attachment sites and how it applies to the shoulder

2

mechanism (Helm and Veenbaas, 1991). They analyzed the mechanical properties of

several muscles about the shoulder that have large attachment sites by modeling each

muscle as 200 action lines. They then reduced the number of action lines to six and

calculated the resulting error. Three years later van der Helm published another paper

detailing an extensive finite element musculoskeletal model of the shoulder (Helm,

1994). This model consisted of four bones, three joints, 20 muscles, and three ligaments.

Input for the model was joint angles and external load while the output was muscle force

as predicted by one of four different optimization criteria.

Raikova also published two papers in the early 90’s concerning modeling the

upper arm. In his first paper he presents a general approach for modeling the upper limb

(Raikova, 1992). This paper presented methods for modeling the muscle action lines and

various optimization criteria. In his second paper he applied the methods presented in his

previous paper to the elbow (Raikova, 1996).

In 1997 Veeger et al published a technical note in the Journal of Biomechanics

that detailed parameters useful for modeling the upper extremity. These parameters,

which were calculated from four fresh cadavers, included the kinematic data of the gleno-

humeral, ulna-humeral, and unla-radialis joint along with muscle length, volume, PCSA,

origin and insertion.

Up until the mid ’90 all the models presented were essentially mathematical

models that were not concerned with representing the musculoskeletal system as a

realistic 3D geometric model. However, with the advances medical imaging technology,

accurate models of skeletal system were become more readily available as well as the

computer graphics to display them. In 1995 Delp and Loan published a paper where they

presented a software tool called SIMM that allowed users to create, modify, and evaluate

various musculoskeletal modes (Delp and Loan, 1995). With this software the user was

allowed to graphically interact with the skeleton.

3

A year later Maurel et al. presented another model of the upper limb that included

a realistic graphical representation of the arm specifically designed for dynamic

simulation (Maurel et al, 1996). This model was created as part of the European Esprit

Project CHARM. This paper was followed up by another paper by Maurel and Thalmann

1999 where a case study of modeling the arm was presented (Maurel and Thalmann,

1999).

Recently, Chao presented a new graphical musculoskeletal model (Chao, 2003).

This paper discussed a new software tool called VIMS, which is similar to SIMM.

Currently there are several commercial musculoskeletal models on the market.

These include SIMM, VIMS, AnyBody, and LifeMOD. One of the key differences

between the model presented in this thesis and the ones currently available is that our

model is focused on real time interaction. By this we mean that there is no obvious delay

between user input and the model’s output.

Objectives

• To create a 3D musculoskeletal model in a digital format which is kinematically

correct

• To investigate the muscle activation levels of the shoulder complex and upper

extremity during motion

• To investigate the muscle activation levels of the shoulder complex and upper

extremity during varying torque loads at the joints

• To develop a real time simulation completely interactive for better understanding

load distributions and torque analysis on the shoulder complex and upper

extremity

• To integrate optimization techniques and real time simulation methods into one

system that allows for complete interactivity of the musculoskeletal system by the

user

4

• To investigate the modeling and simulation of muscle wrapping over underlying

anatomical structures in real time

• To develop a graphical user interface for tracking and monitoring of muscle

activation levels, moment arms, and available torque for all the muscles in the

shoulder girdle and upper extremity, not including the hand

• To demonstrate that the results of the simulation are consistent with those

obtained from anatomy, experiments, and available in literature

Conclusion

This chapter has presented the objectives of this project and some of the previous

work that has been found in the literature. The next chapter will discuss some background

information before the problem formulation is presented in chapter 3.

5

TERMINOLOGY, METHODS AND MATHEMATICS

This thesis will present the formulation of a three-dimensional model of a human

arm that allows real time interaction and muscle activity prediction. The description of

this formulation will require the knowledge of various terminology, methods, and

mathematics, which this chapter will provide a quick review of.

Nomenclature

x : Scalar

x : Vector

x : Unit vector of x

x : Magnitude of x

yx × : Cross product

T : Torque vector

r : Vector indicating a radius

F : Force vector

ai: Activation level of the ith muscle

2,1 gg : Position vectors indicating a guide point on the scapula

ivp : Via point

I : Muscle insertion point

O : Muscle origin point

oi TT , : Tangent points

σmax: Max muscle stress

Medical Terminology

Throughout this thesis we will be describing various aspects of the body, which

will employ the use of standard medical terminology. For spatial positioning, notation as

shown in Figure 0.1 is standard where the origin of x1, x2, and x3 are at the body center of

6

gravity. The term inferior refers to a position closer to the feet while superior indicates it

is closer to the head. Anterior indicats a position towards the front of the body while

posterior indicated it is towards the back. Not shown are the terms proximal and distal,

which indicate something is closer or further from the center or midline of the body. For

example, the hand is distal the elbow while the shoulder is proximal to the elbow.

Figure 0.1: Primary planes of the body used for spatial description

Source: Tozeren, A., (2000) Human Body Dynamic, N.Y.: Springer-Verlag

Anatomical movement is described in Figure 0.2. Flexion is used to describe the

act of bending a joint so as to decreases the angle between the two bones of the limb at

that joint while extension describes increasing that angle. Pronation and supination will

be primarily used to describe the orientation of the palm where, if in the neutral position,

pronation faces the palm to the back while supination faces the palm towards the front.

Abduction is used to describe the movement of a limb away from the midline of the body

while adduction moves it towards the midline.

7

Figure 0.2: Notation describing anatomical movement

Source: Tozeren, A., (2000) Human Body Dynamic, N.Y.: Springer-Verlag

Finally, while describing the muscles the terms insertion and origin are used. Both

described locations where the muscle attaches to the skeletal system. Typically, when

describing the muscles of the arm, the origin is on a bone that is proximal to the bone

where the insertion is located. Some muscles such as the biceps or the triceps have

multiple origins. In our formulation these will be treated as separate muscles.

Terminology

Several terms, which will be used throughout this thesis, are defined as follows.

8

• Geometric Model: A 3D digital representation of a particular object that is created

from an arrangement of vertices and polygons.

• Interactivity: The ability to interact with a system

• Interface: The method in which the user interacts with the system and receives

feedback

• Muscle Activation: A number ranging from 0 to 1 which describes the activation

level of a particular muscle where 0 indicates no activation and 1 indicate full

activation

• Musculoskeletal System: The biological systems consisting of the skeleton and

muscles acting on that skeleton

• PCSA: The physical cross sectional area of a muscle which can be found in

literature

• Real time: The user is able to apply input to a system and the system immediately

responds with output

• Simulation: A program running on a computer which simulates a scenario in

which the user provided input and receives feedback

Optimization

This thesis will present a method for predicting the muscle activation and load

sharing of muscles to create a specific torque about a joint. However, because of the

complexity of the musculoskeletal system and the redundancy of muscles, special

techniques are needed to predict the loading. Our proposed solution is to employ

optimization. An optimization formulation is composed of three parts. The first is the cost

function, which is simply a function whose value will be minimized. The second is the

design variables. These are the variables that are changed so that the value of the cost

function changes. Last are constraints, which are mathematical expressions that create the

boundaries of the problem. These are typically presented as follows

9

Find: Design Variables

Minimize: Cost Function

Subject To: Constraints

Different optimization algorithms use different methods or procedures to find a

minimum but what essentially happens is the design variables are changed and then the

cost function is evaluated. Then the design variables are changed again while enforcing

the constraints. How the design variables are changed depends on the evaluation of the

cost function and the method of optimization used. This process keeps repeating itself

until the cost function is minimized.

In order to keep the optimization algorithm running fast enough to produce real

time results, two steps are takes. The first is to calculate explicit gradients for the

objective functions and the constraints. This reduces computation time by allowing the

gradient-based optimization algorithm to run without having to calculate finite difference

gradients. Computing finite differences can become computationally expensive if many

design variables are used. The second step is to use commercially available software

called SNOPT (Gill et al, 2002). This software uses sequential quadratic programming to

quickly find a local minimum by obtaining search directions from a sequence of

quadratic programming subproblems.

Conclusion

This chapter has presented some background on the terminology and techniques

needed to formulate the problem. The next chapter will present the actual formulation of

the model.

10

PROBLEM FORMULATION

Introduction

The objective of this project is to create a real time three dimensional model of

the human which is appropriate for calculating and prediction mechanical properties such

as joint torques, muscle forces and dynamic movement. In particular, this model is

focused on using inverse dynamics to predict muscle forces from a given set of joint

torques and orientation. However, it is important to note that if the model is created

appropriately it could be used for forward dynamics. In this method the muscles generate

forces and the torque is calculated. In this chapter we will discuss what is needed in the

model for these calculations and the methods we propose to use for calculating muscle

forces.

Figure 0.1: Torque calculation

Torque – Force Relationship

Muscles acting on the skeletal system generate torque about the joints, which is

used to achieve movement, stability and structure of the body. These torques are used for

walking, balance, lifting, and any other activity that interacts with external loads. The

relation ship between torque and force is shown in equation 3.1 where T is the torque, r is

11

a vector pointing from the where the torque is being calculated to where the force is being

applied and F is the applied force (Figure 0.1).

FrT ×= (3.1)

As an example, consider a simple beam attached to a fixed surface by a 1 DOF

hinge joint as shown in Figure 0.2. In this example we will consider the joint to be ideal

(frictionless) and the beam to be weightless. If r is given as [4.70, -1.71, 0] and F is

given as [2.59, 9.66, 0] then the torque can be calculated as

[ ] [ ] [ ]NmFrT 83.49,0,00,66.9,59.20,71.1,70.4 =×−=×= (3.2)

Figure 0.2: Example of the force-torque relationship

Figure 0.3: Example of multiple forces creating torque

12

Therefore, 49.83 Nm of torque is being developed about the z-axis of the hinge.

Now lets consider that we want to create 75 Nm of torque about the hinge. If the force

and the bar are still oriented in the same direction, what will the magnitude of the force

need to be? This can be found as

( ) NFFFT 05.15]98.4,0,0[]0,97.0,26.0[]0,71.1,70.4[]75,0,0[ =→=×−== (3.3)

If multiple forces were to act on the bar to total torque generated will simply be a

sum of the torque contributed by each force. Consider the above example but add another

force as shown in Figure 0.3. The torque about the hinge is now calculated by

NmFrFrTTT ]32.63,0,0[]83.49,0,0[]49.13,0,0[221121 =+=×+×=+= (3.4)

So, these two forces create 63.32 Nm of torque about the hinge.

Application of the Torque-Force Relationship to the Body

In this section we will take the torque-force relationship described in the previous

section and demonstrate how it is applied to the human body.

Figure 0.4: Major muscles of the upper arm

13

Musculoskeletal System

The musculoskeletal system is composed of the skeletal system and the skeletal

muscles. This system of muscles and bones is arranged throughout the body as numerous

levers where the bones act as the levers with the joints between them being the fulcrums.

Consider the muscles shown in Figure 0.4. This figure represents some of the major

muscles of the upper arm and illustrates how they are attached to the skeletal system.

Since muscles can only act in tension, each joint requires one set of muscles to

create a positive torque and a separate set to create negative torque. In Figure 0.4, the

elbow extension and flexion muscle groups are identified.

Mechanical System

Consider the simple one muscle model shown in Figure 0.5, which represents the

medial head of the bicep. This muscle originates on the scapula and inserts below the

elbow on the radius. For this simple example only the torque created at the elbow will be

considered. When the muscle is activated it creates a force on the radius. For this simple

example it will be assumed that this force points at the muscle origin (Figure 0.6). This

force creates a torque about the elbow by acting on a moment arm that lies along the

radius.

Figure 0.5: Medial bicep brachii

14

Figure 0.6: Force from bicep

This force can be resolved into two components; the rotational component, which

is normal to the moment arm, and the stabilizing component, which is parallel to the

moment arm (Figure 0.7). The rotational component is the portion of the force that

actually contributes to joint torque.

Figure 0.7: Muscle force components

15

It is important to note that as the joint angle changes, so does the rotational

component (Figure 0.8), so the resulting torque is not only a function of the muscle force,

but also the current joint angle.

Figure 0.8: Effect of joint angle. Note the shortening if the stabilizing component and the lengthening of the rotational component as the elbow is flexed

As shown in the previous section, determining a muscle force needed to achieve a

desired torque at a specific joint angle is simple. Unfortunately, once more muscles are

added to this problem it no longer is trivial to solve. To illustrate this Figure 0.9 shows

two more muscles added to the previous example. Using an equation similar to 3.4,

torque is calculated by

` ( ) ( ) ( )b b bc bc br brT r F r F r F= × + × + × (3.5)

where b denotes Bicep, bc denotes the Brachialis, and br denotes the Brachioradialis.

Finding the muscle forces to achieve a desired torque at a specified angle becomes an

indeterminate problem because there is only one equation with three unknowns (Fb, Fbc,

16

and Fbc). A typical way to solve this problem is through the use of optimization, which is

discussed in the next section.

Figure 0.9: Three muscles acting on the lower arm

Optimization

A quick review of the literature will reveal that prediction of muscle force or

activation has been studied at length (Seireg & Avikar, 1973; Pedotti et al., 1978, An et

al., 1981, 1984; Crowninshield and Brand, 1981; Kaufman et al., 1991; Happee, 1994;

Glitsch & Baumann, 1997; Li et al., 1999, 2004; Anderson and Pandy, 1999; Chadwick

and Nicol, 2000; Praagman et al., 2004). These approaches have ranged from simple

formulations such as sharing the load based on muscle stress (Amis et al., 1980) to

extensive dynamic optimization algorithms (Davy and Audu, 1987). Our model is being

developed to eventually work specifically with the digital human called Santos™

currently being developed by the Virtual Soldier Research laboratory at the University of

Iowa. This digital human currently employs an algorithm that determines, among other

things, a set of joint torques over time to complete a specific dynamic task (Kim et al,

17

2005). Because dynamic motion is already incorporated into these joint torques, we are

not concerned with muscle prediction algorithms that include dynamics. Additionally,

real time interaction is desired so we decided to initially develop this model with a simple

static optimization algorithm.

Solving this problem with optimization requires a cost function that will be

minimized while obeying various constraints. There have been many cost functions

proposed and choosing the most appropriate function is likely dependent on the situation.

For example, quick movement to avoid a collision will likely require a different cost

function than a movement that needs to be precise and smooth. For very strenuous

activities, Crowninshield found that minimizing the sum of the muscle stresses while

imposing constraints on how high the stresses can become predicted data the correlated

well with EMG signals (Crowninshield, 1978). Pedotti et al minimized equation 3.6

where fmax was calculated from instantaneous muscle length and muscle velocity of the

shortening and found a correlation with muscles associated with human gait.

∑ ⎟⎟⎠

⎞⎜⎜⎝

⎛=

2

maxif

fU i (3.6)

Crowninshield and Brand later presented equation 3.7 as a cost function where PCSA is

the physical cross sectional areas (Crowninshield and Brand, 1981). According to their

report, this formulation seems to be good for describing activities, which require

prolonged endurance.

3

∑ ⎟⎟⎠

⎞⎜⎜⎝

⎛=

i

i

PCSAfU (3.7)

Many cost functions use muscle activation as variables. Muscle activation is a

value that ranges between 0 and 1 where 0 indicates no muscle activation and 1 indicates

a fully activated muscle. Muscle force can then be defined as

F = a*Fmax (3.8)

18

where a is the activation and Fmax is the maximum theoretical force that muscle can

generate, which can estimated by the muscle’s physical cross sectional area. Torque can

now be represented as

( )max*T r a F= × (3.9)

To simplify the problem, only the torque being generated about the rotational axis of the

elbow will be considered. This allows the torque equation to become

T = r*a* Fmax (3.10)

where r is a constant and Fmax is the rotational component of Fmax. One way this problem

can now be solved is with the following optimization formulation where n is the number

of muscles being considered. Note that this formulation is similar to equation 3.6

Design Variables: a1 … an (3.11)

Minimize: ∑=

=n

iiaJ

1

2 (3.12)

Subject To: ∑=

=n

iiii FarT

1

)max( (3.13)

10 ≤≤ ia (3.14)

Note that by simply adding more torque equation constraints this formulation can

be expanded to cover numerous joints. It should be emphasized that is not our motivation

to determine which cost function is the best but simply create a real time model that can

work with many different formulations so that the user can determine which formulations

they would prefer to use. To illustrate how the muscle forces are predicted using

optimization an example will be presented.

Optimization Example

For this example, ten muscles will be considered. These muscles are the

brachialis, brachioradialis, bicep long, bicep short, tricep lateral, tricep long, tricep

19

medial, pronator teres, supinator, and anconeus. These muscles are used to flex/extend

the forearm and pronate/supinate the hand. Torque about the elbow and the pronating axis

of the wrist are given and the orientation of these joints is known. The objective is to find

the muscle activation level of the ten muscles listed above. This will be accomplished

through optimization as described in the previous section. For this example, the problem

is formulated as follows:

Design Variables: a1…a10

Minimize: 10

2

1i

iJ a

=

= ∑

Subject To: 1BR BL BS PT SUPT T T T T+ + + + =

10BR BCH BL BS TLAT TLON TM PT SUP ANCT T T T T T T T T T+ + + + + + + + + =

0 1ia≤ ≤

Where Tx is the torque generated by that muscle. Note that for this problem, it is

given that the torque about the wrist is 1 Nm and the torque about the elbow is 10 Nm. It

should also be noted that while all the muscle considered contribute some torque to the

elbow, only five contribute torque to the pronation of the hand.

Next the torque generated by each muscle must be calculated. These are

calculated as

maxi i i i iT r x a f= (3.15)

where r is the moment arm, x is the rotational component of the unit vector representing

the force line, a is the activation level, and fmax is the theoretical maximum isotonic force

which that muscle can create. The maximum isotonic force can be calculated by

multiplying the maximum physiological achievable muscle stress (600 kPa) to the

physiological cross sectional area (PSCA) of the muscle (Berme et al., 1987). The torque

equation can then be represented as

*600i i i i iT r x a PSCA= (3.16)

20

Note that r and PSCA are constants while x is dependent on the joint angles and a

is the design variable. Since the joint angles are known, x can be calculated from

geometry while r and PSCA can be found in literature (Maurel and Thalmann, 1999),. For

example, TBR about the elbow can be calculated as

0.0662*0.424* *4.70*600 14.149BRT a a= = (3.17)

So, for the given orientation, the constraint equations can be calculated as

2 3 4 8 90.002 1.281 1.112 ( 0.724) 0.025 1a a a a a+ + + − + = (3.18)

1 2 3 4 5 6 7

8 9 10

14.149 8.670 4.833 4.228 ( 2.640) ( 2.617) ( 2.636)1.230 4.012 0.0112 10

a a a a a a aa a a+ + + + − + − + −

+ + + =(3.19)

Solving the optimization problem in Excel predicts the following activation

levels for each muscle.

• Bracialis: 0.303

• Brachioradialis: 0.186

• Bicep Long: 0.445

• Bicep Short: 0.384

• Tricep Lateral: 0

• Tricep Long: 0

• Tricep Medial: 0

• Pronator Teres: 0

• Supinator: 0.093

• Anconeus: 0

As expected none of the triceps are active because positive torque about the elbow

is required. Similarly, the pronator teres is not active because it will contribute negative

torque about the pronation axis while positive torque is required.

21

Proposed Formulation

Our proposed formulation is quite similar to the example previously presented

except it will incorporate two more joints and 34 action lines representing the muscles of

the arm and shoulder. The problem is defined as follows.

Design Variables: a1…a34

Minimize: ∑=

=34

1

2

iiaJ

Subject To:

SCSC

DorsiUpperLatissimusSC

eDorsiMiddlLatissimusSC

DorsiLowerLatissimusSC

MajorLowerPectoralis

SCMajorUpperPectoralis

SCMinorPectoralis

SCrteriorUppeSerratusAn

SCleteriorMiddSerratusAn

SCrteriorLoweSerratusAn

SCboidsMinorR

SCboidsMajorR

SCpperTrapeziusU

SCiddleTrapeziusM

SCowerTrapeziusL

SCpulaeLevatorSca

TTTTT

TTTTT

TTTTTT

=++++

+++++

+++++ homhom

GHGH

TricepLongGH

BicepLongGH

DorsiLowerLatissimisGH

eDorsiMiddlLatissimis

GHDorsiUpperLatissimis

GHTeresMajor

GHTeresMinor

GHrisSubscapula

GHtusInfraspina

GHateralDeltoidusL

GHnteriorDeltoidusA

GHosteriorDeltoidusP

GHtusSupraspina

GHhialisCoracobrac

GHMajorLowerPectoralis

GHMajorUpperPectoralis

TTTTT

TTTTTT

TTTTTT

+=++++

++++++

+++++

UHzUHz

AnconeusUHzSupinator

UHzSupinator

UHzsonatorTere

UHzialisBrachiorad

UHzralTricepLate

UHzalTricepMedi

UHzTricepLong

UHzBrachialis

UHzBicepShort

UHzBicepLong

TTTTT

TTTTTTT

+=++++

++++++

21Pr

URzURzSupinator

URzsonatorTere

URzdialisBracchiora

URzBicepShort

URzBicepLong TTTTTT =++++ 1Pr

0 1ia≤ ≤ for i=1 to 34

In the above formulations xyT is the torque that muscle y creates about joint x,

which is calculated from equation 3.9. Note that the torques about SC and GH are vectors

while the torques about UH and UR are only considering the torque about the z axis. It

should also be noted that only the torque about the x and z axis of the SC joint will be

considered. Additionally, one can see that torque about the AC joint is not a constraint.

This was decided because normal movement of the shoulder is primarily the rotation of

GH joint about all three of its axes and the rotation of the SC about it’s x and z axes. Any

22

movement about the AC joint is assumed to be used to keep the scapula on the thorax and

rotation of the clavicle about the y axis of the SC joint is considered to be negligible.

Model Requirements

By observing the above formulation for predicting muscle activation levels it can

be observed that two variables will come from the 3D model representing the arm,

regardless of the cost function used. These are the r vector and the direction of the force

vector. Therefore it is imperative that the model be created with careful consideration for

where the muscles originate and insert. It is also important that the action lines of the

muscles be accurate so that the direction of the force being predicted is realistic. This is

complicated by the requirement that the model be interactive in real time. The

development of the model will be addressed in the next chapter. Real time wrapping will

be used to keep the action lines of the muscles in a realistic position, which will be

detailed in chapter 5.

23

MODELING

Introduction

The human body is a complex arrangement of numerous biological systems all

working together in multifarious relationships that science has yet to fully understand. In

this chapter we will explore some of the systems used for motion and then present our

method for creating a real time interactive representation of the human arm. The model

being developed is designed explicitly for prediction of muscle activation levels through

inverse dynamics. Because we are interested in movement, the two main systems of

interest are the skeletal and muscular system and the interaction between them.

Anatomy

The skeletal system is composed of 206 bones, which are divided into two groups,

the axial and the appendicular (Figure 0.1).

Figure 0.1: Axial skeleton (left) and appendicular skeleton (right)

24

The axial system is composed of the skull, spine and ribs while the appendicular

is composed of the limbs and the girdles that connect them to the trunk. The bones are

linked to each other with ligaments to form joints or articulations. It is this arrangement

of bones that give humans their structure. However, it is the muscles acting on the bones

that hold together and move this structure. Skeletal muscles, which are attached to either

a bone via a tendon or to other muscles with aponeuroses, provide tensile force to the

bones thus using them as levers to produce torque and motion (Figure 0.2).

Figure 0.2: Example of muscles attaching to the bones

The skeletal system of the arm is composed of 32 bones where most of the bones

are located in the hand. The model being developed will only focus on 5 bones (Figure

0.3): the clavicle, scapula, humerus, radius, and ulna. This will allow for movement of the

pectoral girdle, flexion of the elbow and pronation of the hand. This model assumes the

hand is rigidly attached to the distal end of the radius.

25

Figure 0.3: Bones of the right arm

These movements are accomplished through the rotation of five articulations.

Starting proximally, the first joint is between the scapula and the clavicle. This joint is

called the sterno-clavicular (SC) joint. The next joint is the acromio-clavicular (AC) joint,

which is the interaction between the clavicle and the scapula. The gleno-humeral (GH)

joint between the humerus and the scapula comes next followed by the ulno-humeral

(UH) joint between the unla and humerus. Last is the ulno-radial (UR) joint between the

ulna and radius, which allows for the pronation of the hand.

Our model considers 21 muscles important for the manipulation of the above

joints based on anatomical analysis. They are

• Levator Scapulae: This muscle has four functions, elevation of the

scapula, rotation of the scapula to tilt the glenoid cavity inferiorly,

retraction of the scapula, and lateral flexion of the neck (Figure 0.5).

26

Figure 0.4: Muscles of the shoulder

• Trapezius: This muscle also has four functions, elevation of the scapula,

retraction of the scapula, depression of the scapula, and superior rotation

of the scapula (Figure 0.4).

• Rhomboids: This muscle has two functions, retraction of the scapula and

rotation of the scapula to depress the glenoid cavity (Figure 0.5).

• Serrratus Anterior: This muscle has two functions, protraction of the

scapula and rotation of the scapula (Figure 0.5 and Figure 0.6).

• Pectoralis Minor; This muscle has two function, inferior drawing of the

scapula and anterior drawing of the scapula (Figure 0.6).

• Pectoralis Major: This muscle has two functions, flexion of the humerus

and adduction and medial rotation of the humerus (Figure 0.7).

27

Figure 0.5: Muscles of the shoulder and arm

• Coracobrachialis: This muscle has two functions, flexion of the humerus

and adduction of the arm (Figure 0.6).

• Supraspinatus: This muscle has two functions, as a stabilizer with the

rotator cuff and adduction of the arm (Figure 0.5).

• Deltoideus: This muscle has three functions, flexion of the humerus,

abduction of the humerus, and extension of the humerus (Figure 0.4).

• Infraspinatus: This muscle has one function, which is to laterally rotate

the humerus (Figure 0.5).

• Subscapularis: This muscle has two functions, medial rotation of the arm

and adduction of the arm (Figure 0.6).

• Teres Minor: This muscle has two functions, lateral rotation of the

humerus and adduction of the humerus (Figure 0.5).

28

Figure 0.6: Muscles of the shoulder and arm

• Teres Major: This muscle has two functions, adduction of the arm and

medial rotation of the humerus (Figure 0.5).

• Latissimus Dorsi: This muscle has three functions, medial rotation of the

arm, extension of the humerus, and adduction of the humerus (Figure

0.4).

• Bicep Brachii: This muscle has two functions, flexion of the forearm and

supination of the forearm (Figure 0.7)..

• Brachialis: This muscle has one function, which is flexion of the forearm

(Figure 0.7).

• Triceps Brachii: These muscles have two functions, extension of the

forearm and adduction of the arm (Figure 0.8).

29

Figure 0.7: Muscles of the shoulder and arm

• Brachioradialis: This muscle has tow functions, flexion of the forearm

and supination of the forearm (Figure 0.7).

• Pronator Teres: This muscle has one function, which is to pronate the

forearm (Figure 0.7).

• Supinator: This muscle has one function, which is to supinate the forearm

(Figure 0.8).

• Anconeus: This muscle has one function, which is to extend the forearm

(Figure 0.8).

Digital Representation of the Arm

The purpose of this model is to predict muscle activation levels based from a

given limb configuration to achieve specified joint torques. The torque achieved by the

30

Figure 0.8: Muscles of the arm

muscles pulling on the bones in lever like arrangements. Therefore it is imperative that

the kinematic model of bones as well as the attachment points and direction of the

muscles be as realistic as possible. To accomplish this many geometric models of the

musculoskeletal system were examined before one was selected. The model selected is

commercially available and was created with careful consideration to true human

anatomy. Once the model was obtained, it was translated to VRML and then imported

into our real time simulation environment. The model contained all the bones and

muscles in the human body. All the bones were removed except for the ribs, sternum,

spine, and bones of the right arm. All the muscles were deleted except for the ones listed

in the previous section, and these were kept for the right arm only.

31

Kinematic Model

Once the appropriate geometric model was imported into the simulation, the

bones had to be arranged into an appropriate kinematic chain. A kinematic chain is

essentially a series of rigid bodies connects by joints. This was accomplished by first

arranging the bones in the appropriate hierarchy. A parent-child relationship is essential

when created a kinematic chain. In this type of relationship, each part can have only one

parent but numerous children. Movement of an object within the hierarchy will affect its

children but not the parent. The ribs, sternum and spine were grouped together and

considered to be the base of the kinematic chain, thus have no parent. The rest of the

bones were arranged the hierarchy shown in Figure 0.9. Because of the hierarchy,

movement of the clavicle will affect all the distal bones in the arm but movement of the

radius will only affect the hand.

Figure 0.9: Hierarchy of the bones in the arm

Once the hierarchy of bones was created the joints between the bones had to be

defined. In a true human joint, most movement is a combination of rolling and sliding

between the bones (Engin, 1984), thus no fixed axis or center of rotation can be found.

However, this movement is generally considered negligible for the arm, so the joints are

modeled either as an ideal ball and socket joint with three degrees of freedom or a hinge

joint with one degree of freedom. Following previous kinematic arm models (Maurel and

32

Thalmann, 1999; Engin, 1980; Helm, 1994; Hogfors et al, 1987; Raikova, 1992) the SC,

AC, and GH joints are modeled as ball and sockets while the UH and UR are modeled as

hinge joints (Figure 0.10).

Figure 0.10: Joints of the arm

One of the more difficult features about modeling the shoulder is how to treat the

scapula and its interaction with the thorax. The scapula is located between the clavicle

and the humerus in the kinematic chain and is constrained to glide across the thorax (Dvir

and Berme, 1978). Because the scapula is nearly completely surrounded by soft tissues,

there are no articular structures between the scapula and the thorax, resulting in the

scapula being able to move in all six degrees of freedom. Since the scapula glides across

the thorax two forms have been proposed to describe this constraint, a dot contact or a

33

linear contact (Maurel and Thalmann, 1999). A dot constraint describes a situation when

one point of an object is constrained to a surface, thus allowing 5DOF. A line constraint

describes a situation when two points of an object are constrained to surface resulting in

4DOF. It was decided that the linear contact constraint is more representative of

movement of the shoulder as described by Dvir and Berme but instead of using an

idealized ellipsoidal thorax as van der Helm did we used the actual geometric model of

the thorax. (Helm, 1994)

Figure 0.11: Guide points on the scapula

To accomplish this we started by first location two frames on the medial edge of

the scapula with their x-axis pointing towards the thorax. These points will be called g1

and g2. A ray is cast along each of the frames x-axis to determine the distance between

the frame and the thorax. Then the scapula is rotated about the SCy until the distance

between g1 and the thorax is within a certain range (Figure 0.12). Then the scapula is

34

rotated about SCz until the distance between g2 and the thorax is within a certain

distance. The vectors SCy and SCz are defined as

CAgCAgSCz

−−

=11 (4.1)

( )( ) z

zx

SCCAgSCCAgSC

×−

×−=

22 (4.2)

xzy SCSCSC ×= (4.3)

Figure 0.12: Vector used to rotate the scapula

Next, the joints are located and orientated appropriately through the use of 3D

frames within the simulation. A 3D frame is simply a coordinate system whose origin can

be placed at specific world coordinates and can be oriented as desired. Knowing how the

35

rotations are going to be described is directly related to how the joint frames will be

placed and oriented. There are many methods for describing how the bones articulate

including bone or joint rotation, global or local coordinates, and local or virtual

references (Helm and Pronk, 1995). The goal of this model is to predict muscle activation

levels from a given torque and joint configuration, which is given as absolute joint

Figure 0.13: Heirarchy of joint frames in a 3DOF joint

Figure 0.14: Euler rotation order for a 3DOF joint. Note that all the frames are separated just for clarity. In the model they coincide.

36

rotation in local coordinates. Therefore, our model will use joint angles defined in the

coordinate system of the parent bone, which requires a reference frame on the bone

proximal to the joint and a local frame, which will actually be rotated. Following the

model presented by Maurel et al our rotations will be described as Euler angles defined to

rotate in the following order: θ about z, φ about y, and ψ about x (Maurel et al, 1996). To

accomplish this in our simulation instead of using a single local frame, three frames are

stacked on top of each other and arranging in the hierarchy shown in Figure 0.13. Then to

achieve a specified orientation local frame 1 is rotated about it’s z-axis by θ, local frame

2 is rotated about it’s y axis by φ, and local frame 3 is rotated about it’s x axis by ψ

(Figure 0.14).

The position of the frames within the simulation was based on the geometric

model and understanding the action of that joint while the frames were oriented based on

a combination of data from literature and observation of the geometric models (Maurel

and Thalman, 1999). For example, the GH joint was positioned in the approximate center

of the head on the humerus. The absolute reference frame for the simulation was oriented

such that Xo is perpendicular to the front plane and the Yo is perpendicular to the side

plane. The rest of the joints were orientated as follows

• Sterno-Clavicular: The reference frame is attached to the sternum and

oriented such that the x is perpendicular to the front plane pointing

forward and the y is perpendicular to the side plane, pointing to the left.

The local frame is attached to the clavicle and orientated such that the y is

a unit vector pointing from the SC to the AC joint and the x is

perpendicular to the y-axis and pointing forward in the clavicular plane

(Figure 0.15).

• Acromio-Clavicular: The reference frame is attached to the clavicle and

orientated such that x is a unit vector pointing from the SC to the AC joint

while the y is perpendicular to the x axis and pointing backwards in the

37

clavicular plane. The local frame is attached to the scapula and is

orientated such that y is perpendicular to the scapluar plane pointing

backwards while the x is aligned with the trigonum spinae of the scapula

(Figure 0.16).

Figure 0.15: Sterno-clavicular reference (left) and local frame (right)

Figure 0.16: Acromio-clavicular reference (left) and local frame (right)

38

• Gleno-Humeral: The reference frame is attached to the scapula with it’s z

perpendicular to the scapular plane pointing forward while the x is aligned

with the trigonum spinae. The local is attached to the humerus with the z

perpendicular to the humeral front plane pointing forward and the y

pointing up along the humeral axis (Figure 0.17).

Figure 0.17: Gleno-humeral reference (left) and local frame (right)

Figure 0.18: Ulno-humeral reference and local frame

39

• Ulno-Humeral: The reference frame is attached to the humerus with the z

as a unit vector pointing from the UH to the HR joint and the x set normal

to a plane created by GH, HR, and UR, pointing forward. The local axis.

The local frame is attached to the ulna and orientated the same as the

reference (Figure 0.18).

Figure 0.19: Ulno-radial reference and local frame

• Ulno-Radial: The reference frame is attached to the ulna and oriented so

the z is a unit vector pointing from the UR to HR while y is normal to a

plane created by HR, UR, and the end of the radius, pointing inward. The

local is attached to the radius and is orientated the same as the reference

(Figure 0.19).

Attaching the Muscles

When attaching the muscles to the kinematic model, two factors are of great

importance. The first is the shape of the muscle, which is dependent on where it attaches

40

to the skeleton and how it lays over underlying structures. Since the muscles are working

on bones that are arranged in a lever like structure, determining the correct attachment

points is critical because there is a direct relationship between these and the torque the

associated muscle can create. This is addressed by using an accurate geometric model of

the musculoskeletal system to locate origin and insertion points. Furthermore, the shape

of the muscle is critical in determining the direction of the force created by the muscle.

For example, as the elbow is flexed, the direction of the force on the radius created by the

bicep is related to the angle of pronation of the hand because the bicep may wrap around

the radius, the angle of the flexion of the elbow because the bicep may need to wrap over

the distal end if the humerus or the brachialis, and the orientation of the humerus because

both heads actually attach to the scapula (Figure 0.20). This is addressed by incorporating

real time wrapping algorithms and wrapping obstacles that affect the action line of the

muscle, thus creating an approximation of the centroid line of the muscles that changes

with the orientation of the limb. The development and application of this wrapping

algorithm will be addressed in Chapter 5.

Figure 0.20: Effects of muscle wrapping as applied to the biceps

41

The second factor that must be considered when attaching the muscles to the

skeletal model is the number of action lines used to approximate the force generated by a

muscle. For computational reasons, the muscles will need to be idealized as a number of

action lines along which the tension being created by the muscle will act. Obviously, the

more action lines used the more accurate the model will be become. However, for the

model to be useful and to fulfill the requirement of being real time, a balance between

computational expense and accuracy must be found. For many muscles a single action

line is adequate because the origin and insertion points are small, such as the biceps. For

other muscles, such as the trapezius, the insertion and/or origin covers a wide area so a

single action line is not an appropriate approximation (Figure 0.21). Van der Helm and

Veenbaas compared the moment vector calculated from a large number of action lines

(200) and compared it to the moment vector calculated from six action lines and found

the error to be minimal (Helm and Veenbaas, 1991). Our model however will be

developed similar to the model presented by Maurel and Thalmann in which the number

of action lines will be less (Maurel and Thalmann, 1999). Once this model is finished, the

real time performance will be evaluated and more action lines can be considered.

Figure 0.21: Trapezius and its action lines

42

With the above factors considered, the muscles were modeled as follows.

• Levator Scapulae: This muscle was modeled as a single line running from

the neck to the medial border of the scapula. No wrapping obstacles were

included (Figure 0.22).

Figure 0.22: Levator scapulae muscle and action line

Figure 0.23: Trapezius muscle, action lines and wrapping obstacles

43

• Trapezius: Modeled as three action lines. The first one originated at the

neck and inserted near the AC joint on the scapula. No wrapping was

included for this action line. The second action line originates at the upper

thoracic vertebra and insets on the spine of the scapula. It requires one

wrapping obstacle that is a cylinder for the thorax. The third action line

originates at the lower thoracic vertebra and inserts on the spine of the

scapula. It requires two wrapping obstacles, one cylinder for the thorax

and one cylinder for the medial spine of the scapula (Figure 0.23).

t

Figure 0.24: Rhomboid muscles, action lines and wrapping obstacle

• Rhomboids: Modeled as two action lines, both of which originate on the

spine, insert on the posterior side of the scapula and require a cylinder

obstacle for wrapping around the thorax (Figure 0.24).

• Serrratus Anterior: Modeled as three action lines, all of which originate

on the ribs, insert on the anterior side of the scapula and require a cylinder

obstacle for wrapping around the thorax (Figure 0.25).

44

Figure 0.25: Serratus anterior muscles, action lines and wrapping obstacles

Figure 0.26: Pectoralis minor muscle, action lines and wrapping obstacle

• Pectoralis Minor: Modeled as a singe action line, which originates on the

ribs, inserts on the coracoid process of the scapula and requires a cylinder

obstacle for wrapping around the thorax (Figure 0.26).

• Pectoralis Major: Modeled as two action lines, both of which originate on

the sternum and insert on the humerus. Both require a cylinder obstacle

for wrapping around the thorax and a second cylinder obstacle for

wrapping around the humerus (Figure 0.27).

45

Figure 0.27: Pectoralis major muscle, action lines and wrapping obstacles

Figure 0.28: Coracobrachialis muscle, action line and wrapping obstacle

• Coracobrachialis: Modeled as a singe action line, which originates on the

scapula, inserts on the humerus and requires a cylinder obstacle for

wrapping around the humerus (Figure 0.28).

• Supraspinatus: Modeled as a singe action line, which originates on the

scapula above the spine, inserts on the humeral head and requires a

spherical obstacle for wrapping around the head of the humerus (Figure

0.29).

46

Figure 0.29: Supraspinatus muscle, action line and wrapping obstacle

Figure 0.30: Deltoideus muscle, action lines and wrapping obstacles

• Deltoideus: Modeled as three action lines, all of which originate on the

scapula and insert on the humerus. Both the posterior and lateral paths

require a spherical obstacle for wrapping around the head of the humerus

while the anterior path used a cylinder for wrapping around the head of

the humerus (Figure 0.30).

47

Figure 0.31: Infraspinatus muscle, action line and wrapping obstacle

• Infraspinatus: Modeled as a singe action line, which originates on the

scapula, inserts on the humeral head and requires a cylinder obstacle for

wrapping around the humerus (Figure 0.31).

Figure 0.32: Subacapularis muscle, action line and wrapping obstacle

• Subscapularis: Modeled as a singe action line, which originates on the

scapula, inserts on the humeral head and requires a cylinder obstacle for

wrapping around the humerus (Figure 0.32).

48

Figure 0.33: Teres Minor muscle, action line and wrapping obstacles

• Teres Minor: Modeled as a single action line, which originate on the

scapula, insert on the humeral head. It requires a cylinder obstacle for

wrapping around the humerus and a cylinder obstacle for wrapping over

the lateral spine of the scapula (Figure 0.33).

Figure 0.34: Teres Major muscle, action line and wrapping obstacles

49

• Teres Major: Modeled as a singe action line, which originates on the

scapula and inserts on the humeral head and requires a cylinder obstacle

for wrapping around the humerus (Figure 0.34).

Figure 0.35: Latissimus dorsi muscle, action lines and wrapping obstacles

• Latissimus Dorsi: Modeled as three action lines, two of which originate

on the spine and the third on the thorax. All three insert on the humerus.

All three paths require a cylinder for wrapping around the thorax and a

cylinder for wrapping around the humerus (Figure 0.35).

Figure 0.36: Bicep brachii muscles, action lines and wrapping obstacles

50

Figure 0.37: Triceps major muscles, action lines and wrapping obstacle

• Bicep Brachii: Modeled as two action lines, both of which originate on

the scapula and insert on the radius. Both require a cylinder obstacle for

wrapping over the brachialis and a cylinder obstacle for wrapping around

the radius. Furthermore, the bicep long requires a third spherical obstacle

for wrapping over the humerus (Figure 0.36).

• Triceps Major: Modeled as three action lines, two of which originate on

the humerus and the third on the scapula. All three insert on the ulna. All

three paths require a cylinder for wrapping around the distal end of the

humerus (Figure 0.37).

• Brachialis: Modeled as a singe action line, which originate on the

humerus, insert on the ulna and require two cylinder obstacles for

wrapping. One is for wrapping around the distal end of the humerus and

the other is used to give the bracialis its thickness (Figure 0.38).

• Brachioradialis: Modeled as a singe action line, which originates on the

humerus and inserts on the radius. It requires a cylinder obstacle for

51

wrapping around the distal end of the humerus and another cylinder for

wrapping over underlying structures in the forearm (Figure 0.39).

Figure 0.38: Brachialis muscle, action line and wrapping obstacles

Figure 0.39: Brachioradialis muscle, action line and wrapping obstacles

52

Figure 0.40: Pronator teres muscle, action line and wrapping obstacles

Figure 0.41: Supinator muscle, action lines and wrapping obstacles

• Pronator Teres: Modeled as a singe action line, which originates on the

humerus and inserts on the radius. It requires a cylinder obstacle for

53

wrapping around the distal end of the humerus and another cylinder for

wrapping over underlying structures in the forearm (Figure 0.40).

• Supinator: Modeled as two action lines, both of which originate on the

radius. One insert on the radius while the second inserts on the ulna. Both

require a cylinder obstacle for wrapping over the distal end of the

humerus and the one that inserts on the radius requires a second cylinder

obstacle for wrapping around the radius (Figure 0.41).

Figure 0.42: Anconeus muscle, action line and wrapping obstacle

• Anconeus: Modeled as a singe action line, which originate on the

humerus, insert on the ulna, and requires a cylinder obstacle for wrapping

around the distal end of the humerus (Figure 0.42).

As a result, 34 action line are used to model the 21 muscles considered. Nearly all

of these muscles require at least one wrapping obstical. The result is shown in

Figure 0.43.

54

Figure 0.43: All modeled action lines

Conclusion

This chapter presented the modeling of the 3D geometric representation of the

arm. This modeling included creating a kinematically correct hierarchy, attaching the

muscles in the appropriate location and placing obstacle as needed for the muscle to wrap

over. The next chapter will formulate the algorithms for allowing the action lines to wrap

over the obstacles.

55

MUSCLE WRAPPING MODEL

Introduction

The muscloskeletal system is a complex arrangement of muscles wrapping around

bones and other underlying muscles. When these muscles are actuated they create torque

about the joint or joints they cross because of the lever-like attachments. For example,

consider the long head of the bicep, which originates above the elbow on the scapula and

inserts on the radius below the elbow (Figure 0.1). As this muscle creates tension, torque

will be developed about the elbow.

Figure 0.1: Attachment of the long head of the bicep

When creating a mathematical representation of the muscles acting on the bones,

the force created can be approximated with one or more action lines. In the case of the

bicep a single line running from its origin to insertion may suffice (Figure 0.2).

56

Figure 0.2: Straight line model for the short head of the bicep

Seireg and Arvikar used this simple method of action line modeling in 1973 to

represent a large number of muscles in the leg. “The straight lines have to be chosen to

represent the best approximation for the lines of action in space of the muscular tensile

forces” (Seireg and Avikar, 1973). This simple model may be adequate for some muscles

in certain orientation, but is not nearly robust enough for a real time simulation that

allows the user to interactively orient the limb to any position within the prescribed joint

limits. For example, consider the bicep again. In the orientation shown in the Figure 0.1,

a straight line running from the insertion to the origin may be acceptable. However, if the

forearm is fully extended one will note that this same line now passes through the distal

end of the humerus (Figure 0.3). Not only is this physically impossible but any

calculation based on this model would be questionable. Many muscles can never be

modeled as a straight line from origin to insertion. For example, consider the deltoid,

which originates on the scapula and inserts on the humerus after curving over the gleno-

humeral joint. Because of the curved nature of this muscle, representing the action line as

one or more straight lines would be insufficient.

57

Figure 0.3: Bicep action line intersecting with the humerus

The centroid line method is another approach that can be used to model the action

lines of muscles (Jensen and Davy, 1975). It does not assume the force runs in a straight

line between known attachment points. Instead, it predicts the lines of force can be

considered to be acting along the centroid of the transverse cross section of the muscle.

The unit vector of the action line predicted by each of these methods is significantly

different(An et al, 1981 and Mikosz et al, 1988). While this method creates a more

accurate action line, it is not very useful for our model because it only represents action

lines of muscles in a fixed orientation.

A third method is used to compromise between the simplicity of the straight-line

approach and the accurate but static contour approach. This method uses a line that has

one end attached to the origin point and the other attached to the insertion point.

However, instead of a simple straight line, the line is allowed to wrap around a number of

obstacles through the use of via points, which represent underlying muscles and bones.

Typically, these via points are fixed to a bone during movement. For example, consider

the triceps, which wrap around the distal end of the humerus when the elbow is flexed

58

(Figure 0.4). A set of reasonable via points for modeling the force line of this muscle

would be fixed with respect to the humerus, thus keeping the action line out of the end of

the humerus. The only algorithm needed would be to determine which of the via points

are active. None of the via points will be active when the elbow is full extended and all

the via points will be active when the elbow if fully flexed.

Figure 0.4: Triceps action lines with fixed via points about the elbow

While this may work well for muscles that only crosses a joint with only one

degree of rotational freedom, fixed via points become a problem when more complex

wrapping must occur. For example, consider the force line shown in Figure 0.5 which

represents the lower action line of the trapezuis. This line originates in the thoracic

region of the spine, wraps around the thorax and the posterior surface of the scapula. The

movement of the scapula and shoulder affects the shape of this muscle. If one were to use

fixed via points the action line would not be allowed to slide over the medial edge of the

scapula during movement of the shoulder, thus producing an inaccurate approximation of

the muscles centroid line.

59

Figure 0.5: Lower action line of the trapezius with fixed via points on the medial edge of the scapula

This chapter will present a method for real time approximation of how muscles

will wrap around underlying structures by allowing floating via points to dynamically

wrap around prescribed obstacles. The difference between the floating via points and the

fixed via points is that the floating via points are not fixed to a bone but are allowed to

slide across the surface of the obstacle. This approach makes two assumptions about the

action lines. The first is that the action line or lines of a muscle can be modeled as a

frictionless elastic string wrapping around prescribed obstacles. The second is that

spheres and cylinders can represent the underlying anatomical structures that the muscle

must wrap around. The lines being wrapped will then be used to approximate the force

lines generated by the muscles.

Problem Formulation

We propose to develop an algorithm that uses prescribed obstacles to bend the

action line of a muscle in real time such that the action line is a reasonable approximation

of the real muscle’s action line for all possible joint configurations. From anatomy we

60

can determine the origin and insertion of a particular muscle. We can also analyze

underlying muscles and bones so as to determine the size, shape, position and number of

obstacles that the muscle being modeled must wrap around. Therefore, the unknowns are

the positions of the intermediate floating via points. These positions will be dependent on

two factors, if there are one or more obstacles about which wrapping should occur and, if

so, the shape and position of the obstacle or obstacles.

Proposed Solution

An action line will be used to idealize the direction of force generated by a single

muscle. The model attempts to use obstacles to push the line so that it approximates the

centroid line of the muscle, regardless of the orientation of the arm. Some muscles with

wide attachment point or multiple heads such as the bicep use multiple action lines. All

action lines consist of an origin point at one end, an insertion point at the other end and a

number of floating via points in between. Each point is connected to the next with a

straight line (Figure 0.6). An obstacles consists of a simple sphere or cylinder; therefore

wrapping algorithms will need to be developed for each obstacle.

Figure 0.6: Example of wrapping about a sphere

61

Wrapping Algorithm for a Sphere

To present this algorithm we will assume there is only one obstacle, which is a

sphere, and the action line will consist of seven points, which will be referred to as

number 1 through 7, according to their position on the line. Point 1 and 7, which are the

two ends of the line, will always be fixed to the origin and insertion, respectively. Points

2 through 6 are floating via points, which slide across the surface of the sphere when

wrapping.

The first step of the algorithm is to determine if wrapping should occur. Since the

action line is being idealized as a frictionless elastic string, it will always move to the

position where it has the lowest potential energy. As gravity is being ignored, this

translates into the shortest path from the origin to the insertion. Therefore, wrapping will

only occur if the sphere is between the origin and the insertion. This is determined by

casting a ray from the origin to the insertion and testing to see if it intersects with the

sphere. If no intersection is detected, then no wrapping will occur. In this case, the five

intermediate via points are evenly spaced along the line from the origin to the insertion.

If an intersection occurs then the line will need to be wrapped around the sphere.

The line will still be along the shortest path between the origin and insertion while

wrapping around the sphere. For most cases, this path will lie on a plane that contains the

insertion, origin and the center of the sphere. We will refer to this plane as the action line

plane, or AL plane. The exception to this is when the origin, insertion, and center of the

sphere are collinear. In this situation, all paths around the sphere are the same distance so

there is no unique solution. Fortunately this rarely happens and can be avoided by slightly

shifting one of the points.

Once the AL plane has been defined, determining the position of the floating via

points becomes a two dimensional problem. Furthermore, if the sphere’s z axis is aligned

with the normal vector of the plane, then these positions can be determine in the x-y

62

plane of the circle, where the center of the circle is the origin of the circles coordinate

system (Figure 0.7).

Figure 0.7: Wrapping about a sphere in the sphere’s x-y plane which also represents the AL plane

In this algorithm, the first two points determined are the number 2 and 6. These

points are where the line first contacts the sphere (point 2) and stops contacting the

sphere (point 6). We will call these points To (origin side tangent) and Ti (insertion side

tangent). Furthermore we will denote the insertion point as I and the origin as O , both

of which are known with respect to the spheres coordinate system. Since the line is

wrapping over the sphere we know that the line is tangent to the surface of the sphere at

point To and Ti, therefore vector from Ti to I is perpendicular to the vector from C to Ti.

Similarly, vector from To to O is perpendicular to the vector from C to To. From this

observation, we can note that points I, Ti, and C form a right triangle as well as points O,

To, and C. Li and Lo can therefore be calculated from

22

rOLo −= (5.1)

22

rILi −= (5.2)

63

where r is the radius of the sphere. Then αI and αo can be calculated as

⎟⎟⎠

⎞⎜⎜⎝

⎛= −

ii L

r1tanα (5.3)

⎟⎟⎠

⎞⎜⎜⎝

⎛= −

oo L

r1tanα (5.4)

Finally, the position of To and Ti can be calculated by

ipiiiciii VLVLIT )sin()cos( αα −+= (5.5)

opooocooo VLVLOT )sin()cos( αα ++= (5.6)

where Vic, Vip, Voc, and Vop are unit vectors defined as

[ ][ ]1,0,0

1,0,0

ˆ

ˆ

×=

×=

−=

−=

ocop

icip

oc

ic

VV

VVOV

IV

(5.7)

It is important to note that Ti and To are currently defined with respect to the

sphere’s coordinate system. These vectors will eventually need to be transformed into the

world coordinates before the via points are set to these positions.

Now that we have determined the location of points 2 and 6, we need to calculate

the location of points 3, 4 and 5. These will simply be evenly spaced along the arc created

on the surface of the sphere between To and Ti. First, the angle dθ is determined by

4

sin 1

⎟⎟

⎜⎜

⎛ ⋅

=

oi

oi

TTTT

dθ (5.8)

which the angle between oT and iT divided into four pieces. Then oT is rotated about the

z axis of the sphere by

( ) oj TdjRpv θ*= , for j = 1, 2, 3 (5.9)

64

where jpv is the location of via point j and R is a rotation matrix about the z axis of the

sphere. Again, these points are with respect to the sphere.

The final step for this algorithm is to transform all the points from the sphere

coordinate system to the world coordinate system then set the curve point positions to the

appropriate point. Point 1 has already been set to the origin position, point 2 is set to oT ,

point 3 is set to 1pv , point 4 is set to 2pv , point 5 is set to 3pv , point 6 is set to iT , and

point 7 is set to the insertion position.

Wrapping Algorithm for a Cylinder

To present this algorithm we will again assume there is only one obstacle, which

is a cylinder, and the action line will consist of seven points, which will be referred to as

number 1 through 7, according to their position on the line. Point 1 and 7, which are the

two ends of the line, will always be fixed to the origin and insertion, respectively. Points

2 through 6 are floating via points, which slide across the surface of the cylinder if

wrapping occurs. Testing for wrapping about the cylinder is more complicated than

testing for wrapping about a sphere since a simple ray intersection does not indicates

wrapping. The cylinder does not need to be between the insertion and origin for wrapping

to occur. Therefore, testing for wrapping will have to occur later in the algorithm when

more information known.

Since the action line is being idealized as a frictionless elastic string, it will

always move to the position where it has the lowest potential energy. As gravity is being

ignored, this translates into the shortest path from the origin to the insertion while

wrapping around the cylinder. The shortest path will be a straight line when viewed in the

plane of the string. This plane can be thought of as a piece of paper that is arranged such

that all the points in the line are touching the paper (Figure 0.8).

65

Figure 0.8: Wrapping about a cylinder

This paper would have one end on the origin then wrap around the cylinder in the same

manner as the action line. The far end of the paper would be resting on the insertion. So,

in the geometric coordinate system of the world (x y z) containing the cylinder, it will

look like a plane that has been warped to bend around the cylinder and the action line,

which is contained on that plane, will also be warped to wrap around the cylinder.

However, in the coordinate system of the plane (u v), or if one were to unwrap the plane

so it is flat, this line is not warped but a straight line from the origin to the insertion.

As with the sphere algorithm, this problem will be defined in the coordinate

system of the cylinder where the z vector points along the axis of the cylinder (Figure

0.9). In this algorithm, the first two points determined are the number 2 and 6. These

points are where the line first contacts the cylinder (point 2) and stops contacting the

cylinder (point 6). We will call these points To (origin side tangent) and Ti (insertion side

66

tangent). Furthermore we will denote the insertion point as I and the origin as O , both

of which are known with respect to the cylinder’s coordinate system.

Figure 0.9: Wrapping about a cylinder in the cylinder's x-y plane

We will first calculate the x and y position of To and Ti by only considering the x-

y plane of the cylinder. Since the line is wrapping over the circle we know that the line is

tangent to the circle at point To and Ti, therefore vector from Ti to I is perpendicular to the

vector from C to Ti. Similarly, vector from To to O is perpendicular to the vector from C

to To. From this observation, we can note that points I, Ti, and C form a right triangle as

well as points O, To, and C. Li and Lo can therefore be calculated from

67

22

rOL xyo −= (5.9)

22

rIL xyi −= (5.10)

where xyO and xyI are the 2D vector pointing the origin and insertion while r is the radius

of the cylinder. Then αI and αo can be calculated as

⎟⎟⎠

⎞⎜⎜⎝

⎛= −

ii L

r1tanα (5.11)

⎟⎟⎠

⎞⎜⎜⎝

⎛= −

oo L

r1tanα (5.12)

Now, the position of To and Ti in the x-y plane can be calculated by

ipiiiciixyi VLVLITxy

)sin()cos( αα −+= (5.13)

opooocooxyo VLVLOTxy

)sin()cos( αα −+= (5.14)

where xy denotes that only the x and y components are considered (the z value is set to

zero) and Vic, Vip, Voc, and Vop are unit vectors defined as

[ ][ ]1,0,0

1,0,0

ˆ

ˆ

×=

×=

−=

−=

ocop

icip

xyoc

xyic

VV

VV

OV

IV

(5.15)

The angle between xyiT and

xyoT about the z-axis of the cylinder is calculated as

⎟⎟⎟

⎜⎜⎜

⎛ ⋅= −

xyxy

xyxy

oi

oiz

TT

TT1sinθ (5.16)

At this point we have enough information to determine if wrapping should occur.

To determine this we will check to see if the z component of the cross product between

xyiT and xyoT is either positive or negative, depending on how the line should wrap (Figure

0.10).

68

Figure 0.10: Difference between wrapping if negative or a positive cross product is allowed

Next, we need to calculate the z coordinate of the points. This is accomplished by

considering the straight line as seen in the plane of the line, which is in u-v coordinates

(Figure 0.11). It can be observed that v axis of this plane aligns with the z axis of the

cylinder.

Figure 0.11: Wrapped line viewed in u-v coordinates

First, the slope of the line is calculated from

izo LrL

hs++

(5.17)

69

where h is the distance between the insertion and origin along the z axis of the cylinder.

From the slope ho, hi, and dh can be calculated as

4z

ii

oo

srdh

sLhsLh

θ=

==

(5.18)

Finally, the position of To and Ti can be calculated by

ziipiiiciii ChVLVLIT ˆ)sin()cos( −−+= αα (5.19)

zoopooocooo ChVLVLOT ˆ)sin()cos( +++= αα (5.20)

where zC is the cylinders z unit vector.

At this point we can check to see if both points are within the length of the

cylinder. For example, in the x-y plane of the cylinder, it may appear that wrapping

should occur. However, now that the point’s positions have been calculated in the z

direction the points may be past the ends of the cylinder. This test is accomplished by

simply looking at the z component of the positions to make sure they are positive and less

than the length of the cylinder. To simplify this algorithm we wrap the line even if only

one of the points is within the length of the cylinder. In many cases, this test can be

skipped and the cylinder just assumed to be infinitely long.

Now that we have determined the location of points 2 and 6, we need to calculate

the location of points 3, 4 and 5. These will simply be evenly spaced along the arc created

on the surface of the cylinder between To and Ti. First, the angle dθz is determined by

4

zzd θθ = (5.21)

which the angle between oT and iT about z the divided into four pieces. Then oT is

translated and rotated about the z axis of the cylinder by

( ) zozj CdhjTdjRpv )*(* += θ , for j = 1, 2, 3 (5.22)

70

where jpv is the location of via point j and R is a rotation matrix about the z axis of the

cylinder.

The final step for this algorithm is to transform all the points from the cylinder

coordinate system to the world coordinate system then set the curve point positions to the

appropriate point. Point 1 has already been set to the origin position, point 2 is set to oT ,

point 3 is set to 1pv , point 4 is set to 2pv , point 5 is set to 3pv , point 6 is set to iT , and

point 7 is set to the insertion position.

Multiple Obstacle Wrapping

Many of the action lines in the body will need to wrap around multiple obstacles

to be able to closely approximate the appropriate path. In the previous two formulations it

was assumed that only one obstacle was encountered. This is handled by simply running

each algorithm in series in the order they are encountered and offsetting which curve

points they affect. Before any of the wrapping algorithms are run, point 1 of the curve is

set to the origin and the last point on the curve is set to the insertion position. The only

thing added to the above algorithms is an integer offset that the algorithm uses to

determine which portion of the curve it works on and the insertion/origin of that portion.

As an example, we will consider a line that starts at the origin before wrapping over a

cylinder and then wraps around a sphere before terminating at the insertion point (Figure

0.12). This curve will have 12 points, one point for the origin, one point for the insertion,

five points wrapping around the cylinder and five points wrapping around the sphere.

These points will be referred to as cpn where n is the number indicating their order. The

first step is to set the position of cp1 to the origin and the position of cp12 to the insertion.

As far as the wrapping algorithms are concerned the curve only has seven points with the

first point being the origin and the seventh point being the insertion.

71

Figure 0.12: Example of wrapping around two objects

Therefore, the algorithm will consider the origin to be the position of cp1+offset and the

insertion to be the position of cp7+offset. At the end of the algorithm it will set the position

of cp2+offset to oT , set the position of cp3+offset to 1pv , set the position of cp4+offset to 2pv , set

the position of cp5+offset to 3pv and set the position of cp6+offset to iT . Since the cylinder is

the first obstacle encountered when moving away from the origin, it’s algorithm will be

run first with the offset value set to zero. So, it will see cp1 as the origin and cp7 as the

insertion and then will set the position of cp2 through cp6 based on the algorithm. Next it

will run the algorithm for the sphere with the offset set to 5. The sphere-wrapping

algorithm will see cp6 as the origin and cp12 as the insertion and set the position of cp7

though cp11 based on the algorithm. It is important to note the interrelationship between

the two obstacles. The first obstacle will always consider cp7, which is the To point in the

second algorithm, to be the insertion point when calculating the wrapping positions for

cp2 through cp6. Then the second obstacle will always consider cp6, which is the Ti point

in the first algorithm, to be the origin when calculating the positions for cp7 through cp11.

Therefore, the solution for multiple obstacles must be found iteratively.

72

Examples

In this section several examples of the wrapping algorithms will be presented. The

above algorithms were programmed in a real-time rendering environment using a

language similar to C.

Spherical Wrapping

The simulation for this example is comprised of a curve called curveToWrap with

7 control points, a sphere called SphereMediumRes with a radius of 10, and two 3D

frames called insertion and origin, which represent the origin and insertion positions. The

logic of the simulation is shown in Figure 0.13 where the block Attach Curve Ends holds

the code that places the ends of the curve at the origin and insertion positions and the

block Spherical Wrap holds the code which performs the spherical wrapping algorithm

described in the previous section.

Figure 0.13: Logic for spherical wrapping example

It is important to note that these blocks are arranged in a loop such that for every

render frame first the Attach Curve Ends is executed and then the Spherical Wrap is

executed. The Attach Curve Ends block takes three inputs, the curve it should use, the 3D

frame representing the position of the origin, and the 3D frame representing the position

of the insertion. When executed, this script simply gets the position of the insertion and

73

origin points from the respective 3D frames and moves the ends of the line to the

appropriate position. The Spherical Wrap block takes four inputs, the obstacle around

which to wrap, the curve it should be wrapping, the cp offset if more than one obstacle is

being wrapped around, and the rope thickness. The following figures show the results

from four different configurations. For all the configurations the Attach Curve Ends block

took 0.018 ms to execute while the Spherical Wrap block took 0.07 ms to execute when

there was wrapping and 0.036 ms to execute when there was no wrapping.

Initially, the sphere is set to [8,0,0], the origin to [15,15,0], and the insertion to [-

12,0,0]. Since there is no intersection with the sphere, the intermediate points were

arranged in a straight line between the origin and insertion as shown in Figure 0.14.

Figure 0.14: Sphere wrapping example

Next the sphere is moved to [0,0,0] and the origin is moved to [15,15,-5]. The

result is shown in Figure 0.15.

74

Figure 0.15: Sphere wrapping example

Then the origin is moved to [15,0,0] and the insertion is moved to[-12, 0.5, 0],

resulting in Figure 0.16.

Figure 0.16: Sphere wrapping example

Finally, the insertion is pushed to [-12, 0.5, -0.75], which result in Figure 0.17

75

Figure 0.17: Sphere wrapping example

Cylindrical Wrapping

The simulation for this example is comprised of a curve called curveToWrap with

7 control points, a cylinder called BlueCyl with a radius of 10 and a length of 25, and two

3D frames called insertion and origin, which represent the origin and insertion positions.

The logic of the simulation is shown in Figure 0.18, where the block Attach Curve Ends

holds the code that places the ends of the curve at the origin and insertion positions and

the block Cylinder Wrap holds the code which performs the cylindrical wrapping

algorithm described in the previous section.

Figure 0.18: Logic for cylinder wrapping example

76

It is important to note that these blocks are arranged in a loop such that for every

render frame first the Attach Curve Ends is executed and then the Cylinder Wrap is

executed. The Attach Curve Ends block takes three inputs, the curve it should use, the 3D

frame representing the position of the origin, and the 3D frame representing the position

of the insertion. When executed, this script simply gets the position of the insertion and

origin points from the respective 3D frames and moves the ends of the line to the

appropriate position. The Cylinder Wrap block takes five inputs, the obstacle around

which to wrap, the curve it should be wrapping, the cp offset if more than one obstacle is

being wrapped around, a boolean value which determines if the cylinder should be

considered infinitely long, and the rope thickness. The following figures show the results

from four different configurations. For all the configurations the Attach Curve Ends block

took 0.018 ms to execute while the Cylinder Wrap block took 0.072 ms to execute

regardless if it was wrapping or not.

Initially, the cylinder is placed at [0,0,0] and oriented as shown in Figure 0.19.

The origin is placed at [25,0,-25] and the insertion is placed at [-25,23,5], resulting in

Figure 0.19. Since there is no intersection, the points are arranged in a straight line from

the insertion to the origin.

Figure 0.19: Cylinder wrapping example

77

Next, the insertion was moved to down to [-25,0,5], as shown in Figure 0.20.

Figure 0.20: Cylinder wrapping example

Then, the cylinder is moved up to [0,30,0], resulting in Figure 0.21.

Figure 0.21: Cylinder wrapping example

Finally, the cylinder is twisted about its z axis as shown in Figure 0.22.

78

Figure 0.22: Cylinder wrapping example

Multiple Obstacle Wrapping

The simulation for this example is comprised of a curve called curveToWrap with

17 control points, a cylinder called BlueCyl with a radius of 5 and a length of 25, another

cylinder called GreenCyl with a radius of 8 and a length of 18, a sphere called RedSphere

with a radius of 8, and two 3D frames called insertion and origin, which represent the

origin and insertion positions (Figure 0.23).

Figure 0.23: Setup for multiple obstacle wrapping example

79

The logic of the simulation is shown in Figure 0.24, where the block Attach Curve

Ends holds the code that places the ends of the curve at the origin and insertion positions,

the blocks Cylinder Wrap holds the code that performs the cylindrical wrapping

algorithm described in the previous section, and the block Spherical Wrap holds the code

which performs the spherical wrapping algorithm described in the previous section. It is

important to note that these blocks are arranged in a loop such that for every render frame

first the Attach Curve Ends is executed and then the first Cylinder Wrap is executed,

followed by the Spherical Wrap, and finally the second Cylinder Wrap.

Figure 0.24: Logic for multiple obstacle wrapping

The Attach Curve Ends block takes three inputs, the curve it should use, the 3D

frame representing the position of the origin, and the 3D frame representing the position

of the insertion. When executed, this script simply gets the position of the insertion and

origin points from the respective 3D frames and moves the ends of the line to the

appropriate position. The Cylinder Wrap block takes five inputs, the obstacle around

which to wrap, the curve it should be wrapping, the cp offset if more than one obstacle is

being wrapped around, a boolean value which determines if the cylinder should be

considered infinitely long, and the rope thickness. Note that the first block has a cp offset

of 0, the second block has a cp offset of 5 and the last block has a cp offset of 10. It is

important that the cp offset and the order in which the obstacles are encountered (from

the origin) correlate. For example, since the blue cylinder is encountered first its cp offset

80

should be zero. Figure 0.25 and Figure 0.26 show the results of one configuration. Total

execution time for all four blocks was 0.225 ms with the last Cylinder Wrap taking the

most time at 0.098 ms.

Figure 0.25: Multiple object wrapping example

Figure 0.26: Multiple object wrapping example

81

Discussion

So far we have shown that the algorithms work in real time. With three objects to

wrap around, the total execution time for the wrapping calculation is about 0.225 ms per

render frame, which accounts for less than 1% of the render time. However, since

multiple object wrapping is an iterative process it takes more than one frame for the

wrapping to find the correct positions. To determine how many frames it takes for the

solution to converge, the simulation used for the multiple body wrapping example was

paused and one of the objects was moved as shown in Figure 0.27. Then the simulation

was advanced one frame at a time so that the number of frames before the line stopped

moving could be counted.

Figure 0.27: Sphere moved while simulation is paused to determine how long the solution takes to converge

For the instance shown in Figure 0.27 the line stopped obvious movement after

four frames. This process was also performed on each of the other objects and also on all

three objects at the same time. Furthermore, the distance that the objects were displaced

was varied to determine if that had an affect on convergence time. It was determined that

82

distance does not significantly change the time to convergence but the number of objects

moved does. The longest convergence time encountered was when all three objects were

moved at the same time. 8 frames were counted before the line stopped obvious

movement. If the simulation is running real time (~30 fps) this translates into about 0.25

seconds. It should also be noted that in all cases, the first frame displayed the most drastic

change in positions.

During testing of the wrapping algorithms, a situation was discovered that caused

the wrapping to fail. This occurred when either an obstacle or one of the end points is

moved such that either the origin or the insertion moves within an obstacle. Since it is

impossible for any line originating from within a sphere or cylinder to be tangent to the

surface, the wrapping algorithm fails. This can be avoided by careful placement of the

obstacles.

Conclusions

It has been shown that a real time algorithm for wrapping about multiple known

objects is feasible. This chapter presented algorithms for wrapping around a sphere and a

cylinder and also detailed how to arrange these algorithms so that multiple objects could

be used. These algorithms will be useful for estimating a muscles centroid line or

multiple action lines (for muscles with wide attachment points) for any joint

configuration and in real time.

83

REAL TIME INTERACTION

Introduction

One way that our model is different from other models is that it is specifically

being designed to run real time. This implies that the model must respond to user input

instantly. For example, the user must have the ability to rotate the shoulder to arbitrary

orientation. During this movement, the action line for all the muscles should appear to

move as if they are really attached to the bones and wrapping over underlying objects.

Furthermore, the activation level of all the muscle should be constantly changing to

maintain the desired torques as the orientation changes. In this chapter we will discuss the

software in which the model was developed, the process used for enabling real time

interaction, and the graphical interface that will be used to relay information to the user.

Software

The group that is leading the way in real time interactivity is the video gaming

industry. In reality, the model we are developing will have interactivity like a video game

but also a scientific core dictating the output. Therefore an obvious place to look for

interactive 3D software is towards video game rendering engines and development

software. This software must have the following capabilities:

• Ability to import available 3D geometric models of the musculoskeletal

system

• Ability to render the objects in real time such that the objects can be

rotated and moved

• Ability to create a hierarchal structure of the bones and the attachment

points of the muscles

• Ability to create joints between the bone and limit the degrees of freedom

and range of these joints

• Ability to allow the user to interactively articulate the joints

84

• Ability to create lines representing the action lines of muscles which can

be changed as the arm is moved

• Enough programming structure to develop and deploy the wrapping

algorithms presented in chapter 5

• Ability to communicate with other software, which will handle the

optimization and the user interaction

After careful consideration Virtools™ was selected as the development software.

Not only did this fulfill the above requirements, it is also the software that the Virtual

Soldier Research lab is using to develop Santos™, which is where this model will

eventually be used. Virtools™ is a development tool that was initially created as

prototyping software for game developers. It allows simple graphical programming to

quickly develop interactive real time simulations. Furthermore, it also allows in depth

programming through either a SDK or a scripting language to develop more complicated

simulations.

The software selected for creating the simulation is very good for quickly creating

interactive real time simulation. However, it is somewhat onerous when it comes to

developing 2D user interfaces such as graphs, buttons, and information panels. Because

of this it was decided to create the interface window outside of Virtools™ in Microsoft

Visual Basic 6.0®, which is especially suited for creating graphic user interfaces. This

interface will display feedback graphs of various muscle data, allowing the user to change

the PSCA of the muscles and joint torques.

The last piece of software employed is a specialized program designed

specifically for solving optimization problems. This software will be used to solve the

optimization problem described in chapter 6. The program selected is called SNOPT and

is commercially available. SNOPT is used to minimize linear or nonlinear cost functions

with many variables and constraints. To find the minimum it uses a sequential quadratic

85

programming algorithm that obtains a search direction from a series of quadratic

programming sub problems. This results in a quick calculation of a local minimum.

Figure 0.1: Interaction between programs

These three programs will work together as shown in Figure 0.1 above. The user

will interact with both Virtools™ and Visual Basic®. Virtools™ will take care of

displaying the 3D model while communicating the moment arms of all the muscles to

Visual Basic®, which passes them on to SNOPT along with the desired torques and Fmax

for each muscle. SNOPT will return the predicted activation level of each muscle to

Visual Basic® which will take care of graphing all the appropriate data. Note that the

data being passed to SNOPT is based on the optimization formulation presented in

86

chapter 6. Other variables may be passed if different cost functions are used to predict the

muscle activation or force.

Creating User Interaction

The user will have the ability to interact with our model in three ways. The first is

the ability to navigate around, the second is the ability to arbitrarily move any of the

joints and the third will be the ability to change the torque at the joints.

Creating the interface for navigation is fairly straightforward, as this has been

developed for nearly every video game. Generally there are two types of navigation. One

is the first person movement where the user typically moves the camera around as if they

were walking around a room. The other is sometimes called the “environment in hand”

model (Wickens and Baker, 1995), where the virtual object is moved instead of the

camera as if the user were holding it in their hands. While the first person movement is

useful for maneuvering through mazes and worlds, the environment in hand is preferred

for inspecting objects, therefore this model was applied to our simulation. It was

programmed such that holding down the Alt key triggered the camera movement, which

was achieved with by clicking the mouse buttons while dragging the mouse. The left

button is used to rotate the object, right button zooms, and the middle button panned the

scene. Also, the Shift button allows the user to re-center the object and select a center of

rotation for the object by holding down the Shift key and clicking on the object.

Manipulating each joint interactively was also achieved through the use of the

keyboard and the mouse. The simulation was designed so that holding down a key would

trigger interaction with specific joint. The keys selected were q for the SC joint, w for the

GH joint, e for the UH joint and r for the UR joint. While one of these keys were held

down, the user could manipulate the joint by holding down one of the mouse buttons and

dragging up and down. The left button rotated about the z-axis, the middle button rotated

about the y-axis and the right button rotated about the x-axis. It should be noted that the

87

joint with only 1DOF could only be manipulated with the left mouse button. It should

also be noted that there is no interaction programmed for the AC joint. This is because

the AC joint moves in rhythm with the GH and the SC joints.

The interaction for changing the torques were incorporated into the Visual Basic

interface as sliders (Figure 0.2). Through this interface the user has the ability to specify

the torque about the x, y, and z axis for all five joints.

Figure 0.2: Joint torque user interface. For the joints with more than 1DOF the sliders are arranged such that the top slider is torque about x, middle slider is torque

about y and the bottom slider is torque about z.

Data Feedback

This model incorporates 35 action lines, each of which affects at least one joint

with at least one degree of freedom. Some muscles, such as the pectorals major originate

on the torso and insert on the humerus. Because of this, it affects three spherical joints

(the GH, AC, and SC). What this boils down to is that this model will generate a whole

lot of data that needs to be conveyed to the user in a logical manner. It was decided to

display three main pieces of data. First will be the moment arms that each muscle creates

88

about the joint or joints that it crosses for any limb configuration. Second will be the max

torque that each muscle can apply to each joint or joints that it crosses for any limb

configuration. Lastly it will display the predicted activation level of all the muscles for a

given set of joint torques and arm configuration. All this data will be displayed as bar

graphs in a qualitative manner.

Moment Arm Display

The moment arms are calculated within Virtools™ and passed to Visual Basic.

They have to be calculated in Virtools™ because they are derived from the geometry and

the action lines of each muscle. The moment arms were calculated with the following

equation where r is the vector pointing from the joint to where the action line inserts and

F is the unit vector pointing along the action line at the point of insertion.

Frma ˆ×= (6.1)

Figure 0.3: Moment Arms of muscles crossing the sterno-clavicular joint

89

Because many muscles cross more than one joint, a separate graph had to be

created for each joint. The moment arms for the SC joint are shown in Figure 0.3. The

joint and its axes are shown as a picture on the right side of the control panel. Along the

left side all the muscles are listed and down the center is the actual moment arms

calculated for that particular arm configuration where the red bars indicate torque about

the x axis, green bars indicate torque about the y axis and the blue bars indicate torque

about the z axis. These colors correlate to the axes shown in the picture of the joint.

Additionally, the bars on the left side of the line indicate negative torque while the bars

on the right side indicate positive torque. It is important to note that this interface is

communicating with Virtools™ in real time, so any movement of the arm within

Virtools™ will affect the display. The moment arms for the rest of the joints are shown in

Figure 0.4 and Figure 0.5.

Figure 0.4: Moment Arms of muscles crossing the acromio-clavicular joint (left) and the gleno-humeral joint (right)

90

Figure 0.5: Moment arms of muscles crossing the ulno-humeral joint (left) and the ulno-radial joint (right)

Max Torque Display

Max torque contributed by each muscle is calculated with the equation 6.2 where

ma is the moment arm calculated with equation 6.1 and Fmax is the maximum force that

the muscle can generate, which can be calculated by the physical cross sectional area

(PCSA) and the maximum muscle stress, as shown in equation 6.3. The PCSA for each

muscle was found in literature (Maurel and Thalmann, 1999) and 600 kPa was used for

the maximum muscle stress (Berme et al., 1987). As with the moment arm data, this is

displayed as qualitative bar graphs for each joint. The resulting display is shown in

Figure 0.6, Figure 0.7, and Figure 0.8.

( ) maFFrFFrT maxmaxmaxmaxˆ =×=×= (6.2)

maxmax *σPCSAF = (6.3)

91

Figure 0.6: Max torque of muscles crossing the sterno-clavicular joint

Figure 0.7: Max torque of muscles crossing the acromio-clavicular joint (left) and the gleno-humeral joint (right)

92

Figure 0.8: Max torque of muscles crossing the ulno-humeral joint (left) and the ulno-radial joint (right)

Activation Display

That last group of data to be displayed is the predicted activation level of all the

muscles. Again this will be represented as a qualitative bar graph. The data for this graph

is calculated from the SNOPT code using the optimization algorithm detailed in chapter

3. Note that the input for this code is the desired torque for each joint, the current moment

arms and PCSA data. Because the moment arms are being calculated in Virtools™ based

on the current geometry, this graph will change in real time as the joints are rotated.

Additionally, moving the torque sliders will change the activation data in real time. It

should also be noted that the previous data sets (moment arms and max torque) are joint

dependent while the activation data is not. An example of the activation graph is shown

in Figure 0.9 where the yellow bars indicate the level of activation. The longer the bar,

the more that muscle is activated.

93

Figure 0.9: Predicted activation levels

Conclusion

In this chapter we have presented the software used for development and the real

time interfaces for both user input and data feedback. We have presented all the pieces of

the research used to create our interactive arm model. In the next chapter we will present

various examples and discuss the results.

94

RESULTS AND DISCUSSION

Introduction

In this chapter we will start out by examining the lower arm, which includes the

elbow (UH), the hand pronation joint (UR) and the associated muscles crossing them.

Then we will examine the pectoral girdle, which includes the three shoulder joints (SC,

AC, and GH) and the associated muscles. Finally we will present the system as a whole.

For each region we will examine the computed moment arms, max torque, and predicted

activation levels for the associated muscles and discuss the data. In all the examples, the

moment arms were calculated from equation 6.1 in chapter 6, max torque was calculated

from equation 6.2 in chapter 6 and the predicted activation levels were calculation from

the optimization algorithm presented in chapter 3. The PCSA data and max muscle stress

values used are shown in Figure 0.1 (Maurel, 1999). For these examples, these values

were held constant. At the end of the chapter we will present some preliminary

comparisons of our model to previous models.

Figure 0.1: Max muscle stress (kPa) and PCSA (cm2) data used in the examples

95

Lower Arm

The lower arm consists of two joints and 11 action lines representing seven

muscles. The joints are the elbow joint (UH) and the hand pronation joint (UR). The

action lines are shown in Figure 0.2.

Figure 0.2: Action lines for the lower arm

96

First we examine how the action line wrapping algorithm presented in chapter 5 is

working. Figure 0.3 shows the lower arm in three configurations. Note how the six action

lines wrap over the distal end of the humerus and the Supinator 1 action line wraps about

the radius as the hand is pronated. It is important to emphasize that this wrapping is

occurring in real time as the joints are interactively being rotated.

Figure 0.3: Action lines wrapping around the elbow. From left to right: elbow fully extended with hand supinated, elbow halfway flexed with hand supinated,

elbow fully flexed with hand pronated

Next we will move position the lower arm in various positions and look at the

moment arms, max torque and predicted activation levels for the muscles. Figure 0.4

displays the first configuration and resulting moment arms and max torque. In this

configuration the elbow if fully extended and the hand is neutral, which we define as

halfway between pronation and supination. The graphs in the figure display the moment

arms and max torque about each joint for each muscle. By observing the graphs for the

elbow joint (UH) one will note that all the action lines shown create torque about the UH

joint while only five create a moment about the UR joint. This is appropriate because

while all the action lines cross the elbow joint (i.e. they originate on a bone which is

proximal to the elbow and insert on a bone which is distal to the elbow) not all the

97

muscles cross the UR joint. Specifically, the muscles which insert on the radius cross

both the UR and UH joint while the muscles that insert on the ulna only cross the UH

joint.

Figure 0.4: Example 1; Hand is neutral and the elbow if fully extended. The charts show the moment arms and max torque about each joint for all 11 action lines of the

lower arm

98

By looking at the sign of the moment arm we can also determine what action that

muscle will have on the respective joint. All the action lines with positive moment arms

on the UH joint are used for flexion while the action lines with negative moment arms are

used for extension. As expected, the triceps, supinator, and anconeus are all used for

extension while the biceps, brachialis, brachioradialis, and pronator teres are used for

flexion. The three triceps action lines have the largest moment arm for extending the arm

while the brachioradialis has the largest moment arm for flexion. However, the maximum

torque that these muscles can apply is also dependent on the size of the muscle. The main

extension muscles are still the triceps but there are two major flexion muscles, the

brachioradialis and the brachialis. Even though the brachialis has a short moment arm, its

size lets it create almost as much torque as the brachioradialis.

At the UR joint, a positive moment arm indicates the muscle is used for

supination of the hand while a negative moment arm is used for pronation. Therefore it

can be observed that all the muscles crossing this joint are used for supination except for

the pronator teres and the muscle that can contribute the most torque towards supination

is the brachioradialis. It should be noted that these graphs should only be used for

qualitative comparison to the other action lines in the same graph. The size of the bars

displaying torque about the UR joint cannot be compared to the size of the bars

displaying torque about the UH joint.

Figure 0.5: Predicted muscle activation for various torques

99

Next we will look at the predicted activation levels of all the muscles to achieve a

desired torque as shown in Figure 0.5. Note that the arm is still in the configuration as

shown in Figure 0.4. Initially, the slider for the elbow torque was increased until no

feasible solution was found by the optimization code, then the slider was stepped back so

a solution was found at the very edge of the feasible space. This resulted in a flexion

torque about the elbow of 8 Nm as shown in the first graph of Figure 0.5. It is interesting

to note that while the optimization code is telling us this the max torque we can generate

about the elbow, only three muscles are active; the brachialis, brachioradialis, and

pronator teres. This is because we have constrained the torque about the UR joint to be

zero. The brachialis, which creates no torque about the UR, (refer to Figure 0.4) is fully

activated because it is the only muscle that creates a positive torque about UH without

affecting UR. The brachioradialis is also slightly activated to help create torque about the

elbow but it also creates positive torque about the UR joint since it inserts on the radius.

In order to maintain zero torque about the UR joint, the pronator teres, which is the only

muscle that is available to create negative torque about the UR, is activated to counter

positive torque created by the brachioradialis. The step size on the slider used to select

how much torque is desired about the elbow is 0.1 Nm. Allowing a finer step size on the

elbow torque slider may reveal that a little more torque could be generated because the

pronator teres is not fully activated, thus the brachioradialis could be activated a little

more. Finally, it can also be observed that the two flexion muscles with the largest

moment arms were the muscles that were activated to generate the positive torque.

In the second graph of Figure 0.5, the torque about the UR joint is moved up to 2

Nm while the torque about UH is left at 8 Nm. Note that the brachioradialis is now fully

activated, the brachialis’ activation has been significantly reduced, and the pronator teres

is no longer activated. Furthermore, both the biceps and a supinator muscle are now

activated. The brachioradialis is fully activated because it has the ability to create the

largest positive torque about both the joints, thus contributing to both of the desired

100

torques. Both of the biceps also contribute positive torques to both joints, but are less

effective than the brachioradialis so they are not as active. The supinator 1 muscle has

likely been activated to contribute to the torque about the UR joint because of the

available torque it can generate. However, this also creates a negative torque about the

UH joint, albeit small compared to the other muscles. The brachialis is also active to help

with the UH torque. Note that this muscle does not contribute to the UR torque.

Observation of the second graph of Figure 0.5 shows that only one muscle is fully

activated, this indicating that more torque can be generated. Therefore both of the torques

are increased until both are at the edge of the feasible region. The result is a torque of

16Nm about the elbow and 2.5 Nm about the UR, as shown in the third graph of Figure

0.5. It can be observed that all the flexion muscles about the elbow are nearly completely

activated indicating that not much more positive torque can be generated about the elbow.

Similarly, all the muscles available for positive torque about the UR are activated but the

supinator 1 muscle is not fully activated. This either indicates that we are not quite at the

edge of our feasible space or that the flexion muscles cannot counter any more negative

torque about the elbow from this muscle.

So far, none of the triceps have been activated because no negative torque has

been needed about the UH joint. Therefore, the desired UR torque was held constant

while the UH torque was reduced until we reached the approximate edge of the feasible

space. The result was –4.1 Nm and the activation levels can be seen in the fourth graph of

Figure 0.5. From this graph it can be observed that all the extension muscles are fully

activated except for the supinator 2. The brachialis and the pronator teres are both not

active at all while the brachioradialis and the biceps are active, which are being used to

generate the positive torque about UR. However, these muscles are also creating positive

torque about UH, which the extensor muscles must counter. Therefore, if the UR torque

was reduced the biceps and brachioradialis would be able to relax, thus easing the amount

of torque the triceps need to create. This is shown in the last graph of Figure 0.5 where

101

the desired UR torque is set to zero. From the graph it can be observed that none of the

extensor muscles are fully activated, implying that more negative torque can easily be

generated at the elbow. It can also be noted that the only extensor muscle that is not

activated at all is the supinator 1 muscle, which is the only extensor muscle that also

creates torque about the UR joint.

Figure 0.6: Example 2; Hand is neutral and the elbow if fully flexed. The charts show the max torque about each joint for all 11 action lines of the lower arm

102

In the second example the hand is left neutral while the

elbow is fully flexed to 120° as shown in Figure 0.6. This

time only the max torque is displayed for each muscle.

When compared to the max torques of Figure 0.4 one will

observe that a number of muscles used for flexion and

extension is the same. Similarly, the number of pronating

and supinating muscles about the UR joint are also the

same. When considering the amount of available torque

about the UR joint, it should be noted that the amount of

available negative torque is less while the amount of

available positive torque is considerably greater. The max

torque of the brachialis is about the same but the max

torque of the brachioradialis has nearly doubles while the

max torque of both biceps have nearly tripled. All the max

torques of the extensor muscles have shrunk somewhat

indicating that the arm has less capability for creating

negative torque in this position. There is not much change

noted in the max torques of the muscles crossing the UR

joint. Since the PCSA is considered constant, the difference

in available torque between the two arm positions is due to

a change in the moment arms.

103

Figure 0.7: Predicted muscle activation for various torques

To examine the predicted activation levels and explore how they have changed

the same torques were used as in figure Figure 0.5 however, because of the different arm

orientation most of the torque combinations were in the infeasible space so the UR torque

was adjusted until a feasible solution was found. In the first graph, the UH torque is set to

8 Nm while the UR torque is set to zero. It will be noted that activation is similar to the

previous example except that the bicep long is now slightly activated. This is likely

because its available torque has increased because of a change in its moment arm, thus

making it more effective and also because the brachioradialis’ available torque about the

UR has also increased which indicates that this muscle creates more undesired torque

about the UR, which much be countered by the pronator teres, who’s activation level has

also increased. The brachialis is still fully activated because its moment arm has not

changed significantly when compared to the previous example and it does not create and

torque about UR.

Figure 0.8: Predicted muscle activation levels for the muscles of the lower arm with a desired torque of 23.1 Nm about the UH joint and 2 Nm about the UR joint

In the second graph of Figure 0.7 the UH torque is held at 8 Nm while the UH

torque is increased until it is just at the edge of the feasible region. Interestingly we are

only able to generate 1.6 Nm in UR torque, which is less than the 2 Nm in the previous

104

example, even though the available torques about the UR joint have not changed

significantly. A major difference noted between this and the previous example is the near

full activation of all the extensor muscles indicating that excessive positive torque is

being created about the UH joint in order to achieve the desired UR torque. Further

inspection will reveal that the muscle with the smallest available torque about the elbow

(with exception to the pronator teres, which is not being used because it also creates

negative torque about the UR joint) is the only flexion muscle that is fully activated. In

fact the only other flexion muscle activated is the brachioradialis, which also has the

largest amount of available torque about the UR joint. So, what has happened is that the

moment arms used to create the UR torque have not changed significantly but the

moment arms about the UH joint have and since positive UR torque is primarily

generated by the biceps and the brachioradialis the activation needed to create the UR

torque is creating excessive positive torque about the UH. Therefore, if more torque is

allowed about the UH then the extensor muscles will be able to relax and the graph will

begin to look more like the previous example as can be seen in Figure 0.8 where the UH

torque is raised to 23.1 Nm and the UR joint torque is raised to 2 Nm.

Next the UH joint torque is raised to 16 Nm and the UR joint torque is raised to

2.4 Nm in order to compare with the previous example. Note that in the previous

example, the UR joint torque was set to 2.5 Nm, however in this configuration this was

just outside of the feasible space so the UR joint torque was set to 2.4, which was within

the feasible space. The result is displayed as the third graph in Figure 0.7. Again, all the

extensor muscle are active while only two of the flexion muscles are being used

indicating that excessive torque is being generated about the UH joint. As with the

previous scenario, the significant increase in the moment arms of the biceps and

brachioradialis about the UH joint while having insignificant increases in the moment

arms about the UR joint have reduced the feasible space. Allowing more torque about the

elbow expands the feasible space and results in an activation pattern similar to the

105

previous example, as is shown in Figure 0.9 where the UH joint torque was raised to 38.7

Nm and the UR joint torque was raised to 2.5 Nm.

Figure 0.9: Predicted muscle activation levels for the muscles of the lower arm with a desired torque of 36.7 Nm about the UH joint and 2.5 Nm about the UR joint

The final graph in Figure 0.7 shows the result of setting the UH torque to –4.1 and

the UR torque to 0.2. Because the available torque of the extension muscles has

decreased so has the feasible space. This can be observed in the graph by noting that

nearly all the extensor muscles are fully activated, including the supinator 1 muscle,

which also creates positive torque about the UR axis. Therefore, if less UR torque is

desired there are two options. One is to create positive UR torque with the pronator teres

in order to counter the torque being generated by the supinator muscle. However, this

would cause positive torque about the UH joint as well, which would have to be

countered with the triceps lateral. The other option is to relax the supinator 1 so as to

reduce the amount UR torque it is creating. However this will also reduce the amount of

negative torque it is contributing to the UH joint. This reduction will have to be balanced

with an increase of activation in the tricep lateral. Either solution will require the triceps

lateral to have an increase in activation and from the graph is can be observed that it is

already nearly fully activated. Conversely, if more torque was desired about the UR there

are again two solutions. One is to allow the supinator 1 muscle to become more active,

thus increasing the torque about the UR joint and also contributing more negative torque

106

to the UH joint. This will have to be balanced by a reduction in the activation of the other

extension muscles. However, one will note that this solution is maximized when the

supinator 1 muscle is fully activated, which it nearly is already. The other solution is to

create more torque about the UR with one of the bicep muscles. However, any activation

of the bicep will cause positive torque about the UH, which will have to be balanced by

the extensor muscles who are already nearly fully activated.

In the previous two examples the elbow was flexed while the UR joint was left

fixed. In the next three examples, the elbow will be left fixed at about mid flexion and the

hand will be pronated then supinated to observe what changes that causes. The first of

these three examples is shown in Figure 0.10 where the hand is neutral. Displayed is the

max torque about each joint for each action line as well as the predicted activation level

for the muscles for two different torque configurations.

107

Figure 0.10: Example where the elbow is flexed to the position shown while the hand is neutral. The graphs display the max torque that each action can apply about each joint and the predicted activation level of each muscle for two different

torque configurations.

When comparing the max torque available about the elbow to the previous two

examples, it can be noted that both biceps and the brachialis have substantially more

torque available with the elbow in this position, indicating that the peak moment arm is

somewhere within the range of motion as opposed to peaking out at either full extension

or flexion. The extensor muscle torques are generally smaller than the first example but

larger than the second example indicating that less negative torque about UH is available

108

as the arm is flexed. When comparing the max torques about the UR joint the biceps

again are significantly larger than in the previous two examples. There is not much

change in the rest of the moment arms.

To observe the activation levels of the muscles two torque configurations are

presented. These same configurations will be used in the next two examples so as to

understand the effects of hand pronation and supination. The first graphs displays the

predicted activation levels to achieve 33.1 Nm about the UH joint and 2.4 Nm about the

UR joint. It should be noted that all the flexion muscles are activated somewhat equally

with exception for the pronator teres, which is likely not being used because it generates

negative torque about the UR joint and has a relatively small amount of effective torque

about the UH. The brachioradialis is fully active because it has the largest moment arm

about the elbow it also contributes to the positive torque about UR. The bicep short is the

second most activated muscle even through it has the second shortest moment arm about

the UH. However it also has the largest available torque about the UH joint, thus

significantly contributing to the UR torque.

In the second activation graph the UR torque is set to 1 Nm and the UH is set to

–1 Nm. As expected, all the extensor muscles are active with one of the triceps and the

supinator 1 completely active. Also active is the bicep short, which indicates that the

supinator 1 muscle does not have enough capacity to generate the desired torque about

the UR joint. The bicep short is likely being used because it has the most available

positive torque about the UR joint and compared to the other muscles available to create

positive torque about the UR it has the lowest effect on the positive moment about UH

(except for the supinator 1 muscles, which is already fully activated). However, the bicep

short is also creating positive torque about the elbow, which must be balanced the

extensor muscles. By observing the relative sizes of the max torque available to the

extensor muscles and the bicep short, it can be observed that a slight increase in the

activation of the bicep short will have to be countered by a significant change in the

109

extensor muscles. For example, consider if the bicep short were to increase its activation

by 0.1. For this to be countered by one of the tricep muscles, who’s available torque is

about five times smaller, it would have to increase it’s activation level by approximately

0.5. Therefore, it can be concluded that any slight increase in the amount of positive

torque about the UR is going to limit the amount of available negative torque about the

UH because the extensors will have to use more torque to counter the increase of the

positive torque being created about the UH.

In the next example, the elbow is held in the same position while the hand is

pronated as shown in Figure 0.11. When comparing the max torques of this example to

the previous example it is interesting to note that the torques about the UH show no

significant change while all the max torques except for the supinator 1 show significant

changes about the UR axes. The max torque of both the biceps have dropped

substantially while the brachioradialis has as increased dramatically. Also, the pronator

teres has changed signs, indicating that there are no muscles available to create and

pronation torque.

When comparing the activation levels of this example with the previous example

some slight differences can be observed. Since there was insignificant changes in the max

torques about the UH, the changes in activation can be attributed to the changes in the

moment arms about the UR joints. In the first activation graph of Figure 0.11 where the

UH and UR torques are set to 33.1 Nm and 2.4 Nm, respectively, the supinator 1 is no

longer active, the brachialis is now fully active, and the biceps activation have been

somewhat reduced. The reduction of the biceps and the supinator 1 indicate that the

brachioradialis is now able to create the majority of the UR torque needed, which is

reasonable considering the increase in its available torque. This is further emphasized by

the increased activation of the brachialis, which does not create any UR torque.

Furthermore it should be noted that the two muscles with the most available torque about

UH are the two muscles that are fully activated.

110

Figure 0.11: Example where the elbow is flexed to the postion shown while the hand is pronated. The graphs display the max torque that each action can apply about each joint and the predicted activation level of each muscle for two different

torque confuguratons.

Looking at the second activation graph in Figure 0.11 a more significant change

can be noted, particularly in the bicep short and the pronator teres. The bicep is no longer

active while the pronator teres is now full active. This is likely because pronator teres

now has the ability to create significant positive torque about the UR joint while creating

a smaller amount of positive torque about UH joint as compared to the bicep short

111

muscle. It should also be noted that none of the extensor muscles are fully activated,

indicating that there is capacity to create more negative torque about the UH joint.

Figure 0.12: Example where the elbow is flexed to the postion shown while the hand is spinated. The graphs display the max torque that each action can apply about each joint and the predicted activation level of each muscle for two different

torque confuguratons.

In the final example of the lower arm we again keep the elbow fixed but supinate

the hand as shown in Figure 0.12. By comparing the max torques about the joints with

Figure 0.10 and Figure 0.11 we see that there is still insignificant change in the max

112

torques about UH and significant changes in the max torques about the UR joint. The

biceps both have max torque values similar to when the hand is in its neutral position

(Figure 0.10) while the brachioradialis is now creating substantial pronation torque along

with the pronator teres and the supinator 1 has very little capacity for creating torque on

either joint.

In comparing the first activation graph we see that this graph is more similar to

when the hand is pronated than when the hand is neutral except the brachioradialis is less

active while the biceps activity has increased. This is likely because activating the

brachioradialis now creates substantial pronation torque, which must be balanced by the

biceps. It is interesting to note that nearly all the flexion muscles are fully activated with

exception of the pronator teres, which cannot contribute much to the UR torque and will

also create negative torque about the UR joint. This torque will have to be balanced but

the biceps are already fully activated which implies that this torque must be countered by

the supinator 1, whose available torque is fairly insignificant. Therefore it can be

ascertained that 33.1 Nm is nearing the limit of UH torque in this configuration while

requiring 2.4 Nm about the UR joint. If the required torque about the UR joint is reduced,

then both the brachioradialis and the pronator teres will be able to create more positive

torque about the UH joint because further activation of either of these muscles will create

more negative torque about the UR joint.

The second activation graph of Figure 0.12 show the predicted muscle activation

levels for a torque of –1 Nm about the UH and 1 Nm about the UR. The result is quite

similar to the predicted activation when the hand is in the neutral position (Figure 0.10)

except the bicep long is active instead of the bicep short and the supinator 1 activation

level has dropped while the anconeus has increased slightly. This could be because the

available torque from the supinator 1 has been reduced, thus making it less effective for

creating UR torque. Therefore its activity was reduced and the anconeus was activated to

make up for the negative torque about the UH that the supinator 1 previously created. It is

113

unclear why the bicep muscles have flipped activation. It is possible the bicep long

muscle is slightly more effective at creating UR torque than the bicep short but this

cannot be seen in the graph.

Pectoral Girdle

The pectoral girdle consists of three joints and 24 action lines representing 16

muscles. The joints are the sterno-calvicular (SC), the acromio-clavicualar (AC) and the

gleno-humeral (GH). The action lines are shown in Figure 0.13. Note that this figure does

not show two action lines which are the trapezius long extending from the ulna to the

scapula and the bicep long which extends from the radius to the scapula (refer to Figure

0.2).

Figure 0.13: Action lines of the pectoral girdle

After looking at Figure 0.13 one begins to understand just how complex the

pectoral girdle is. Not only does it have 24 action lines, it also has three spherical joints.

114

Furthermore, many of the action lines cross all three joints, thus having the possibility to

create torque about nine different axes. In the previous section, we were dealing with two

rotation axes so understanding the predicted activation levels was fairly simple. This will

not be the case for the shoulder muscles. In this section several examples will be

presented along with the corresponding data. To make analysis somewhat easier, only the

max torque about the SC and GH joint will be presented along with some activation

results.

Figure 0.14: Example of the pectoral girdle. Graphs display max torque about the SC and GH joint

115

The first example is displayed in Figure 0.14 where the graphs represent the

maximum available torque from each action line about the SC and GH joint. Just above

each graph is an image of the respective joint along with the axes of rotation where red is

the x axis, y is the green axis and blue is the z axis. The torques shown in the graphs are

also colored such that red indicates torque about the red (x axis), etc. Additionally, the

direction of the rotation is based on the right hand rule. Further descriptions of the joint

axes can be found in chapter 4.

Looking at the first graph we can start to get a feel for how movement or torque is

created about the clavicle. By observing the graph it can be noted that 15 action lines

cross the SC joint. As expected, all these action lines originate somewhere on the thorax

and insert on either the scapula or the humerus. Essentially, there are two movement

associated with the clavicle. Negative rotation about x-axis will cause a shrugging motion

at the shoulder while positive rotation about the z will push the shoulder backwards.

Rotations about the y-axis are minimal, therefore will not be discussed. Starting with the

shrugging of the shoulder, which is created by negative torque about the x, we can see

that four muscles can be used for this in this posture, the levator scapulae, upper

trapezius, the rhomboids, and the latissimus dorsi. While levator scapulae, upper

trapezius, and the rhomboids seem reasonable the latissimus dorsi doesn’t. After careful

inspection of the code the reason for this is still unclear and should be addressed in future

work. Positive torque about the x-axis is generated with the lower trapezius, the serratus

anterior and the pectoralis major and minor, all of which seem reasonable. Negative

torque about the z-axis is created with the serratus anterior and the pectoralis major and

minor muscles with the most available torque coming from the serratus anterior. Positive

torque is generated with the trapezius, rhomboids, and latissimus dorsi. Looking at the

model and anatomy, all of these seem reasonable.

Next the max torque about the GH joint will be examined. First thing to note is

that 16 action lines cross the GH joint, five of which also cross the SC joint. Positive

116

torque about the x-axis will cause the arm to want to hyperextend. This torque is created

by the posterior deltoid, lateral deltoid, teres major, latissimus dorsi, and the tricep long

with most of the available torque coming from the posterior deltoid. Negative torque

about the x-axis is generated by the pectoralis major, coracobrachialis, supraspinatus, and

anterior deltoid with most of the available torque coming from the deltoid. Positive

rotation about the y-axis will cause internal rotation of the arm. Most of the available

torque about this movement is created by the subscapularis with smaller amounts coming

from the pectoralis, anterior deltoid, and teres major. Torque for external rotation is

mostly available from the infraspinatus with small amounts available from the posterior

deltoid and teres minor. Negative torque about the z-axis will cause abduction of the arm

while positive torque will result in adduction of the arm. Most of the negative torque is

supplied by the lateral deltoid, with additional contributions coming from the

supraspinatus, posterior deltoid, subscapularis and the bicep long. Adduction torque is

mostly created by the pectoralis major, coracobrachialis, anterior deltoid, teres major,

with less torque coming from infraspinatus, latissimus dorsi, and long tricep. Comparing

these available torques to anatomical data shows all are reasonable.

Next we will explore the how the muscles are activated to achieve certain torques.

To keep the analysis reasonable, only one torque about a single axis will be considered at

a time. Note the arm is still in the same configuration as shown in Figure 0.14. The first

torque considered is –30 Nm about the x-axis (red axis in Figure 0.14) of the SC joint.

This torque is similar to some of the torque needed to carry a backpack or to shrug. The

result is shown in Figure 0.15. As expected the two muscles with the most available

torques are the most activated. What it interesting to note is the reaction of the other

muscle that are trying to balance the rest of the joint axes to zero (all the GH torques are

constrained to 0 Nm along with the z axis of the SC joint). Nine muscles are significantly

activated but only three of them are able to contribute any torque to the negative x-axis of

the SC joint while the upper serratus anterior muscle and the lower pectoralis major both

117

contribute positive torque to the x-axis. These muscles are likely being activated to

counter the positive z torque being created by the upper trapezius, which in turn cause the

shoulder muscles to become active in order to counter the torques the pectoralis is

creating about the GH joint.

Figure 0.15: Predicted muscle activation to create -30 Nm of torque about the x axis of the SC joint

Next, the torque about the SC x value is returned to zero and the torque about the

z-axis of the SC joint (blue axis in Figure 0.14) is set to –15 Nm. The result is shown in

Figure 0.16. Again, the two muscles with the most available negative torque are the most

activated muscles. This time 10 muscles are activated, four of which contribute some of

the desired negative torque. All four of these also create positive torque about the x-axis

of the SC joint, which is countered by the levator scapulae and the trapezius. Also, is with

the previous example, some of the shoulder muscles are activated to counter the moments

created by the pectoralis major muscles about the GH joint.

118

Figure 0.16: Predicted muscle activation to create -15 Nm of torque about the z-axis of the SC joint

Figure 0.17:Predicted muscle activation to create -15 Nm of torque about the z-axis of the GH joint

119

Now the torques about the SC will be set to zero and the torque about the z-axis

of the GH (blue axis in Figure 0.14) is set to –15 Nm resulting in Figure 0.17. This is the

type of torque that would be seen when a subject is trying to abduct the arm from the

torso. As expected the lateral deltoid is the most active muscle because it has the most

available negative torque about the z-axis. This muscle also creates some positive torque

that must be countered, which is likely why the anterior deltoid and supraspinatus are

active.

Figure 0.18: Predicted muscle activation to create -15 Nm of torque about the x-axis of the GH joint

The z torque about the GH joint is returned to zero and a –15 Nm torque is

applied to the x-axis of the GH joint (red axis in Figure 0.14), resulting in Figure 0.18.

This is the type of torque one would see if a subject was attempting to raise their elbow

up in front of their body. The anterior deltoid is the most activated muscle, which is

reasonable considering the amount of available negative torque is holds. The only other

120

two muscles that can contribute negative torque to the x-axis are the pectoralis major

muscles, both of which are active. Consequently, these muscles also create torques about

the SC joint, which must be balanced, resulting in the activation of several more muscles,

including the trapezius and the rhomboids.

Figure 0.19: Predicted muscle activation to create 30 Nm of torque about the y-axis of the GH joint

Now the y-axis (green axis in Figure 0.14) torque is set to 30 Nm and the x torque

is returned to 0 resulting in Figure 0.19. The muscles most effective for creating this

torque are the subscapularis, teres major and the pectoralis majors, all of which are

significantly activated. The rest of the activated muscles are primarily being used to

counter the undesired torques about the rest of the axes.

In the final example, a torque is defined for all the axes of the GH and SC joint to

show the interaction. For the SC joint the torque about the x axis is set to 30 Nm while

the torque about the z axis is set to 35 Nm. At the GH joint the x torque is set to 35 Nm,

121

the y torque is set to –8 Nm and the z torque is set to 35 Nm. The result is shown in

Figure 0.20. One thing to note about this figure is that the activation levels of the muscles

usually only associated with the lower arm are also shown. Even though zero torque is

desired about the elbow several of these muscles are activated. This is because of the

tricep long is activated to help satisfy the torques about the shoulder, resulting in torque

generated on the ulna must which must be balanced.

Figure 0.20: Predicted muscle activation for selected torques about the GH and SC joint

For the last two examples the arm will be moved to two different postures and the

max torque for each muscle about both the SC and GH joint will be displayed to

demonstrate that the amount of available torque is dependent on the arm posture. In the

122

first pose, the shoulder is shrugged as shown in Figure 0.21 along with the corresponding

data. When comparing to the previous posture (Figure 0.14) the largest change is seen in

the serratus anterior muscles with slighter changes noted in the pectoralis major and

minor as well as the latissimus dorsi. When looking at the changed about the GH joint the

most significant difference noted is the teres major.

Figure 0.21: Max torque about the SC and GH joint for the arm in the position shown

The second position is with the arm abducted straight out with the palm facing

forward as shown in Figure 0.22 along with the resulting max torque values. Since the

scapula has not moved, it is no surprise that very little difference is noted about the SC

joint because most of the action lines run between the scapula and the thorax. The most

obvious change is in the available torque about the x-axis from the pectoralis major

123

action lines. When observing the changes about the GH joint, several changes can be

noted. In this position, the pectoralis major muscles have lost most of their capacity for

adducting the arm (positive torque about the z-axis) while the subscapularis capacity has

increased. The posterior deltoid is still the largest producer of positive torque about the x-

axis even thought its capacity has been reduced.

Figure 0.22: Max torque about the SC and GH joint for the arm in the position shown

Comparison with Experimental Data

In the previous sections we have demonstrated that our model produces

reasonable moments as far as direction and relative magnitude is concerned but how does

this compare to previous studies. Preliminary comparison was achieved by plotting the

moment arms of five action lines as the elbow moved from full extension (0°) to flexion

124

(120°) with the hand in the neutral orientation as shown in Figure 0.10. By doing this we

could compare our results to the results shown by Murray et al, who compared their

model and results to six other studies (Murray et al, 1995). The result is shown in Figure

0.23.

Figure 0.23: Comparison of our proposed model to previous studies

125

In order to compare the results, our model was scaled so it was similar in size to

the model presented by Murray et al. This was accomplished by uniformly scaling our

model until the length of the humerus was 30.3 cm as defined by Murray et al. It can be

observed from Figure 0.23 that the moment arms calculated by our model fit reasonably

well with the data presented in previous studies, especially the bicep, brachioradialis, and

pronator teres. The triceps, while maintaining a shape that is similar to the other data it

seems to like it needs to be shifted down about 1 cm. Because the shape is fairly

consistent with the previous studies this seems to indicate that the insertion point may

need to be adjusted. The brachialis moment arm starts out within the range of the

previous studies but then arc out too low at the end. Furthermore, its peak happens at

about 80° while the others either peak out at the end of the flexion. This seems to indicate

that the wrapping obstacles need to be adjusted.

Conclusions

In this chapter we have presented several examples of our model. In all the examples the

results were discussed and everything seems to be quite reasonable. In comparing our

moment arms to previous studies the data was shown to fit although some modifications

to the model could improve the fit. Further validation should include comparing the

predicted muscle levels to EMG studies and comparing the rest of the calculated moment

arms to experimental data. It should be noted that all the examples were able to run in

real time with the frame rates of the simulation of the never dropping below 60 frames

per second. While interacting with the joints or joint torques no obvious delay was

noticed between user input and data output.

126

CONCLUSIONS AND FUTURE WORK

Conclusions

This thesis has addressed the modeling and simulation of the musculoskeletal

system of the shoulder girdle and upper extremity by combining real time simulation

methods, advanced CAD modeling techniques, optimization methods, and new methods

for characterizing muscle wrapping about anatomical structures.

It has been shown that real time simulation is effectively used to simulate

kinematic movement of the upper limb while monitoring in real time predicted activation

level, moment arms, and available torque for all the muscles crossing the sterno-

clavicular, acromio-clavicular, gleno-humeral, ulna-humeral, and ulna-radial joints.

It has been shown that muscle activation is calculated in real time for every

individual muscle during motion from optimization based on a cost function and

constraints.

It has been shown that the system developed with 35 action lines and five bones

with 7 DOF representing the shoulder girdle and upper extremity can be simulated in a

3D interactive visual environment in real time allowing a user to explore various muscle

activation levels by changing loading conditions and joint angles.

It has been shown that optimization methods are well suited for the real time

prediction of muscle activation, particularly when appropriate cost functions are selected

It has been shown that significantly higher accuracy of muscle activation can be

obtained by accounting for muscle wrapping around underlying anatomical structures. A

new method for muscle wrapping was developed using floating via points, which has

allowed for the action line of the muscle to be more accurately represented by the

centroid line of the muscle.

127

A graphical user interface was developed to allow for a user to interact in real

time with the musculoskeletal system, changing the loading conditions and joint angles

while receiving feedback.

Compared with experimental results published in literature, it was shown that our

system yields results of the muscle moment arms are very consistent with published data.

Furthermore, when observing the actions of the muscles on the bones as predicted by our

model the result correlated with anatomical data.

Future Work

The amount of work that can be continued on this project is immense. This

section will attempt to summarize some of the work which we feel should be added next.

• Further verification is obviously a very important next step. This

verification should compare more muscle moment arm prediction to

literature and also start comparing activation prediction to previous

studies.

• Include ligament about the joints, which are used to stabilize the joints.

This is especially true for the elbow. In the current formulation, the

torques generated about the x and y axis of the elbow are ignored. If

ligaments are added to the model these could be used to resist torque about

these axes resulting in additional constraints for the optimization

formulations that stipulate that the torques generated about the x and y

axis must balance out to zero.

• Calculate and return joint reaction forces to the user. Not only could this

information be useful to the user but also it may be used as an additional

constraint by limiting the amount of force allowed within the joint.

Furthermore, this may be useful for including joint friction.

128

• Expand the model to the other arm and legs and reevaluate the

performance. The current model has not hindered real time performance

and it appears to have quite a bit of room to expand. Adding additional

action lines for some muscles may also be appropriate.

• Add robustness to the wrapping algorithm so that it can handle when

either the insertion or origin are moved within an object. Simply simply

moving the point or shrinking the obstacle until it is no longer within the

obstacle could handle this.

• Changing the color of the force lines based on activation level would be

useful for conceptualizing how the muscles reacting to different torque

loads and arm configurations. For instance, the lines would look blue if

there is no activation and slowly change to bright red as the muscle is

activated

• Vary the cost function of the prediction algorithm and observe the effect

of different conditions. Much improvement can be added to the muscle

prediction algorithm. More detailed muscle parameters should be used for

determining the maximum available force. Fatigue could possiblely be

incorporated with the formulation as presented by Komura et al (Komura

et al, 2000) while co-contraction could be addressed by the paper

presented by Foster et al (Foster et al, 2004).

• Now that we know force direction and location, this model could be

expanded to incorporate physics.

129

REFERENCES

Amis, A. A., Dowson, D., Wright, V. (1979) “Muscle strengths and Musculoskeletal geometry of the upper limb”, Engng Med., 8, 41-48

Amis, A.A., Dowson, D., Wright, V., (1980) “Elbow Joint Force Predictions for some Strenuous Isometric Actions”, J. Biomechanics, 13, 765

An, K. N., Hui, F. C., Morrey, B. F., Linscheid, R. L. and Chao, E. Y. (1981) Muscles “Across the elbow joint: A Biomechanical Analysis”. J. Biomechancs 14, 659-669

An, K. N., Kwan, B. M., et al., (1984) “Determination of muscle and joint forces: a new technique to solve the indeterminate problem.” Journal of Biomedical Engineering, 106 (4), 164-367

An, K. N., Takahashi, K. Harrigan, T. P., Chao, E. Y. (1984) “Determination of muscle orientation and moment arms”, J. biomech. Engn, 106, 280-282

Anderson, F.C., Pandy, M.G., (1999) “A Dynamic Optimization Solution for Vertical Jumping in Three Dimensions.” Computer Methods in Biomechanics and Biomedical Engineering, 2, 201-231

Berme, N., Heydinger, G., and Cappozzo, A., (1987) “Loads Transmitted at the Anatomical Joints”. In A. Morechi (ed) Biomechanics of Engineering: Modeling, Simulation, Control, Wien, New York

Blemker, S.S., Delp, S. L., (2005) “Three-dimensional representation of complex muscle architectires and geometries” Annals of Biomedical Engineering, 33, 5, 661-673

Chadwick, E.K., Nicol, A.C., (2000) “Elbow and wrist joint contact forces during occupational pick and place activities.” J. Biomechanics, 33 (5), 591-600

Chao, E.Y. S., (2003) “Graphic-based musculoskeletal model for biomechanical analyses and animation”, Medical Engieering & Physics, 25, 201-212

Crowninshield, R.D., (1978) “Use of optimization techniques to predict muscle forces”, Transactions of the ASME, 100, 72

Crowninshield, R.D., Brand, R.A., (1981) “A physiological based criterion of muscle force prediction in locomotion.” J. Biomechanics 14 (11), 793-801

Davy, D.T., Audu, M.L., (1987) “A dynamic optimization technique for predicting muscle forces in the swing phase of gait”, J. Biomechanics, 20, 187-201

Delp, S. L., Loan, J. P. (1995) “A graphics-based software to develop and analyze models of musculoskeletal structures”, Comput. Biol. Med. 25, 1, 21-34

DeLucam C.J., Forrest, W.J., (1973) “Force analysis of individual muscles acting simultaneously on the shoulder during isometric abduction”, J. Biomechanics, 6, 385-393

Dvir, Z. and Berme, N. (1978), “The Shoulder Complex in Elevation of the Arm: A Mechanism Approach”, Journal of Biomechanics, 11, 219-255

130

Engin, A. E. (1984), “On the Theoretical Modelling of Human Joints”. In Mathematical Modelling in Science and Technology (ed. J. R. Avula), Pergamon Press, New York, pp. 560-565

Engin, E. (1980), “On the Biomechanics of the Shoulder Complex”, Journal of Biomechanics, 13, 575-590

Forster, E., Simon, U., Augat, P., Claes, L., (2004) “Estension of a state-of-the-art optimization criterion to predict co-contraction”, J. Biomechanics, 37, 577-581

Gill, P. E., Murray, W., Saunders, M. A., (2002) “SNOPT: An SQP algorithm for large-scale constrained optimization”, Siam J. Optim., 12, 4, 979-1006

Glitsch, U., Baumann, W., (1997) “The three-dimensional determination of internal loads in the lower extremity.” J. Biomechanics, 30 (11-12), 1123-1131

Happee, R., (1994) “Inverse dynamic optimization including muscular dynamics, a new simulation method applied to goal directed movements.” J. Biomechanics 27 (7), 953-960

Helm, F. C. T, Veenbaas, R. (1991), “Modelling the Mechanical Effect of Muscles with Large Attachment Sites: Application to the Shoulder Mechanism”, Journal of Biomechanics, 27, 1151-1163

Helm, F. C. T. (1994), “A Finite Element Musculoskeletal Model of the Shoulder Mechanism”, Journal of Biomechanics, 27, 551-569

Helm, F. C. T. and Pronk, G. M. (1995). “Three-Dimensional Recording and Description of Motions of the Shoulder Mechanism”, Journal of Biomechanical Engineering, 117, 27-40

Hogfors, C., Sigholm, G., and Herberts, P. (1987), “Biomechanical Model of the Human Shoulder – I. Elements”, Journal of Biomechanics, 20, 157-166

Jackson, K. M., Joseph, J., Wyard, S. J., (1977) “Sequential muscular contraction”, J. Biomechanics,10, 97-100

Jenesn, R. H. and D. T. Davy (1975) “An Investigation of Muscle Lines of Action About the Hip: A Centroid Line Approach VS the Straight Line Approach”. J. Biomechanics 8, 103-110

Kaufman, K.R., An, K.W., et al (1991) “Physiological prediction of muscle forces-I. Theoretical formulation.” Neuroscience 40 (3) 781-792

Kim, J., Abdel-Malek, K., Yang, J., Farrell, K., Nebel, K., (2005) “Optimization-Based dynamic motion simulation and energy expenditure prediction for a digital human” SAE Digital Human Modeling for Design and Engineering, June, Iowa City, IA USA.

Kimura, T., Shinagawa, Y., Kunni, T. L., (2000) “Creating and retargeting motion by the musculoskeletal human body model”, The Visual Computer, 16, 254-270

Kinzel, G. L. and L. J. Gutkowski (1983), “Joint Models, Degrees of Freedom, and Anatomical Motion of Measurements”, Journal of Biomechanical Engineering, 105, 55-61

131

Li, G., Kaufman, K.R., et al., (1999) “Prediction of antagonistic muscle forces using inverse dynamic optimization during flexion/extension of the knee.” Journal of Biomedical Engineering 121 (3) 316-322

Li, G., Pierce, J. E., Herndon, J.H., (2004) “A global optimzation method for prediction of muscle forces of human musculoskeletal system.” J. Biomechancs, Accepted 2004

Maurel, W., Thalmann, D. (1999), “A case study on human upper limb modeling for dynamic simulations”, Computer Methods in Biomechanics and Biomedical Engineering, Vol 2, No. 1, pp 65-82

Maurel, W., Thalmann, D., Hoffmeyer, P., Beylot, P., Gingins, P., Karla, P., Thalmann, , N. (1996), “A Biomechanical Musculoskeletal Model of Human Upper Limb for Dynamic Simulation”, EGCAS ’96, 7th Eurographics Workshop on Computer Animation and Simulation ’96 (Springer Poitiers 1996), 121-136

Mikosz, R. P., McKersie, R., Berg, R. Snitovsky, P., Lobick, J., Logue, S., Andersson, G. B. J. and Andriacchi, T. P (1988) “Muscle Lines of Action in the Lower Extremity: A cetntroid line approach vs the straight line approach”. Proc. 12th Am Soc Biomechanics. Pp 30-31, Urbana-Champaign, IL.

Murray, W. M., Delp, S. L., Buchanan, T. S. (1995) “Variation of muscle moment arms with elbow and forearm position”, J. Biomechanincs, 28, 5, 513-525

Pedotti, A., Krishnan, V. V., et al (1978) “Optimization of the muscle force sequencing in human locomotion.” Mathematical Biosciences 38, 57-76

Poppen, N.K., Walker, P.S., (1978) “Forces at the glenohumeral joint in abduction”, Clin. Orthop Rel. Res.,135, 165-170

Praagman, M. Chadwick, E.K.J., Helm, F.C.T. van der, Veeger, H.E.J. (2004) “The relationship between two different mechanical cost functions and muscle oxygen consumption.” J. Biomechanics, Accepted 2004.

Raikova, R. (1992), “A General Approach for Modelling and Mathematical Investigation of the Human Upper Limb”, Journal of Biomechanics, 25, 857-867

Raikova, R. (1996) “A model of the flexion – extension motion in the elbow joint – some problems concerning muscle forces modeling and computation” J. Biomechanics, 29, 6, 763-772

Seireg, A. and Avikar, R.J. (1973) “A mathematical model for the evaluation of forces in the lower extremeties of the musculoskeletal system.” J. Biomechanics 6, 313-326

Tozeren, A., (2000) Human Body Dynamic, N.Y.: Springer-Verlag

Van Zuylen, E. J., van Zulzen, A., Denier van der Gon, J. J. (1988), “A biomechanical model for flexion torques of human arm muscles as a function of elbow angle”, J. Biomechanics, 21, 183-190

Veeger, H. E. J., Yu, B., An, K. N., Rozendal, R. H., (1996) “Parameters for modeling the upper extremeity”, J. Biomechanics, 30, 6, 1997

132

Wickens, C. D., Baker, P. (1995) “Cognative Issues in Virtual Reality”. Virtual Environments and Advanced Interface Design (ed. W. Barfield and T.A. Furness III), Oxford University Press. 514-541

Winters, J. M., Klewendo, D. G. (1993) “Effect of initial upper-limb alignment on muscle contributions to isometric strength curves”, J. Biomechanics, 26, 143-153

133

CHAPTER 1: INTRODUCTION ........................................................................................1 1.1 Overview .....................................................................................................1 1.2 Past Work ....................................................................................................1 1.3 Objectives ...................................................................................................3 1.4 Conclusion ..................................................................................................4

CHAPTER 2: TERMINOLOGY, METHODS AND MATHEMATICS............................5 2.1 Nomenclature ..............................................................................................5 2.2 Medical Terminology .................................................................................5 2.3 Terminology ...............................................................................................7 2.4 Optimization ...............................................................................................8 2.5 Conclusion ..................................................................................................9

CHAPTER 3: PROBLEM FORMULATION ...................................................................10 3.1 Introduction ...............................................................................................10 3.2 Torque – Force Relationship ....................................................................10 3.3 Applying the Torque-Force Relationship to the Body .............................12

3.3.1 Musculoskeletal System .................................................................13 3.3.2 Mechanical System .........................................................................13

3.4 Optimization .............................................................................................16 3.4.1 Optimization Example ....................................................................18

3.5 Proposed Formulation ...............................................................................21 3.6 Model Requirements .................................................................................22

CHAPTER 4: MODELING ...............................................................................................23 4.1 Introduction ...............................................................................................23 4.2 Anatomy ...................................................................................................23 4.3 Digital Representation of the Arm ............................................................29

4.3.1 Kinematic Model ............................................................................31 4.3.2 Attaching the Muscles ....................................................................39

4.4 Conclusion ................................................................................................54

CHAPTER 5: MODELING OF MUSCLE WRAPPING ..................................................55 5.1 Introduction ...............................................................................................55 5.2 Problem Formulation ................................................................................59 5.3 Proposed Solution .....................................................................................60

5.3.1 Wrapping Algorithm for a Sphere ..................................................61 5.3.2 Wrapping Algorithm for a Cylinder ...............................................64 5.3.3 Multiple Obstacle Wrapping ..........................................................70

5.4 Examples ...................................................................................................72 5.4.1 Spherical Wrapping ........................................................................72 5.4.2 Cylindrical Wrapping .....................................................................75 5.4.3 Multiple Obstacle Wrapping ..........................................................78

5.5 Discussion .................................................................................................81 5.6 Conclusions ...............................................................................................82

CHAPTER 6: REAL TIME INTERACTION ...................................................................83 6.1 Introduction ...............................................................................................83 6.2 Software ....................................................................................................83 6.3 Creating User Interaction ..........................................................................86 6.4 Data Feedback ..........................................................................................87

134

6.4.1 Moment Arm Display .....................................................................88 6.4.2 Max Torque Display .......................................................................90 6.4.3 Activation Display ..........................................................................92

6.5 Conclusion ................................................................................................93

CHAPTER 7: RESULTS AND DISCUSSION .................................................................94 7.1 Introduction ...............................................................................................94 7.2 Lower Arm ................................................................................................95 7.3 Pectoral Girdle ........................................................................................113 7.4 Comparison with Experimental Data ......................................................123 7.5 Conclusions .............................................................................................125

CHAPTER 8: CONCLUSIONS AND FUTURE WORK ...............................................126 8.1 Conclusions .............................................................................................126 8.2 Future Work ............................................................................................127

CHAPTER 9: REFERENCES .........................................................................................129

135

Figure 2.1: Primary planes of the body used for spatial description ...................................6

Figure 2.2: Notation describing anatomical movement .......................................................7

Figure 3.1: Torque calculation ...........................................................................................10

Figure 3.2: Example of the force-torque relationship ........................................................11

Figure 3.3: Example of multiple forces creating torque ....................................................11

Figure 3.4: Major muscles of the upper arm ......................................................................12

Figure 3.5: Medial bicep brachii ........................................................................................13

Figure 3.6: Force from bicep .............................................................................................14

Figure 3.7: Muscle force components ................................................................................14

Figure 3.8: Effect of joint angle. Note the shortening if the stabilizing component and the lengthening of the rotational component as the elbow is flexed ..................15

Figure 3.9: Three muscles acting on the lower arm ...........................................................16

Figure 4.1: Axial skeleton (left) and appendicular skeleton (right) ...................................23

Figure 4.2: Example of muscles attaching to the bones .....................................................24

Figure 4.3: Bones of the right arm .....................................................................................25

Figure 4.4: Muscles of the shoulder ...................................................................................26

Figure 4.5: Muscles of the shoulder and arm .....................................................................27

Figure 4.6: Muscles of the shoulder and arm .....................................................................28

Figure 4.7: Muscles of the shoulder and arm .....................................................................29

Figure 4.8: Muscles of the arm ..........................................................................................30

Figure 4.9: Hierarchy of the bones in the arm ...................................................................31

Figure 4.10: Joints of the arm ............................................................................................32

Figure 4.11: Guide points on the scapula...........................................................................33

Figure 4.12: Vector used to rotate the scapula ...................................................................34

Figure 4.13: Heirarchy of joint frames in a 3DOF joint ....................................................35

Figure 4.14: Euler rotation order for a 3DOF joint. Note that all the frames are separated just for clarity. In the model they coincide. ..............................................35

136

Figure 4.15: Sterno-clavicular reference (left) and local frame (right) .............................37

Figure 4.16: Acromio-clavicular reference (left) and local frame (right) ..........................37

Figure 4.17: Gleno-humeral reference (left) and local frame (right) .................................38

Figure 4.18: Ulno-humeral reference and local frame .......................................................38

Figure 4.19: Ulno-radial reference and local frame ...........................................................39

Figure 4.20: Effects of muscle wrapping as applied to the biceps .....................................40

Figure 4.21: Trapezius and its action lines ........................................................................41

Figure 4.22: Levator scapulae muscle and action line .......................................................42

Figure 4.23: Trapezius muscle, action lines and wrapping obstacles ................................42

Figure 4.24: Rhoboids muscles, action lines and wrapping obstacle ................................43

Figure 4.25: Serratus anterior muscles, action lines and wrapping obstacles ....................44

Figure 4.26: Pectoralis minor muscle, action lines and wrapping obstacle .......................44

Figure 4.27: Pectoralis major muscle, action lines and wrapping obstacles ......................45

Figure 4.28: Coracobrachialis muscle, action line and wrapping obstacle ........................45

Figure 4.29: Supraspinatus muscle, action line and wrapping obstacle ............................46

Figure 4.30: Deltoideus muscle, action lines and wrapping obstacles ..............................46

Figure 4.31: Infraspinatus muscle, action line and wrapping obstacle ..............................47

Figure 4.32: Subacapularis muscle, action line and wrapping obstacle ............................47

Figure 4.33: Teres Minor muscle, action line and wrapping obstacles .............................48

Figure 4.34: Teres Major muscle, action line and wrapping obstacles ..............................48

Figure 4.35: Latissimus dorsi muscle, action lines and wrapping obstacles .....................49

Figure 4.36: Bicep brachii muscles, action lines and wrapping obstacles .........................49

Figure 4.37: Triceps major muscles, action lines and wrapping obstacle .........................50

Figure 4.38: Brachialis muscle, action line and wrapping obstacles .................................51

Figure 4.39: Brachioradialis muscle, action line and wrapping obstacles .........................51

Figure 4.40: Pronator teres muscle, action line and wrapping obstacles ...........................52

Figure 4.41: Supinator muscle, action lines and wrapping obstacles ................................52

137

Figure 4.42: Anconeus muscle, action line and wrapping obstacle ...................................53

Figure 4.43: All modeled action lines ................................................................................54

Figure 5.1: Attachment of the long head of the bicep ........................................................55

Figure 5.2: Straight line model for the short head of the bicep .........................................56

Figure 5.3: Bicep action line intersecting with the humerus .............................................57

Figure 5.4: Triceps action lines with fixed via points about the elbow .............................58

Figure 5.5: Lower action line of the trapezius with fixed via points on the medial edge of the scapula ....................................................................................................59

Figure 5.6: Example of wrapping about a sphere ..............................................................60

Figure 5.7: Wrapping about a sphere in the sphere’s x-y plane which also represents the AL plane ............................................................................................62

Figure 5.8: Wrapping about a cylinder ..............................................................................65

Figure 5.9: Wrapping about a cylinder in the cylinder's x-y plane ....................................66

Figure 5.10: Difference between wrapping if negative or a positive cross product is allowed ......................................................................................................................68

Figure 5.11: Wrapped line viewed in u-v coordinates .......................................................68

Figure 5.12: Example of wrapping around two objects .....................................................71

Figure 5.13: Logic for spherical wrapping example ..........................................................72

Figure 5.14: Sphere wrapping example .............................................................................73

Figure 5.15: Sphere wrapping example .............................................................................74

Figure 5.16: Sphere wrapping example .............................................................................74

Figure 5.17: Sphere wrapping example .............................................................................75

Figure 5.18: Logic for cylinder wrapping example ...........................................................75

Figure 5.19: Cylinder wrapping example ..........................................................................76

Figure 5.20: Cylinder wrapping example ..........................................................................77

Figure 5.21: Cylinder wrapping example ..........................................................................77

Figure 5.22: Cylinder wrapping example ..........................................................................78

Figure 5.23: Setup for multiple obstacle wrapping example .............................................78

Figure 5.24: Logic for multiple obstacle wrapping ...........................................................79

138

Figure 5.25: Multiple object wrapping example ................................................................80

Figure 5.26: Multiple object wrapping example ................................................................80

Figure 5.27: Sphere moved while simulation is paused to determine how long the solution takes to converge.........................................................................................81

Figure 6.1: Interaction between programs .........................................................................85

Figure 6.2: Joint torque user interface. For the joints with more than 1DOF the sliders are arranged such that the top slider is torque about x, middle slider is torque about y and the bottom slider is torque about z. ............................................87

Figure 6.3: Moment Arms of muscles crossing the sterno-clavicular joint .......................88

Figure 6.4: Moment Arms of muscles crossing the acromio-clavicular joint (left) and the gleno-humeral joint (right) ...........................................................................89

Figure 6.5: Moment arms of muscles crossing the ulno-humeral joint (left) and the ulno-radial joint (right) .............................................................................................90

Figure 6.6: Max torque of muscles crossing the sterno-clavicular joint ............................91

Figure 6.7: Max torque of muscles crossing the acromio-clavicular joint (left) and the gleno-humeral joint (right) ..................................................................................91

Figure 6.8: Max torque of muscles crossing the ulno-humeral joint (left) and the ulno-radial joint (right) .............................................................................................92

Figure 6.9: Predicted activation levels ...............................................................................93

Figure 7.1: Max muscle stress (kPa) and PCSA (cm2) data used in the examples ............94

Figure 7.2: Action lines for the lower arm .........................................................................95

Figure 7.3: Action lines wrapping around the elbow. From left to right: elbow fully extended with hand supinated, elbow halfway flexed with hand supinated, elbow fully flexed with hand pronated .....................................................................96

Figure 7.4: Example 1; Hand is neutral and the elbow if fully extended. The charts show the moment arms and max torque about each joint for all 11 action lines of the lower arm ........................................................................................................97

Figure 7.5: Predicted muscle activation for various torques..............................................98

Figure 7.6: Example 2; Hand is neutral and the elbow if fully flexed. The charts show the max torque about each joint for all 11 action lines of the lower arm ......101

Figure 7.7: Predicted muscle activation for various torques............................................103

Figure 7.8: Predicted muscle activation levels for the muscles of the lower arm with a desired torque of 23.1 Nm about the UH joint and 2 Nm about the UR joint .....103

139

Figure 7.9: Predicted muscle activation levels for the muscles of the lower arm with a desired torque of 36.7 Nm about the UH joint and 2.5 Nm about the UR joint .........................................................................................................................105

Figure 7.10: Example where the elbow is flexed to the position shown while the hand is neutral. The graphs display the max torque that each action can apply about each joint and the predicted activation level of each muscle for two different torque configurations. ..............................................................................107

Figure 7.11: Example where the elbow is flexed to the postion shown while the hand is pronated. The graphs display the max torque that each action can apply about each joint and the predicted activation level of each muscle for two different torque confuguratons.........................................................................110

Figure 7.12: Example where the elbow is flexed to the postion shown while the hand is spinated. The graphs display the max torque that each action can apply about each joint and the predicted activation level of each muscle for two different torque confuguratons.........................................................................111

Figure 7.13: Action lines of the pectoral girdle ...............................................................113

Figure 7.14: Example of the pectoral girdle. Graphs display max torque about the SC and GH joint ......................................................................................................114

Figure 7.15: Predicted muscle activation to create -30 Nm of torque about the x axis of the SC joint..................................................................................................117

Figure 7.16: Predicted muscle activation to create -15 Nm of torque about the z-axis of the SC joint..................................................................................................118

Figure 7.17:Predicted muscle activation to create -15 Nm of torque about the z-axis of the GH joint ........................................................................................................118

Figure 7.18: Predicted muscle activation to create -15 Nm of torque about the x-axis of the GH joint .................................................................................................119

Figure 7.19: Predicted muscle activation to create 30 Nm of torque about the y-axis of the GH joint ........................................................................................................120

Figure 7.20: Predicted muscle activation for selected torques about the GH and SC joint .........................................................................................................................121

Figure 7.21: Max torque about the SC and GH joint for the arm in the position shown ......................................................................................................................122

Figure 7.22: Max torque about the SC and GH joint for the arm in the position shown ......................................................................................................................123

Figure 7.23: Comparison of our proposed model to previous studies .............................124