PIPER  1.0.1
Appendix: Description of direct kinematics model

Overview

The direct kinematics model (DK) provides the relative location of segments and their landmarks for specific joint angles defined by the user.

The model

The DK model was developed consisting of a specific set of articulated segments. The DK model is described by an articulation chain of segments and the individual joints between them. For each joint a coordinate system (JCS) is defined that connects two adjacent segments and describes the joint rotation axes and their rotation sequence. Each segment is a rigid body that represents one or more bones (see following table). The DK model is positioned by changing the angles of these joints. Local coordinate systems (LCS) of the segments, were essentially constructed using anatomical landmarks, following the ISB recommendations [Wu 2002; Wu 2005], and they are used to define the relative angles of the joints. The following tables summarize the segments and the joints defined into the DK model and the anatomical landmarks employed for the definition of the local coordinate systems.

Segments and the respective body parts included in the DK model
SegmentAliasBody parts
PelvisPelvisPelvic_skeleton, Sacrum, Left_hip_bone, Right_hip_bone
Thigh*Femur_LLeft_femur
Lower leg*Tibia_LLeft_tibia, Left_fibula
Foot*Foot_LLeft_foot
Patella*Patella_LLeft_patella
Lumbar vertebrae (L5-L1)**Lumbar_L5,..., Lumbar_L1Fifth_lumbar,...,First_lumbar
Thoracic vertebrae (T12-T01)**Thoracic_T12,..., Thoracic_T01Twelfth_thoracic,..., First_thoracic
Cervical vertebrae (C7-C1)**Cervical_C7,..., Cervical_C1Seventh_cervical,..., First_cervical
Skull Skull Skull
Mandible Mandible Mandible
Clavicle* Clavicle_L Left_clavicle
Scapula* Scapula_L Scapula_L
Arm* Humerus_L Left_humerus
Forearm* Ulna_L Left_ulna, Left_radius
Sternum Sternum Sternum
Rib cageRibCageLeft_first_rib-Right_twelfth_rib

∗ only the left side is presented
∗ ∗ each vertebral bone is represented by an individual entity

List of joints and articulated segments defined in the DK model
JointSegment 1Segment 2
Reference PelvisEnvironment
L5-SacrumPelvisFifth lumbar vertebra
L4-L5 vertebral archFifth lumbar vertebraFourth lumbar vertebra
L3-L4 vertebral archFourth lumbar vertebraThird lumbar vertebra
L2-L3 vertebral archThird lumbar vertebraSecond lumbar vertebra
L1-L2 vertebral archSecond lumbar vertebraFirst lumbar vertebra
T12-L1 vertebral archFirst lumbar vertebraTwelfth thoracic vertebra
T11-T12 vertebral archTwelfth thoracic vertebraEleventh thoracic vertebra
T10-T11 vertebral archEleventh thoracic vertebraTenth thoracic vertebra
T9-T10 vertebral archTenth thoracic vertebraNinth thoracic vertebra
T8-T9 vertebral archNinth thoracic vertebraEighth thoracic vertebra
T7-T8 vertebral archEighth thoracic vertebraSeventh thoracic vertebra
T6-T7 vertebral archSeventh thoracic vertebraSixth thoracic vertebra
T5-T6 vertebral archSixth thoracic vertebraFifth thoracic vertebra
T4-T5 vertebral archFifth thoracic vertebraFourth thoracic vertebra
T3-T4 vertebral archFourth thoracic vertebraThird thoracic vertebra
T2-T3 vertebral archThird thoracic vertebraSecond thoracic vertebra
T1-T2 vertebral archSecond thoracic vertebraFirst thoracic vertebra
C7-T1 vertebral archFirst thoracic vertebraSeventh cervical vertebra
C6-C7 vertebral archSeventh cervical vertebraSixth cervical vertebra
C5-C6 vertebral archSixth cervical vertebraFifth cervical vertebra
C4-C5 vertebral archFifth cervical vertebraFourth cervical vertebra
C3-C4 vertebral archFourth cervical vertebraThird cervical vertebra
C2-C3 vertebral archThird cervical vertebraSecond cervical vertebra (Axis)
C1-C2 vertebral archSecond cervical vertebra (Axis)First cervical vertebra (Atlas)
C1-SkullFirst cervical vertebra (Atlas)Skull
Skull-MandibleSkullMandible
Left hipPelvis Left femur
Left tibiofemoralLeft femur Left lower leg
Left ankleLeft lower legLeft foot
Left patellofemoralLeft femurLeft patella
Left sternoclavicularT1Left clavicle
Scapula-ClavicleLeft clavicleLeft scapula
Left glenohumeralLeft clavicleLeft arm
Left elbowLeft armLeft forearm
Left clavicle-sternumLeft cleavicleSternum
T4-rib cageT4Rib cage


