User Tools

Site Tools


kinematic_model

Kinematic models

The Upperlimb Software is a full featured modelling software with the focus on upper extremity kinematic modelling. Lots of different models are implemented in the Heidelberg gaitlab and can be combined or adapted. A typically application has its specific needs and existing models have to be adapted. There are two main modelling approaches, which correspond to three different models, you can start with: 1. The HUX model, 2. an implementation of the recommendations of the ISB and 3. a combination of both.

HUX model

General

The Upperlimb Software Version 1 was developed to make a specific upper limb protocol available for clinical applications: The so called Heidelberg Upper extremity measurement procedure (HUX).

It is focussed on practicability. Thats why only a small set of markers is used and joint angles are defined a way that they correspond best with angles typically used by physiotherapists and orthopaedics.

The details of the original model are described here:

The angles to describe shoulder girdle movement are described here:

Shoulder internal/external rotation is described by a specific angle definition, called conjunct rotation as described here:

Conjunct rotation: Codman's paradox revisited.
Wolf SI, Fradet L, Rettig O
Med Biol Eng Comput47p551-6(2009 May)

Marker placement

Name Position Description Segment
CLAV upperbody
STRN upperbody
T10 This position is used for many years in the Heidelberg Gaitlab instead of T8. There is some literature about which of the two positions is better but in practice it looks like it makes not difference. upperbody
C7 upperbody
R/LSHO Left and right acromion head. Shoulder girdle
R/LHUMS Left and right humerus. Humerus
R/LELB, R/LELBW Left and right twin marker, placed distal to the elbow. R/LELBW is the marker near the lateral epicondyle; for the hanging arm it is the one in front. Typically the leverarm to the R/LELBW marker is longer than for the R/LELB marker (near medial epicondyle). Forearm
R/RAD Left and right radial epicondyle. Forearm
R/ULN Left and right ulnar epicondyle. Forearm

Plot Sheet example

The following sheet shows some repetitions of an arm abduction movement. You can see the gimbal-lock problem in the globe description of int/ext shoulder rotation and how this can be solved by the conjunct rotation definition in the plot above.

Segments and angles

The model includes four rigid segments represent the kinematic model of the upper limb:

  1. Trunk (represented by the thorax)
  2. Left and right upper arm (humerus)
  3. Left and right forearm (1. Radius, 2. Ulna)

Five joints are analyzed:

  1. Trunk movement (in the lab space)
  2. Humero-thoracic movement
  3. Shouldergirdle movement
  4. Elbow

The joint attitudes are described by the following angles:

  • shoulder ab-/adduction (default: projection angle, direction cosine angle)
  • shoulder ante-/retroversion (default: projection angle, direction cosine angle)
  • shoulder internal-/external rotation (adjunct and conjunct angles, globe system)
  • shoulder girdle elevation/depression (default: direction cosine angle)
  • shoulder girdle pro-/retraction (default: projection angle)
  • elbow flexion/extention (default: projection angle)
  • elbow pro-/supination (default: projection angle)

One specifity of the HUX model is to calculate these angles in serveral quatities. So you you can use the ones, which best fit to the application (face validity). Escpecially calculation of adjunct and conjunct rotation angles, to describe shoulder internal/external rotation, is very useful.

Trunk longitudinal axis

The extended HUX model defines the longitudinal axis of the trunk by including shoulder and pelvis markers:

CLAV - (RSHO + LSHO)*0.25 - C7*0.5

This makes the definition more robust against subject specific differences in the trunk shape, which often better fits to the view with our own eys.

Trunk orientation

The trunk orientation is determined as two projection angles, which describes the orientation of the trunks longitudinal axis with respect to its orientation in an static calibration trial.

Name Angle type Reference Description
R/LTrunkObliquityHDCal Projection Ant/post thorax axis in a static calibration trial The angle of the longitudinal axis with respect to its orientation in a static calibration trial.
R/LTrunkTiltHDCal Projection Med/Lat thorax axis in a static calibration trial The angle of the longitudinal axis with respect to its orientation in a static calibration trial.

ISB model

Scapula motion

The recommendations of the international shoulder group are based on marker clusters and the so called CAST method.

