User Tools

Site Tools


visual3d:documentation:pipeline:model_based_data_commands:helical_angle

Helical Angle

A Joint Angle is the transformation between two coordinate system that is described by a rotation matrix.

This rotation matrix is rarely used to report the joint angle. From the rotation matrix several different representations are possible, such as Cardan/Euler angle, Helical angle, Quaternion. All representations of the transformation are equivalent but the interpretation of the joint angle relative to the anatomy varies with the description.

helicalangledlg.jpg

The helical angle calculation is output as vector rather than a unit vector and an angle of rotation.

Visual3d is simply multiplying the angle of the rotation by the three components of the unit vector.

Helical angles are especially appropriate when the rotation is very small. In addition, they eliminate the problem of gimbal lock. However, the representation of joint motion provided by helical angles does not always correspond with an anatomical representation that is clinically meaningful. In addition, helical angles are very sensitive to noisy coordinate data. Therefore, the coordinate data must be substantially smoothed before the helical angles are calculated.


Joint Angle Lecture

Joint angle lecture prepared by Tom Kepple when he was teaching at the University of Delaware. Joint Angle Lecture]

Helical Axis

Is possible to calculate a helical axis (vector and angle) in Visual 3D?

The answer yes by going the opposite way. To do this you would have to first compute the magnitude of the output of the “Compute Model Based Helical_Angle” and then divide each of the components of this vector by the magnitude.

To actually do this inside Visual3d you would:


Step 1) Use “Compute Model Based Helical_Angle” to get the helical angle as a vector.

Step 2) Use the Pipleline command “Signal Magnitude” (which is under Signal Math in the Pipeline) to get the magnitude of the “Compute Model Based Helical_Angle”. This would give you the angle you are looking for.

Step 3) Use the pipeline command Evaluate_Expression to divide the result of “Compute Model Based Helical_Angle” by the result of the Signal Magnitude. This will give you the unit vector you are looking for.

For example:
Evaluate_Expression
/EXPRESSION=LINK_MODEL_BASED::ORIGINAL::BALL_HELICAL/DERIVED::PROCESSED::BALL_HELICAL_MAGNI
! /SIGNAL_TYPES=
! /SIGNAL_FOLDER=ORIGINAL
! /SIGNAL_NAMES=
! /RESULT_TYPES=DERIVED
! /RESULT_FOLDERS=PROCESSED
/RESULT_NAME=BALL_HELICAL_VECTOR
! /APPLY_AS_SUFFIX_TO_SIGNAL_NAME=FALSE


visual3d/documentation/pipeline/model_based_data_commands/helical_angle.txt · Last modified: 2024/07/17 11:46 by sgranger