Anatomical landmarks used for the definition of the local coordinate systems
SegmentLM 1LM 2LM 3LM 4
PelvisRight_acetabular_centerLeft_acetabular_centerCenter_lower_plate_of_L5
Lumbar L5Anterior_midpoint_of_the_body_of_L5Posterior_midpoint_of_the_body_of_L5Center_lower_plate_of_L5Center_upper_plate_of_L5
Lumbar L4Anterior_midpoint_of_the_body_of_L4Posterior_midpoint_of_the_body_of_L4Center_lower_plate_of_L4Center_upper_plate_of_L4
Lumbar L3Anterior_midpoint_of_the_body_of_L3Posterior_midpoint_of_the_body_of_L3Center_lower_plate_of_L3Center_upper_plate_of_L3
Lumbar L2Anterior_midpoint_of_the_body_of_L2Posterior_midpoint_of_the_body_of_L2Center_lower_plate_of_L2Center_upper_plate_of_L2
Lumbar L1Anterior_midpoint_of_the_body_of_L1Posterior_midpoint_of_the_body_of_L1Center_lower_plate_of_L1Center_upper_plate_of_L1
Thoracic T12Anterior_midpoint_of_the_body_of_T12Posterior_midpoint_of_the_body_of_T12Center_lower_plate_of_T12Center_upper_plate_of_T12
Thoracic T11Anterior_midpoint_of_the_body_of_T11Posterior_midpoint_of_the_body_of_T11Center_lower_plate_of_T11Center_upper_plate_of_T11
Thoracic T10Anterior_midpoint_of_the_body_of_T10Posterior_midpoint_of_the_body_of_T10Center_lower_plate_of_T10Center_upper_plate_of_T10
Thoracic T09Anterior_midpoint_of_the_body_of_T9Posterior_midpoint_of_the_body_of_T9Center_lower_plate_of_T9Center_upper_plate_of_T9
Thoracic T08Anterior_midpoint_of_the_body_of_T8Posterior_midpoint_of_the_body_of_T8Center_lower_plate_of_T8Center_upper_plate_of_T8
Thoracic T07Anterior_midpoint_of_the_body_of_T7Posterior_midpoint_of_the_body_of_T7Center_lower_plate_of_T7Center_upper_plate_of_T7
Thoracic T06Anterior_midpoint_of_the_body_of_T6Posterior_midpoint_of_the_body_of_T6Center_lower_plate_of_T6Center_upper_plate_of_T6
Thoracic T05Anterior_midpoint_of_the_body_of_T5Posterior_midpoint_of_the_body_of_T5Center_lower_plate_of_T5Center_upper_plate_of_T5
Thoracic T04Anterior_midpoint_of_the_body_of_T4Posterior_midpoint_of_the_body_of_T4Center_lower_plate_of_T4Center_upper_plate_of_T4
Thoracic T03Anterior_midpoint_of_the_body_of_T3Posterior_midpoint_of_the_body_of_T3Center_lower_plate_of_T3Center_upper_plate_of_T3
Thoracic T02Anterior_midpoint_of_the_body_of_T2Posterior_midpoint_of_the_body_of_T2Center_lower_plate_of_T2Center_upper_plate_of_T2
Thoracic T01Anterior_midpoint_of_the_body_of_T1Posterior_midpoint_of_the_body_of_T1Center_lower_plate_of_T1Center_upper_plate_of_T1
Cervical C7Anterior_midpoint_of_the_body_of_C7Posterior_midpoint_of_the_body_of_C7Center_lower_plate_of_C7Center_upper_plate_of_C7
Cervical C6Anterior_midpoint_of_the_body_of_C6Posterior_midpoint_of_the_body_of_C6Center_lower_plate_of_C6Center_upper_plate_of_C6
Cervical C5Anterior_midpoint_of_the_body_of_C5Posterior_midpoint_of_the_body_of_C5Center_lower_plate_of_C5Center_upper_plate_of_C5
Cervical C4Anterior_midpoint_of_the_body_of_C4Posterior_midpoint_of_the_body_of_C4Center_lower_plate_of_C4Center_upper_plate_of_C4
Cervical C3Anterior_midpoint_of_the_body_of_C3Posterior_midpoint_of_the_body_of_C3Center_lower_plate_of_C3Center_upper_plate_of_C3
Cervical C2Anterior_midpoint_of_the_body_of_C2Posterior_midpoint_of_the_body_of_C2Center_lower_plate_of_C2Center_upper_plate_of_C2
Cervical C1VC1DC1Center_lower_plate_of_C1Center_atlanto_occipital_joint
ScullCenter_atlanto_occipital_jointLeft_porionRight_porionNasion
MandibleLeft_jaw_angleRight_jaw_angleInferior_crest_of_the_jaw
Thigh LMedial_epicondyle_of_left_femurLateral_epicondyle_of_left_femurLeft_acetabular_center
Lower leg LLateral_point_lateral_condyle_of_left_tibiaMedial_point_medial_condyle_of_left_tibiaTip_lateral_malleolus_of_left_fibulaTip_medial_malleolus_of_left_tibia
Foot LLateral_point_lateral_condyle_of_left_tibiaMedial_point_medial_condyle_of_left_tibiaTip_lateral_malleolus_of_left_fibulaTip_medial_malleolus_of_left_tibia
Patella LPatellaL_anterior_centerPatellaL_lateralPatellaL_medialPatellaL_distal
Clavicle LDorsal_point_of_left_acromioclavicular_jointVentral_point_of_left_sternoclavicular_jointAnterior_midpoint_of_the_body_of_T8Anterior_midpoint_of_the_body_of_C7
Scapula LDorsal_point_of_left_acromioclavicular_jointAngulus_acromialis_of_left_scapulaAngulus_inferior_of_left_scapulaTrigonum_spinae_of_left_scapula
Arm LLateral_epicondyle_of_left_humerusMedial_epicondyle_of_left_humerusHead_center_of_left_humerus
Forearm LLateral_epicondyle_of_left_humerusMedial_epicondyle_of_left_humerusStyloid_process_of_left_radiusStyloid_process_of_left_ulna
SternumLeft_sternum_sternoclavicular_jointRight_sternum_sternoclavicular_jointSubsternale_(xyphoid_process)Jugular_notch
Rib cageVentral_point_of_left_sternoclavicular_jointRight_sternum_sternoclavicular_jointAnterior_midpoint_of_the_body_of_T4Anterior_midpoint_of_the_body_of_T10