With a specific device (pointer) anatomical positions e.g prominences of the scalpula are tracked in a static positions only and determined in coordinates of a marker cluster. Details about the usage of a pointer you can find in the section "Working with a pointer device" in the Nimue Platform documentation.

Additional to the HUX measurement procedure this makes the scapula movement available. The joint attitudes are described by cardan angles:

  • Scapula medio/lateral rotation (upward rotation)
  • Scapula posterior tilting
  • Scapula pro-/retraction (internal rotation)

A detailed description of the angles (also several variants are available) is published here:

ISB recommendation on definitions of joint coordinate systems of various joints for the reporting of human joint motion--Part II: shoulder, elbow, wrist and hand.
Wu G, van der Helm FC, Veeger HE, Makhsous M, Van Roy P, Anglin C, Nagels J, Karduna AR, McQuade K, Wang X, Werner FW, Buchholz B
J Biomech38p981-992(2005 May)

Tip positions

The following table shows a list of the recommended tip positions to define anatomical coordinate systems for the thorax, scapulae, humeri and forearms.

Name Position Segment
T8 Thorax
C7 Thorax
PX Processus Xiphoideus (xiphoid process), most caudal point on the sternum Thorax
IJ Incisura Jugularis Thorax
TS Trigonum Spinae Scapulae (root of the spine), the midpoint of the triangular surface on the medial border of the scapula in line with the scapular spine Scapula
AI Angulus Inferior (inferior angle), most caudal point of the scapula Scapula
AA Angulus Acromialis (acromial angle), most laterodorsal point of the scapula Scapula
PC Most ventral point of processus coracoideus Scapula
SC Most ventral point on the sternoclavicular joint Clavicle
AC Most dorsal point on the acromioclavicular joint (shared with the scapula) Clavicle, Scapula
EL Most caudal point on lateral epicondyle Humerus
EM Most caudal point on medial epicondyle Humerus
RS Most caudal–lateral point on the radial styloid Forearm
US Most caudal–medial point on the ulnar styloid Forearm

The Tip position AC is typically not used. Note that because of the use of AA instead of AC to define the main plane in the definition of the anatomical coordinate system of the scapula, this plane is not the same as the visual plane of the scapula bone.

Example Sheets

As an example the following sheet describes the shoulder movement during arm abduction (in frontal plane). The third line shows the scapula angels as recommended by the ISB. The forth line show xy-plots: The scapula angles over the humerus/shoulder elevation.

It is commonly assumed that the scapula angles can be determined well up to 90° of humerus elevation. So better show the plots only up to 90 degrees of humerus elevation, like in the following sheet:

The first line shows time-normalized data, the second xy-plots and the third phase-plots.

Accuracy

For this RoM the maximum error should be less than 8 degrees in all cases. That is higher than for the other upper extremity joint angles but it sounds worse than it is because typical daily life arm movements have variabilities in the same order. There are several publication about accuracy, e.g.:

Validity and reliability of 3D marker based scapular motion analysis: a systematic review.
Lempereur M, Brochard S, Leboeuf F, Rémy-Néris O
J Biomech47p2219-30(2014 Jul 18)
Measuring scapular kinematics during arm lowering using the acromion marker cluster.
Warner MB, Chappell PH, Stokes MJ
Hum Mov Sci31p386-96(2012 Apr)
Recording scapular motion using an acromion marker cluster.
van Andel C, van Hutten K, Eversdijk M, Veeger D, Harlaar J
Gait Posture29p123-8(2009 Jan)

Angles

Name Angle type Reference Description
R/LShoulderElevationPlaneH2 Cardan thorax HD Plane of elevation of the humerus. Definition by ISB.
R/LShoulderElevationH2 Cardan thorax HD Humerus elevation. Definition by ISB.
R/LShoulderRotationH2 Cardan thorax HD Humerus axial rotation, endo- or internal- rotation (positive) and exo- or external-rotation (negative), defintion by ISB
R/LClavProRetraction Cardan thorax ISB Clavicula pro-/retraction angle
R/LClavDepressionElevation Cardan thorax ISB Clavicula depression/elevation angle
R/LScapProRetractionHDCal Cardan thorax HD Scapula pro-/retraction
R/LScapRotationHDCal Cardan thorax HD Scapula med-/lateral rotation
R/LScapTiltingHDCal Cardan thorax HD Scapula post-/ant tilt
R/LScapProRetraction Cardan thorax ISB Scapula pro-/retraction
R/LScapRotation Cardan thorax ISB Scapula med-/lateral rotation
R/LScapTilting Cardan thorax ISB Scapula post-/ant tilt

