User Tools

Site Tools


visual3d:documentation:pipeline:model_based_data_commands:model_angular_momentum

MODEL ANGULAR MOMENTUM

Overview

This page focuses on the the MODEL_ANGULAR_MOMENTUM model-based item in Visual3D. Angular momentum L(t) is computed from full-body kinematic data using a multi-segment model. For each segment, the contribution to whole-body angular momentum is calculated by combining the angular momentum due to translation of the segment’s center of mass and the angular momentum due to rotation about that segment’s own center of mass. These terms are summed over all segments to yield the body’s total angular momentum vector about the whole-body center of mass.

A full discussion on the theoretical underpinnings for Angular Momentum as a quantity can be found on Wikipedia

Pipeline Command

Compute_Model_Based_Data
/RESULT_NAME=AngularMomentum
/SUBJECT_TAG=ALL_SUBJECTS
/FUNCTION=MODEL_ANGULAR_MOMENTUM
/SEGMENT=
/REFERENCE_SEGMENT=
! /RESOLUTION_COORDINATE_SYSTEM=LAB
! /USE_CARDAN_SEQUENCE=FALSE
! /NORMALIZATION=FALSE
! /NORMALIZATION_METHOD=
! /NORMALIZATION_METRIC=
! /NEGATEX=FALSE
! /NEGATEY=FALSE
! /NEGATEZ=FALSE
! /AXIS1=X
! /AXIS2=Y
! /AXIS3=Z
! /INCLUDE_REMOTE_ANGULAR_MOMENTUM=FALSE
! /TREADMILL_DATA=FALSE
! /TREADMILL_DIRECTION=UNIT_VECTOR(0,1,0)
! /TREADMILL_SPEED=0.0
;

Command Parameters

The command parameters that are relevant for angular momentum are FUNCTION, NORMALIZATION, and INCLUDE_REMOTE_ANGULAR_MOMENTUM.

  • FUNCTION: MODEL_ANGULAR_MOMENTUM
  • NORMALIZATION: there are three options to normalize the momentum values to. Default normalization (normalized by a value of 1), normalize to local file metric value, normalize to global metric value. This can be defined in NORMALIZATION_METHOD and NORMALIZATION_METRIC.
  • INCLUDE_REMOTE_ANGULAR_MOMENTUM: Boolean parameter specifying whether the remote angular momentum—defined as a segment’s linear momentum relative to the body’s center of mass (COM) is included (TRUE) or excluded (FALSE).
Parameter Description Default Value
/RESULT_NAME The name of the Link_Model_Based item.
/SUBJECT_TAG The subject tag for the Link_Model_Based item. The active Subject_Tag in the workspace.
/FUNCTION The "type" of Link_Model_Based item to compute. MODEL_ANGULAR_MOMENTUM
/SEGMENT The Link_Model_Based item's segment in question.
/REFERENCE_SEGMENT The Link_Model_Based item's reference segment. The LAB segment.
/RESOLUTION_COORDINATE_SYSTEM The coordinate system into which the Link_Model_Based item is resolved. The LAB segment.
/USE_CARDAN_SEQUENCE Whether or not to use a Cardan sequence. FALSE
/NORMALIZATION Whether or not to normalize the Link_Model_Based item. TRUE
/NORMALIZATION_METHOD Which normalization method, if any, to use. Default normalization(default=1), normalize to local file metric value, normalize to global metric value
/NORMALIZATION_METRIC Which metric, if any, to use as a normalization baseline.
/NEGATEX Whether or not to negate the Link_Model_Based item's X-component. FALSE
/NEGATEY Whether or not to negate the Link_Model_Based item's Y-component. FALSE
/NEGATEZ Whether or not to negate the Link_Model_Based item's Z-component. FALSE
/AXIS1 The first rotation axis for a Cardan sequence. X
/AXIS2 The second rotation axis for a Cardan sequence. Y
/AXIS3 The third rotation axis for a Cardan sequence. Z
/INCLUDE_REMOTE_ANGULAR_MOMENTUM Segment’s linear momentum relative to the body’s center of mass (COM) is included (TRUE) or excluded (FALSE) FALSE
/TREADMILL_DATA Whether or not treadmill data is being used to calculate this Link_Model_Based item. FALSE
/TREADMILL_DIRECTION If treadmill data is being used, the treadmill's direction of travel. UNIT_VECTOR(0,1,0)
/TREADMILL_SPEED If treadmill data is being used, the treadmill's speed in m/s. 0.0

Dialog

Whole Body Angular Momentum Calculation

The angular momentum for the total body about the total body center of mass is:

angularmomentummodel.jpg

Where N = total number of segments

The following sections describe the components of the final equation.

Model Center of Mass (COM)

The center of mass of an object is a theoretical point where all of the object’s mass can be considered to be concentrated. The Center of Mass of the model can be computed from the location of the center of mass of each segment.

angularmomentum.jpg

Total Mass of the Model

mtotal.jpg

Location of the center of mass of the model.

rcom.jpg

Segment COM relative to Model COM

The vector from the Model's COM to the COM of a segment is illustrated by the red vector in the figure below:

rcomlab.jpg

Velocity of the COM

Velocity of a Segment COM relative to the laboratory

vnlab.jpg

Velocity of the Model COM relative to the laboratory

vcomlab.jpg

Velocity of a vector from the Segment COM to the Model COM in Laboratory coordinates.

vncomlab.jpg

Segment Angular Moment in Local Coordinates

Compute iwseg.jpg in Local Coordinates

wnlab.jpg = Segment angular velocity in Lab Coordinates