Structure

The segments are articulated to each other following a tree structure, with the pelvis being the root of this structure (see following figure). Three rotational degrees of freedom (DOF) are allowed for each joint, with the exception of the joint connecting the pelvis with the environment that three additional translational DOF are allowed. The orientation of each segment is computed relative to its predecessor in the tree structure, taking into account the rotational angles of the joint connecting the segments.

KinChain.png
Structure tree of the segments and the joints connecting them.
∗ the vertebral segments are connected to each other as described in the first table.

Examples

The following figure demonstares two examples of positioning the reference model, by using joint angles defined by the user. Initially, the DK model is constructed by calling the function "CreatePiperModel.m". The model structure in .txt format and anatomical landmarks coordinates in .csv format serve as inputs for this function. This function computes LCS using the anatomical landmarks coordinates, articulates the segments using the model structure and computes the local coordinate systems (figure bellow, gray skeleton). The function provides the dimensions of the articulated model and the anatomical landmarks coordinates both in global coordinate system and in LCS. The function "RepositionSkeletonByDK.m" is used to re-position the skeleton. The dimensions and the structure of the articulated model and the joint angles corresponding the desired posture serve as input for this function. The function computes the new position of each segment using the position of its predecessor in the tree structure and the angles of the joint connecting the segments as defined by the user. The function provides the anatomical landmarks coordinates in the new posture, expressed in both the global coordinate system and in LCS (figure bellow, red skeleton). For the first example the flexion angles of the right hip, right knee, right glenohumeral and right elbow were increased 60, -80, 80 and -60° respectively. These flexion angles resulted in the posture represented with the red skeleton (figure bellow left, red skeleton). Although only flexion angles were defined, it can be noticed that the forearm is also internally rotated relative to the spine. This occurred because the computation of the position of the forearm segment is based on the position and orientation of the arm and the angles defined for the elbow joint. As the arm is inverted the elbow flexion causes the forearm to move internally relatively to the spine. For the second example, the joint angles of the driving posture were employed (figure bellow right).