Upper body longitudinal axis

In the ISB recommendations the longitudinal axis of the upper body is defined without usage of the pelvis position:

(IJ + C7)*0.5 - (T8 + PX)*0.5

In practice this axis does not fit well with the view with our own eys due to the upper body shpae can be very different. As an altnernative there is a definition of the upper body axis which is based on additionally pelvis markers in a static calibration trial.

(IJ + C7*3.0)*0.25 - (LASI + RASI + SACR)/3.0

In principle both methods allow to determine an orientation of the upper body with respect to the pelvis.

A combined HUX and ISB model

A combined markerset to run the HUX and the cluster and Tip pointer based model (ISB recommendations), especially to determine scapula movements, is available out of the box.

Markers

Name Position Description Segment
CLAV upperbody
STRN upperbody
T10 This position is used for many years in the Heidelberg Gaitlab instead of T8. There is some literature about which of the two positions is better but in practice it looks like it makes not difference. upperbody
C7 Prominent cervical vertrebra 7 upperbody
SACR Needed only for static calibration in a standing position pelvis
LASI left asis Needed only for static calibration in a standing position. pelvis
RASI right asis Needed only for static calibration in a standing position pelvis

Reduced model without R/LSHO

The single markers placed on the acromion head (R/LSHO) in the original HUX model

1. allow a fallback procedure, if the functional method to determine the glenohumeral joint centers fails. They can be substituted by pointing these positions in a static trial.

2. are used in the HUX specific definition of the thorax longitudinal axis, which is defined as

ThoraxC - PELC.

With R/LSHO tip positions or markers a Point ThoraxC is determined as follow:

ThoraxC = (LSHO + RSHO)*0.25 + C7 * 0.5

Without RSHO/LSHO:

ThoraxC = (CLAV + C7*3.0) * 0.25

In practice there is no much difference. The definition with R/LSHO maybe is a bit more robust, because the distance of the markers is bigger and a misplacement of CLAV or C7 has less influence on the definition of the longitudinal axis. On the other side, it is easy to place these markers accurate enough.

3. The R/LSHO marker positions are used to determine an offset angle for the shoulder girdle elevation. If these position are not available the offset is estimated by an anthropometric mean value, scaled with shoulder width.

Tip positions

In the combined model you can use the complete set of tip positions as described for the ISB model or you can use the following subset to determine only the scapula antomical coordinate system based on the Tip positions.

Name Position Segment
TS Trigonum Spinae Scapulae (root of the spine), the midpoint of the triangular surface on the medial border of the scapula in line with the scapular spine Scapula
AI Angulus Inferior (inferior angle), most caudal point of the scapula Scapula
AA Angulus Acromialis (acromial angle), most laterodorsal point of the scapula Scapula

The functionalal calibration method is than used to determine the elbow joint axis and the glenohumeral joint centers. If there is not too much laxicity in the elbow, the elbow joint axis can be better estimated by functional calibration as described in the HUX model.

T10 instead of T8

In the ISB recommendation the Tip position T8 is used. If complete compatibility to the ISB recommendations is not needed you can resign on this position and use the marker position of T10 instead.

Clavicle versus shoulder girdle

The tip positions on the clavicle are only needed, if you want to follow the original ISB recommendations to determine the clavicle orientation. Keep in mind that this procedure allows to determine only two from the three degrees of freedom.

The HUX model calculates the orientation of the shoulder girdle as a whole, also only in two dimensions. Its our opinion that this is more useful, because you can follow these angles with your own eyes easier than for the clavicles and the difference between the two definitions of angles is mainly an offset angle.

Functional calibration

