visual3d:documentation:pipeline:model_based_data_commands:angular_momentum_pt
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_pt [2024/06/19 12:51] – sgranger | visual3d:documentation:pipeline:model_based_data_commands:angular_momentum_pt [2026/06/02 14:14] (current) – ↷ Links adapted because of a move operation 172.204.27.30 | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | {{{{{{\\ | + | ====== Angular Momentum about a Point ====== |
| + | This example demonstrates how to calculate the angular momentum of a [[visual3d: | ||
| - | ====== | + | **Note**: It is very important to note that the total body angular momentum |
| - | it is important to note that the total body angular momentum is not calculated by summing the [[visual3d: | + | ===== Calculating Angular Momentum ===== |
| - | ===== angular momentum: about segment center of mass ===== | + | Visual3D' |
| - | visual3d' | + | ==== About a Segment' |
| - | **angular momentum about a segment' | + | A segment' |
| + | {{: | ||
| - | | segmentangularmomentumexpression.jpg | + | where |
| - | ===== angular momentum: about total body center | + | < |
| + | I = Moment | ||
| + | w = Angular velocity | ||
| + | </ | ||
| - | **angular momentum about the total body center | + | ==== About Total Body Center |
| + | A segment' | ||
| - | **note:** angular momentum for the whole body about the total body center of mass is just the summation of the angular momentum of **each** segment about the total body center of mass. | + | |{{:SegmentAngularMomentum_AboutaPoint_Eq.png}} |{{: |
| - | |segmentangularmomentum_aboutapoint_eq.png\\ \\ //iw// = angular momentum of the segment\\ \\ \\ //i// = moment of inertia\\ \\ //w// = angular velocity\\ \\ //r// = distance from the total body center of mass to the segment' | + | where |
| - | ====== example script ====== | + | < |
| + | Iw = angular momentum of the segment | ||
| + | r = distance from the segment' | ||
| + | m = mass of the segment | ||
| + | v = translational velocity | ||
| + | </ | ||
| - | ===== inroduction ===== | + | **NOTE:** In this case angular momentum for the whole body about the total body center of mass is simply the summation of the angular momentum of **each** segment about the total body center of mass. |
| - | **to calculate the angular momentum about a point (such as the model center of mass):** | + | ===== Example ===== |
| - | | + | This example script demonstrates how to calculate a segment' |
| - | - compute | + | |
| - | - compute | + | - Compute //mv// |
| - | - compute | + | - Compute //r// x //mv// |
| - | - compute iw * (r x mv) | + | - Compute |
| + | - Compute //Iw// x (//r// x //mv//) | ||
| - | ===== script ===== | + | ==== Files ==== |
| - | this script and sample | + | This script and sample |
| - | the following script computes the angular momentum about the total body center of mass, if the user would like to calculate angular momentum about a different point, specify the desired signal in place of " | + | ==== Script ==== |
| - | + | ||
| - | this script calculates the angular momentum **for each of the listed segments** (rft+rsk+rth+lft+lsk+lth+rpv).\\ | + | |
| - | \\ | + | |
| - | if the user would like to calculate the **total body angular momentum about the model center of mass**, the resulting signals from the last evaluate expression command for all segments should be summed together. if you would like to calculate the total body angular momentum, you can use the [[visual3d: | + | |
| < | < | ||
| - | first_derivative | + | First_Derivative |
| - | /signal_types=kinetic_kinematic | + | /SIGNAL_TYPES=KINETIC_KINEMATIC |
| - | /signal_folder=model | + | /SIGNAL_FOLDER=Model |
| - | /signal_names=centerofmass | + | /SIGNAL_NAMES=CenterOfMass |
| - | /result_types=derived | + | /RESULT_TYPES=DERIVED |
| - | /result_folder=com | + | /RESULT_FOLDER=COM |
| - | ! /result_names= | + | ! /RESULT_NAMES= |
| - | /result_suffix=_vel | + | /RESULT_SUFFIX=_VEL |
| ; | ; | ||
| - | </ | ||
| - | < | + | ! Nested Loops |
| - | for_each | + | ! Outer Loop gets an active segment |
| - | /iteration_parameter_name=seg_name | + | For_Each |
| - | /items=rft+rsk+rth+lft+lsk+lth+rpv | + | /ITERATION_PARAMETER_NAME=SEG_NAME |
| + | /ITEMS=RFT+RSK+RTH+LFT+LSK+LTH+RPV | ||
| ; | ; | ||
| ! compute the r for (r x mv) | ! compute the r for (r x mv) | ||
| - | evaluate_expression | + | Evaluate_Expression |
| - | /expression=vector((kinetic_kinematic::&::seg_name& ::cgpos::x - kinetic_kinematic::model::centerofmass::x ), | + | /EXPRESSION=vector((Kinetic_Kinematic::&::SEG_NAME&:&:CGPos::X - KINETIC_KINEMATIC::MODEL::CenterOfMass::X ), (Kinetic_Kinematic::&::SEG_NAME&:&:CGPos::Y - KINETIC_KINEMATIC::MODEL::CenterOfMass::Y), (Kinetic_Kinematic::&::SEG_NAME&:&:CGPos::Z - KINETIC_KINEMATIC::MODEL::CenterOfMass::Z)) |
| - | (kinetic_kinematic::&::seg_name& ::cgpos::y - kinetic_kinematic::model::centerofmass::y), | + | /RESULT_NAME=::SEG_NAME&_R |
| - | (kinetic_kinematic::&::seg_name& ::cgpos::z - kinetic_kinematic::model::centerofmass::z)) | + | ! /RESULT_TYPE=DERIVED |
| - | /result_name=::seg_name&_r | + | ! /RESULT_FOLDER=PROCESSED |
| - | ! /result_type=derived | + | |
| - | ! /result_folder=processed | + | |
| ; | ; | ||
| ! compute mv | ! compute mv | ||
| - | evaluate_expression | + | Evaluate_Expression |
| - | /expression=(model::segment::&::seg_name&:&: | + | /EXPRESSION=(MODEL::SEGMENT::&::SEG_NAME&:&: |
| - | /result_name=::seg_name&_mv | + | /RESULT_NAME=::SEG_NAME&_mv |
| - | ! /result_type=derived | + | ! /RESULT_TYPE=DERIVED |
| - | ! /result_folder=processed | + | ! /RESULT_FOLDER=PROCESSED |
| ; | ; | ||
| - | ! compute | + | ! compute |
| - | evaluate_expression | + | Evaluate_Expression |
| - | /expression=cross(derived::processed::&::seg_name&_r, derived::processed::&::seg_name&_mv) | + | /EXPRESSION=cross(DERIVED::PROCESSED::&::SEG_NAME&_R, DERIVED::PROCESSED::&::SEG_NAME&_mv) |
| - | /result_name=::seg_name& | + | /RESULT_NAME=::SEG_NAME& |
| - | ! /result_type=derived | + | ! /RESULT_TYPE=DERIVED |
| - | ! /result_folder=processed | + | ! /RESULT_FOLDER=PROCESSED |
| ; | ; | ||
| - | compute_model_based_data | + | ! compute Iw |
| - | /result_name=::seg_name&_iw | + | Compute_Model_Based_Data |
| - | /function=angular_momentum | + | /RESULT_NAME=::SEG_NAME&_IW |
| - | /segment=::seg_name | + | /FUNCTION=ANGULAR_MOMENTUM |
| - | /reference_segment=lab | + | /SEGMENT=::SEG_NAME |
| - | ! /resolution_coordinate_system=lab | + | /REFERENCE_SEGMENT=LAB |
| - | ! /use_cardan_sequence=false | + | ! /RESOLUTION_COORDINATE_SYSTEM=LAB |
| - | ! /normalization=false | + | ! /USE_CARDAN_SEQUENCE=FALSE |
| - | ! /normalization_method= | + | ! /NORMALIZATION=FALSE |
| - | ! /normalization_metric= | + | ! /NORMALIZATION_METHOD= |
| - | ! /negatex=false | + | ! /NORMALIZATION_METRIC= |
| - | ! /negatey=false | + | ! /NEGATEX=FALSE |
| - | ! /negatez=false | + | ! /NEGATEY=FALSE |
| - | ! /axis1=x | + | ! /NEGATEZ=FALSE |
| - | ! /axis2=y | + | ! /AXIS1=X |
| - | ! /axis3=z | + | ! /AXIS2=Y |
| + | ! /AXIS3=Z | ||
| ; | ; | ||
| - | ! compute | + | ! compute |
| - | evaluate_expression | + | Evaluate_Expression |
| - | /expression=link_model_based::original::&::seg_name&_iw + derived::processed::&::seg_name& | + | /EXPRESSION=LINK_MODEL_BASED::ORIGINAL::&::SEG_NAME&_IW + DERIVED::PROCESSED::&::SEG_NAME& |
| - | /result_name=::seg_name&_iw | + | /RESULT_NAME=::SEG_NAME&_IW |
| - | /result_type=derived | + | /RESULT_TYPE=DERIVED |
| - | /result_folder=momentum_contribution | + | /RESULT_FOLDER=Momentum_Contribution |
| ; | ; | ||
| - | + | End_For_Each | |
| - | end_for_each | + | /ITERATION_PARAMETER_NAME=SEG_NAME |
| - | /iteration_parameter_name=seg_name | + | |
| ; | ; | ||
| </ | </ | ||
| + | The script: | ||
| + | - calculates the angular momentum **for each of the listed segments** (RFT+RSK+RTH+LFT+LSK+LTH+RPV). If the user would like to calculate the **total body angular momentum about the model center of mass**, the resulting signals from the last Evaluate Expression command for all segments should be summed together. If you would like to calculate the total body angular momentum, you can use the [[Visual3D: | ||
| + | - computes the angular momentum about the total body centre of mass, if the user would like to calculate angular momentum about a different point then they simply need to specify the desired signal in place of " | ||
| - | }}}}}} | ||
visual3d/documentation/pipeline/model_based_data_commands/angular_momentum_pt.1718801495.txt.gz · Last modified: by sgranger