Examples.png
Re-positioning of the reference model (gray skeleton). 1. Right hip, knee, glenohumeral and elbow flexion. 2. Joint angles of driving posture.


Description of the program scripts


Workflow and respective scripts
Step Action Script
1 Symmetrize skeleton SymLMs
2 Compute joint angles of the driving posture (target posture) CreatePersonalizedPiperModel
3 Compute joint coordinate systems and express anatomical landmarks with repect to LCS for source skeletons CreatePersonalizedPiperModel
4 Compute the coordinates of the anatomical landmarks on the target postureRepositionSkeletonByDK


Description of the main scripts of the kinematic model
Script Input Output Description
CreatePersonalizedPiperModel(sbj) Piper.Model.txt
(sbj)_LMsImport.csv
ZeroJointAngles.txt
(sbj).ScannedPosture.LMs.csv
(sbj).ScannedPosture.JointAngles.csv
(sbj).JointCenters.csv
(sbj).Dimensions.mat
(sbj).Body.mat
Computes local coordinate systems for each segment
and computes the positions of the anatomical landmarks
with respect to the GCS and LCS
RepositionSkeletonByDK(sbj) Piper.Model.txt
(sbj).Dimensions.mat
(sbj).Body.mat
DrivingPosture.JointAngles.csv
(sbj).DrivingPosture.LMs.csv Positions the articulated model based on joint angles
defined by the user and computes the positions of the
anatomical landmarks in the target posture with respect
to the GCS and LCS
SymLMs (sbj)_lm.csv (sbj)_LMsSym.csv i) Creates symmetrized to the left extremities anatomical landmarks on the respective right extrimities
ii) Modifies the input landmarks set such as the headers are
capitalized and landmarks are registered to segments instead
of body parts (Alias table 1)
ex. Styloid_process_of_left_radius Left_radius Ulna_L
Left_ischial_tuberosity Left_hip_bone Pelvis
Segment_(segment name) Previous segment in the
kinematic chain, anatomical
landmarks
LCS
A structure variable including the
the segment, body parts, LCS,
axes rotation sequence,
distal and proximal joints

Defines
i) the LCS of the (segment name)
ii) the proximal and the distal joints of the (segment name)



Description of batch process scripts
Script Description
BatchProcess4ComputingLMsInScannedAndDrivingPosturesExecutes the CreatePersonalizedPiperModel and RepositionSkeletonByDK scripts for all the selected sbj
BatchProcess4SymLMsExecutes the SymLMs script for all the selected sbj



Description of input/output files
FileDescription
Piper.Model.txt Defines the structure of the model: Joints, segments and containing body parts, anatomical landmarks to be used for LCS
(sbj)_lm.csv Anatomical landmarks coordinates (name, body part, x, y, z)
(sbj)_LMsSym.csv Anatomical landmarks coordinates (name, segment, x, y, z)
ZeroJointAngles.txt Zero values for all the joint angles
(sbj).ScannedPosture.LMs.csv Anatomical landmarks coordinates for the scan posture (name, segment, x, y, z, X, Y, Z)
(sbj).DrivingPosture.LMs.csv Anatomical landmarks coordinates for the driving posture (name, segment, x, y, z, X, Y, Z)
(sbj).ScannedPosture.JointAngles.csv Joint angles for the articulated model
(sbj).JointCenters.csv Coordinates of the joint centers