The elbow flexion joint axis and the glenohumeral joint center are determined by functional calibration in the default version of the “combined” model. There are no recommentations from the ISB about details of functional calibration. Serveral mathematical methods exist and can be used in different ways. Big influence has 1) the kind of used calibration movements, 2) which parts of these movements are used to estimate the joint parameters and 3) how the technical coordinate systems are defined, in which the joint parameters are defined.

All of these details can be changed easily in the Upperlimb model files. The default implementation has the following specifities:

  • The elbow joint axis is determined by the mathematics described by [Gamage 2002].
  • from the complete flexion-extention calibration movements only the parts, starting at the events RHS/LHS and ending at RTO/LTO, are used.
  • The axis is estimated based on a technical coordinate system of the forearm and the marker R/LHUMS placed on the upperarm and the assumption that this markers move on a circle around the elbow joint axis.
  • The glenohumeral joint center ist determined also by the mathematics described by [Gamage 2002]
  • from the complete ab-/adduction and ante-/retroversion movements only parts are used; the parts are defined based on a first roughly estimation of the humerus elevation angle based on the axis defined by the midpoint of the acromion marker cluster and the marker R/LHUMS and the longitudinal axis.

Keep in mind, that different to a simple predictional method a functional calibration can fail and you can get a totally wrong joint center. To recognize, that a functional calibration is failed, you have carefully to look into the log files.

The following log messages fragment shows you five iteration steps of the bias correction of a joint center estimation following [Gamage 2002]. You can see that this interative correction do not converge.

[INFO] (57) LGSGamge 2002 SVD: Rotation Center ohne Bias-Compensation: (60.76693325312189, -25.894798036334446, 60.423781556794616)
[INFO] (57) LGSGamge 2002 SVD: Rotation Center nach 1 Iterationen: (-57.3980918658107, -91.1250314558144, -20.858904273414232)
[INFO] (57) LGSGamge 2002 SVD: Rotation Center nach 2 Iterationen: (-72.5833864175126, -102.85950568583847, -33.44581338726128)
[INFO] (57) LGSGamge 2002 SVD: Rotation Center nach 3 Iterationen: (-84.07771649140628, -109.7181035045771, -41.66369346685163)
[INFO] (57) LGSGamge 2002 SVD: Rotation Center nach 4 Iterationen: (-92.95746570013212, -114.92644324606557, -47.96427069100709)
[INFO] (57) LGSGamge 2002 SVD: Rotation Center nach 5 Iterationen: (-100.00711917673523, -119.05556050171771, -52.96368029919215)

Compare it with a working case:

[INFO] (57) LGSGamge 2002 SVD: Rotation Center ohne Bias-Compensation: (51.85421210044921, -32.47977057461504, 92.10082187401123)
[INFO] (57) LGSGamge 2002 SVD: Rotation Center nach 1 Iterationen: (46.955873753377865, -39.268110807802714, 74.30109865228015)
[INFO] (57) LGSGamge 2002 SVD: Rotation Center nach 2 Iterationen: (46.33405115922165, -40.138869668498536, 72.15844069072027)
[INFO] (57) LGSGamge 2002 SVD: Rotation Center nach 3 Iterationen: (46.120939656264156, -40.435632487848665, 71.39881899028889)
[INFO] (57) LGSGamge 2002 SVD: Rotation Center nach 4 Iterationen: (46.04002626088268, -40.548197183621696, 71.10984825987104)
[INFO] (57) LGSGamge 2002 SVD: Rotation Center nach 5 Iterationen: (46.008483182048586, -40.59207317192517, 70.99716045271347)

To overcome the need to set events for reduction of the range of motion used for optimization of the functional glenohumeral joint center you can use the following phase definition for automatisation:

<DirectedCosinAngle name="RHumEle" 
                    includes="dynamic_calibrate_right_shoulder" 
                    SecondVector="-LongitudinalAxisHDCal" 
                    FirstVector="normalize(RHUMS-RSCAO)"/>
 
<TDP name="RHumEleAngleMin" 
     includes="dynamic_calibrate_right_shoulder" 
     process="post" 
     calibrateIncludes="dynamic_calibrate_right_shoulder" 
     method="min">RHumEleAngle</TDP>
 
