passive exoskeletons to support human locomotion - a
Post on 17-Jul-2022
6 Views
Preview:
TRANSCRIPT
Passive Exoskeletons to Support Human Locomotion - acomputational study
Marta Sofia Galrito Pinto
Thesis to obtain the Master of Science Degree in
Enginnering Physics
Supervisors: Prof. Miguel Pedro Tavares da SilvaProf. Maria Teresa Haderer de la Peña Stadler
Examination Committee
Chairperson: Prof. Rui Manuel Agostinho DilãoSupervisor: Prof. Miguel Pedro Tavares da SilvaMembers of the Committee: Prof. Carlos Miguel Fernandes Quental
Prof. Horácio João Matos Fernandes
October 2017
ii
Agradecimentos
Primeiramente, quero agradecer ao meu orientador, o professor Miguel Tavares da Silva, pela oportuni-
dade que me deu em desenvolver este trabalho, pela total disponibilidade e apoio, por todo o conheci-
mento que me transmitiu e por todas as palavras de incentivo ao longo de todos estes meses.
Quero tambem agradecer ao Sergio Goncalves por toda a ajuda e por todo o tempo despendido no
desenvolvimento deste trabalho.
Agradeco a todas as pessoas que de alguma forma me ajudaram ao longo de toda a minha vida
academica, professores, colegas e amigos, porque so com a contribuicao de todos e que me foi possıvel
chegar ao fim desta etapa.
A Debora e a Mariana, um agradecimento muito especial por toda a sincera amizade, por todas as
conversas, por toda a forca e apoio que me deram ao longo de todos estes anos.
Ao Tiago, por estar sempre do meu lado, por me fazer rir todos os dias, e porque sem ele nao teria
conseguido chegar aqui.
A minha famılia, agradeco por todo o apoio e uniao, em especial a minha mae por todo o esforco
que sempre fez para que eu pudesse frequentar a faculdade.
A todos um sincero obrigado.
iii
iv
Resumo
A marcha humana e um dos movimentos mais otimizados ao longo da evolucao do homem. E atraves do
estudo detalhado da marcha que e possıvel diagnosticar patologias no movimento procurando solucoes
para a sua correcao atraves de sistemas de suporte como ortoteses.
Este trabalho consiste numa analise de dinamica inversa de uma marcha nao patologica, e pos-
teriormente na analise da marcha otimizada com a ajuda de um exoesqueleto passivo implementado
computacionalmente.
Foram recolhidos dados do movimento da marcha humana no Laboratorio de Biomecanica de Lisboa
(LBL) e posteriormente tratados. Para a sua analise foi criado um modelo biomecanico 3D de corpo
inteiro e de seguida implementado em conformidade com o indıviduo estudado. De seguida foi criado
um modelo computacional do exoesqueleto em estudo que tem como funcao diminuir o esforco da
perna na execucao da tarefa da marcha de fazer o pe empurrar o chao elevando o calcanhar.
Observou-se, comparando os resultados das duas analises, uma diminuicao do momento produzido
pelo tornozelo biologico com o uso do exoesqueleto. Esta diminuicao em media foi de aproximadamente
24.2%.
Tais resultados reforcam a ideia de que com a ajuda de exoesqueletos passivos, sem o uso de
fontes de energia externas ao sistema do corpo humano, e possıvel diminuir os momentos de forca em
algumas articulacoes.
Palavras-chave: Biomecanica do movimento, Marcha, Exoesqueleto passivo, Analise dinamica
inversa.
v
vi
Abstract
Human gait is one of the most optimized motions through human evolution. It is by the detailed study
of gait that it is possible to diagnose motion pathologies and to find solutions for their correction through
support systems like orthoses.
This work consists of an inverse dynamic analysis of a non-pathological gait and later in the optimized
gait analysis with the help of a passive exoskeleton implemented in a computational way.
Data was collected from the human gait movement at the Laboratorio de Biomecanica de Lisboa
(LBL) and later treated. For its analysis, a 3D biomechanical model of the entire body was created
and then implemented in accordance with the studied subject. Later, a computational model of the
exoskeleton under study was created, whose function is to reduce the leg effort in the execution of the
gait task of making the foot to push the ground raising the heel.
It was observed, comparing the results of the two analyzes, a decrease of the moment produced by
the biological ankle with the use of the exoskeleton. This decrease was on average 24.2%.
These results reinforce the idea that, with the help of passive exoskeletons, without the use of exter-
nal energy sources applied in the human body system, it is possible to reduce the moments-of-force at
some joints.
Keywords: Biomechanics of movement, Gait, Passive exoskeleton, Inverse dynamic analysis.
vii
viii
Contents
Agradecimentos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . iii
Resumo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . v
Abstract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii
List of Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi
List of Figures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii
Nomenclature . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xvii
Glossary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xix
1 Introduction 1
1.1 Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Objectives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.3 State of the art . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.3.1 Support devices for human motion . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.3.2 Passive Solutions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.4 Contributions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.5 Document structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2 Gait 9
2.1 Biomechanics of walking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.2 Metabolic cost . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.3 Energetics of gait . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3 Multibody dynamics with Natural coordinates 13
3.1 Natural coordinates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.2 Kinematic analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.3 Constraint equations definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.3.1 Scalar product constraint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.3.2 Kinematic joint constraint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.4 Dynamic analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.4.1 The principle of virtual power . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.4.2 Mass matrix for a 3D rigid body . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.4.3 Inverse dynamics analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.5 Apollo software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
ix
3.5.1 Input data preparation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.6 Graphic visualization of the simulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
4 Computational biomechanical model 27
4.1 Kinematic structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
4.2 Kinematic drivers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
4.3 Model kinematics database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
5 Experimental acquisition and data processing 35
5.1 Acquisition protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
5.2 Data collection - QTM software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
5.3 Data processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
5.3.1 Joints location determination . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
5.3.2 Static trial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
5.3.3 Dynamic trials . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
6 Sawicki exoskeleton computational model 47
6.1 Exoskeleton specifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
6.2 Fortran routine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
6.3 Ankle joint moments balance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
7 Results and discussion 51
7.1 Natural gait . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
7.2 Application of the exoskeleton influence and results comparison . . . . . . . . . . . . . . 53
7.3 Knee comparison . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
8 Conclusions and future developments 59
8.1 Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
8.2 Future developments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
References 61
A Example of modulation file 63
B Additional Fortran routine in the Apollo software 73
x
List of Tables
3.1 Most common types of kinematic constraints defined with the use of the scalar product
constraint. Vectors ri, rj , rk and rl are the Cartesian coordinates of points i, j, k and l
and unit vector a and b, used in the definition of rigid bodies. [21]. . . . . . . . . . . . . . 18
4.1 Markers numbers and correspondent anatomical location. . . . . . . . . . . . . . . . . . . 30
4.2 Vectors used to define the kinematic structure and drivers of the biomechanical model
here created. The highlighted vectors are the ones which needs to be calculated their
local direction with the correspondent rotation axis of each revolute joint, which happens
at the elbow and knee joints. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
4.3 Superposition constraints definition. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
4.4 Inner product constraints definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
4.5 Drivers definition. Here are defined the main motions of the human segments: flexion,
extension, abduction, adduction, inversion, eversion, and internal rotation. And also for
the right (R) and left (L) segments of the body. . . . . . . . . . . . . . . . . . . . . . . . . 33
4.6 Relative necessary anthropometric parameters taken from several databases [24, 21, 25,
23]. These values are relative to a female individual as it corresponds to the one studied
here. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
5.1 Markers numbers and correspondent anatomical location. . . . . . . . . . . . . . . . . . . 36
5.2 Representation and necessary formulas for the calculation of joint and extremity points.
There are also the calculation of the unit vector of each fixed body (the unit vectors of the
mobile bodies are further explained). Vectors u, v and w refer to x, y and z directions of
each body. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
5.2 Continuation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
5.2 Continuation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
5.2 Continuation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
5.3 Mobile rigid bodies local vectors definition. . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
7.1 Comparison between the principal results for the ankle and knee joints. a) Moment varia-
tion along stride; b) Mechanical power variation along stride; c) Moment along joint angle;
d) Joint angle along stride. In the last two results type are represented the principal mo-
ments of the gait cycle: IC, FF, HO, TO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
xi
xii
List of Figures
1.1 Some exoskeleton systems already being implemented: a) Rewalk - locomotion assi-
tance system [9], b) Lokomat - gait rehabilitation system [10] and c) BLEEX - augmenting
strength system [11]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.2 Ankle-foot system designed to provide assistance to the ankle joints during walking. A
reduction of 10% on the metabolic rate is observed through the results [12]. . . . . . . . . 5
1.3 Passive exoskeleton design for reducing the energy cost of walking [1]. . . . . . . . . . . 6
1.4 Sawicki et. al. work. Net metabolic rate results of this study, showing the larger reduction
with the use of a spring with stiffness coefficient of 180 N m rad−1 [1]. . . . . . . . . . . . 7
2.1 Gait cycle representation. Here are the main phases of the cycle as well the definition of
the main moments in the cycle, starting on heel strike and ending on the same foot heel
strike. Adapted from [16] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.2 A - Anatomical reference planes. The body is in the anatomical reference position, the
reference position when describing human articulation movements. B - Diagram of the
leg shown in the rest position (0 deg at all joints) with the positive direction indicated. [16] 10
2.3 Angle variation along a stride of the lower limb joints, adapted from [17] Here it is possible
to identify the basis joint movements within the gait cycle as well as its angle amplitude
and duration (flexion, extension,plantar flexion and dorsiflexion. . . . . . . . . . . . . . . . 11
2.4 Mechanical power normalized to bodyweight for the three main lower limb joints [17]. . . . 12
3.1 Representation of a 3D basic rigid body composed by two points (i and j) and two non-
coplanar vectors (u and v) in its kinematic structure. p is a generic point that belongs to
the rigid body. The inertial reference frame is represented by (xyz) and the local reference
frame, which is attached to the rigid body, by (ξηζ). Based in [21]. . . . . . . . . . . . . . . 20
3.2 Graphic visualization interface for reading Apollo analysis output. It is possible to see
several interest elements along the simulation time. . . . . . . . . . . . . . . . . . . . . . . 25
3.3 Graphic visualization of the Apollo analysis with the influence of the exoskeleton in study. 25
4.1 Right arm model: Revolute joint in the elbow and universal joint at the wrist - Main types
of joints used in the full body biomechanical model creation. . . . . . . . . . . . . . . . . . 28
xiii
4.2 Biomechanical 3D model developed has entry for the Apollo software. Detailed numbering
of points, rigid bodies (inside circles), and unit vectors. Some of the unit vectors here
represented, despite being represented in the y direction, they have the specific directions
of the rotation axis of the associated joint (see Table 4.2) . . . . . . . . . . . . . . . . . . . 29
4.3 In this figure the biomechanical model is represented with the centers of mass approxi-
mately located of each human segment. The head and the foot are illustrated in different
views for better understanding. There is also a schematic representation of the CM% dis-
tance (distance between CM and the proximal joint of the rigid body) presented in Table
4.6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
5.1 Markers protocol used in the gait motion acquisition. The right foot is represented sepa-
rately for better visualization. The marker numbers and its anatomical location are speci-
fied at Table 5.1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
5.2 Qualysis Track Manager software, data collection software used in this work. . . . . . . . 37
5.3 Inertia and mass distribution among the two bodies of the representation, one mobile (M )
and one fixed (F ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
5.4 Schematic representation of the various stages of data processing with the created Matlab
program. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
6.1 Representation of the changes made to the model in the leg and foot in order to add the
passive exoskeleton influence. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
6.2 Model developed for the addition of the exoskeleton influence in natural gait. Schematic
representation of the main necessary distances and vectors for the creation of the imple-
mented Fortran routine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
6.3 Representation of the main moments and forces involved in the leg-foot system under the
exoskeleton influence. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
7.1 Averaged a) hip and b) knee joints angle variation along stride without the influence of
the exoskeleton (average over ten studied strides). The standard deviation is also repre-
sented here. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
7.2 Ankle angle variation along stride without the influence of the exoskeleton. The ankle
angle pattern is what triggers the choice of spring engagement and disengagement mo-
ments. The engagement is done on foot flat and the disengagement at toe off. . . . . . . 52
7.3 Ankle angular velocity variation along stride for natural gait (average over ten strides, and
standard deviation lines). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
7.4 Illustration of the gait cycle with the influence of the exoskeleton. The engagement is done
on foot flat and the disengagement at toe off. It is possible to see that, while the spring is
engaged, the stretching and recoil phases. . . . . . . . . . . . . . . . . . . . . . . . . . . 53
xiv
7.5 Ankle moment average (normalized to body weight) along stride percentage for the anal-
ysis without the exoskeleton and with the exoskeleton being with the optimal value for
spring stiffness. It is possible to see a significant moment reduction on the biological an-
kle when it has the influence of the exoskeleton. There are two marks represented by the
vertical lines: the moments when the spring engages and disengages the exoskeleton. . 54
7.6 Ankle moment (normalized to body weight) values for each stiffness coefficient used along
stride percentage. As greater the stiffness coefficient greater the exoskeleton torque pro-
duced and consequently greater the biological ankle moment reduction. The spring en-
gagement and disengagement are also marked. . . . . . . . . . . . . . . . . . . . . . . . 54
7.7 Exoskeleton produced moment (normalized to body weight) values along stride percent-
age. With the increase of the spring stiffness coefficient the exoskeleton moment also
increases. The spring engagement and disengagement are also marked here. . . . . . . 55
7.8 Ankle joint mechanical power (normalized to body weight) along stride. Here is repre-
sented the results for the analysis without the exoskeleton influence and also with the
exoskeleton influence for the five values of spring stiffness under analysis. . . . . . . . . . 56
xv
xvi
Nomenclature
γ Right-hand-side of acceleration equation
λ Vector of Lagrange multipliers
ν Right-hand-side of velocity equation
Φ Vector of kinematic constraints
Φq Jacobian matrix of kinematic constraints
τ Torque
auxi Auxiliar vector number i
C Coordinate transformation matrix
c Vector containing coefficients c1, c2 and c3
g Vector of generalized forces
Ix,y,z Inertia parameters in the directions x, y and z
I3 Identity matrix (3x3)
M , M e Mass matrix of the system (global) and mass matrix of the rigid body (local)
q, q, q Vectors of generalized coordinates, velocities and accelerations
rJi Global coordinates of model point number i
rMi Global coordinates of marker number i
rp Vector with the Cartesian coordinates of a point p
u∗n, v∗n, w∗n Auxiliar local vectors of body named n for x, y, z directions
un, vn, wn Unit local vectors of body named n for x, y, z directions
vi Vector number i
X, X ′ Matrices representing a generic three-dimensional base of vectors
P∗ Virtual power
xvii
Ω Rigid body volume
ω Angular velocity of a rigid body
ρ Rigid body density
Di Kinematic driver number i
IPi Inner product constraint number i
Mi Marker number i
Pi Point number i
RBi Rigid body number i
SPi Superposition constraint number i
θ Joint angle
ξηζ Local reference frame
A Distance between ASIS markers
Fs Force done by a linear spring
k Spring stiffness coefficient
l Anatomical segment length
Lij , Lu Lengths of segment rij and unit vector u
m Anatomical segment mass
m% Anatomical segment mass percentage of total body mass
Mj Moment of force of joint j
nc Number of generalized coordinates
Pj Mechanical power of joint j
t Time variable
xyz Global reference frame
xviii
Glossary
3D Tri-dimensional
BLEEX Berkeley Lower Extremity Exoskeleton
CM Center of mass
DOF’s Degrees of freedom
FF Foot Flat
GRF Ground reaction forces
HO Heel Off
IC Initial Contact
LBL Laboratorio de Biomecanica de Lisboa
QTM Qualysis Track Manager
TO Toe Off
xix
xx
Chapter 1
Introduction
1.1 Motivation
Locomotion is an essential task for all humans. It is through the combined set of our skeletal, muscular
and nervous systems that we are able to efficiently walk in our daily activities. Throughout evolution,
humans became experts in walking, naturally choosing, for example, the length of each step and the
arm movement that minimizes energy expenditure [1]. Despite its high efficiency it is still of great interest
to study gait improvement strategies.
Along centuries the development of external devices for human motion support was on the rise, from
simple crutches to complex robotic structures. In the present, it is already possible to support human
motions using powered structures connected to the body, supporting people with motion pathologies or
even augmenting the capabilities of able-bodied individuals.
With aging the human body suffers wear at various levels, for example loss of muscle tone, bone
strength decrease and cartilage naturally deterioration. These body changes can make physical activi-
ties more demanding with a greater energy cost. A mechanism capable of reducing the effort of human
daily movements could not only help able-bodied individuals to perform longer tasks without getting tired
but also prevent joint wear diseases in older people.
The present work will focus on the possibility of reducing the metabolic energy cost of non-pathological
human locomotion with the use of passive elements. Such achievement could bring, when well studied
and systematized, a long-term prevention or in other cases retardation of joint wear or other locomotion
pathologies without needing expensive power sources and control elements.
1.2 Objectives
The main objective of this work is the computational study and analysis of a passive external solution
for non-pathological gait augmentation. More specifically, this dissertation work aims to construct a
computational model of a passive exoskeleton based on the prototype solution proposed by Sawicki et
al. [1]. This experimentally tested passive exoskeleton, provides support to the ankle function during
propulsion of the foot push the ground with the use of a clutch-spring system. Further in this document
this device is explained in more detail.
In order to reproduce the results of Sawicki et al. [1], the method here presented consists in the
1
study of a natural non-pathological gait motion and its consequent dynamic analysis. Once the analysis
is done, then the exoskeleton information is added computationally, making it possible to simulate a
real person motion with the influence of the exoskeleton. A comparison analysis is then made with the
results of both situations: with and without the exoskeleton influence.
Throughout the work there will be several goals to be achieved and are stated as follows:
• Study the human natural gait cycle.
• Collect experimental data for natural gait.
• Create a biomechanical model for the entire body.
• Carry out the inverse dynamic analysis of natural gait.
• Develop a computational model of a passive exoskeleton to study the improvement in the energetic
performance of natural gait.
• Carry out the inverse dynamic analysis of gait optimized by the implementation of the device.
1.3 State of the art
The research in the area of gait support devices is very broad based on various types of applications
according to their function and modes of operation.
The two main fields where the use of exoskeletons are present nowadays are on augmenting the
capabilities of able-bodied individuals and supporting/correcting people with motion pathologies. The
first comprehends exoskeleton systems commonly present in areas such as military and industrial, and
the second corresponds to the medical area directed to patients with physical disabilities or on the other
hand that need special mechanisms for motor rehabilitation.
In this research area the powered devices became the most studied type of exoskeletons, mainly
due to the technological evolution of sensors, actuators and control systems of the past decades [2] and
also by the huge capacity in terms of power that they could bring for many functions. By contrast, more
recently it became of great interest to some research units to make use of the wasted energy by the
human motions using passive elements with the aim of reducing cost and weight of powered systems.
Here after some examples of the studied exoskeletons that are being study and others that are
already being commercialized are referred.
1.3.1 Support devices for human motion
There are many people suffering daily with locomotion difficulties. Mobility disorders may be caused by
a variety of pathologies from neurological to musculoskeletal disorders and can lead to major movement
difficulties in the simplest daily activities. The locomotor system may also be affected by the ageing of
people causing, for example, the wear of joints and tendons which hinder locomotion. As a response to
the population needs, the research on complex mechanical devices to augment human movements has
2
been increasing since the 19th century [3]. Exoskeletons, orthoses and prostheses are all designed with
the same main function: support the human locomotory system.
This work will focus on exoskeletons and orthoses which can be defined as mechanical devices that
are essentially anthropomorphic, are attached to an operator and work in concert with his movements
[2]. Ocasionally in the literature, the term ’exoskeleton’ is used to describe a device that augments
the physical capabilities of an able-bodied wearer, whereas the term ’orthosis’ describes a device used
to support the movements of a person with a limb pathology [2]. In this document both solutions are
referred as exoskeletons.
Exoskeletons can be classified into two categories accordingly with wether they use an external
power source or not: named active and passive, respectively. Passive exoskeletons are often lightweight,
but due to their lack of power supply and electronics, are unable to provide the mechanical power needed
to support certain more demanding tasks. Active exoskeletons generally have implemented electronic
control systems that can model exoskeletal behaviors for different conditions. Furthermore, exoskeletons
can be classified in regard to their need of external connections: as tethered if they require a connection
and as autonomous if not [4].
Another important classification of exoskeletons elements is if they actuate in series or in parallel
with the lower limbs. Elements in series with the biological leg, for example a special shoe for running
[2], can reduce the metabolic cost of running by lowering impact losses and by providing energy return.
Parallel exoskeletons actuate in parallel with the human limbs for example by transferring load directly
to the ground, or by augmenting joint torque and work [2].
It is possible to organize the main types of exoskeletons considering their function in four groups.
Exoskeletons for gait assistance and solutions to help clinical methods for limbs rehabilitation, are two
of these groups usually found when assisting individuals with pathologies linked to the lower limbs. Re-
garding systems to support people without any physical disability, it is possible to find exoskeletons with
the main porpuse of augmentating human capabilities, and finally systems aiming to reduce metabolic
energy expenditure of daily activities [5, 6]. Within this main division, an example of the most relevant
ones in each exoskeleton type will be presented in the following sections.
Gait assistance
Exoskeletons for locomotion assistance are primarily used to help paralyzed patients who have partially
or completely lost mobility in the lower limbs. This type of systems can provide external torque on human
joints helping to overcome patients deficient motor function, and thereby giving them ability to perform
essential daily life motions [5].
ReWalk (see Figure 1.1 a) ) is a powered exoskeleton for mobility-impaired adults [7]. This solution
aims to help patients with spinal cord injuries to walk again without the use of a wheelchair.
This 23 kg structure requires the use of crutches to provide stability as the system does not have
balance control [6]. The exoskeleton is controlled by on-board computers with motion sensors, starting
gait motion by sensing the forward tilt of the upper body, producing the natural gait motion. Paralyzed
patients can practically stand upright and walk with increased independence improving their life quality
[5].
3
Physical rehabilitation
Robotic devices that can release the burden of therapists and provide effective and repetitive gait train-
ing have been widely studied recently [5]. Patients who have injuries such as cerebral paralysis or
orthopaedic injuries in the lower limbs need rehabilitation training to help recover and reestablish mo-
bility [5]. At present, rehabilitation therapy in locomotion is mainly done with the constant assistance of
the therapist so that the patient remains standing and in balance. Robotic solutions that can support
therapists on this work, and provide better results in the patient rehabilitation are very helpful.
The robotic assistance exoskeleton Lokomat (see Figure 1.1 b) ) is a commercially available device
for helping gait rehabilitation. This type of exoskeletons provide functional walking training for patients
with mobility dysfunctions in their lower limbs, consequence of a wide variety of pathologies. Lokomat
is a treadmill-based gait rehabilitation device with a robotic gait system, a body weight support and a
virtual reality feedback environment [5, 8]. The robotic gait system operates with a total of 4 degrees
of freedom, and the hip and knee joints are actuated by linear drivers to provide assistive torque in the
sagittal plane [5].
The effectiveness of Lokomat as an intervention in gait rehabilitation has been verified in many clinical
studies [5].
Augmenting human capabilities
Some important areas on where the need for exoskeletons is observable are mainly military and in-
dustrial environments, where these are needed to enhance human capabilities to, for example, heavy
load-carrying without causing physical damages [6].
The Berkeley Lower Extremity Exoskeleton (BLEEX) (see Figure 1.1 c) ) was developed in the scope
of military use for carrying heavy loads. Each exoskeleton leg has seven DOFs spread through the
joints: three at the hip, one at the knee, and three at the ankle [5]. The exoskeleton is constituted by
two parallel actuation elements, a power source and a structure for load support. This system allows to
directly transfer the load to the ground, augmenting considerably the wearer capability [6].
It has been reported that BLEEX wearers can walk at an average speed of 1.3 m/s while carrying a
34 kg payload [5]. The exoskeleton system consumes an average of 1143 W of hydraulic power during
level-ground walking, and 200 W of electrical power for the electronics and control. In comparison, a
similarly sized, 75 kg human consumes approximately 165 W of metabolic power during level-ground
walking [2].
Reducing metabolic expenditure
Despite of the human skill and efficiency while walking, this task still generates a considerable metabolic
expenditure during daily life [1]. Therefore, systems that could enable a significant reduction on people’s
fatigue, helping them to walk for longer periods of time, are important to study.
Despite the difficulties on improving the metabolic expenditure of walking a recent work, based on
an ankle-foot system exoskeleton, was able to obtain a significant reduction of the metabolic rate by
4
(a) (b) (c)
Figure 1.1: Some exoskeleton systems already being implemented: a) Rewalk - locomotion assitancesystem [9], b) Lokomat - gait rehabilitation system [10] and c) BLEEX - augmenting strength system [11].
10±3% (see Figure 1.2) [12]. This autonomous exoskeleton was designed to provide assistance to the
ankle joints during walking and it is composed by three main parts: a pair of fiberglass struts attached
to each boot, unidirectional actuators mounted on the anterior shank segments, a battery and control
package worn on the waist [12].
Figure 1.2: Ankle-foot system designed to provide assistance to the ankle joints during walking. Areduction of 10% on the metabolic rate is observed through the results [12].
1.3.2 Passive Solutions
The research on passive elements for locomotion support is quite recent. Passive elements, such as
springs, started to appear in active exoskeletons as a way to reduce the need of external power sources
for the operation [13]. But the idea to totally remove the external power sources making use of all the
energy wasted in human-machine overall system started to appear [1].
In this section one example of a passive exoskeletons is presented, included in the group of solutions
5
that aim to decrease the metabolic cost of human motions. One of the studied objectives with the use of
passive elements, is the possibility to passively actuate the ankle motion, supporting its task of plantar
flexion, to make the foot push the ground. Ankle injuries are a common pathology due to the constant use
of the articulation, so it is interesting to have a solution of this type, that could be used in the prevention
of this injuries. Among other studies of this type [4] (see Figure 1.2), the one that is more relevant for
this dissertation is the work of Sawicki et al. [1]. This experimental study [1] presents the design of a
lightweight passive exoskeleton (see Figure 1.3) that reduces the metabolic rate while walking, helping
the lower limb system on the task of pushing the ground, reducing the needed biologic force of the
system composed by the calf muscles and the Achilles tendon.
Figure 1.3: Passive exoskeleton design for reducing the energy cost of walking [1].
The device consists in a lightweight elastic device that acts in parallel with the user’s calf muscles, off-
loading muscle force and thereby reducing the metabolic energy consumed in contractions. The device
uses a mechanical clutch to hold a spring as it is stretched and relaxed by ankle movements when the
foot is on the ground. The exoskeleton consumes no chemical or electrical energy and delivers no net
positive mechanical work, yet it reduces the metabolic cost of walking by 7.2 ± 2.6% for healthy human
users under natural conditions (observed in Figure 1.4), comparable to savings with powered devices.
This work will be studied in great detail, from the computational point of view, in this dissertation.
6
Figure 1.4: Sawicki et. al. work. Net metabolic rate results of this study, showing the larger reductionwith the use of a spring with stiffness coefficient of 180 N m rad−1 [1].
1.4 Contributions
The main contributions of this work are the following:
• A 3D biomechanical model of the entire human body with natural coordinates;
• Experimental data collected for natural gait in the laboratory of motion;
• A computational model created based on a passive device for energetic performance augmenta-
tion of human gait.
1.5 Document structure
This document is divided into eight main chapters. The first and present chapter corresponds to the
introduction where it is explained the motivation, the main objectives, the state of the art and the contri-
butions of the present work. Chapter 2 introduces some necessary theoretical concepts that will help to
understand the human gait and its patterns of motion. Chapter 3 makes a brief description of a Multibody
System formulation using Natural coordinates, explains the mechanisms of an inverse dynamic analysis
and presents the software used here for that purpose. The practical work corresponds to the Chapters
4 to 6 including details about experimental acquisition, computational models construction and data pro-
cessing. Chapter 7 presents the work results, comparison and further discussion. Finally Chapter 9
presents a set of conclusions and future developments on this matter.
7
8
Chapter 2
Gait
In order to assist human locomotion it is necessary to understand the human physiology during gait, to
later understand how the human biology interacts with the projected device. Biomechanics is a multi-
disciplinary science responsible for the study of human motion. It is through the laws and concepts of
Mechanics that we are able to study the behaviour of biological systems [14]. For a better understand-
ing of exoskeletons concepts it is important to have in mind some Biomechanics considerations and
terminologies. More detailed information on this topic can be found in the literature [15].
2.1 Biomechanics of walking
Gait is commonly described in the literature by the lower limbs movements which occur during one stride
and that are repeated during human locomotion. Figure 2.1 shows a representation of a gait cycle with
the main phases and events on the sagittal plane, the dominant plane of gait motion named accordingly
with the Biomechanics terminolgy used to precisely describe the human body movements (see Figure
2.2 a) ). Gait data is often represented along the stride percentage, as the timing of the labelled events
is approximate, and varies across individuals and conditions [16]. The gait cycle is divided into two main
phases - the stance phase, which corresponds to the period when the foot is in contact with the ground
and the swing phase, when the foot is airborne. Starting with the initial contact (also known as heel
strike), the point when the heel first touches the ground and ending in the same point of the next stride,
thus completing the cycle. The principal moments of the gait cycle are:
• IC (Initial Contact) - represents the first instant of stance phase when the heel first touches the
ground;
• FF (Foot Flat) - represents the instant of stance phase when the foot is totally flat in the ground;
• HO (Heel Off) - represents the instant of stance phase when the heel leaves the ground;
• TO (Toe Off) - represents the first instant of swing phase when the foot totally leaves the ground.
The joint movements occurring in the sagittal plane, i.e the plane that divides the body in two equal
parts (left and right), are mostly described as hip and knee flexion/ extension (positive/negative direction
respectively), and the same for the ankle but named as dorsiflexion/ plantar flexion (see Figure 2.2 b) )
[16, 17].
9
Figure 2.1: Gait cycle representation. Here are the main phases of the cycle as well the definition ofthe main moments in the cycle, starting on heel strike and ending on the same foot heel strike. Adaptedfrom [16]
Although this work is focused primarily on the lower limbs movement, it is also important to mention
that the movement of the arms plays a fundamental role of balancing the body during walking. Arms
swing is not essential for walking, but recent studies (that could positively contribute to the development
of lower limbs exoskeletons) point that swinging our arms reduces the overall amount of energy it takes
during locomotion [18].
Figure 2.2: A - Anatomical reference planes. The body is in the anatomical reference position, thereference position when describing human articulation movements. B - Diagram of the leg shown in therest position (0 deg at all joints) with the positive direction indicated. [16]
Some important parameters when analysing gait are joint angles (see Figure 2.3), net moments of
force and mechanical power variation along stride. While walking data may differ somewhat across
subject and condition, the qualitative nature of data remains similar [16], for example being possible to
identify the main joint movements along the stride as it is done in Figure 2.3. By observing gait data
patterns it is possible to distinguish between normal and pathological gait, making this a clinical analysis
10
tool that can be used to support medical decision and pathology diagnosis [17].
Besides skeletal muscles and the skeleton itself there are some other important biological structures,
such as tendons and ligaments, that play an important role during walking, as they assure for force
transmission and at the same time they allow for energy storing and also dissipation. On this matter
there are some exoskeletons researchers that tend to study the relevant capabilities of these tissues
trying to mimic them on the development of exoskeleton elements, being this concept called biomimetics
[1]
Figure 2.3: Angle variation along a stride of the lower limb joints, adapted from [17] Here it is possibleto identify the basis joint movements within the gait cycle as well as its angle amplitude and duration(flexion, extension,plantar flexion and dorsiflexion.
2.2 Metabolic cost
The metabolic cost of human locomotion is the energy consumed during walking due to the muscles
actuation to produce the force needed on the center of mass, to swing the lower limbs and, simultane-
ously, to support body weight [19]. A common manner to quantify the metabolic cost during a movement
task, is to measure the rates of oxygen consumption and carbon dioxide production of the subject. This
method gives an aproximate value of how physically demanding the activity is to the body [16]. With a
proper analysis and comparison of this type of metabolic data it is possible to measure the efficiency
of the human-machine system, with the use of either an exoskeleton or other type of motion support
structure. Thus, it is possible to determine experimentaly, using a gas analyser, if there is any energetic
advantage of using the device or not [16].
The human locomotion natural system has extremely efficient operation methods, for example rapidly
adapting its response to irregularities in the ground. As this natural system always chooses the better
way to work, adapting to any type of soil or choosing each step’s length, almost any change in its
11
operating pattern may increase its metabolic rate (energy expenditure per unit time) which makes it very
difficult to achieve better performance results [1].
2.3 Energetics of gait
For the development of passive exoskeletons it becomes even more important to understand, in detail,
the human body mechanisms that occur during walking. As a passive element, this type of device does
not use any external power supply and therefore it will operate based on the utilization of the energy
already present in the system as power supply.
One important parameter to analyze regarding energy absorption and generation is the mechanical
power done by a human joint durign a specific human motion. Regarding the human gait, as other
important parameters presented above, the mechanical power present a well defined pattern of variation
along the stride percentage.
Figure 2.4 (taken from the literature [17]) shows the mechanical power variation along a normal gait
stride for the leg’s main joints. Looking to the case of the ankle joint (the one that brings more interest
to this experimental study) it is possible to see two main phases represented: negative power phase,
corresponding to an energy absorption by the ankle joint and during ground contact, and a positive
power phase that corresponds to energy generation by the muscles crossing the ankle joint.
Figure 2.4: Mechanical power normalized to bodyweight for the three main lower limb joints [17].
Analyzing the correspondent curves of the mechanical power with and without the influence of any
support mechanical system provides a way to understand the energy changes verifying the feasibility of
the added system.
12
Chapter 3
Multibody dynamics with Natural coordinates
The detailed study of complex mechanical systems subjected to displacements, rotations and inter-
nal/external forces can lead to important results for a wide variety of engineering research areas, such
as automobile industry, aerospace, robotics, biomechanics and others [20]. The use of multibody system
approaches, with efficient computer codes, allow for the systematic formulation and solution of complex
mechanical systems equations of motion [21].
A multibody system is defined as an assembly of bodies that are joined together by kinematic joints,
having the possibility of relative movement between them due to the application of external forces [20].
There are two main types of analyses that can be performed within a multibody systems formulation: a
kinematic analysis and a dynamic analysis. The first accounting only for the motion apart forces involved,
and the second adding the influence of the forces and accelerations that are present in the system.
In order to study a mechanical system with the formulation of a multibody analysis, describing the
position and orientation of each rigid body, it is necessary to define a set of coordinates. The type of
coordinates used may vary considering the type of problem, its simplicity and analysis efficiency. In the
present work will be used Natural coordinates that, make use of the Cartesian coordinates of a set of
points and unit vectors, to describe the position and orientation of a rigid body in space.
In this chapter a multibody formulation with the use of Natural coordinates is described [21, 22, 23].
3.1 Natural coordinates
In a formulation with Natural coordinates the defined points are usually interest points such as joints or
rigid bodies extremity points, while unit vectors are comonly used to define the kinematic joints rotation
and direction axes. This definition avoids the necessity to introduce angular variables since these are
implicit in the model [21].
To perform a kinematic or dynamic analysis the Cartesian coordinates of each point and vector used
in the description of the mechanical system need to be defined. These coordinates are organized in a
column vector q called generalized coordinates vector. Vector q defines in a unique way the system for
each instant of time as follows,
q =xP1
yP1zP1
· · · xPnyPn
zPnxV1
yV1zV1
· · · xVmyVm
zVm
T
(3.1)
13
where the index P stands for the correspondent point, the index V for unit vectors and x, y and z
represents the three Cartesian coordinates of a point or components of a vector. The indexes n and
m refer respectively to the total number of points and the total number of vectors used in the system
description. Looking to equation 3.1, the total number of coordinates will be given by nc = 3(m+ n).
The generalized coordinates present in vector q can be independent if they can vary independently,
or in other way, dependent if they are related with each other through algebraic equations. In a multibody
system formulation with natural coordinates all the generalized coordinates are dependent, as they
are related by algebraic equations defining the system topology at every instant of time. Constraining
the respective degrees of freedom, these expressions define the system joints, rigid bodies and driver
actuators thus being called kinematic constraint equations. There are two main types of constraint
equations regarding there dependency with time: the scleronomic and rheonomic ones. Scleronomic
constraints are kinematic constraints in which the time variable does not appear explicitly in the algebraic
equation (used to define rigid body properties and joints) while in rheonomic constraints this dependency
is explicit (used to define driver actuators). All these constraint equations are organized in the column
vector Φ in their homogeneous form as,
Φ(q, t) =
Φ1(q)...
Φns(q)
Φns+1(q, t)...
Φns+nr(q, t)
= 0 (3.2)
where Φi refers to the ith kinematic constraint equation, ns the total number of scleronomic con-
straints, nr the total number of rheonomic constraints and 0 the null vector.
3.2 Kinematic analysis
In a kinematic analysis the various elements of a mutibody system are studied by obtaining their position,
velocity and acceleration leaving aside the influence of external forces of the system.
To obtain kinematic consistent positions of the constituent elements of the mechanical system under
analysis it is necessary to solve equation 3.2 with respect to the generalized coordinates vector q, that
is the resultant positions will satisfy the kinematic constraint equations at every instant of time.
As the kinematic constraints have a non-linear behavior its resolution requires the use of numerical
methods. When solving this type of systems of equations, the Newton-Raphson’s method is usually
used. This method presents a quadratic convergence in the vicinity of the solution i.e the error in each
iteration is proportional to the square of the error in the previous iteration.
Using the first two terms of equation 3.2 expansion in a Taylor series evaluated at an approximate
initial position qi, for a given time t this equation can be rewritten as,
14
Φ(q, t) ∼= Φ(qi, t) + Φq(qi)(q − qi) (3.3)
which represents a system of linear equations, where Φq(qi) stands for the Jacobian matrix evaluated
for the initial approximation vector qi. This matrix is given by the expression,
Φq(q) =∂Φm
∂qn=
∂Φ1
∂q1∂Φ1
∂q2· · · ∂Φ1
∂qnc
∂Φ2
∂q1
. . ....
.... . .
...∂Φnh
∂q1· · · · · · ∂Φnh
∂qnc
(3.4)
which contains the partial derivatives of each kinematic constraint with respect to the vector of gener-
alized coordinates. The subscript nh refers to the total number of constraints and nc the number of
dependent coordinates.
As the Newton-Raphson method is an iterative procedure, q = qi+1 is an approximate solution of
equation 3.2 for the next iteration. Considering that the residual for the current iteration is given by
∆qi = qi+1 − qi , equation 3.2 can be written as,
Φq(qi)∆qi = −Φ(qi) (3.5)
The iteration is made repeatedly applying the equation 3.5 until the norm of ∆qi reaches a chosen
tolerance value.
Then, in order to calculate the velocity of each element used in the mechanical system description,
it is necessary to first obtain the velocity constraint equations. As there cannot be any violation of the
position constraint equations, there cannot be either for their derivatives. Thus, differentiating equation
3.5 with respect to time, it is obtained,
Φ(q, q, t) =dΦ(q, t)
dt=∂Φ(q, t)
∂t+∂Φ(q, t)
∂q
dq
dt= 0 (3.6)
where ∂Φ(q,t)∂t is the vector containing the constraints partial derivatives with respect to time, ∂Φ(q,t)
∂q is the
constraints Jacobian matrix defined in equation 3.4 above, and the term dqdt is the generalized velocities
vector q.
It is possible to rewrite the equation 3.6 above as follows,
Φqq = ν (3.7)
where ν represents to the right hand-side of the velocity equation i.e,
ν(t) = −∂Φ(q, t)
∂t(3.8)
The velocities of each point and unit vector present in the system description can now be determined.
The same procedure is repeated for the accelerations determination, differentiating this time the velocity
15
equation, as follows,
Φ(q, q, q, t) =dΦ(q, q, t)
dt= Φqq + (Φqq)qq − νt = 0 (3.9)
where νt refers to the ν partial derivative with respect to time. Rewriting the acceleration equation as,
Φqq = γ (3.10)
where γ is the right-hand side of equation 3.9, that is,
γ(q, q, t) = νt − (Φqq)qq (3.11)
3.3 Constraint equations definition
With the use of natural coordinates in a multibody systems formulation there are three possible types of
constraint equations to be defined. First the rigid body constraint which allow to maintain the rigid body
properties of each mechanical system element. Then the joint constraints, as their name indicates,
are used in the definition of the mechanical system kinematic pairs and topology. And finally the driver
constraints which are responsible for prescribing and controlling the motion of the system. To apply
these constraints to the multibody system, in this work, a scalar product constraint formulation is used
and it will be explained below.
3.3.1 Scalar product constraint
It is possible to constrain the angle between two generic vectors, u and v, using an equation describing
the scalar product between them as follows,
ΦSP (q, t) = vTu− LvLu cos(〈v,u〉(t)) = 0 (3.12)
where Lv and Lu correspond to the lengths of the vector v and u, respectively, and 〈v,u〉(t) is the angle
defined between them at a specific instant of time. As this generic constraint equation explicitly varies
with time (rheonomic constraint) in relation with the angle value, it becomes possible to either prescribe
a constant angle between two elements or define a variation of it through time. Thus, using equation
3.12, the scalar product constraint can be used to define a rigid body constraint or a driver constraint.
Due to the quadratic dependency on the generalized coordinates, the contribution of the scalar prod-
uct constraint to the Jacobian matrix is linear and given by,
ΦSPq =
∂(vTu)
∂q= uT ∂v
∂q+ vT
∂u
∂q=[0T · · · uT · · · 0T · · · vT · · · 0T
](3.13)
where the only non-zero entries are those which are associated with the generalized coordinates used
to calculate the vectors u and v.
16
Using equations 3.8 and 3.10 together with equation 3.13 the resultant right-hand sides of the velocity
and acceleration for the scalar product constraint equations are respectively given by,
νSP (t) = −LvLu sin(〈v,u〉(t)
)∂〈v,u〉(t)∂t
(3.14)
and
γSP (q, t) = νSPt (t)− 2(vT u) (3.15)
The scalar product constraint can be applied in several types of kinematic constraints, the most
common ones are described in Table 3.1.
3.3.2 Kinematic joint constraint
In order to define the relative movements allowed between elements of the mechanical system under
study the system joints are defined mathematically with constraint equations. A kinematic joint constraint
equation will restrict the relative motion between two system elements reducing the correspondent de-
grees of freedom.
In the present work, revolute, universal and spherical joints were used to describe the developed
biomechanical model. These joints are represented below with examples from the model created here.
The revolute joint enables only one rotation between two rigid bodies (restraining three translations
and two rotations) along the direction of a specified unit vector. There are two possible ways to math-
ematically define this type of joint. In the first method the rigid bodies, which are constrained by the
revolute joint, are defined in such a way that they are sharing one point and one vector (with the direc-
tion of the joint rotation axis). The second method uses superposition constraints to replicate the same
aspects. Considering two n and m two points one of each rigid body involved and a and b two vectors
also one of each the rigid bodies. Using the second method, in order to superimpose the two points, the
first joint constraint to be applied is defined as follows,
ΦSPH(q) = rn − rm = 0 (3.16)
and, in order to superimpose the two vectors, the correspondent constraint equation is expressed by,
ΦREV (q) = b− a = 0 (3.17)
The revolute joint is used, in this work, to define, for example, the joint between the toes and the foot
enabling the toes flexion and extension (1 DOF).
The universal joint only enables two DOF restricting the remaining four. The enabled movements by
this joint correspond to two rotations along two orthogonal vectors. This joint can be defined assuring or-
thogonality between two vectors, one of each rigid bodies involved. The kinematic constraint associated
with the universal joint constraint is defined by a scalar product constraint and is presented in Table 3.1.
In the biomechanical model created in this work (further explained in detail) the ankle joint is defined as
17
Constraint description v u Lv Lu 〈v,u〉 Graphical representation
Constant distance be-tween points i and j.
(rj − ri) (rj − ri) Lij Lij 0
Unit vector. a a 1 1 0
Constant angle betweenunit vectors a and b.
a b 1 1 α
Constant angle betweensegment rij and unitvector a.
(rj − ri) a Lij 1 β
Constant angle betweensegments rij and rkl.
(rj − ri) (rl − rk) Lij Lkl γ
Orthogonal unit vectors. a b 1 1 π/2
Rotational driver about arevolute joint located inpoint i, using segmentsrij and rik.
(rj − ri) (rk − ri) Lij Lik φ = f(t)
Translational driver de-fined between point iand point j belonging todifferent rigid bodies.
(rj − ri) (rj − ri) L = f(t) L = f(t) 0
Table 3.1: Most common types of kinematic constraints defined with the use of the scalar product con-straint. Vectors ri, rj , rk and rl are the Cartesian coordinates of points i, j, k and l and unit vector aand b, used in the definition of rigid bodies. [21].
being an universal joint enabling, in the sagittal plane, the foot plantar flexion and dorsiflexion and, in the
frontal plane the foot inversion and eversion (2 DOF).
The spherical joint enables three DOF’s which correspond to the three rotation movements. This joint
can be defined implicitly by defining that two rigid bodies are sharing one point or explicitly by applying
the kinematic constraint equation presented above in Equation 3.16. In this work, for example, the hip
joint is described as a spherical joint enabling the flexion, extension and internal rotation of the upper
leg (3 DOF).
18
3.4 Dynamic analysis
A dynamic analysis can be of two kind: a forward dynamic analysis and an inverse dynamic analysis.
The first approach is used when, for a given set of applied external forces, the goal is to determine the
movement of the mechanical system. In other way, an inverse dynamic analysis is useful to find, for a
given observed movement, the set of forces that was on its origin. This work will focus on the inverse
dynamics analysis as the set of forces involved in a known motion is what is needed to be known here.
In the next two sections it will be exposed, in a generic form, procedures that are common to both types
of dynamic analysis.
3.4.1 The principle of virtual power
In order to obtain the equations of motion of a constrained mechanical system, although there are other
ways presented in literature [20], here it will be exposed the principle of virtual power. This principle is
mathematically expressed as,
P∗ = q∗T (Mq − g) = 0 (3.18)
and establishes that the sum of the virtual power P∗ produced by the inertial and external forces acting
in a mechanical system must be zero at any instant of time. Here, in equation 3.18, q∗ corresponds to
the virtual velocities vector i.e a set of fictional velocities, at a given stationary instant of time, belonging
to the Jacobian matrix null space, thus,
Φqq∗ = 0 (3.19)
In equation 3.18 the term in brackets, Mq− g, also defined as the vector f , represents the resultant
of the inertial forces (Mq) and the set of the applied external forces and the velocity-dependent inertial
forces (g). M is the global mass matrix, q the generalized acceleration vector and g the generalized
force vector.
Vector f does not include any contribution of internal forces since they do not produce virtual power.
Thus, to calculate the internal forces associated to the mechanical system in study it is necessary to use
other method called Lagrange multipliers method, that is expressed by,
gΦ = ΦTq λ (3.20)
where gΦ is the generalized force vector containing the internal constraint forces and λ is the Lagrange
multipliers vector. In this model, of great physical meaning, the internal forces are calculated having the
same direction as the Jacobian Matrix rows and the same magnitude of the Lagrange multipliers vector.
Now considering the internal forces contribution, taking into account vector f definition, and using
equation 3.19 and 3.20, equation 3.18 can now be rewritten as,
19
P∗ = q∗T (Mq − g + ΦTq λ) = 0 (3.21)
Rewriting the equation 3.21 above results,
Mq + ΦTq λ = g (3.22)
which represent the equations of motion associated to a constrained multibody system with nc general-
ized coordinates and nh constraint equations. Equation 3.22 represents then a second-order ordinary
differential equation with nc + nh unknowns (the generalized accelerations vector q and the Lagrange
multipliers vector λ ) and nc equations.
3.4.2 Mass matrix for a 3D rigid body
The expressions presented above, as well as the way to solve them, are independent of the type of
coordinates chosen to perform the multibody analysis. Now, for the calculation of the mass matrix of
the system, the type of coordinates need to be established as the mass matrix depends on the type of
coordinates adopted to carry out the analysis. Each rigid body will have an associated specific matrix
but it can be determined from a basic mass matrix (for a basic rigid body represented in Figure 3.1)
using a coordinate transformation.
Figure 3.1: Representation of a 3D basic rigid body composed by two points (i and j) and two non-coplanar vectors (u and v) in its kinematic structure. p is a generic point that belongs to the rigid body.The inertial reference frame is represented by (xyz) and the local reference frame, which is attached tothe rigid body, by (ξηζ). Based in [21].
It order to calculate the mass matrix for a basic rigid body, the principal of virtual power is used. The
virtual power generated in a rigid body by the inertial forces, P∗, is expressed in its integral form as
follows,
P∗ = −ρ∫
Ω
r∗T rdΩ (3.23)
where vector r∗ is the position vector of a generic point p (see Figure 3.1) and it does not belong to the
20
set of generalized coordinates which define the rigid body. In equation 3.23 ρ is the rigid body density,
Ω its volume, r and r the vectors of virtual velocities and accelerations respectively. In order to include
the term of the inertial forces power in the equations of motion it is necessary to rewrite r as a function
of the rigid body’s generalized coordinates vector. For that an appropriate coordinate transformation is
used, as follows,
r − ri = c1(rj − ri) + c2u+ c3v (3.24)
where vector r (which defines the global position of point p) can be expressed by the Cartesian coordi-
nates of segment rij and unit vectors u v. In equation 3.24, c1, c2 and c3 are the coordinates of segment
rip in the 3D base formed by the vector rij , u and v. In a matrix form, Equation 3.24 is expressed as,
r =[(1− c1)I3 c1I3 c2I3 c3I3
]
ri
rj
u
v
(3.25)
and in a more compact form as,
r = Cqe (3.26)
where C corresponds to a transformation matrix constant in time due to their motion independence, and
qe is the vector of generalized coordinates for the basic rigid body. Differentiating equation 3.26 twice
the follow equations are obtained,
r = Cqe (3.27)
r = Cqe (3.28)
where qe and qe are respectively the generalized velocity and acceleration vectors of the basic rigid
body. Rewriting equation 3.24 as follows, the coefficients c1, c2 and c3 can be obtained,
r′ − r′i = c1(r′j − r′i) + c2u′ + c3v
′ (3.29)
which can be expressed in matrix form as, where r′ refers to the local reference frame,
r′ − r′i =[rij u′ v′
]c1
c2
c3
= X ′c (3.30)
where c is the vector containing the three coefficients and matrix X ′ contains the local coordinates of
segment rij and vectors u and v. Matrix X ′ is invertible as, by definition, the correspondent vectors are
21
non-coplanar. Thus equation 3.30 can be solved in order to c as follows,
c = X ′−1(r′ − r′i) (3.31)
Using equations 3.27 and 3.28 and making the correspondent replacements in the equation of virtual
power of the inertial forces 3.23, results,
P∗m = −ρ
∫Ω
q∗Te CTCqedΩ (3.32)
where q∗e and qe are independent of the body’s volume Ω and therefore can be isolated from the integral
resulting the expression for the mass matrix of the basic rigid body as follows,
M = ρ
∫Ω
CTCdΩ (3.33)
The product CTC can be evaluated using matrix C (equation 3.25), resulting in,
M =
∫Ω
ρ
1− 2c1 + c21I3 c1 − c21I3 c2 − c1c2I3 c3 − c1c3I3
c1 − c21I3 c21I3 c1c2I3 c1c3I3
c2 − c1c2I3 c1c2I3 c22I3 c2c3I3
c3 − c1c3I3 c1c3I3 c2c3I3 c23I3
dΩ (3.34)
The integration of the previous expression ([21, 20]) results in the final form of the mass matrixM for
a basic rigid body, described with two points and two non-coplanar unit vectors, with natural coordinates
as follows,
M e =
(m− 2ma1 + z11)I3 (ma1 − z11)I3 (ma2 − z12)I3 (ma3 − z13)I3
(ma1 − z11)I3 z11I3 z12I3 z13I3
(ma2 − z21)I3 z21I3 z22I3 z23I3
(ma3 − z31)I3 z31I3 z32I3 z33I3
(3.35)
wherem is the total mass of the rigid body, ai and zij are respectively the first and second area moments
of the rigid body.
The obtained mass matrix is constant in time, so it is only evaluated once, at beginning of the anal-
ysis. This mass matrix only depends of a set of ten different parameters. The parameters are the total
mass of the rigid body, the coordinates of the center of mass in the local reference frame and the six
different elements of the inertia tensor, also calculated with respect to the local reference frame. In the
most cases it is possible to use the formulation above (with a kinematic structure of two points and two
unit vectors) in the construction of the basic mass matrix, however sometimes the rigid body cannot be
described with this specific kinematic structure and, in that case, other notations need to be used for the
mass matrix calculation (notations presented in [21] and [20]).
22
3.4.3 Inverse dynamics analysis
A multibody system can exhibit a complex behavior when driven by external and internal forces. An
inverse dynamic analysis consists on the reconstruction of the internal forces and/or torques from the
known movements and external forces. This type of analysis allows calculating the forces and torques
that produce a specific movement. Applying the calculations of inverse dynamics to human motion
data it is possible to analyze the moments of force associated with biological joints temporally along the
associated motion.
To perform an inverse dynamic analysis, the studied motion need to be already known and consis-
tent through time with the kinematic constraints used to describe the mechanical system. That is, the
trajectories of each natural coordinate (equation 3.1) of the model need to be first obtained, being con-
sistent with the kinematic constraint equations (equation 3.2). In order to obtain a consistent generalized
coordinates vector the procedure here used is to interpolate the trajectories of each generalized coor-
dinate using cubic splines and then obtaining their velocity and acceleration using spline differentiation
techniques.
To solve an inverse dynamics problem there are several methods that could be applied in order to
obtain the forces involved in a mechanical system. In this work only the Lagrange multipliers method will
be exposed. Using this method the equations of motion presented in expression 3.22 are solved with
respect to the Lagrange multipliers vector as follows,
ΦTq λ = g −Mq (3.36)
With this method the Lagrange multipliers associated with the driving constraints are used to calculate
the external forces associated with each degree of freedom. The remaining Lagrange multipliers are
used to calculate the internal forces developed in the kinematic joints and rigid bodies.
3.5 Apollo software
The analysis software used for this work was the academic software Apollo, a multibody dynamics
software with Natural coordinates developed in Fortran, that was created at Instituto Superior Tecnico
[21].
To perform an inverse dynamic analysis of an individual motion is necessary to provide the position,
velocity and acceleration of the biomechanical system and all the external forces applied [20]. Despite
all this, it is also necessary that the given motion is consistent with the model kinematic constraints.
More specifically the necessary data for an inverse dynamic analysis applied to the human motion
requires the following information:
• Anthropometric information - anatomical segments lengths, center of mass location, inertial prop-
erties and mass.
• Kinematic information - trajectories of the anatomical joints and extremity points.
23
• Dynamic information - external forces applied through the motion under analysis.
With the creation of files containing detailed information about the created model, along with all the
necessary information about the desired simulation, the Apollo software provides the necessary results
to analyze a mechanical system motion along the simulation time.
During the next sections a brief introduction to the multibody formulation used in the Apollo software
is presented.
3.5.1 Input data preparation
To proceed with the analysis of movement in the Apollo software it is necessary to construct some input
data files with the model and simulation information. In this particular work the necessary files are of
four different extensions: *.mdl, *.sml, *.dat, *.frc. The main information that each one contains is as
follows:
• The *.mdl file corresponds to a modulation file containing the information about the model itself,
where it is gathered data about the number of rigid bodies, local coordinates of each point, mass
and inertia parameters of each segment, kinematic constraints and its description (one of the *.mdl
files created for this work is presented in the Appendix A).
• The *.sml file corresponds to a simulation file containing the analysis specifications: type, initial
conditions for each rigid body (center of mass position, acceleration and euler angles), the analysis
time, and the gravity field specification.
• The *.dat files contain the information about the kinematic drivers applied to the system, having
then one *.dat file for each kinematic driver defined. This information corresponds to the driver
variation along time, that could be an angle or a set of coordinates.
• The *.frc files contain the information about the external forces and/or torques applied to the system
along time.
3.6 Graphic visualization of the simulation
In order to visualize the motion simulation it was used a graphic interface developed at IST [22] as well
as the Apollo software.
With this interface it is possible to see the model performing the motion under analysis with all the
points, local vectors, CM points and the reaction forces.
24
Figure 3.2: Graphic visualization interface for reading Apollo analysis output. It is possible to see severalinterest elements along the simulation time.
Figure 3.3: Graphic visualization of the Apollo analysis with the influence of the exoskeleton in study.
25
26
Chapter 4
Computational biomechanical model
A biomechanical model consists of a mathematical approximation of a given biological real system [14],
in this case the human body. The analysis done in this work was an inverse dynamics analysis of human
gait within the framework of multibody systems in which the creation of a full body biomechanical model
is relevant and necessary.
4.1 Kinematic structure
The biomechanical model created for this work has 28 rigid bodies and 62 points. The human joints in
multibody systems analysis with natural coordinates are defined between rigid bodies points and also
with rigid bodies unit vectors. For the creation of this biomechanical model two types of mechanical
joints are reproduced: the revolute joint and the universal joint.
To better understand the method used to implement kinematic joints in this biomechanical model,
two good examples are the elbow and wrist joints.
The elbow is described here as two revolute joints: the first allowing the lower arm flexion and the
other allowing its internal rotation. In another way, the wrist joint is described as a universal joint, allowing
for the hand flexion and extension and medial and lateral movements. Figure 4.1 represents the right
upper limb of the model. With this representation it is possible to see that with the use of inner product
constraints between vectors and/or segments, and with superposition constraints between points it is
possible to mathematically define biological joints.
In the case of the elbow joint the four correspondent points (P44, P46, P47, P49) are superposed
(mathematically represented by the constraint equations 4.1) and the vectors v28 and v30, having the
direction of the elbow flexion/extension axis, are constrained to be parallel with the use of a scalar
product constraint (see equation 4.2). Here lower arm internal rotation is described with the addition of
a second rigid body that may be seen as a mobile rigid body (M) that rotates around a fixed one (F) only
via the superposition of the pair of points P47/P49 and P48/P50, which naturally create the revolute joint.
Adding a second rigid body to describe an internal rotation is a useful method that can be found here in
the definition of several segments of the human body.
27
Figure 4.1: Right arm model: Revolute joint in the elbow and universal joint at the wrist - Main types ofjoints used in the full body biomechanical model creation.
ΦREV = P44 − P46 = 0
ΦREV = P46 − P47 = 0
ΦREV = P47 − P49 = 0
(4.1)
ΦREV = v28 − v30 = 0 (4.2)
Constraint equations of the type of 4.1 and 4.2 are defined in the Apollo software as superposition
constraints (SP). At the level of the wrist, vectors v31 and v32 are constrained to be orthogonal along
time (constrained by the scalar product constraint in equation 4.3) and the points P48, P50 and P51 are
superposed (see equation 4.4), only allowing the flexion/extension and radial/ulnar deviations of the
hand. The hand rigid body needs to be constrained with the lower arm mobile rigid body in order to
reproduce the hand natural motion which follows the lower arm rotation.
ΦSP = vT31v32cos(90) = 0 (4.3)
ΦREV = P44 − P46 = 0
ΦREV = P46 − P47 = 0
ΦREV = P47 − P49 = 0
(4.4)
Constraint equations of the type of 4.3 (scalar product constraints) are defined in the Apollo software
as inner product constraints (IP). This is how it is possible to reproduce the movement of the human body
mathematically, applying this type of constraints throughout all the other biological joints. By reproducing
the biological joints motion restrictions it is possible to obtain approximately the same degrees of freedom
28
of the human body gross movement.
At the creation of the model it is important to notice that a unit vector cannot be coplanar to the rigid
body, otherwise the Apollo software is not able to find the rigid body orientation in space.
Figure 4.2: Biomechanical 3D model developed has entry for the Apollo software. Detailed numberingof points, rigid bodies (inside circles), and unit vectors. Some of the unit vectors here represented,despite being represented in the y direction, they have the specific directions of the rotation axis of theassociated joint (see Table 4.2)
The entire body model is illustrated in Figure 4.2, where all the defined bodies are represented, rigid
and mobile ones, and correspondent points. Most of the rigid bodies are defined here by two points, yet
there are also 3 point bodies (in the case of the head, pelvis, and feet) and 4 point bodies (in the case of
the mobile trunk). All the remaining information required about the model definition, such as rigid bodies
names, correspondent points and unit vectors, kinematic constraints and drivers definition can be found
in Tables 4.1, 4.2, 4.3, 4.4 and 4.5.
4.2 Kinematic drivers
In order to prescribe motion to the biomechanical model it is necessary to mathematically define each
of the existent degrees of freedom. From the kinematic point of view, the DOF’s can be defined with
superposition and inner product constraints.
The created model has a total of 42 degrees of freedom including rotation and translation ones. This
29
RB Name Defined by the points
RB1 Pelvis P1, P2, P3
RB2 Trunk (fixed) P4, P5
RB3 Trunk (mobile) P6, P7, P8, P9
RB4 Neck (fixed) P10, P11
RB5 Neck (mobile) P12, P13
RB6 Head P14, P15, P16
RB7 Right upper leg (fixed) P17, P18
RB8 Right upper leg (mobile) P19, P20
RB9 Right leg (fixed) P21, P22
RB10 Right leg (mobile) P23, P24
RB11 Right foot P25, P26, P27
RB12 Right toes P28, P29
RB13 Left upper leg (fixed) P30, P31
RB14 Left upper leg (mobile) P32, P33
RB15 Left leg (fixed) P34, P35
RB16 Left leg (mobile) P36, P37
RB17 Left foot P38, P39, P40
RB18 Left toes P41, P42
RB19 Right arm (fixed) P43, P45
RB20 Right arm (mobile) P45, P46
RB21 Right lower arm (fixed) P47, P48
RB22 Right lower arm (mobile) P49, P50
RB23 Right hand P51, P52
RB24 Left arm (fixed) P53, P54
RB25 Left arm (mobile) P55, P56
RB26 Left lower arm (fixed) P57, P58
RB27 Left lower arm (mobile) P59, P60
RB28 Left hand P61, P62
Table 4.1: Markers numbers and correspondent anatomical location.
means that 42 driving constraints are needed to fully describe the model kinematics.
The degrees of freedom are guided with angular and translational drivers defined in the Apollo soft-
ware. The calculation of the driver values along time is done with a Matlab program developed to analyze
the experimental data from the laboratory. This and other data processing needed is further explained
in Chapter 5.
The Apollo software allows the driver definition in several different types. In the case of angular
drivers, an angle can be defined between: two unit vectors, two rigid body segments, one unit vector
and one segment. Regarding the translation ones, its definition is made by the global coordinates of a
point or a vector. Along with the model description at Apollo (modeling file) it is necessary to describe
the system drivers (simulation file), which are defined in table 4.5.
4.3 Model kinematics database
For the construction of a biomechanical model in accordance with a specific individual it is necessary
to consult databases with information about the anthropometry of the human being, making a proper
approximation of the biological system to the mathematical one. The information consulted for the
realization of this model was, for each anatomical segment, the relative position of the CM, the segment
30
Vector RB Local coordinates Vector RB Local coordinates
v1 1 0.0 1.0 0.0 v21 15 Left knee flexion axis
v2 1 1.0 0.0 0.0 v22 16 0.0 1.0 0.0
v3 2 0.0 1.0 0.0 v23 17 0.0 1.0 0.0
v4 3 1.0 0.0 0.0 v24 17 1.0 0.0 0.0
v5 4 0.0 1.0 0.0 v25 18 0.0 1.0 0.0
v6 5 1.0 0.0 0.0 v26 19 0.0 1.0 0.0
v7 6 0.0 1.0 0.0 v27 20 1.0 0.0 0.0
v8 7 0.0 1.0 0.0 v28 21 Right lower arm flexion axis
v9 8 1.0 0.0 0.0 v29 21 1.0 0.0 0.0
v10 8 Right knee flexion axis v30 21 Right lower arm flexion axis
v11 9 1.0 0.0 0.0 v31 22 0.0 1.0 0.0
v12 9 Right knee flexion axis v32 23 1.0 0.0 0.0
v13 10 0.0 1.0 0.0 v33 24 0.0 1.0 0.0
v14 11 0.0 1.0 0.0 v34 25 1.0 0.0 0.0
v15 11 1.0 0.0 0.0 v35 25 Left lower arm flexion axis
v16 12 0.0 1.0 0.0 v36 26 1.0 0.0 0.0
v17 13 0.0 1.0 0.0 v37 26 Left lower arm flexion axis
v18 14 1.0 0.0 0.0 v38 27 0.0 1.0 0.0
v19 14 Left knee flexion axis v39 28 1.0 0.0 0.0
v20 15 1.0 0.0 0.0
Table 4.2: Vectors used to define the kinematic structure and drivers of the biomechanical model herecreated. The highlighted vectors are the ones which needs to be calculated their local direction with thecorrespondent rotation axis of each revolute joint, which happens at the elbow and knee joints.
mass and inertia parameters. For this work data was collected from several databases [24, 21, 25, 23].
The reference database for this model was obtained from De Leva [24], which contains information about
the mass, the center of mass location, and the radius of gyration as a function of the total body mass
and segments length. For the head anatomical segment it was consulted the work of Silva [21]. The
information about the foot and toes, it is based on the work of Malaquias [23] and Anderson & Pandy
[25].
With some necessary calculations the relative parameters were obtained and are reported in Table
4.6. With this relative parameters, knowing the individual body mass and the static trial data acquired,
the corresponding data for the subject under analysis is easily obtained.
31
SP Between SP Between
SP1 P1, P4 SP23 P37, P38
SP2 P2, P17 SP24 P40, P41
SP3 P3, P30 SP25 P43, P45
SP4 P4, P6 SP26 P44, P46
SP5 P8, P43 SP27 P46, P47
SP6 P9, P53 SP28 P47, P49
SP7 P7, P10 SP29 P48, P50
SP8 P10, P12 SP30 P50, P51
SP9 P11, P13 SP31 P53, P55
SP10 P13, P14 SP32 P54, P56
SP11 P17, P19 SP33 P56, P57
SP12 P18, P20 SP34 P57, P59
SP13 P20, P21 SP35 P58, P60
SP14 P21, P23 SP36 P60, P61
SP15 P22, P24 SP37 P5, P7
SP16 P24, P25 SP38 v10, v12
SP17 P27, P28 SP39 v19, v21
SP18 P30, P32 SP40 v23, v25
SP19 P31, P33 SP41 v14, v16
SP20 P33, P34 SP42 v28, v30
SP21 P34, P36 SP43 v28, v30
SP22 P35, P37
Table 4.3: Superposition constraints definition.
Inner product constraints
(of 90 degrees)
IP1 v2 v3
IP2 v4 v5
IP3 v6 v7
IP4 v2 v8
IP5 v13 v15
IP6 v2 v17
IP7 v22 v24
IP8 v4 v26
IP9 v31 v32
IP10 v4 v33
IP11 v38 v39
Table 4.4: Inner product constraints definition
32
DriverAngle
Description DriverAngle
Descriptionbetween between
D1 v2, P4P5 Trunk flex./ext. D22 v24, P35P34 L. Foot plantar/dorsi flex.
D2 v1, P4P5 Trunk lateral flex. D23 v23, P35P34 L. Foot Inv./Ev.
D3 v3, v4 Trunk rotation D24 P39P40, P41P42 L. Toes flex.
D4 v4, P10P11 Neck flex./ext. D25 v4, P44P43 R. Arm flex./ext.
D5 v5, P6P7 Neck ab./ad. D26 v26, P6P7 R. Arm ab./ad.
D6 v5, v6 Neck rotation D27 v26, v27 R. Arm rotation
D7 P12P13 , P15P16 Head flex./ext. D28 v29, P46P45 R. Lower arm flex.
D8 v7, P12P13 Head ab./ad. D29 v29, v31 R. Lower arm rotation
D9 v2, P18P17 R. Upper leg flex./ext. D30 v32, P50P49 R. Hand flex./ext.
D10 v1, P18P17 R. Upper leg ab./ad. D31 v31, P52P51 R. Hand rad./uln. deviation
D11 v8, v9 R. Upper rotation D32 v4, P54P53 L. Arm flex./ext.
D12 v11, P20P19 R. Leg flex. D33 v33, P6P7 L. Arm ab./ad.
D13 v11, v13 R. Leg rotation D34 v33, v34 L. Arm rotation
D14 v15, P24P23 R. Foot plantar/dorsi flex. D35 v36, P56P55 L. Lower arm flex.
D15 v14, P24P23 R. Foot inv./ev. D36 v36, v38 L. Lower arm rotation
D16 P26P27, P28P29 R. Toes flex. D37 v39, P58P57 L. Hand flex./ext.
D17 v2, P31P30 L. Upper leg flex./ext. D38 v38, P62P61 L. Hand rad./uln. deviation
D18 v2, P31P30 L. Upper leg ab./ad. D39 — Point P1 translation
D19 v17, v18 L. Upper rotation D40 — Vector v1 translation
D20 v20, P33P32 L. Leg flex. D41 — Vector v2 translation
D21 v20, v22 L. Leg rotation
Table 4.5: Drivers definition. Here are defined the main motions of the human segments: flexion,extension, abduction, adduction, inversion, eversion, and internal rotation. And also for the right (R)and left (L) segments of the body.
Anatomical segmentCM%
m%Inertia parameters
(to proximal joint) Ix Iy Iz
Head 58.94 6.68 0.0190 0.0225 0.0177
Trunk 49.82 25.53 1.1589 0.4526 0.8313
Neck 49 1.2 0 0.0056 0
Pelvis 49.2 12.47 0.0045 0.0038 0.0047
Upper leg 36.16 14.78 0.1803 0.1755 0.0348
Leg 44.16 4.81 0.0286 0.0278 0.0034
Arm 57.54 2.55 0.0081 0.0071 0.0023
Lower arm 45.59 1.38 0.0030 0.0029 0.0004
Hand 74.74 0.56 1.1589 0.4526 0.8313
Foot (along x) 13.30 1.69 0.0013 0.0038 0.0036
Foot (along z) 19 — ——————-
Toes (along x) 9.96 0.289 0.0001 0.0001 0.0001
Toes (along z) 6.85 — ——————-
Table 4.6: Relative necessary anthropometric parameters taken from several databases [24, 21, 25, 23].These values are relative to a female individual as it corresponds to the one studied here.
33
Figure 4.3: In this figure the biomechanical model is represented with the centers of mass approximatelylocated of each human segment. The head and the foot are illustrated in different views for betterunderstanding. There is also a schematic representation of the CM% distance (distance between CMand the proximal joint of the rigid body) presented in Table 4.6
34
Chapter 5
Experimental acquisition and data processing
In this chapter it is given a detailed explanation of the methods used to collect, treat and implement the
data acquired from the laboratory of movement.
5.1 Acquisition protocol
The data acquisition in biomechanics is commonly made by a motion software that uses infra-red cam-
eras combined with retro reflective markers to acquire their trajectories information. In order to have a
good biomechanical analysis, it is necessary to attach the markers in strategical places accordingly with
already existent protocols.
A marker set protocol defines a set of anatomical locations where the markers need to be attached,
making possible the comparison between motion trials and individuals. This can be achieved because
each marker is placed at some human body protuberances of bones or other references of a natural
individual. The markers locations for this work are specified in Table 5.1, exhibiting the marker numbers
and its correspondent anatomical location.
At the time of the experimental acquisition, the markers need to be located as precise as possible,
being necessary the careful observation of the markers along the movement to detect possible exagger-
ated displacements of their locations avoiding errors on the acquisition.
Along with the markers trajectories acquisition, the external forces are also acquired with the use of
force platforms. In the experimental acquisitions made here three force platforms were used strategically
placed in order to acquire data for an entire stride.
5.2 Data collection - QTM software
The acquisition software used in this work was the Qualysis Track Manager, QTM. This software makes
the collection from the markers trajectories and force platforms data, also containing a graphic display
interface (see Figure 5.2).
In this stage, it is necessary to assure a continuous trajectory for each marker used so that it does
not cause errors in the motion analysis. QTM has the necessary tools for trajectories that might not be
completely filled, by filling trajectory gaps that are pointed by the user. This approaches can be done by
linear or polynomial approximations.
A static acquisition of the studied individual (being in the anatomical reference position) is acquired
35
Figure 5.1: Markers protocol used in the gait motion acquisition. The right foot is represented separatelyfor better visualization. The marker numbers and its anatomical location are specified at Table 5.1.
Marker Anatomical location Marker Anatomical location
M1 Right frontal bone M23 Left posterior superior iliac spine (PSIS)M2 Left frontal bone M24 Right hip jointM3 Right occipital bone M25 Left hip jointM4 Left occipital bone M26 Right medial kneeM5 7th cervical vertebra M27 Right lateral kneeM6 Right shoulder M28 Right medial malleolusM7 Left shoulder M29 Right lateral malleolusM8 Right medial elbow M30 Right calcaneousM9 Right lateral elbow M31 Right metatarsus IM10 Right medial wrist M32 Right metatarsus VM11 Right lateral wrist M33 Right phalange IIM12 Right metacarpus II M34 Right halluxM13 Right metacarpus V M35 Left medial kneeM14 Left medial elbow M36 Left lateral kneeM15 Left lateral elbow M37 Left Right medial malleolusM16 Left medial wrist M38 Left lateral malleolusM17 Left lateral wrist M39 Left calcaneousM18 Left metacarpus II M40 Left metatarsus IM19 Left metacarpus V M41 Left metatarsus VM20 Right anterior superior iliac spine (ASIS) M42 Left phalange IIM21 Left anterior superior iliac spine (ASIS) M43 Left halluxM22 Right posterior superior iliac spine (PSIS) M44 Top of the Head
Table 5.1: Markers numbers and correspondent anatomical location.
36
Figure 5.2: Qualysis Track Manager software, data collection software used in this work.
to later obtain anthropometric measurements of the person. Then dynamic trials of the movement under
analysis are recorded (in this case natural cadence gait). For the dynamic trials the interval of data
defined in QTM for data exportation starts 10 frames before the foot initial contact with the ground and
ends 10 frames after a whole stride. This needs to be done for a correct data filtering.
5.3 Data processing
Before creating the files needed for motion analysis, it is necessary to fully treat and process the data
from the laboratory of movement. For that, it is necessary to create a set of Matlab functions and scripts
capable to process the QTM data and generate the required information for the Apollo simulation. In the
next sections the set of calculations made in Matlab for data processing will be exposed.
5.3.1 Joints location determination
The data acquired in the QTM software, regarding the markers trajectories and the correspondent ex-
ternal forces measured with the force platforms, can be exported to *.tsv format files. Further the data is
processed accordingly with the necessary information to the creation of Apollo input files.
The data processing starts with the use of a 3rd order low pass Butterworth filter to attenuate the
high frequency noise signals present in the trajectories of the markers. For that, first it is necessary to
process the markers coordinates in order to have the model points coordinates, that is the human body
joints and extremity points. The methods presented below (see Table 5.2) were based on the method
proposed by Vila [26], adapted to the acquisition protocol used in the experimental acquisition.
According to the proposed method, for each rigid body is necessary to define 3 local vectors defining
x, y and z directions of the local reference frame of the body. These directions are approximately
chosen such as the local coordinate system of the body is aligned with the global coordinate system
when the individual is in the anatomical reference position. Some of the joints need the definition of
the correspondent rigid body local vectors for the determination of its joint center or rotation axis, as
reported after.
37
Trunk and upper arms
wP =w∗RP ×w∗LP
|w∗RP ×w∗LP |vP = (rM21 − rM20)/|rM21 − rM20|
uP = vP ×wP
w∗RP = (rM22 − rM20)/|rM22 − rM20|
w∗LP = (rM23 − rM21)/|rM23 − rM21|
rJ2 = (rM22 + rM23)/2 + (0.598uP
−0.344vP − 0.290wP )A
rJ3 = (rM22 + rM23)/2 + (0.598uP
+0.344vP − 0.290wP )A
rJ1 = (rJ2 + rJ3)/2 + (−0.01uP
+0.275wP )A
Pelvis
vMT = (rM7 − rM6)/|rM7 − rM1|
uMT =(rM7 − rJ1)× (rM6 − rJ1)
|(rM7 − rJ1)× (rM6 − rJ1|wT =wMT = uMT × vMT
uT = vT ×wT
rJ4 = rM6 − 0.02vMT − 0.05wT
rJ5 = rM7 + 0.02vMT − 0.05wT
rJ6 = 0.5rM5 + 0.25(rJ4 + rJ5)
vRA = (rM7 − rM6)/|rM7 − rM1|
uRA = vRA ×wRA
wRA = (rJ4 − rJ20)/|rJ4 − rJ20|
rJ20 = (rM9 + rM8)/2
vLA = (rM7 − rM6)/|rM7 − rM1|
uLA = vLA ×wLA
wLA = (rM7 − rM6)/|rM7 − rM1|
rJ23 = (rM14 + rM15)/2
Table 5.2: Representation and necessary formulas for the calculation of joint and extremity points. Thereare also the calculation of the unit vector of each fixed body (the unit vectors of the mobile bodies arefurther explained). Vectors u, v and w refer to x, y and z directions of each body.
38
Lower arms and hands
v∗RLA = (rM8 − rM9)/|rM8 − rM9|
wRLA = (rJ20 − rJ21)/|rJ20 − rJ21|
uRLA = v∗RLA ×wRLA
vRLA =wRLA × uRLA
rJ21 = (rM10 + rM11)/2
v∗LLA = (rM15 − rM14)/|rM15 − rM14|
uLLA = v∗LLA ×wLLA
vLLA =wLLA × uLLA
wLLA = (rJ23 − rJ24)/|rJ23 − rJ24|
rJ24 = (rM16 + rM17)/2
v∗RH = (rM10 − rM11)/|rM10 − rM11|
uRH = v∗RH ×wRH
vRH =wRH × uRH
wRH = (rJ21 − rJ22)/|rJ21 − rJ22|
rJ22 = (rM12 + rM13)/2
v∗LH = (rM17 − rM16)/|rM17 − rM16|
uLH = v∗LH ×wLH
vLH =wLH × uLH
wLH = (rJ24 − rJ25)/|rJ24 − rJ25|
rJ25 = (rM18 + rM19)/2
Upper legs
v∗RUL = (rJ3 − rJ2)/|rJ3 − rJ2|
wRUL = (rJ2 − rJ10)/|rJ2 − rJ10|
uRUL = v∗RUL ×wRUL
vRUL =wRUL × uRUL
rJ10 = (rM26 + rM27)/2
v∗LUL = v∗RUL
wLUL = (rJ3 − rJ15)/|rJ3 − rJ15|
uLUL = v∗LUL ×wLUL
vLUL =wLUL × uLUL
rJ15 = (rM35 + rM36)/2
Table 5.2: Continuation.
39
Legs
v∗RL = (rM26 − rM27)/|rM26 − rM27|
wRL = (rJ10 − rJ11)/|rJ10 − rJ11|
uRL = v∗RL ×wRL
vRL =wRL × uRL
rJ11 = (rM28 + rM29)/2
v∗LL = (rM36 − rM35)/|rM36 − rM35|
wLL = (rJ15 − rJ16)/|rJ15 − rJ16|
uLL = v∗LL ×wLL
vLL =wLL × uLL
rJ16 = (rM37 + rM38)/2
Feet
v∗RF = (rM28 − rM29)/|rM28 − rM29|
uRF = (rJ13 − rJ12)/|rJ13 − rJ12|
wRF =uRF × v∗RF
vRF =wRF × uRF
rJ12 = (rM34x, rM33y, rM34z)
rJ13 = rM30
vRToes = (rM31 − rM32)/|rM31 − rM32|
uRToes = (rJ14 − rJ13)/|rJ14 − rJ13|
wRToes =uRToes × vRToes
rJ14 = (rM34x, rM33y, rM34z)
v∗LF = (rM38 − rM37)/|rM38 − rM37|
uLF = (rJ18 − rJ17)/|rJ18 − rJ17|
wLF =uLF × v∗LF
vLF =wLF × uLF
rJ17 = rM39
rJ18 = (rM40 + rM41)/2
vLToes = (rM41 − rM40)/|rM41 − rM40|
uLToes = (rJ19 − rJ18)/|rJ19 − rJ18|
wLToes =uLToes × vLToes
rJ19 = (rM43x, rM42y, rM43z)
Table 5.2: Continuation.
40
Upper legs
vH = (rM2 − rM1)/|rM2 − rM1|
uH =(aux1 − rM44)× (aux2 − rM44)
|(aux1 − rM44)× (aux2 − rM44)‖wH =uH × vHaux1 = (rM44x, rM1y, rM1z)
aux2 = (rM44x, rM2y, rM2z)
rJ7 = (aux1 + aux2)/2− 0.1wH
vN = vT
wN = (rJ7 − rJ6)/|rJ7 − rJ6|
uN = vN ×wN
Table 5.2: Continuation.
Table 5.2 shows all the model points location relatively to markers coordinates. It also presents the
definition of each human segment local vectors. It is, however, important to note that this set of local
vectors, for anatomical segments that need to be described as a system of two bodies (one fixed and
one mobile), correspond to the fixed one. In the case of the mobile body it is necessary to give other set
of local vectors in a way to define the internal rotation of the rigid body in question.
The local vectors definition with the superposition constraints and inner product constraints define
the degrees of freedom and the principal motions of the human body during gait.
Observing Table 5.2, and considering the formulation used and also through the anatomical seg-
ments illustrations presented there, the locations of the biomechanical model points are perceptible. It
is through the application of this type of calculations to each frame of the movement acquisition, that it
is possible to obtain the information about the defined kinematic drivers.
5.3.2 Static trial
In order to acquire anthropometric data about the individual under study, a static acquisition is made
first. In this work the static trial is performed with the subject in the anatomical reference position. Then
the generated static data is processed in order to find the individual anatomical segments lengths. With
the use of the anthropometry databases, the CM location for each rigid body of the model can now be
calculated, as well as the rigid bodies points local coordinates. Knowing the subject mass, with the
relative segments masses from the databases, each rigid body mass is obtained. After this, for each
anatomical segment of the individual, the inertia parameters for the 3 main directions are calculated. For
cases where what is known are the values of the radii of gyration, the following expression is used for
the inertia parameters calculation,
Ix,y,z = m(l rx,y,z)2 (5.1)
41
Mobile Local vectors
rigid body
RB5
vMN = vH
wMN =wN
uMN = vMN ×wMN
RB8
vMRUL = vRL
wMRUL =wRUL
uMRUL = vMRUL ×wMRUL
RB10
vMRL = vRF
wMRL =wRL
uMRL = vMRL ×wMRL
RB14
vMLUL = vLL
wMLUL =wLUL
uMLUL = vMLUL ×wMLUL
RB15
vMLL = vLF
wMLL =wLL
uMLL = vMLL ×wMLL
RB20
vMRA = vRLA
wMRA =wRA
uMRA = vMRA ×wMRA
RB22
vMRLA = vRH
wMRLA =wRLA
uMRLA = vMRLA ×wMRLA
RB25
vMLA = vLLA
wMLA =wLA
uMLA = vMLA ×wMLA
RB26
vMLLA = vLH
wMLLA =wLLA
uMLLA = vMLLA ×wMLLA
Table 5.3: Mobile rigid bodies local vectors definition.
where m corresponds to the mass of the considered rigid body, l represents its length and rx,y,z the
radii of gyration values taken from the database. These inertia parameters are calculated with respect
to the CM of the rigid body. When necessary the Parallel-axis theorem is used to calculate the inertia
parameters with respect to other relevant body points.
Representing an anatomical segment through a set of two rigid bodies, a mobile one and a fixed one,
it is necessary to use a different approach in the determination of the previous parameters. In the next
section the methodology used for this purpose is presented.
42
Two rigid bodies approach
In the biomechanical model here created, some human segments are described as a set of two rigid
bodies, one mobile and one fixed, appearing when an internal rotation needs to be defined. For those
cases the mass of the human segment needs to be distributed among the two representative rigid
bodies, as well as the inertia properties. The method used for this purpose was a division into two rigid
bodies considering that the fixed one has the properties of a cylinder with mass equal to 1/6 of the mass
of the total biological segment, and the mobile one corresponding to the remaining part of the human
segment. The value for the fixed rigid body was chosen to be relative to the anatomical segment total
mass in order to establish a consistent approach for all segments. The fraction of 1/6 was established
so as to be small enough not to cause errors in the following calculations.
Figure 5.3: Inertia and mass distribution among the two bodies of the representation, one mobile (M )and one fixed (F )
It is also imposed for the fixed rigid body (F ) a z direction inertia of 0.01 kg m2 . Then the inertia
values on the x and y directions of body F are calculated with the cylinder equation,
IFx,y = 1
4mF r2 + 1
12mFL2
IFz = 0.01 [kg m2]
(5.2)
where mF corresponds to the mass of the fixed rigid body, r represents the cylinder radius and L its
length (corresponding to the length of the considered anatomical segment).
At this stage the database is consulted to obtain the correspondent inertia values of the human
biological segment in order to find body M correspondent part.
ITz = IMz + IFz (5.3)
Regarding the z direction inertia values, as the total and body F values are known, the body M value
can be determined by the equation 5.3 presented above.
For the calculation of body M inertia parameters in the x and y directions it is used the parallel-axis
theorem as follows,
ITx,y = IFx,y +mF dF2
+ IMx,y +mMdM2
(5.4)
43
where dF and dM respectively represent the distances from the fixed and mobile rigid bodies center of
mass to the entire anatomical segment center of mass (as it can be seen in the illustration presented in
Figure 5.3). The parameter mM corresponds to the mobile rigid body mass, that is 5/6 of the total mass
of the anatomical segment in question.
It is also necessary the system center of mass equation, given as follows,
rTCM =rFCMm
F − rMCMmM
mF +mM(5.5)
from where the CM location of the mobile rigid body (rMCM ) can be obtained once the remaining con-
stituents of the equation are known.
With the use of the parallel-axis theorem together with the center of mass equation the following
equations are obtained making it possible to determine the inertia values for the three directions.
IMx = IMy = ITx − IFx −mF (rFCM − rTCM )2 −mM (rMCM − rTCM )2
IMz = ITz − IFz(5.6)
5.3.3 Dynamic trials
The dynamic trials correspond, in this experimental work, to natural cadence continuous gait, further
divided into strides in which only the right ones are chosen for the analysis.
The model points and vectors coordinates are determined for each frame of acquisition. The set
of each rigid body local vectors with relation to the global reference frame define the rotation matrix
for each rigid body over the acquisition time. Through a conversion method present in the literature
the euler angles are determined for the initial time step [27]. Then the linear and angular velocities of
the CM of each RB for the initial time step are determined from the rotation matrix and its derivative.
This information, together with linear and angular positions of the CM that define the initial stage of the
system, is provided to the Apollo software.
From the dynamic data it is also necessary to take the drivers values for each frame of the acquisition
for further creation of *.dat files for the Apollo simulation. As described above, the created model has
38 angular drivers and 3 translation drivers which can be defined in several different ways. For angu-
lar drivers calculation, it is only necessary to define the corresponding vectors (being unit vectors or
direction vectors of a segment) and then determine the angle between them. In the case of translation
drivers they correspond to the global coordinates of a vector or a point. To the creation of *.dat files it is
necessary the time vector and the correspondent driver value for each frame.
There are 38 angle drivers which are calculated with the Matlab functions between the same vectors
defined in the Apollo software. The other three drivers are translation ones which correspond to P1 and
vectors v1 and v2 translations along time.
The external forces data are also processed in a way of define, for each frame of the acquisition, its
point-of-application to the correspondent rigid body where the force is being applied.
Figure 5.4 illustrates schematically the various stages of data processing. The static and dynamic
44
Figure 5.4: Schematic representation of the various stages of data processing with the created Matlabprogram.
data acquired in the laboratory of movement together with the antropometry information are processed
in a Matlab environment for the subsequent creation of the Apollo necessary files.
45
46
Chapter 6
Sawicki exoskeleton computational model
The computational implementation of the exoskeleton developed by Sawicki et al. [1] is done by first
modifying the initial biomechanical model so that its influence can be added. Then, in order to add the
exoskeleton influence, a Fortran routine was implemented. In the next sections the specifications of the
exoskeleton and of the added routine will be explained in detail.
6.1 Exoskeleton specifications
The passive exoskeleton implemented herein (a computational implementation of the exoskeleton ex-
posed in Chapter 1 section 1.3) may be summarized by adding the influence of a spring between the leg
and the foot (as illustrated in Figure 6.1) within a specific interval of the stride period. Along one stride
the spring engagement and disengagement instants are triggered by the ankle angle pattern [1], where
the engagement corresponds to the first minimum and the disengagement instants before the second
minimum. In this way, being the spring engaged at foot flat (first peak of plantar flexion) and disengaged
at toe off (second peak of plantar flexion), the spring will be loaded during its stretching along the dor-
siflexion period and then, during the next plantar flexion period, the spring will recoil releasing energy
to the system. This will interact with the muscles crossing the ankle biological joint reducing the net
mechanical positive power in this joint.
Figure 6.1: Representation of the changes made to the model in the leg and foot in order to add thepassive exoskeleton influence.
Sawicki et al. [1], constructed an exoskeleton prototype to be tested by nine adults participants
with an averaged height of 1.84 ± 0.10 m. Thus, it was here considered, that the exoskeleton structure
47
needs to be scaled allowing its use by other participants from other height ranges. In the case of this
computational study the locations of the two additional points on the model (the two points to which
the spring is connected represented in Figure 6.2 by PL and PF ), taking account the Sawicki et al. [1]
prototype dimensions, are approximataly scaled to have the same relative dimensions in relation to the
individual leg studied here.
6.2 Fortran routine
In order to add the exoskeleton influence into the analysis of the normal gait an additional Fortran
routine to the Apollo software was implemented. This routine reproduces the clutch task of connecting
and disconnecting the spring at the necessary moments along the stride and is presented in Appendix
B.
Figure 6.2: Model developed for the addition of the exoskeleton influence in natural gait. Schematicrepresentation of the main necessary distances and vectors for the creation of the implemented Fortranroutine
This routine needs to apply the influence of the exoskeleton spring between the two plantar flexion
maximums (between FF and TO) and, on the remaining time, has to assume the influence of the spring
to be null. Looking to the resultant angle variation from the natural gait experimental results it is possible
to take the percentage values of the stride where these peaks are appearing. In this way, the additional
routine needs to have has input the two instants so that the spring is applied at the correct interval.
To reproduce the spring influence, the routine needs to perform calculations regarding the force of
the spring applied. First, the direction vector between the two points where the spring will be attached
needs to be defined.
rFL = rPF − rPL (6.1)
The vector rFL goes from the foot point PF to the leg point PL where the spring is being connected
48
as illustrated in the Figure 6.2 presented above.
Other important quantity is the length between these two points that corresponds to the spring length.
This value will vary along the stride as the spring stretches and recoils.
LFL = |rFL| = (rTFLrFL)1/2 (6.2)
Now, it is possible to calculate the force done by the spring (FS) between these two points using
Hooke’s law for a linear spring as follows,
FS = k(LFL(t)− L0), L0 = LFL(t0) (6.3)
where k is the spring stiffness coefficient, L0 the spring length at the moment of the engagement and t0
the correspondent instant of first peak of the ankle angle.
F S = FSrLF
LLF(6.4)
Equation 6.4 defines the force vector done by the spring at point PF , with the direction of rFL. An
opposite force vector is applied at point PL.
The additional routine in Fortran will be responsible to calculate the force applied between these two
points at each frame of the analysis, considering the spring length variation along time and the stiffness
constant k.
This new routine will have as input the following variables: spring stiffness k, number of the leg rigid
body, number of the point of appliance on the leg, number of the foot rigid body, number of the point of
appliance on the foot, initial instant, final instant.
6.3 Ankle joint moments balance
To a proper results analysis it is necessary to understand the forces and moments of force present in
the ankle joint.
First, while the system is under the influence of the exoskeleton, the spring force (FS) is being
applied generating the correspondent moment in the ankle joint. The exoskeleton produced torque τ
was calculated as the cross product of spring force FS and the lever arm vector r, assuming constant
leverage, as follows,
τ = r × FS (6.5)
Taking τ norm along stride is possible to represent the exoskeleton moment value contribution along
stride.
Looking to Figure 6.3 it is possible to see a representation of the main forces and moments involved
in the foot and leg during the period which is being applied the exoskeleton influence.
49
Figure 6.3: Representation of the main moments and forces involved in the leg-foot system under theexoskeleton influence.
In the case of natural gait the resultant moment that the ankle joint will have to do (MA) corresponds
to the following equation, in which the inertial term was not included as the foot is approximately resting
in the ground:
MA = MGR = bGRFGR (6.6)
In this case the only moment that the ankle joint needs to counteract is the ground reaction force
FGR correspondent moment, MGR. In the equation 6.6, bGR stands for the perpendicular distance from
the rotation axis to the line of action of the force, also known as lever arm.
Under the exoskeleton spring influence the necessary ankle joint moment changes to,
MA = MGR −MS = bGRFGR − bSFS (6.7)
where the ankle moment calculation is made now with the influence of spring moment also calculated
with the correspondent lever arm bS and spring force FS (determined as explained above).
In this case, the spring moment MS actuates in the same direction as the ankle moment, also sup-
porting the ground reaction forces. Equation above demonstrates the reduction of the ankle moment
with the application of the exoskeleton spring.
With these set of equations and concepts, it is possible to make a relevant comparison between the
analysis results with and without the influence of the exoskeleton.
50
Chapter 7
Results and discussion
In the case of the natural gait, through inverse dynamic analysis, the result of the Apollo software for
the ankle moment corresponds to the moment the joint would need to produce to withstand the ground
reaction forces.
When the influence of the exoskeleton is added to the simulation the result for the ankle joint moment
will then be changed. In this case, the resulting moment for the ankle will be the one that counterbal-
ances the two contributions of the external forces, those of the exoskeleton and those of the ground
reaction. Equation 6.7 presented in the previous chapter illustrates this result.
7.1 Natural gait
Ten right strides were studied for the same subject. It was taken the average over strides for some
relevant results, for example, the three main leg joint angles of the hip, knee and ankle, and then it
was calculated the standard deviation. Figure 7.1 below presents the hip joint and the ankle joint angle
variation.
0 20 40 60 80 100
Stride (%)
-15
-5
5
15
25
Hip
ang
le (
º)
(a)
0 20 40 60 80 100
Stride (%)
0102030405060
Kne
e an
gle
(º)
(b)
Figure 7.1: Averaged a) hip and b) knee joints angle variation along stride without the influence of theexoskeleton (average over ten studied strides). The standard deviation is also represented here.
The observation of the ankle angle pattern (observed in Figure 7.2) is what triggers the choice of the
interval in which the clutch allows the spring influence in the leg system. The spring is engaged at foot
flat moment (FF) and disengaged at toe off moment (TO). Then the spring is stretching between FF and
HO (heel off) taking advantage of movement of the leg to easily stretch. This spring mechanisms during
the gait cycle are further represented in Figure 7.4.
51
0 10 20 30 40 50 60 70 80 90 100
Stride (%)
-5
0
5
10
15A
nkle
ang
le (
º)
Spring engages Spring disengages
Figure 7.2: Ankle angle variation along stride without the influence of the exoskeleton. The ankle anglepattern is what triggers the choice of spring engagement and disengagement moments. The engage-ment is done on foot flat and the disengagement at toe off.
Other important result to take from the analysis, as it will be necessary further for the calculation
of the mechanical power, is the angular velocity. In Figure 7.3 is represented graphically the angular
velocity for the ankle joint along stride percentage (average over 10 strides and respective standard
deviation lines). The angular velocity is obtained by differentiating the joint angle with respect to time, as
follows,
ω =dθ
dt(7.1)
where ω is the associated joint angular velocity and θ the joint angle.
0 10 20 30 40 50 60 70 80 90 100
Stride (%)
-3
-2
-1
0
1
2
Ank
le a
ngul
ar v
eloc
ity (
rad
s-1)
Figure 7.3: Ankle angular velocity variation along stride for natural gait (average over ten strides, andstandard deviation lines).
52
7.2 Application of the exoskeleton influence and results comparison
The results obtained in the Apollo software and processed with the Matlab software for graphical repre-
sentation are presented hereafter.
As seen above (Figure 7.2) the time interval in which the spring influence will be added in the system
is triggered by the two minimum peaks at the ankle angle variation along stride. The spring is engaged
on FF and disengaged at TO, which correspond approximately to the interval 8%-63% of the stride period.
An illustration of the gait cycle with the influence of the exoskeleton can be seen in Figure 7.4 in which
the stretching and recoil phases of the spring are pointed out.
Figure 7.4: Illustration of the gait cycle with the influence of the exoskeleton. The engagement is doneon foot flat and the disengagement at toe off. It is possible to see that, while the spring is engaged, thestretching and recoil phases.
The results presented below were obtained from the analysis done in the Apollo software for the ten
right strides acquired. The mean curve was then obtained for each analysis type with and without the
influence of the exoskeleton. The spring stiffness used was the optimal value observed by Sawicki et. al
[1], corresponding, in that study, to the one that produced a greater reduction in the net metabolic cost
observed.
With this optimal stiffness value (7.9 k N m−1) it was here obtained, through the inverse dynamic
analysis performed in the Apollo software, an average reduction of about 24.2% with respect to the
biological ankle moment curve for the natural gait (see Figure 7.5).
53
0 10 20 30 40 50 60 70 80 90 100
Stride (%)
-0.2
0
0.2
0.4
0.6
0.8
1
1.2
Bio
logi
cal a
nkle
mom
ent (
N m
kg
-1)
Spring engages Spring disengages
Without exoskeleton
k = 7.9 k N-1
Figure 7.5: Ankle moment average (normalized to body weight) along stride percentage for the analysiswithout the exoskeleton and with the exoskeleton being with the optimal value for spring stiffness. Itis possible to see a significant moment reduction on the biological ankle when it has the influence ofthe exoskeleton. There are two marks represented by the vertical lines: the moments when the springengages and disengages the exoskeleton.
The used Fortran routine in the Apollo software had as input variable the spring stiffness coefficient
which allowed to make the simulation analysis for the several coefficient stiffness studied in Sawicki et
al. [1]. The obtained results are further presented in Figure 7.6 where it is possible to see the expected
consecutive reduction of the ankle moment with the increase of the spring stiffness.
0 10 20 30 40 50 60 70 80 90 100
Stride (%)
-0.2
0
0.2
0.4
0.6
0.8
1
1.2
Bio
logi
cal a
nkle
mom
ent (
N m
kg
-1)
Spring engages Spring disengages
Without exoskeleton
k = 5.6 kN m-1
k = 7.9 kN m-1
k = 10.5 kN m-1
k = 13.3 kN m-1
k = 17.2 kN m-1
Figure 7.6: Ankle moment (normalized to body weight) values for each stiffness coefficient used alongstride percentage. As greater the stiffness coefficient greater the exoskeleton torque produced and con-sequently greater the biological ankle moment reduction. The spring engagement and disengagementare also marked.
54
Using equation 6.5 and then taking the torque vector norm for each analysis made among the differ-
ent values of spring stiffness used here the graphic representation of the exoskeleton produced torque
can also be obtained (illustrated below in Figure 7.7).
0 10 20 30 40 50 60 70 80 90 100
Stride (%)
-0.1
0
0.1
0.2
0.3
0.4
0.5
0.6
Exo
skel
eton
mom
ent (
N m
kg-1
)
Spring engages Spring disengages
k = 5.6 kN m-1
k = 7.9 kN m-1
k = 10.5 kN m-1
k = 13.3 kN m-1
k = 17.2 kN m-1
Figure 7.7: Exoskeleton produced moment (normalized to body weight) values along stride percentage.With the increase of the spring stiffness coefficient the exoskeleton moment also increases. The springengagement and disengagement are also marked here.
An important result to analyze an anatomical joint and its motion is the mechanical power. This
parameter summarizes the muscles role of absorption and generation of mechanical energy necessary
to accomplish the movement observed [17]. The analysis of the mechanical power variation at human
joints during gait provides a perception of the energy expenditure during the gait cycle [22].
The mechanical power is defined as the work performed per unit time and is calculated as follows,
PA = MA ωA (7.2)
where PA is the mechanical power done by the ankle joint, MA corresponds to the ankle joint moment
and ωA is the angular velocity at the ankle joint.
By observing Figure 7.8, comparing the results with and without the exoskeleton influence, it is possi-
ble to see an increase of the ankle joint mechanical power on the negative work phase and subsequently
a reduction on the positive work phase. This means that the ankle joint moment is greater in order to
stretch the spring (approximately until 50 % of the gait cycle), although this movement is easy to do
due to the phase of stride in question. Then, in the positive work phase, there is a reduction of the
mechanical power that the muscles crossing the ankle joint need to generate in order to perform the
heel elevation.
55
0 10 20 30 40 50 60 70 80 90 100
Stride (%)
-0.8
-0.4
0
0.4
0.8
1.2
1.6
2
Bio
logi
cal a
nkle
pow
er (
W k
g-1
)
Spring engages Spring disengages
Without exoskeleton
k = 5.6 kN m-1
k = 7.9 kN m-1
k = 10.5 kN m-1
k = 13.3 kN m-1
k = 17.2 kN m-1
Figure 7.8: Ankle joint mechanical power (normalized to body weight) along stride. Here is representedthe results for the analysis without the exoskeleton influence and also with the exoskeleton influence forthe five values of spring stiffness under analysis.
Observing the results for the biological ankle moment with different spring stiffness (see Figure 7.6)
one thing that it is possible to discuss, in comparison with the results for this parameter obtained by
Sawicki et. al [1], is the fact that, in the present work the reduction observed with the stiffness increase
seems to be constant, in contrast to a stabilization reached by the three bigger values for stiffness. The
same happens for the mechanical power results (see Figure 7.8). The behavior observed here is due to
the fact that the exoskeleton moment is added to the ankle joint with the same prescribed motion and
not taking into account all the joints involved in gait, and consequently, discarding the influences that
this exoskeleton will have in the other joints. This leads to a constant subtraction of biological moment
needed to prescribe the same motion (with the constant increase of the spring stiffness), and that is the
behavior observed in Figure 7.6
In the Sawicki et al. study [1], by measuring the metabolic energy spent along gait, it is shown a
reduction in the energy cost for an intermediate stiffness value of the exoskeleton spring (7.9 k N−1,
see Figure 1.4) and that with stiffness increasing the energy cost rises to natural gait values. Such a
conclusion cannot be demonstrated here because it is just being considered a mechanical analysis of the
human body. One possible cause for this result is the great level of coordination that exists between all
parts of the human body, tending to make the same patterns of movement along a stride (eg. moments
of force on the hip, knee and ankle). As with the influence of this exoskeleton (for higher tested stiffness
values) we are causing a great change in the ankle site, this can affect negatively the already optimized
locomotion system. More specifically, this may be reflected in a counteraction by other constituents of
the leg system increasing the activity of certain muscles and consequently an increase in the metabolic
cost of gait. Sawicki, in his study, also analyzes the activity of leg muscles along gait and, although
the results bring this possibility, are not enough to draw more conclusive answers about this observed
relation between the spent metabolic energy and the torque of the spring [1]. Much of the mechanical
56
work at the ankle joint during gait is the result of elastic stretch and recoil of the Achilles tendon which
does not directly cause metabolic energy consumption [1]. Because of tendon compliance, using an
exoskeleton to reduce cyclic musculotendon work can actually preserve or increase the mechanical
work performed by muscle fascicles [1].
7.3 Knee comparison
Studying in detail the exoskeleton influence in the ankle system and comparing it with other joints be-
havior seems a good mechanism to understand if the application of this type of mechanical structure
has applicability in the other joints. In this study was chosen to make the comparison between the ankle
and the knee. To do that, the principal results obtained for the ankle exoskeleton application were placed
side by side with the same results for the knee joint with natural gait. Then, by observing what was the
influence of the exoskeleton in the ankle joint for all types of results, it is possible to predict mechanisms
that can also cause positive influences, this time at knee joint level. The results correspondent to this
comparison between the ankle and knee are presented below in Table 7.1.
In Table 7.1, first is represented biological moment variation for the ankle and for the knee. Then the
biological power is also represented for both joints.
The third graphical results are the representation of the biological moment with the joint angle varia-
tion. This type of diagrams are usually used in studies of this type (studying the applicability of a certain
mechanism [28]) since this representation involves two important joint parameters allowing the observa-
tion of gait changes as a whole. With these diagrams is not only possible to take information about the
joint moment and angle but also the correspondent dissipated energy (to the ground and to the other
leg joints) which corresponds to the area of each curve. Regarding the ankle results it is possible to see
that there is no change at a kinematic level as the prescribed motion is the same (there is not variation
of the angle values range) but, in another way, the associated moment reduction with the application of
the exoskeleton correspond to the maximum ankle angle, that is at HO. Observing now the knee joint
correspondent diagram, and trying to obtain the same result with the application of a mechanical sys-
tem, a possible way would be to try to reduce the moment in the phase of maximum angle, that is, the
moment after the TO. Looking to the knee mechanical power variation above, the moment after TO is
actually where the positive work could be, in the same way of the ankle, reduced.
The joint angles are also represented with the main gait events labeled for matters of guidance
among the other results.
57
Ankle Knee
0 20 40 60 80 100
Stride (%)
-0.20
0.20.40.60.8
11.2
Bio
logi
cal a
nkle
mom
ent (
N m
kg
-1)
Spring engages Spring disengages
Without exoskeleton
k = 7.9 k N-1
0 20 40 60 80 100
Stride (%)
-0.4-0.2
00.20.40.6
Bio
logi
cal k
nee
mom
ent (
N m
kg-1
)
Without exoskeleton
0 20 40 60 80 100
Stride (%)
-0.8
-0.4
0
0.4
0.8
1.2
1.6
2
Bio
logi
cal a
nkle
pow
er (
W k
g-1)
Spring engages Spring disengages
0 20 40 60 80 100
Stride (%)
-0.4
0
0.4
0.8B
iolo
gica
l kne
e po
wer
(W
kg
-1)
Table 7.1: Comparison between the principal results for the ankle and knee joints. a) Moment variationalong stride; b) Mechanical power variation along stride; c) Moment along joint angle; d) Joint anglealong stride. In the last two results type are represented the principal moments of the gait cycle: IC, FF,HO, TO
58
Chapter 8
Conclusions and future developments
8.1 Conclusions
With this work it was possible to understand the methodology involving the creation of a 3D biomechan-
ical model as well as its broad potential on motion analysis.
Throughout the work a wide variety of information was gathered. Starting with the deep study of
natural human gait and its characteristics, it was possible to understand the reference patterns of motion
along strides and its meaning regarding the energetics of gait.
Looking at the state of the art in the area of exoskeletons devices, one can find several different
solutions with a variety of technologies to support or augment human locomotion. The possibility of using
passive elements in a device of this type, reducing the need for external power supply and reducing the
device overall weight, was one of the reasons that led to this study.
Learning more about the passive exoskeleton device under study, the device developed by the Saw-
icki et al. [1], it can be seen the potential of a passive device on natural human gait augmentation
showing a 7% reduction on the human net metabolic energy expenditure. One of the results shown by
these researchers was that with the use of this exoskeleton it can be seen a reduction of about 14% on
the averaged biological ankle moment contribution along stride. This is the main parameter to accom-
plish in this study. The obtained result here was a reduction of approximately 24.2% on average. This
greater value, in comparison with the results obtained by Sawicki et. al [1], may have been obtained
due to energy losses at experimental level or, in another way, some failures at the exoskeleton computa-
tional model approach (regarding dimensions for example) to the experimental prototype that was being
reproduced.
Making a comparison between the results achieved for the ankle joint (optimized gait) and the knee
joint results (for the non optimized gait) it was possible to see that this type of comparison could be of
great value for the construction of similar exoskeleton to support other human joints.
8.2 Future developments
In a near future, with continued research, it is expected to obtain a sharper decrease in the metabolic
demands of walking or running, with both active and passive exoskeletons. And thus reducing fatigue
with a significant order of magnitude, in those tasks.
59
An optimal future research and development on lower limbs exoskeletons design should focus on the
characteristics of used materials, actuators, human-machine interfaces, safety, energy efficiency and
cost-effectiveness of exoskeletons [5]. An interesting goal is the development of a well-suited exoskele-
ton, that does not bring any discomfort to the subject wearing it by being extremely adapted to a specific
person [2].
More specifically with regard to studies on Sawicki et al. work, in further studies of the present work
it would be of great interest to add the muscles influence on the dynamic analysis. Another interesting
research would be the computational study of a similar exoskeleton application to other leg joints (in the
same way that it has been studied superficially upwards) with the objective to augment their functions
during gait also with not entering with external power sources.
Still in this framework, the biomechanics research group at IST intends to soon replicate the prototype
developed by Sawicki et. al [1] to be tested at the laboratory of movement and contribute with more
results for metabolic net energy measuring the oxygen consumption and carbon dioxide production rates.
Thus, in addition to the computational reproduction made here, an experimental prototype analysis will
add a great value for the study of this mechanical system and its applicability in the future.
60
References
[1] S. H. Collins, M. B. Wiggin, and G. S. Sawicki. Reducing the energy cost of human walking using
an unpowered exoskeleton. Nature, 522(7555):212–215, 2015.
[2] H. Herr. Exoskeletons and orthoses: classification, design challenges and future directions. Journal
of neuroengineering and rehabilitation, 6(1):1, 2009.
[3] N. Yagn. Apparatus for facilitating walking, Jan. 28 1890. US Patent 420,179.
[4] L. M. Mooney and H. M. Herr. Biomechanical walking mechanisms underlying the metabolic reduc-
tion caused by an autonomous exoskeleton. Journal of neuroengineering and rehabilitation, 13(1):
1, 2016.
[5] B. Chen, H. Ma, L.-Y. Qin, F. Gao, K.-M. Chan, S.-W. Law, L. Qin, and W.-H. Liao. Recent devel-
opments and challenges of lower extremity exoskeletons. Journal of Orthopaedic Translation, 5:
26–37, 2016.
[6] L. Quinto, S. B. Goncalves, and M. T. Silva. Exoesqueletos para membros inferiores: estado da
arte. 7 Congresso Nacional de Biomecanica, 2009.
[7] Rewalk: robotic exoskeletons for spinal cord injury. Ottawa: CADTH; 2015 Sep. (CADTH issues in
emerging health technologies; issue 141).
[8] G. Chen, C. K. Chan, Z. Guo, and H. Yu. A review of lower extremity assistive robotic exoskeletons
in rehabilitation therapy. Critical ReviewsTM in Biomedical Engineering, 41(4-5), 2013.
[9] Fda approves rewalk robotics exoskeleton, 2014. URL http://www.roboticstrends.com/
article/fda_approves_rewalk_robotics_exoskeleton/ReWalk/.
[10] URL http://www.samarit.es/es/ayudas-de-enfermeria/neuro-rehabilitacion/katalog/
kategorie/hocoma/lokomat/.
[11] Berkeley lower extremity exoskeleton. URL http://bleex.me.berkeley.edu/research/
exoskeleton/bleex/.
[12] L. M. Mooney, E. J. Rouse, and H. M. Herr. Autonomous exoskeleton reduces metabolic cost of
human walking during load carriage. Journal of neuroengineering and rehabilitation, 11(1):1, 2014.
[13] C. J. Walsh, K. Endo, and H. Herr. A quasi-passive leg exoskeleton for load-carrying augmentation.
International Journal of Humanoid Robotics, 4(03):487–506, 2007.
61
[14] M. Silva. Apontamentos curso de biomecanica do movimento. 2004.
[15] S. Hall. Basic biomechanics. McGraw-Hill Higher Education, 2014.
[16] A. M. Dollar and H. Herr. Lower extremity exoskeletons and active orthoses: challenges and state-
of-the-art. IEEE Transactions on robotics, 24(1):144–158, 2008.
[17] D. A. Winter. Biomechanics and motor control of human gait: normal, elderly and pathological.
1991.
[18] S. H. Collins, P. G. Adamczyk, and A. D. Kuo. Dynamic arm swinging in human walking. Proceed-
ings of the Royal Society of London B: Biological Sciences, page rspb20090664, 2009.
[19] T. M. Griffin, T. J. Roberts, and R. Kram. Metabolic cost of generating muscular force in human
walking: insights from load-carrying and speed experiments. Journal of Applied Physiology, 95(1):
172–183, 2003.
[20] J. G. De Jalon and E. Bayo. Kinematic and dynamic simulation of multibody systems: the real-time
challenge. Springer Science & Business Media, 2012.
[21] M. T. Silva. Human motion analysis using multibody dynamics and optimization tools. IST, 2003.
[22] S. Goncalves. Advanced computer methods for pathological and non-pathological human move-
ment analysis. Master thesis, 2010.
[23] T. Malaquias. Development of a three-dimensional multibody model of the human leg and foot for
application to movement analysis. Master thesis, 2013.
[24] P. De Leva. Adjustments to zatsiorsky-seluyanov’s segment inertia parameters. Journal of biome-
chanics, 29(9):1223–1230, 1996.
[25] F. C. Anderson and M. G. Pandy. A dynamic optimization solution for vertical jumping in three
dimensions. Computer methods in biomechanics and biomedical engineering, 2(3):201–231, 1999.
[26] R. P. Vila. Application of multibody dynamics techniques to the analysis of human gait. PhD thesis,
Universitat Politecnica de Catalunya, 2012.
[27] P. E. Nikravesh. Computer-aided analysis of mechanical systems. Prentice-Hall, Inc., 1988.
[28] K. Shamaei, M. Cenciarini, A. A. Adams, K. N. Gregorczyk, J. M. Schiffman, and A. M. Dollar.
Biomechanical effects of stiffness in parallel with the knee joint during walking. IEEE Transactions
on Biomedical Engineering, 62(10):2389–2401, 2015.
62
Appendix A
Example of modulation file
This Appendix present an example of a modulation file (with extension *.mdl), necessary input for the
Apollo software. This file contains information about the 3D biomechanical model developed.
1 *HEADER2 Inverse Dynamic Analysis - Modelo13 4 *MAIN PARAMETERS5 64 39 28 43 11 0 0 41 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 06 7 *GROUND BODY8 0 19 0 1
10 -0.160612 0.361787 1.01534311 1.000000 0.000000 0.00000012 13 *RIGID BODIES14 15 BODY=RB1_Pelvis16 6.88344 0.000265 0.000132 0.00013217 3 1 2 3 18 2 1 219 0 0 0.028820 0 -0.0733 -0.029821 0 0.0733 -0.029822 0.000000 1.000000 0.00000023 1.000000 0.000000 0.00000024 25 26 BODY=RB2_Trunk_Fixed27 2.7692 0.0362 0.0362 0.000128 2 4 529 1 330 0 0 -0.165731 0 0 0.224632 0.000000 1.000000 0.00000033 34 35 BODY=RB3_Trunk_Mobile36 13.8460 0.2627 0.2627 0.076037 4 6 7 8 938 1 439 0 0 -0.165740 0 0 0.224641 0 -0.1652 0.192342 0 0.1652 0.192343 1.000000 0.000000 0.00000044 45 46 BODY=RB4_Neck_Fixed47 0.0267 0.0001 0.0001 0.000148 2 10 1149 1 550 0 0 -0.060451 0 0 0.060452 0.000000 1.000000 0.00000053 54 55 BODY=RB5_Neck_Mobile56 0.1334 0.0001 0.0001 0.000157 2 12 1358 1 659 0 0 -0.060460 0 0 0.060461 1.000000 0.000000 0.00000062 63 64 BODY=RB6_Head65 3.68736 0.2989 0.3315 0.076166 3 14 15 1667 1 768 -0.0526 0 -0.020669 0.0989 0.0009 0.079170 0.0459 0 -0.131971 0.000000 1.000000 0.00000072 73
63
1 *HEADER2 Inverse Dynamic Analysis - Modelo13 4 *MAIN PARAMETERS5 64 39 28 43 11 0 0 41 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 06 7 *GROUND BODY8 0 19 0 1
10 -0.160612 0.361787 1.01534311 1.000000 0.000000 0.00000012 13 *RIGID BODIES14 15 BODY=RB1_Pelvis16 6.88344 0.000265 0.000132 0.00013217 3 1 2 3 18 2 1 219 0 0 0.028820 0 -0.0733 -0.029821 0 0.0733 -0.029822 0.000000 1.000000 0.00000023 1.000000 0.000000 0.00000024 25 26 BODY=RB2_Trunk_Fixed27 2.7692 0.0362 0.0362 0.000128 2 4 529 1 330 0 0 -0.165731 0 0 0.224632 0.000000 1.000000 0.00000033 34 35 BODY=RB3_Trunk_Mobile36 13.8460 0.2627 0.2627 0.076037 4 6 7 8 938 1 439 0 0 -0.165740 0 0 0.224641 0 -0.1652 0.192342 0 0.1652 0.192343 1.000000 0.000000 0.00000044 45 46 BODY=RB4_Neck_Fixed47 0.0267 0.0001 0.0001 0.000148 2 10 1149 1 550 0 0 -0.060451 0 0 0.060452 0.000000 1.000000 0.00000053 54 55 BODY=RB5_Neck_Mobile56 0.1334 0.0001 0.0001 0.000157 2 12 1358 1 659 0 0 -0.060460 0 0 0.060461 1.000000 0.000000 0.00000062 63 64 BODY=RB6_Head65 3.68736 0.2989 0.3315 0.076166 3 14 15 1667 1 768 -0.0526 0 -0.020669 0.0989 0.0009 0.079170 0.0459 0 -0.131971 0.000000 1.000000 0.00000072 73 74 BODY=RB7_Right_Thigh_Fixed75 1.3598 0.0190 0.0190 0.000176 2 17 1877 1 878 0 0 0.150079 0 0 -0.264980 0.000000 1.000000 0.00000081 82 83 BODY=RB8_Right_Thigh_Mobile84 6.7988 0.1522 0.1522 0.035885 2 19 2086 2 9 1087 0 0 0.150088 0 0 -0.264989 1.000000 0.000000 0.00000090 0.0000 0.9963 -0.085491 92 93 BODY=RB9_Right_Leg_Fixed94 0.4425 0.0055 0.0055 0.000195 2 21 2296 2 11 1297 0 0 0.169198 0 0 -0.213899 1.000000 0.000000 0.000000
100 0.0000 0.9988 -0.0490101 102 103 BODY=RB10_Right_Leg_Mobile104 2.2126 0.0218 0.0218 0.0033105 3 23 24 63106 1 13107 0 0 0.1691108 0 0 -0.2138109 -0.1053 0.0 0.0447110 0.000000 1.000000 0.000000111 112 113 BODY=RB11_Right_Foot114 0.93288 0.0013 0.0037 0.0039115 4 25 26 27 64116 2 14 15117 -0.0302 0 0.0431118 -0.0913 -0.0117 0.0057119 0.0798 -0.0117 0.0057120 -0.1355 0.0 0.0431121 0.000000 1.000000 0.000000122 1.000000 0.000000 0.000000123 124 125 BODY=RB12_Right_Toes126 0.16008 0.0001 0.0002 0.0001127 2 28 29128 1 16129 -0.0226 0 -0.0155130 0.0430 0.0000 -0.0155131 0.000000 1.000000 0.000000132 133 134 BODY=RB13_Left_Thigh_Fixed135 1.3598 0.0191 0.0191 0.0001136 2 30 31137 1 17138 0 0 0.1502139 0 0 -0.2652140 0.000000 1.000000 0.000000141 142 143 BODY=RB14_Left_Thigh_Mobile144 6.7988 0.1525 0.1525 0.0358145 2 32 33146 2 18 19
64
74 BODY=RB7_Right_Thigh_Fixed75 1.3598 0.0190 0.0190 0.000176 2 17 1877 1 878 0 0 0.150079 0 0 -0.264980 0.000000 1.000000 0.00000081 82 83 BODY=RB8_Right_Thigh_Mobile84 6.7988 0.1522 0.1522 0.035885 2 19 2086 2 9 1087 0 0 0.150088 0 0 -0.264989 1.000000 0.000000 0.00000090 0.0000 0.9963 -0.085491 92 93 BODY=RB9_Right_Leg_Fixed94 0.4425 0.0055 0.0055 0.000195 2 21 2296 2 11 1297 0 0 0.169198 0 0 -0.213899 1.000000 0.000000 0.000000
100 0.0000 0.9988 -0.0490101 102 103 BODY=RB10_Right_Leg_Mobile104 2.2126 0.0218 0.0218 0.0033105 3 23 24 63106 1 13107 0 0 0.1691108 0 0 -0.2138109 -0.1053 0.0 0.0447110 0.000000 1.000000 0.000000111 112 113 BODY=RB11_Right_Foot114 0.93288 0.0013 0.0037 0.0039115 4 25 26 27 64116 2 14 15117 -0.0302 0 0.0431118 -0.0913 -0.0117 0.0057119 0.0798 -0.0117 0.0057120 -0.1355 0.0 0.0431121 0.000000 1.000000 0.000000122 1.000000 0.000000 0.000000123 124 125 BODY=RB12_Right_Toes126 0.16008 0.0001 0.0002 0.0001127 2 28 29128 1 16129 -0.0226 0 -0.0155130 0.0430 0.0000 -0.0155131 0.000000 1.000000 0.000000132 133 134 BODY=RB13_Left_Thigh_Fixed135 1.3598 0.0191 0.0191 0.0001136 2 30 31137 1 17138 0 0 0.1502139 0 0 -0.2652140 0.000000 1.000000 0.000000141 142 143 BODY=RB14_Left_Thigh_Mobile144 6.7988 0.1525 0.1525 0.0358145 2 32 33146 2 18 19147 0 0 0.1502148 0 0 -0.2652149 1.000000 0.000000 0.000000150 0.0000 0.9984 0.0571151 152 153 BODY=RB15_Left_Leg_Fixed154 0.4425 0.0053 0.0053 0.0001155 2 34 35156 2 20 21157 0 0 0.1673158 0 0 -0.2116159 1.000000 0.000000 0.000000160 0.0000 0.9995 0.0316161 162 163 BODY=RB16_Left_Leg_Mobile164 2.2126 0.0213 0.0213 0.0032165 2 36 37166 1 22167 0 0 0.1673168 0 0 -0.2116169 0.000000 1.000000 0.000000170 171 172 BODY=RB17_Left_Foot173 0.93288 0.0013 0.0037 0.0039174 3 38 39 40175 2 23 24176 -0.0302 0 0.0431177 -0.0913 -0.0117 0.0057178 0.0798 -0.0117 0.0057179 0.000000 1.000000 0.000000180 1.000000 0.000000 0.000000181 182 183 BODY=RB18_Left_Toes184 0.16008 0.0001 0.0002 0.0001185 2 41 42186 1 25187 -0.0226 0 -0.0155188 0.0430 0.0000 -0.0155189 0.000000 1.000000 0.000000190 191 192 BODY=RB19_Right_Arm_Fixed193 0.2346 0.0015 0.0015 0.0001194 2 43 44195 1 26196 0 0 0.1571197 0 0 -0.1159198 0.000000 1.000000 0.000000199 200 201 BODY=RB20_Right_Arm_Mobile202 1.1730 0.0054 0.0054 0.0022203 2 45 46204 2 27 28205 0 0 0.1571206 0 0 -0.1159207 1.000000 0.000000 0.000000208 0.0000 0.9852 -0.1714209 210 211 BODY=RB21_Right_Forearm_Fixed212 0.1270 0.0007 0.0007 0.0001213 2 47 48214 2 29 30215 0 0 0.1090216 0 0 -0.1300217 1.000000 0.000000 0.000000218 0.0000 0.9977 0.0671219
65
147 0 0 0.1502148 0 0 -0.2652149 1.000000 0.000000 0.000000150 0.0000 0.9984 0.0571151 152 153 BODY=RB15_Left_Leg_Fixed154 0.4425 0.0053 0.0053 0.0001155 2 34 35156 2 20 21157 0 0 0.1673158 0 0 -0.2116159 1.000000 0.000000 0.000000160 0.0000 0.9995 0.0316161 162 163 BODY=RB16_Left_Leg_Mobile164 2.2126 0.0213 0.0213 0.0032165 2 36 37166 1 22167 0 0 0.1673168 0 0 -0.2116169 0.000000 1.000000 0.000000170 171 172 BODY=RB17_Left_Foot173 0.93288 0.0013 0.0037 0.0039174 3 38 39 40175 2 23 24176 -0.0302 0 0.0431177 -0.0913 -0.0117 0.0057178 0.0798 -0.0117 0.0057179 0.000000 1.000000 0.000000180 1.000000 0.000000 0.000000181 182 183 BODY=RB18_Left_Toes184 0.16008 0.0001 0.0002 0.0001185 2 41 42186 1 25187 -0.0226 0 -0.0155188 0.0430 0.0000 -0.0155189 0.000000 1.000000 0.000000190 191 192 BODY=RB19_Right_Arm_Fixed193 0.2346 0.0015 0.0015 0.0001194 2 43 44195 1 26196 0 0 0.1571197 0 0 -0.1159198 0.000000 1.000000 0.000000199 200 201 BODY=RB20_Right_Arm_Mobile202 1.1730 0.0054 0.0054 0.0022203 2 45 46204 2 27 28205 0 0 0.1571206 0 0 -0.1159207 1.000000 0.000000 0.000000208 0.0000 0.9852 -0.1714209 210 211 BODY=RB21_Right_Forearm_Fixed212 0.1270 0.0007 0.0007 0.0001213 2 47 48214 2 29 30215 0 0 0.1090216 0 0 -0.1300217 1.000000 0.000000 0.000000218 0.0000 0.9977 0.0671219 220 221 BODY=RB22_Right_Forearm_Mobile222 0.6348 0.0022 0.0022 0.0003223 2 49 50224 1 31225 0 0 0.1090226 0 0 -0.1300227 0.000000 1.000000 0.000000228 229 230 BODY=RB23_Right_Hand231 0.30912 0.000648 0.000812 0.000648232 2 51 52233 1 32234 0 0 0.0552235 0 0 -0.0186236 1.000000 0.000000 0.000000237 238 239 BODY=RB24_Left_Arm_Fixed240 0.2346 0.0013 0.0013 0.0001241 2 53 54242 1 33243 0 0 0.1458244 0 0 -0.1076245 0.000000 1.000000 0.000000246 247 248 BODY=RB25_Left_Arm_Mobile249 1.1730 0.0046 0.0046 0.0019250 2 55 56251 2 34 35252 0 0 0.1458253 0 0 -0.1076254 1.000000 0.000000 0.000000255 0.0000 0.9745 0.2246256 257 258 BODY=RB26_Left_Forearm_Fixed259 0.1270 0.0006 0.0006 0.0001260 2 57 58261 2 36 37262 0 0 0.1045263 0 0 -0.1248264 1.000000 0.000000 0.000000265 0.0000 0.9959 -0.0905266 267 268 BODY=RB27_Left_Forearm_Mobile269 0.6348 0.0020 0.0020 0.0003270 2 59 60271 1 38272 0 0 0.1045273 0 0 -0.1248274 0.000000 1.000000 0.000000275 276 277 BODY=RB28_Left_Hand278 0.30912 0.008824 0.009905 0.003044279 2 61 62280 1 39281 0 0 0.0558282 0 0 -0.0189283 1.000000 0.000000 0.000000284 285 286 *SUPERPOSITION CONSTRAINT287 288 SP=SP1_Rev_Joint_Point289 1 2 1 4 0290 291 SP=SP2_Rev_Joint_Point292 1 7 2 17 0
66
220 221 BODY=RB22_Right_Forearm_Mobile222 0.6348 0.0022 0.0022 0.0003223 2 49 50224 1 31225 0 0 0.1090226 0 0 -0.1300227 0.000000 1.000000 0.000000228 229 230 BODY=RB23_Right_Hand231 0.30912 0.000648 0.000812 0.000648232 2 51 52233 1 32234 0 0 0.0552235 0 0 -0.0186236 1.000000 0.000000 0.000000237 238 239 BODY=RB24_Left_Arm_Fixed240 0.2346 0.0013 0.0013 0.0001241 2 53 54242 1 33243 0 0 0.1458244 0 0 -0.1076245 0.000000 1.000000 0.000000246 247 248 BODY=RB25_Left_Arm_Mobile249 1.1730 0.0046 0.0046 0.0019250 2 55 56251 2 34 35252 0 0 0.1458253 0 0 -0.1076254 1.000000 0.000000 0.000000255 0.0000 0.9745 0.2246256 257 258 BODY=RB26_Left_Forearm_Fixed259 0.1270 0.0006 0.0006 0.0001260 2 57 58261 2 36 37262 0 0 0.1045263 0 0 -0.1248264 1.000000 0.000000 0.000000265 0.0000 0.9959 -0.0905266 267 268 BODY=RB27_Left_Forearm_Mobile269 0.6348 0.0020 0.0020 0.0003270 2 59 60271 1 38272 0 0 0.1045273 0 0 -0.1248274 0.000000 1.000000 0.000000275 276 277 BODY=RB28_Left_Hand278 0.30912 0.008824 0.009905 0.003044279 2 61 62280 1 39281 0 0 0.0558282 0 0 -0.0189283 1.000000 0.000000 0.000000284 285 286 *SUPERPOSITION CONSTRAINT287 288 SP=SP1_Rev_Joint_Point289 1 2 1 4 0290 291 SP=SP2_Rev_Joint_Point292 1 7 2 17 0293 294 SP=SP3_Rev_Joint_Point295 1 13 3 30 0296 297 SP=SP4_Rev_Joint_Point298 2 3 4 6 0299 300 SP=SP5_Rev_Joint_Point301 3 19 8 43 0302 303 SP=SP6_Rev_Joint_Point304 3 24 9 53 0305 306 SP=SP7_Rev_Joint_Point307 3 4 7 10 0308 309 SP=SP8_Rev_Joint_Point310 4 5 10 12 0311 312 SP=SP9_Rev_Joint_Point313 4 5 11 13 0314 315 SP=SP10_Rev_Joint_Point316 5 6 13 14 0317 318 SP=SP11_Rev_Joint_Point319 7 8 17 19 0320 321 SP=SP12_Rev_Joint_Point322 7 8 18 20 0323 324 SP=SP13_Rev_Joint_Point325 8 9 20 21 0326 327 SP=SP14_Rev_Joint_Point328 9 10 21 23 0329 330 SP=SP15_Rev_Joint_Point331 9 10 22 24 0332 333 SP=SP16_Rev_Joint_Point334 10 11 24 25 0335 336 SP=SP17_Rev_Joint_Point337 11 12 27 28 0338 339 SP=SP18_Rev_Joint_Point340 13 14 30 32 0341 342 SP=SP19_Rev_Joint_Point343 13 14 31 33 0344 345 SP=SP20_Rev_Joint_Point346 14 15 33 34 0347 348 SP=SP21_Rev_Joint_Point349 15 16 34 36 0350 351 SP=SP22_Rev_Joint_Point352 15 16 35 37 0353 354 SP=SP23_Rev_Joint_Point355 16 17 37 38 0356 357 SP=SP24_Rev_Joint_Point358 17 18 40 41 0359 360 SP=SP25_Rev_Joint_Point361 19 20 43 45 0362 363 SP=SP26_Rev_Joint_Point364 19 20 44 46 0365
67
293 294 SP=SP3_Rev_Joint_Point295 1 13 3 30 0296 297 SP=SP4_Rev_Joint_Point298 2 3 4 6 0299 300 SP=SP5_Rev_Joint_Point301 3 19 8 43 0302 303 SP=SP6_Rev_Joint_Point304 3 24 9 53 0305 306 SP=SP7_Rev_Joint_Point307 3 4 7 10 0308 309 SP=SP8_Rev_Joint_Point310 4 5 10 12 0311 312 SP=SP9_Rev_Joint_Point313 4 5 11 13 0314 315 SP=SP10_Rev_Joint_Point316 5 6 13 14 0317 318 SP=SP11_Rev_Joint_Point319 7 8 17 19 0320 321 SP=SP12_Rev_Joint_Point322 7 8 18 20 0323 324 SP=SP13_Rev_Joint_Point325 8 9 20 21 0326 327 SP=SP14_Rev_Joint_Point328 9 10 21 23 0329 330 SP=SP15_Rev_Joint_Point331 9 10 22 24 0332 333 SP=SP16_Rev_Joint_Point334 10 11 24 25 0335 336 SP=SP17_Rev_Joint_Point337 11 12 27 28 0338 339 SP=SP18_Rev_Joint_Point340 13 14 30 32 0341 342 SP=SP19_Rev_Joint_Point343 13 14 31 33 0344 345 SP=SP20_Rev_Joint_Point346 14 15 33 34 0347 348 SP=SP21_Rev_Joint_Point349 15 16 34 36 0350 351 SP=SP22_Rev_Joint_Point352 15 16 35 37 0353 354 SP=SP23_Rev_Joint_Point355 16 17 37 38 0356 357 SP=SP24_Rev_Joint_Point358 17 18 40 41 0359 360 SP=SP25_Rev_Joint_Point361 19 20 43 45 0362 363 SP=SP26_Rev_Joint_Point364 19 20 44 46 0365 366 SP=SP27_Rev_Joint_Point367 20 21 46 47 0368 369 SP=SP28_Rev_Joint_Point370 21 22 47 49 0371 372 SP=SP29_Rev_Joint_Point373 21 22 48 50 0374 375 SP=SP30_Rev_Joint_Point376 22 23 50 51 0377 378 SP=SP31_Rev_Joint_Point379 24 25 53 55 0380 381 SP=SP32_Rev_Joint_Point382 24 25 54 56 0383 384 SP=SP33_Rev_Joint_Point385 25 26 56 57 0386 387 SP=SP34_Rev_Joint_Point388 26 27 57 59 0389 390 SP=SP35_Rev_Joint_Point391 26 27 58 60 0392 393 SP=SP36_Rev_Joint_Point394 27 28 60 61 0395 396 SP=SP37_Rev_Joint_Point397 2 3 5 7 0398 399 SP=SP38_Rev_Joint_Point400 8 9 10 12 1401 402 SP=SP39_Rev_Joint_Point403 14 15 19 21 1404 405 SP=SP40_Rev_Joint_Point406 17 18 23 25 1407 408 SP=SP41_Rev_Joint_Point409 11 12 14 16 1410 411 SP=SP42_Rev_Joint_Point412 20 21 28 30 1413 414 SP=SP43_Rev_Joint_Point415 25 26 35 37 1416 417 418 *INNER PRODUCT CONSTRAINT419 IP=1_ip420 1 2 3 2 3 90421 422 IP=2_ip423 3 4 3 4 5 90424 425 IP=3_ip426 5 6 3 6 7 90427 428 IP=4_ip429 1 7 3 2 8 90430 431 IP=5_ip432 10 11 3 13 15 90433 434 IP=6_ip435 1 13 3 2 17 90436 437 IP=7_ip438 16 17 3 22 24 90
68
366 SP=SP27_Rev_Joint_Point367 20 21 46 47 0368 369 SP=SP28_Rev_Joint_Point370 21 22 47 49 0371 372 SP=SP29_Rev_Joint_Point373 21 22 48 50 0374 375 SP=SP30_Rev_Joint_Point376 22 23 50 51 0377 378 SP=SP31_Rev_Joint_Point379 24 25 53 55 0380 381 SP=SP32_Rev_Joint_Point382 24 25 54 56 0383 384 SP=SP33_Rev_Joint_Point385 25 26 56 57 0386 387 SP=SP34_Rev_Joint_Point388 26 27 57 59 0389 390 SP=SP35_Rev_Joint_Point391 26 27 58 60 0392 393 SP=SP36_Rev_Joint_Point394 27 28 60 61 0395 396 SP=SP37_Rev_Joint_Point397 2 3 5 7 0398 399 SP=SP38_Rev_Joint_Point400 8 9 10 12 1401 402 SP=SP39_Rev_Joint_Point403 14 15 19 21 1404 405 SP=SP40_Rev_Joint_Point406 17 18 23 25 1407 408 SP=SP41_Rev_Joint_Point409 11 12 14 16 1410 411 SP=SP42_Rev_Joint_Point412 20 21 28 30 1413 414 SP=SP43_Rev_Joint_Point415 25 26 35 37 1416 417 418 *INNER PRODUCT CONSTRAINT419 IP=1_ip420 1 2 3 2 3 90421 422 IP=2_ip423 3 4 3 4 5 90424 425 IP=3_ip426 5 6 3 6 7 90427 428 IP=4_ip429 1 7 3 2 8 90430 431 IP=5_ip432 10 11 3 13 15 90433 434 IP=6_ip435 1 13 3 2 17 90436 437 IP=7_ip438 16 17 3 22 24 90439 440 IP=8_ip441 3 19 3 4 26 90442 443 IP=9_ip444 22 23 3 31 32 90445 446 IP=10_ip447 3 24 3 4 33 90448 449 IP=11_ip450 27 28 3 38 39 90451 452 453 *KINEMATIC DRIVERS454 DRIVER=1455 6456 2 1 4 5 2457 458 DRIVER=2459 6460 2 1 4 5 1461 462 DRIVER=3463 5464 2 3 3 4465 466 DRIVER=4467 6468 4 3 10 11 4469 470 DRIVER=5471 6472 3 4 6 7 5473 474 DRIVER=6475 5476 4 5 5 6477 478 DRIVER=7479 4480 5 6 12 13 14 16481 482 DRIVER=8483 6484 5 6 12 13 7485 486 DRIVER=9487 6488 7 1 18 17 2489 490 DRIVER=10491 6492 7 1 18 17 1493 494 DRIVER=11495 5496 7 8 8 9497 498 DRIVER=12499 6500 8 9 20 19 11501 502 DRIVER=13503 5504 9 10 11 13505 506 DRIVER=14507 6508 10 11 24 23 15509 510 DRIVER=15511 6
69
439 440 IP=8_ip441 3 19 3 4 26 90442 443 IP=9_ip444 22 23 3 31 32 90445 446 IP=10_ip447 3 24 3 4 33 90448 449 IP=11_ip450 27 28 3 38 39 90451 452 453 *KINEMATIC DRIVERS454 DRIVER=1455 6456 2 1 4 5 2457 458 DRIVER=2459 6460 2 1 4 5 1461 462 DRIVER=3463 5464 2 3 3 4465 466 DRIVER=4467 6468 4 3 10 11 4469 470 DRIVER=5471 6472 3 4 6 7 5473 474 DRIVER=6475 5476 4 5 5 6477 478 DRIVER=7479 4480 5 6 12 13 14 16481 482 DRIVER=8483 6484 5 6 12 13 7485 486 DRIVER=9487 6488 7 1 18 17 2489 490 DRIVER=10491 6492 7 1 18 17 1493 494 DRIVER=11495 5496 7 8 8 9497 498 DRIVER=12499 6500 8 9 20 19 11501 502 DRIVER=13503 5504 9 10 11 13505 506 DRIVER=14507 6508 10 11 24 23 15509 510 DRIVER=15511 6512 10 11 24 23 14513 514 DRIVER=16515 4516 11 12 26 25 28 29517 518 DRIVER=17519 6520 13 1 31 30 2521 522 DRIVER=18523 6524 13 1 31 30 1525 526 DRIVER=19527 5528 13 14 17 18529 530 DRIVER=20531 6532 14 15 33 32 20533 534 DRIVER=21535 5536 15 16 20 22537 538 DRIVER=22539 6540 16 17 37 36 24541 542 DRIVER=23543 6544 16 17 37 36 23545 546 DRIVER=24547 4548 17 18 39 38 41 42549 550 DRIVER=25551 6552 19 3 44 43 4553 554 DRIVER=26555 6556 3 19 6 7 26557 558 DRIVER=27559 5560 19 20 26 27561 562 DRIVER=28563 6564 20 21 46 45 29565 566 DRIVER=29567 5568 21 22 29 31569 570 DRIVER=30571 6572 22 23 50 49 32573 574 DRIVER=31575 6576 23 22 52 51 31577 578 DRIVER=32579 6580 24 3 54 53 4581 582 DRIVER=33583 6584 3 24 6 7 33
70
512 10 11 24 23 14513 514 DRIVER=16515 4516 11 12 26 25 28 29517 518 DRIVER=17519 6520 13 1 31 30 2521 522 DRIVER=18523 6524 13 1 31 30 1525 526 DRIVER=19527 5528 13 14 17 18529 530 DRIVER=20531 6532 14 15 33 32 20533 534 DRIVER=21535 5536 15 16 20 22537 538 DRIVER=22539 6540 16 17 37 36 24541 542 DRIVER=23543 6544 16 17 37 36 23545 546 DRIVER=24547 4548 17 18 39 38 41 42549 550 DRIVER=25551 6552 19 3 44 43 4553 554 DRIVER=26555 6556 3 19 6 7 26557 558 DRIVER=27559 5560 19 20 26 27561 562 DRIVER=28563 6564 20 21 46 45 29565 566 DRIVER=29567 5568 21 22 29 31569 570 DRIVER=30571 6572 22 23 50 49 32573 574 DRIVER=31575 6576 23 22 52 51 31577 578 DRIVER=32579 6580 24 3 54 53 4581 582 DRIVER=33583 6584 3 24 6 7 33585 586 DRIVER=34587 5588 24 25 33 34589 590 DRIVER=35591 6592 25 26 56 55 36593 594 DRIVER=36595 5596 26 27 36 38597 598 DRIVER=37599 6600 27 28 60 59 39601 602 DRIVER=38603 6604 28 27 62 61 38605 606 DRIVER=39607 1608 1 1609 610 DRIVER=40611 2612 1 1613 614 DRIVER=41615 2616 1 2617 618 619 620 *END OF FILE
71
72
Appendix B
Additional Fortran routine in the Apollo software
This Appendix present the additional Fortran routine implemented in the Apollo software in order to do
the simulation of the passive exoskeleton influence in the natural gait.
1 *******************************************************************************2 * FILE: Saw_Aux_Funcs.f3 *4 * Called by: INVERSE_DYNAMIC_ANALYSIS5 *6 * Calls to :7 *8 *9 * DESCRIPTION: Apply Sawicki Clutch
10 *11 *12 *13 ****************************************** IST,JULY2017, SGoncalves **********14 15 16 17 18 19 *******************************************************************************20 * SUBROUTINE: SAWICKI_CLUTCH_FORCES21 *22 * Called by: INVERSE_DYNAMIC_ANALYSIS23 *24 * Calls to :25 *26 *27 * DESCRIPTION: Apply a spring element if the clutch is active28 *29 *30 *31 ****************************************** IST,JULY2017, SGoncalves **********32 33 34 SUBROUTINE SAWICKI_CLUTCH_FORCES(T_STEP,FRM_STEP,DATA_OUT)35 36 IMPLICIT NONE37 38 INCLUDE '..\Core\parameter.h'39 INCLUDE '..\Core\vardeclar.h'40 INCLUDE '..\Core\dvardeclar.h'41 42 INTEGER I,J,FRM_STEP,I_P1_SAW,I_P2_SAW43 REAL*8 T_STEP,L_DIR_VEC,F_VEC_N44 REAL*8 DATA_OUT(NPAR_SAW),F_VEC(3),DIR_VEC(3), P1(3),P2(3)45 REAL*8 DIR_VEC_N(3)46 47 IF (T_STEP>=T1_SAW .AND. T_STEP<=T2_SAW) THEN48 P1(1:3)=PTCOORD(1:3,P1_SAW)49 P2(1:3)=PTCOORD(1:3,P2_SAW)50 51 DIR_VEC=P2-P1;52 CALL NORM_V(DIR_VEC,L_DIR_VEC)53 DIR_VEC_N=DIR_VEC/L_DIR_VEC54 55 IF (L0_SAW_SPRING_FLAG==0) THEN56 L0_SAW_SPRING=L_DIR_VEC57 L0_SAW_SPRING_FLAG=158 59 I_P1_SAW=060 I_P2_SAW=061 62 DO I=2,RIGBOD(1,RB1_SAW)+163 IF (RIGBOD(I,RB1_SAW) == P1_SAW) THEN64 I_P1_SAW=I-165 EXIT66 ENDIF67 ENDDO68 69 DO I=2,RIGBOD(1,RB2_SAW)+170 IF (RIGBOD(I,RB2_SAW) == P2_SAW) THEN71 I_P2_SAW=I-172 EXIT73 ENDIF
73
1 *******************************************************************************2 * FILE: Saw_Aux_Funcs.f3 *4 * Called by: INVERSE_DYNAMIC_ANALYSIS5 *6 * Calls to :7 *8 *9 * DESCRIPTION: Apply Sawicki Clutch
10 *11 *12 *13 ****************************************** IST,JULY2017, SGoncalves **********14 15 16 17 18 19 *******************************************************************************20 * SUBROUTINE: SAWICKI_CLUTCH_FORCES21 *22 * Called by: INVERSE_DYNAMIC_ANALYSIS23 *24 * Calls to :25 *26 *27 * DESCRIPTION: Apply a spring element if the clutch is active28 *29 *30 *31 ****************************************** IST,JULY2017, SGoncalves **********32 33 34 SUBROUTINE SAWICKI_CLUTCH_FORCES(T_STEP,FRM_STEP,DATA_OUT)35 36 IMPLICIT NONE37 38 INCLUDE '..\Core\parameter.h'39 INCLUDE '..\Core\vardeclar.h'40 INCLUDE '..\Core\dvardeclar.h'41 42 INTEGER I,J,FRM_STEP,I_P1_SAW,I_P2_SAW43 REAL*8 T_STEP,L_DIR_VEC,F_VEC_N44 REAL*8 DATA_OUT(NPAR_SAW),F_VEC(3),DIR_VEC(3), P1(3),P2(3)45 REAL*8 DIR_VEC_N(3)46 47 IF (T_STEP>=T1_SAW .AND. T_STEP<=T2_SAW) THEN48 P1(1:3)=PTCOORD(1:3,P1_SAW)49 P2(1:3)=PTCOORD(1:3,P2_SAW)50 51 DIR_VEC=P2-P1;52 CALL NORM_V(DIR_VEC,L_DIR_VEC)53 DIR_VEC_N=DIR_VEC/L_DIR_VEC54 55 IF (L0_SAW_SPRING_FLAG==0) THEN56 L0_SAW_SPRING=L_DIR_VEC57 L0_SAW_SPRING_FLAG=158 59 I_P1_SAW=060 I_P2_SAW=061 62 DO I=2,RIGBOD(1,RB1_SAW)+163 IF (RIGBOD(I,RB1_SAW) == P1_SAW) THEN64 I_P1_SAW=I-165 EXIT66 ENDIF67 ENDDO68 69 DO I=2,RIGBOD(1,RB2_SAW)+170 IF (RIGBOD(I,RB2_SAW) == P2_SAW) THEN71 I_P2_SAW=I-172 EXIT73 ENDIF74 ENDDO75 76 IF (I_P1_SAW == 0 .OR. I_P2_SAW == 0) THEN77 CALL ERROR_MESSAGE(114)78 ENDIF79 80 P1_APP=BODYPNT(((I_P1_SAW-1)*3+1):((I_P1_SAW-1)*3+3),RB1_SAW)81 P2_APP=BODYPNT(((I_P2_SAW-1)*3+1):((I_P2_SAW-1)*3+3),RB2_SAW)82 83 ENDIF84 85 F_VEC_N = K_SAW*(L_DIR_VEC - L0_SAW_SPRING)86 F_VEC = F_VEC_N*DIR_VEC_N87 88 DATA_OUT(1)=T_STEP89 DATA_OUT(2)=F_VEC_N90 DATA_OUT(3:5)=F_VEC(1:3)91 DATA_OUT(6)=L_DIR_VEC92 DATA_OUT(7:9)=DIR_VEC_N(1:3)93 DATA_OUT(10:12)=P1(1:3)94 DATA_OUT(13:15)=P2(1:3)95 96 CALL CONCENTR_FORCE(RB1_SAW,F_VEC,P1_APP)97 CALL CONCENTR_FORCE(RB2_SAW,-F_VEC,P2_APP)98 99 ELSE
100 DATA_OUT(1)=T_STEP101 DATA_OUT(2)=0.0102 DATA_OUT(3:5)=0.0103 DATA_OUT(6)=0.0104 DATA_OUT(7:9)=0.0105 DATA_OUT(10:12)=0.0106 DATA_OUT(13:15)=0.0107 ENDIF108 109 110 111 112 END
74
top related