Definitions of the joint coordinate systems
JointDefinition Anterior viewLateral view
Pelvis-Environment
O: midpoint of left and right acetabular centers
Z: the line crossing the right and left acetabular centers, pointing to the right
Y: the line crossing the center of the fifth lumbar vertebral lower plate and the origin, pointing cranially
X: the common line perpendicular to the Z and Y axes, pointing anteriorly
PelvisAnt.png
PelvisLat.png
Hip
O: the acetabular center
Y: the line connecting the acetabular with the knee center, pointing proximally
X: the common line perpendicular to the line connecting the lateral and medial femoral epicondyles and the Y axis, pointing anteriorly
Z: the common line perpendicular to the X and Y axes, pointing to the right
HipAnt.png
HipLat.png
Knee
O: the midpoint of the femoral epicondyles
Z: the line connecting the medial and lateral malleoli, pointing to the right
X: the common line perpendicular to the line connecting the lateral malleolus with the midpoint of the lateral and medial tibial condyles and the line connecting the medial malleolus with the midpoint of the tibial condyles, pointing anteriorly
Y: the common line perpendicular to the Z and X axes, pointing proximally
KneeAnt.png
KneeLat.png
C2-C3
O: center of distal vertebral segment
Y: the line connecting the centers of the proximal and distal vertebral plates, pointing cranially
Z: the common perpendicular line to the line connecting the ventral and the dorsal points of the vertebral and the Y axis, pointing to the right
X: the common line perpendicular to the Y and Z axes, pointing anteriorly
C2Ant.png
C2Lat.png
Sternoclavicular
O: the most ventral point of the clavicle
Z: the line connecting the origin with the most dorsal point of the clavicle, pointing laterally
X: the common line perpendicular to the Z axis and the line connecting the most anterior point of the superior plate of C7 and the most anterior point of the superior plate of T8, pointing anteriorly
Y: the common line perpendicular to the Z and X axes, pointing caudally
SternoclavicularAnt.png
SternoclavicularLat.png
Glenohumeral
O: the center of the humerus
Y: the line connecting the center of the humerus with the elbow center, pointing cranially
X: the common line perpendicular to the the Y axis and the line connecting the epicondyles of the humerus, pointing anteriorly
Z: the common line perpendicular to the Y and X axes, pointing laterally
ShoulderAnt.png
ShoulderLat.png
Skull
O: the center of the atlanto-occipital joint
Z: the line connecting the left with the right porion, pointing to the right
X: the line perpendicular to plane defined by the nasion, the left and the right porion, pointing caudally
Y: the common line perpendicular to the Z and X axes, pointing anteriorly
SkullAnt.png
SkullLat.png
Mandible
O: the midpoint of the right and the left jaw angles
Z: the line connecting the left and the right jaw angles,pointing right
X: the line perpendicular to plane defined by the incisive, the left and the right jaw angles, pointing caudally
Y: the common line perpendicular to the Z and X axes, pointing anteriorly
MandibleAnt.png
MandibleLat.png
Patella
O: the anterior center of the patella
Z: the line connecting the most medial with the most lateral points of the patella, pointing laterally
X: the common line perpendicular to the X axis and the line connecting the most proximal with most distal points on the anterior surface of the patella, pointing posteriorly
Y: the common line perpendicular to the Z and X axes, pointing distally
PatellaAnt.png
PatellaLat.png
Scapula
O: the most dorsal point of the left acromioclavicular joint
Z: the line connecting the angulus acromialis with the trigonum spinae, pointing laterally
X: the line perpenticular to plane defined by the angulus acromialis, trigonum spinae and the angulus inferior, pointing anteriorly
Y: the common line perpendicular to the Z and X axes, pointing caudally
ScapulaAnt.png
ScapulaLat.png
Sternum
O: the most ventral point of the left clavicle
Z: the line connecting the points of the left and right sternoclavicular joints, pointing laterally
X: the common line perpendicular to axis Z and the line connecting the xyphoid process and jugular notch, pointing anteriorly
Y: the common line perpendicular to the Z and X axes, pointing caudally
SternumAnt.png
SternumLat.png
RibCage
O: anterior midpoint of T4
Z: the line connecting the most ventral point of the the left sternoclavicular joint with the right point of the right sternoclavicular joint, pointing right
X: the common line perpendicular to axis Z and the line connecting the anterior midpoints of T4 and T10, pointing posteriorly
Y: the common line perpendicular to the X and Z axes, pointing cranially
RibCageAnt.png
RibCageLat.png
Elbow
O: the midpoint of the epicondyles of the humerus
Y: the line connecting the lateral epicondyle of the humerus with the most lateral point on the radial styloid, pointing proximally
X: the common line perpendicular to the line connecting the most lateral point of the radial styloid with the most medial point of the ulnar styloid and the Y axis
Z: the common line perpendicular to the X and Y axes
ElbowAnt.png
ElbowLat.png


References

Wu G et al., 2002. ISB recommendation on definitions of joint coordinate system of various joints for the reporting of human joint motion - Part I: ankle, hip, and spine. Journal of Biomechanics 35: 543 - 548.
Wu G et al., 2005. 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. Journal of Biomechanics 38: 981 - 992.