<Phase name="RAbduk" 
       includes="dummy" 
       process="post" 
       calibrateIncludes="dynamic_calibrate_right_shoulder">(RHumEleAngle < (FuncionalTrialAbdukROM + 10.0 + RHumEleAngleMin)) && (RHumEleAngle > (10.0 + RHumEleAngleMin))</Phase>

The above xml-fragment is included by “commented-out”. It substitutes the following default xml-fragment, which uses the events only:

<Phase name="RAbduk" 
       startEvent="RHS" 
       endEvent="RTO" 
       process="post" 
       calibrateIncludes="dynamic_calibrate_right_shoulder" 
       includes="dummy"/>

You have to commented-out the above fragment.

For the left side there are equivalent xml-fragments available in the model.

Convergation of the functional method is no garantee to get a good estimation. Even if the method converges it is possible that you get bad estimations. In these cases typically the glenohumeral joint centers are shiftet to medial and anterior for one or both sides of a subject.

Trunk orientation ISB

In the original HUX model the trunk orientation is determined as two projection angles, which describes the orientation of the trunks longitudinal axis with respect to its orientation in an static calibration trial.

In the combined model as an alternative these projection angles are determined equivalent to the thorax longitudinal and medio/lateral axes of the ISB recommendations:

Name Angle type Reference Description
R/LTrunkObliquity Projection Ant/post thorax axis in a static calibration trial The angle of the longitudinal axis with respect to its orientation in a static calibration trial.
R/LTrunkTilt Projection Med/Lat thorax axis in a static calibration trial The angle of the longitudinal axis with respect to its orientation in a static calibration trial.

Project files

Here are the Nimue platform based project files for the combined model. How to clone a github repository is explained here.

Eclipse entries

The default configuration of this project is made for usage with data collected by Vicon Workstation or Vicon Nexus. It assumes that the following “Eclipse”-entries are set as shown in the following table.

Name Used values Deprecated values Description
TYPE Static_Cal, Static, EllbowFlex/Ext, ShoulderAnte/Retro, ShoulderAbd/Add, Dynamic, Proprio, proprio
CLASS This property was originally used in the Heidelberg Motionlab. Please use TYPE instead.
ACTIVITY Scapula TS, Scapula AI, Scapula AA, Scapula PC, Humerus EL, Humerus EM, Forearm RS, Forearm US All of the values can haven an suffix “Pos1” or “Pos2” … (old deprecated: “Position 1” or “Position 2” …), if positions are tipped for humerus elevation angles > 90 degrees.
POSITION This property was originally used in the Heidelberg Motionlab. Please use ACTIVITY instead.
SIDE Side R, Side L, Both, bds rechts, links If a motion or position is side depenended in the meaning it can be done with the right side and the left or with both sides you can define the side.
DESCRIPTION Abduk, Ante-/Retro, Elevation/Depression, Protraktion/Retraktion ARO/IRO-0, ARO/IRO-90Abduk, ARO/IRO-90Ante Schuerzengriff, Kaemmen, Armkreisen, Buch, WaschenAchsel,
NOTES This property was originally used in the Heidelberg Motionlab. Please use DESCRIPTION instead.

For Vicon Nexus users these properties are available per default. No Vicon Nexus Eclipse-properties configuration is needed any more, for its usage. You only have to set the values for each trial as configured in the projects “job configuration”.

Vicon Nexus creates for each trial a file with the suffix “.enf” which includes the above properties. Have a look at the following example content of such an enf-file:

[Node Information]
TYPE=TRIAL
NAME=sitzen_16
[TRIAL_INFO]
DESCRIPTION=AA_semi_re
NOTES=
STAGES=
TYPE=Dynamic
GENDER=
SIDE=Side R
DIAGNOSIS=
INJURY=
PATHOLOGY=
ACTIVITY=Scapula AA Position 1
CREATIONDATEANDTIME=2017,3,1,16,12,49
FP4=Auto
FP3=Auto
FP2=Auto
FP1=Auto
SUBJECTS=Matteo
RAWDATALOADSTARTFRAME=0
RAWDATALOADENDFRAME=0
RAWDATAEXCLUDEFILES=