tn.jpg = Segment orientation matrix, which transforms a vector from Lab coordinates to Local coordinates

Compute the segment angular velocity in Segment Local Coordinates

tnwn.jpg

iwlocal.jpg = Segment Angular Momentum in Local Coordinates

Segment Angular Moment in Lab Coordinates

Segment Angular Momentum in Lab Coordinates

iwlab.jpg

Angular Momentum of one Segment Relative to the COM

The angular momentum for one segment about the total body center of mass in Laboratory Coordinates is:

lnlab.jpg

Angular Momentum of Model Relative to the COM

Now that all the angular moment values in a common coordinate system, we can simply add them.

ltotallab.jpg

The angular momentum for the total body about the total body center of mass is:

angularmomentummodel.jpg

Where N = total number of segments

Note: The tricky calculation is ilab.jpg so the algorithm works around this issue by not actually calculating the value.

Normalization

Normalizing the whole body angular momentum has been added to Visual3D's MODEL_ANGULAR_MOMENTUM function. The default normalization is by the value of 1, i.e. not normalizing the body angular momentum. However, users are able to normalize by a metric value if they wish.

For example, the following script mimics the method used by Herr et.al. 6 This study computes whole body angular momentum on gait data. In this study, they chose to compare across subjects with different body sizes and walking speeds, and therefore chose to convert the raw angular momentum values into a dimensionless, normalized measure. Specifically, each subject’s angular momentum is divided by a normalization constant:

MVH

where:

M is the subject’s total body mass,

V is the mean self-selected walking speed, and

H is the subject’s center-of-mass height.

Here we show a similar approach done in Visual3D as an example of how angular momentum can be normalized to any Metric signal that a user creates.

We begin by computing the average whole body center of mass height of an individual during stance phase of left gait cycles using the Metric_Mean command:

Metric_Mean
! /RESULT_METRIC_FOLDER=PROCESSED
/RESULT_METRIC_NAME=ModelCOMHeight
! /APPLY_AS_SUFFIX_TO_SIGNAL_NAME=FALSE
/SIGNAL_TYPES=KINETIC_KINEMATIC
/SIGNAL_FOLDER=Model
/SIGNAL_NAMES=CenterOfMass
/COMPONENT_SEQUENCE=Z
/EVENT_SEQUENCE=LHS+LTO
/EXCLUDE_EVENTS=
! /GENERATE_MEAN_AND_STDDEV=TRUE
! /GENERATE_MEAN_AND_STDDEV_ACROSS_SUBJECTS=FALSE
! /APPEND_TO_EXISTING_VALUES=FALSE
;

Then, we use Evaluate_Expression to compute the MVH metric that will be used to normalize the full body angular momentum. Here, the walking speed is 1.5 m/s.

Evaluate_Expression
/EXPRESSION=MODEL::METRIC::MASS*METRIC::PROCESSED::ModelCOMHeight_MEAN*1.5
! /SIGNAL_TYPES=
! /SIGNAL_FOLDER=ORIGINAL
! /SIGNAL_NAMES=
! /SIGNAL_COMPONENTS=
/RESULT_TYPES=METRIC
! /RESULT_FOLDERS=PROCESSED
/RESULT_NAME=MVH
! /APPLY_AS_SUFFIX_TO_SIGNAL_NAME=FALSE
;

Finally, the normalized model angular momentum can be computed by referencing this MVH command:

Compute_Model_Based_Data
/RESULT_NAME=Normalized_BodyAngularMomentum
/SUBJECT_TAG=ALL_SUBJECTS
/FUNCTION=MODEL_ANGULAR_MOMENTUM
/SEGMENT=
/REFERENCE_SEGMENT=
/RESOLUTION_COORDINATE_SYSTEM=
! /USE_CARDAN_SEQUENCE=FALSE
/NORMALIZATION=TRUE
/NORMALIZATION_METHOD=NORMALIZE_TO_LOCAL_METRIC
/NORMALIZATION_METRIC=MVH
! /NEGATEX=FALSE
! /NEGATEY=FALSE
! /NEGATEZ=FALSE
! /AXIS1=X
! /AXIS2=Y
! /AXIS3=Z
! /INCLUDE_REMOTE_ANGULAR_MOMENTUM=FALSE
! /TREADMILL_DATA=FALSE
! /TREADMILL_DIRECTION=UNIT_VECTOR(0,1,0)
! /TREADMILL_SPEED=0.0
;

Examples

Examples of calculating angular momentum quantities can be found here.

References

Much of the contents of this page are courtesy of Fred Yeadon.

  1. Yeadon, M.R. 1993. The biomechanics of twisting somersaults. Part I: Rigid body motions. Journal of Sports Sciences 11, 187-198.
  2. Yeadon, M.R. 1993. The biomechanics of twisting somersaults. Part II: Contact twist. Journal of Sports Sciences 11, 199-208.
  3. Yeadon, M.R. 1993. The biomechanics of twisting somersaults. Part III: Aerial twist. Journal of Sports Sciences 11, 209-218.
  4. Yeadon, M.R. 1993. The biomechanics of twisting somersaults. Part IV: Partitioning performance using the tilt angle. Journal of Sports Sciences 11, 219-225.
  5. Yeadon, M.R. 1993. Twisting techniques used by competitive divers. Journal of Sports Sciences 11, 4, 337-342.
  6. Herr, H. 2008. Angular Momentum in Human Walking. The Journal of Experimental Biology 211, 467-481
visual3d/documentation/pipeline/model_based_data_commands/model_angular_momentum.txt · Last modified: 2025/12/19 18:41 by wikisysop