visual3d:documentation:pipeline:model_based_data_commands:angular_momentum_example
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| visual3d:documentation:pipeline:model_based_data_commands:angular_momentum_example [2025/12/19 14:43] – wikisysop | visual3d:documentation:pipeline:model_based_data_commands:angular_momentum_example [2026/06/18 21:05] (current) – Linked model-based item pages. richard | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ===== Angular Momentum Examples ===== | + | ====== Angular Momentum Examples |
| - | This page demonstrates how to compute angular momentum using sports data sets, with normalization methods based on recent biomechanics research. The approach follows principles established in studies like "How maximal whole-body and segmental angular momenta relate to fastball speeds in high school baseball pitchers," | + | This page demonstrates how to compute angular momentum using sports data sets, with normalization methods based on recent biomechanics research. The approach follows principles established in studies like "How maximal whole-body and segmental angular momenta relate to fastball speeds in high school baseball pitchers" |
| - | ====Baseball==== | + | |
| - | This example shows how to compute the angular momentum of the model (MODEL_ANGULAR_MOMENTUM) as well as finding the angular momentum of a segment (ANGULAR_MOMENTUM) using babseball | + | =====Example 1: Baseball===== |
| - | {{: | + | This example shows how to compute the angular momentum of the model (the **[[visual3d: |
| + | |{{: | ||
| ---- | ---- | ||
| Line 123: | Line 125: | ||
| ; | ; | ||
| </ | </ | ||
| - | 4. Using the CONTACT_PLANE calculated in step 2, the **projection** | + | |
| + | 4. The projected | ||
| < | < | ||
| Evaluate_Expression | Evaluate_Expression | ||
| Line 161: | Line 164: | ||
| ; | ; | ||
| </ | </ | ||
| + | ---- | ||
| + | ===== Example 2: Golf ==== | ||
| - | ====Golf==== | + | 1. First, the Best_Fit_Plane is used to calculate the swing plane at impact. This will be used in subsequent commands to identify the angular momentum projection on the swing plane: |
| + | < | ||
| + | Evaluate_Expression | ||
| + | /EXPRESSION=METRIC_MEAN(SIGN(DOT(VECTOR(LANDMARK:: | ||
| + | *Best_Fit_Plane(CURRENT_SIGNAL, | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | ! / | ||
| + | ! / | ||
| + | / | ||
| + | / | ||
| + | ! / | ||
| + | ; | ||
| + | </ | ||
| - | ====Segment Angular Momentum About Segment COM==== | + | ==== Example 2a: Segment Angular Momentum About Segment COM ==== |
| + | The following example show how the angular momentum of the thorax about its own center of mass can be calculated: | ||
| < | < | ||
| Compute_Model_Based_Data | Compute_Model_Based_Data | ||
| - | / | + | / |
| / | / | ||
| / | / | ||
| - | /SEGMENT=RFA | + | /SEGMENT=RTX |
| / | / | ||
| ! / | ! / | ||
| Line 183: | Line 203: | ||
| ! /AXIS2=Y | ! /AXIS2=Y | ||
| ! /AXIS3=Z | ! /AXIS3=Z | ||
| - | / | + | ! / |
| ! / | ! / | ||
| ! / | ! / | ||
| ! / | ! / | ||
| - | </ | ||
| - | ====Segment Angular Momentum About Model COM==== | ||
| - | < | ||
| - | First_Derivative | ||
| - | / | ||
| - | / | ||
| - | / | ||
| - | / | ||
| - | / | ||
| - | ! / | ||
| - | / | ||
| ; | ; | ||
| + | </ | ||
| - | ! Nested Loops | + | The resulting |
| - | ! Outer Loop gets an active | + | |
| + | {{: | ||
| - | For_Each | + | ==== Example 2b: Segment Angular Momentum Including Remote Angular Momentum ==== |
| - | / | + | |
| - | /ITEMS=RFT+RSK+RTH+LFT+LSK+LTH+RPV | + | |
| - | ; | + | |
| - | ! compute | + | This example shows how the angular momentum of the thorax can be found, like above, this time including the remote angular momentum of the segment. The remote angular momentum is defined as a segment’s linear momentum relative to the body’s center of mass. This value is then projected, using Evaluate_Expression, onto the swing plane we defined earlier: |
| - | Evaluate_Expression | + | < |
| - | /EXPRESSION=vector((Kinetic_Kinematic::&:: | + | Compute_Model_Based_Data |
| - | /RESULT_NAME=:: | + | /RESULT_NAME=Thorax_AngMomRemote |
| - | ! /RESULT_TYPE=DERIVED | + | / |
| - | ! /RESULT_FOLDER=PROCESSED | + | / |
| + | / | ||
| + | / | ||
| + | ! / | ||
| + | ! / | ||
| + | / | ||
| + | / | ||
| + | ! / | ||
| + | ! / | ||
| + | ! / | ||
| + | ! / | ||
| + | ! /AXIS1=X | ||
| + | ! /AXIS2=Y | ||
| + | ! /AXIS3=Z | ||
| + | /INCLUDE_REMOTE_ANGULAR_MOMENTUM=TRUE | ||
| + | ! /TREADMILL_DATA=FALSE | ||
| + | ! / | ||
| + | ! /TREADMILL_SPEED=0.0 | ||
| ; | ; | ||
| - | ! compute mv | ||
| Evaluate_Expression | Evaluate_Expression | ||
| - | / | + | / |
| - | /RESULT_NAME=:: | + | /SIGNAL_TYPES=LINK_MODEL_BASED |
| - | ! /RESULT_TYPE=DERIVED | + | ! /SIGNAL_FOLDER=ORIGINAL |
| - | ! /RESULT_FOLDER=PROCESSED | + | / |
| + | ! /SIGNAL_COMPONENTS= | ||
| + | ! / | ||
| + | / | ||
| + | / | ||
| + | / | ||
| ; | ; | ||
| - | ! compute rxmv | + | </code> |
| - | Evaluate_Expression | + | |
| - | /EXPRESSION=cross(DERIVED:: | + | |
| - | / | + | |
| - | ! / | + | |
| - | ! / | + | |
| - | ; | + | |
| + | It is important to note that when remote angular momentum is included the value is only particularly meaningful around the time of impact. The resulting projected value around the time of impact looked like so: | ||
| + | |||
| + | {{: | ||
| + | |||
| + | ==== Example 2c: Whole Body Angular Momentum About Model COM ==== | ||
| + | |||
| + | The following commands show how the total angular momentum of the model can be found by summing the angular momentum of every model segment about the model COM. This value is then projected onto the swing plane using the same method as above. Model angular momentum can either include or exclude the remote angular momentum of each segment, in this example it is excluded. | ||
| + | < | ||
| Compute_Model_Based_Data | Compute_Model_Based_Data | ||
| - | / | + | / |
| - | /FUNCTION=ANGULAR_MOMENTUM | + | / |
| - | /SEGMENT=::SEG_NAME | + | /FUNCTION=MODEL_ANGULAR_MOMENTUM |
| - | / | + | /SEGMENT= |
| + | / | ||
| ! / | ! / | ||
| ! / | ! / | ||
| Line 249: | Line 280: | ||
| ! /AXIS2=Y | ! /AXIS2=Y | ||
| ! /AXIS3=Z | ! /AXIS3=Z | ||
| + | ! / | ||
| + | ! / | ||
| + | ! / | ||
| + | ! / | ||
| ; | ; | ||
| - | ! compute rxmv | ||
| Evaluate_Expression | Evaluate_Expression | ||
| - | / | + | / |
| - | /RESULT_NAME=:: | + | /SIGNAL_TYPES=LINK_MODEL_BASED |
| - | /RESULT_TYPE=DERIVED | + | ! /SIGNAL_FOLDER=ORIGINAL |
| - | /RESULT_FOLDER=Momentum_Contribution | + | / |
| + | ! / | ||
| + | ! / | ||
| + | /RESULT_FOLDERS=CLUB | ||
| + | / | ||
| + | / | ||
| ; | ; | ||
| + | </ | ||
| - | End_For_Each | + | The resulting projection of the model angular momentum on the swing plane looked like so: |
| - | / | + | |
| - | ; | + | |
| - | </ | + | {{: |
| - | ====Whole Body Angular Momentum About Model COM==== | + | A comparison of the angular momentum about the z axis for each of these examples can be seen below: |
| + | {{: | ||
| + | ===== References ===== | ||
| + | [1] [[https:// | ||
| + | [2] [[https:// | ||
visual3d/documentation/pipeline/model_based_data_commands/angular_momentum_example.1766155418.txt.gz · Last modified: by wikisysop