The deprecated values are formaly used in the Heidelberg Motionlab and should not be used any more. They are only listed to remember if you find these values in older sessions collected in the Heidelberg Motionlab.

You can change the usage of the properties as you want. All is defined in the “job configuration”. Have a look at the Nimue platform Process documentation to understand how to define groups of trials and how to process them.

Scapula humeral rhythm (SHR)

The Scapulohumeral Rhythm (SHR), sometimes also referred to as glenohumeral rhythm is the kinematic interaction between the scapula and the humerus, first published by Codman in the 1930s. This interaction is important for the optimal function of the shoulder.

Typically the SHR is given as the ratio of the glenohumeral abduction angle and the scapula medio-lateral rotation angle during humeral abduction movements (movement mainly in frontal or scapula plane). In many publications, due to technical reasons, the glenohumeral abduction angle is determined from the thoracohumeral abduction angle by subtracting the scapula medio-lateral rotation angle. All of these angles can be defined by cardan sequences or by projection angles.

Three-Dimensional Scapular Kinematics in Patients with Reverse Total Shoulder Arthroplasty during Arm Motion.
Lee KW, Kim YI, Kim HY, Yang DS, Lee GS, Choy WS
Clin Orthop Surg8p316-24(2016 Sep)

Typically the SHR is presented as a function of the humeral elevation.

By default, in our models the SHR is based on projection angles and the humeral elevation is determined as an direction cosine angle.

Name Type Reference Description
R/RGlenohumeralAbdAddProjAngle Projection Scapula corresponding to the ISB recommendations. The abduction angle between humerus and scapula projected into the frontal plane.
R/LScapRotationProjAngle Projection Thorax coordinate system based on the longitudinal axis definition developed for the Heidelberg upper extremity model The scapula media-lateral rotation angle against the thorax as defined above.
R/LScapHumRhythmHDCalProj Ratio - The ratio between the above angles.

The following sheet shows the SHR in the upper left corner based on the data shown in the diagrams in the third column in the second and third row.

Be careful: This definition is useful only, if both angles are always bigger than zero. Depending on the defintion of the thorax and due to measurement errors in practice it can happen that the scapula thoracal angle can start with negative angles and crosses the zero during the abduction phase. This results in strange SHR value curves. There is no bug in the implementation. It is an inappropriate SHR definition.

Have a look at the following sheet:

The peak in the SHR in the curve in the upper left corner of the sheet results from a division by zero, because the curve in the second column in the third row starts from negative values and increase up to positive values by crossing the zero value.

In the literature I have'nt seen such curves. The authors typically avoids to show these singularities by starting the curves from x-values after the singularity. That´s why you never find curves in the literature starting at zero.

To avoid the singularities, e.g. Walker et. al. 2015 define the SHR as (deltaH - deltaS)/deltaS, where deltaH is the incremental humeral elevation and deltaS is the incremental scapular elevation.

Scapulohumeral rhythm in shoulders with reverse shoulder arthroplasty.
Walker D, Matsuki K, Struk AM, Wright TW, Banks SA
J Shoulder Elbow Surg24p1129-34(2015 Jul)

This is a different measure, which results in different numerical values, for the so called SHR but it is more robust against angle-offsets. A numerical feature of this definition is, that it can be implemented a way that the measure does not depend on the rotation order of the cardan angles.

A simple model for measurement and analysis of inter-limb coupling during upperlimb diadochokinesis

The used markerset consisted of one skin-mounted marker placed on the proximal ulna and a three-armed rod with one marker at each end of the rod placed palmar in the closed first with one of the rods placed between the third and fourth finger in dorsal direction. With the assumption that the forearm is hold in horizontal position, the model determines a rotation angle, which corresponds to pro-/supination, if there is no motion in other degrees of freedom in the hand (e.g. ularduction).

Project files

Here are the Nimue platform based project files.

This simple project/model can be used as a starting point to learn how to model with the “Upperlimb” software.

The model was developed in the Heidelberg Motionlab to analyse inter-limb coupling during diadochokinesis in children with bilateral spastic cerebral palsy.

Conference abstract

kinematic_model.txt · Last modified: 2018/01/08 19:56 by oliver