User Tools

Site Tools


visual3d:documentation:kinematics_and_kinetics:six_degrees_of_freedom

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
visual3d:documentation:kinematics_and_kinetics:six_degrees_of_freedom [2024/06/18 13:28] sgrangervisual3d:documentation:kinematics_and_kinetics:six_degrees_of_freedom [2024/07/17 15:45] (current) – created sgranger
Line 1: Line 1:
-==== Pose Estimation with 6 Degree of Freedom Segments ====+====== Six Degrees of Freedom ====== 
 + 
 +=== Pose Estimation with 6 Degree of Freedom Segments ===
  
 A set of 3 or more markers attached to a rigid segment is used to track the movement of the segment and at each frame of data specify the pose (position and orientation) of the segment. This method is referred to as a 6 degree of freedom method because each segment (or each joint) is considered to have 6 variables that describe its pose (3 variable describe the position of the origin, 3 variables describe the rotation about each of the principal axes of the segment) A set of 3 or more markers attached to a rigid segment is used to track the movement of the segment and at each frame of data specify the pose (position and orientation) of the segment. This method is referred to as a 6 degree of freedom method because each segment (or each joint) is considered to have 6 variables that describe its pose (3 variable describe the position of the origin, 3 variables describe the rotation about each of the principal axes of the segment)
Line 9: Line 11:
 The process of building a segment defines the transformation from the recorded markers to the pose of the biomechanical model, to the pose of a transducer (force plate or force transducer) or to the pose of an assistive device. The process of building a segment defines the transformation from the recorded markers to the pose of the biomechanical model, to the pose of a transducer (force plate or force transducer) or to the pose of an assistive device.
  
-=== Is the segment endpoint the joint center? ===+== Is the segment endpoint the joint center? ==
  
 This is one of the occasions where the common use of the term "joint center" confuses people. For most segments of the body there really isn't a center about which the proximal and distal segment rotate (an exception is that the hip joint is often assumed to be a ball and socket joint). Visual3D tracks segment pose (position and orientation) using 6 degree of freedom methods, that allow the endpoints of the proximal and distal segment to move relative to each other. Note that this movement may be real (e.g. the knee "joint" is not a fixed axis) or may be caused by errors due to marker movement on the skin relative to the bones. Excessive movement of the endpoints between two segments may be an indication of a serious problem in the data collection that should be addressed. This is one of the occasions where the common use of the term "joint center" confuses people. For most segments of the body there really isn't a center about which the proximal and distal segment rotate (an exception is that the hip joint is often assumed to be a ball and socket joint). Visual3D tracks segment pose (position and orientation) using 6 degree of freedom methods, that allow the endpoints of the proximal and distal segment to move relative to each other. Note that this movement may be real (e.g. the knee "joint" is not a fixed axis) or may be caused by errors due to marker movement on the skin relative to the bones. Excessive movement of the endpoints between two segments may be an indication of a serious problem in the data collection that should be addressed.
Line 15: Line 17:
 We prefer to use the term "segment endpoint" because the segment coordinate systems are based on an axis between the segment endpoints, which aren't necessarily joint centers. Even we "fall back" on the common jargon, and you will find the term "joint center" in Visual3D's model builder mode in defining a segment. We prefer to use the term "segment endpoint" because the segment coordinate systems are based on an axis between the segment endpoints, which aren't necessarily joint centers. Even we "fall back" on the common jargon, and you will find the term "joint center" in Visual3D's model builder mode in defining a segment.
  
-=== What then is a JOINT? ===+== What then is a JOINT? ==
  
 In 6 DOF methods there is no explicit linkage (or joint) connecting the segments. Visual3D explores the collection of segments and considers any two segments in proximity (the distal end of one segment and the proximal end of another segment within the radius of the segment ends) to be "linked" and references a **//Joint//** between them. The **//Joint//** does not constrain the segments, but is rather a bookkeeping tool that keeps track of which segments are assumed to have an equal and opposite Joint Reaction Force acting between their endpoints and an equal and opposite Joint Moments acting on the adjacent segments. In 6 DOF methods there is no explicit linkage (or joint) connecting the segments. Visual3D explores the collection of segments and considers any two segments in proximity (the distal end of one segment and the proximal end of another segment within the radius of the segment ends) to be "linked" and references a **//Joint//** between them. The **//Joint//** does not constrain the segments, but is rather a bookkeeping tool that keeps track of which segments are assumed to have an equal and opposite Joint Reaction Force acting between their endpoints and an equal and opposite Joint Moments acting on the adjacent segments.
  
-===== 6 DOF Tracking =====+==== 6 DOF Tracking ====
  
 The motion of rigid segments in space can be fully described by measuring three independent translational degrees-of-freedom (position) and three independent rotational degrees-of-freedom (orientation). The motion of rigid segments in space can be fully described by measuring three independent translational degrees-of-freedom (position) and three independent rotational degrees-of-freedom (orientation).
Line 29: Line 31:
 A least squares procedure is used by Visual3D to determine the position and orientation. To understand how this procedure works, consider a point located on a segment at position A in the SCS. The location of the point in the LCS (P) is given by: A least squares procedure is used by Visual3D to determine the position and orientation. To understand how this procedure works, consider a point located on a segment at position A in the SCS. The location of the point in the LCS (P) is given by:
  
-{{ConstructEquation1.gif}}+{{:ConstructEquation1.gif}}
  
 where T is the rotation matrix from the SCS to the LCS and O is the translation between coordinate systems. where T is the rotation matrix from the SCS to the LCS and O is the translation between coordinate systems.
Line 35: Line 37:
 If the position O and orientation T are defined for some reference position, then the fixed SCS coordinates of a target A can be determined from measurement of P at this position If the position O and orientation T are defined for some reference position, then the fixed SCS coordinates of a target A can be determined from measurement of P at this position
  
-{{ConstructEquation2.gif}}+{{:ConstructEquation2.gif}}
  
 If the segment undergoes motion, the new orientation matrix T and translation vector O may be computed at any instant, provided that for at least three noncolinear points A is predetermined and P is measured. The matrix T and origin vector O are found by minimizing the sum of squares error expression: If the segment undergoes motion, the new orientation matrix T and translation vector O may be computed at any instant, provided that for at least three noncolinear points A is predetermined and P is measured. The matrix T and origin vector O are found by minimizing the sum of squares error expression:
  
-{{ConstructEquation3.gif}}+{{:ConstructEquation3.gif}}
  
 under the orthonormal constraint under the orthonormal constraint
  
-{{ConstructEquation4.gif}}+{{:ConstructEquation4.gif}}
  
 where m is equal to the number of targets on the segment ( m > 2). where m is equal to the number of targets on the segment ( m > 2).
Line 49: Line 51:
 Since the above system of equations represents a constrained maximum -minimum problem, the method of Lagrangian multipliers can be used to obtain the solutions. A function Since the above system of equations represents a constrained maximum -minimum problem, the method of Lagrangian multipliers can be used to obtain the solutions. A function
  
-{{ConstructEquation5.gif}}+{{:ConstructEquation5.gif}}
  
 is used to supply the boundary conditions (This solution is adapted from the solution outlined by Spoor & Veldpaus in the Journal of Biomechanics, pp. 391- 393, 1980.). is used to supply the boundary conditions (This solution is adapted from the solution outlined by Spoor & Veldpaus in the Journal of Biomechanics, pp. 391- 393, 1980.).
Line 55: Line 57:
 The fact that a least squares fit can be done on an over determined system (m >3) allows the user to employ up to 8 targets to track each segment. Over determination also allows Visual3D to calculate segment positions and orientations if data from one or more targets is lost (However, coordinates must be determined for at least three points on the segment.). The fact that a least squares fit can be done on an over determined system (m >3) allows the user to employ up to 8 targets to track each segment. Over determination also allows Visual3D to calculate segment positions and orientations if data from one or more targets is lost (However, coordinates must be determined for at least three points on the segment.).
  
-==== In Practice ====+=== In Practice ===
  
 In principle, tracking markers can be placed anywhere on a rigid segment. In practice, the markers should be distributed over the maximum area possible for a segment, they should be placed in areas that exhibit the least soft tissue artifact, and they should be visible from as many cameras as possible throughout the movement. In principle, tracking markers can be placed anywhere on a rigid segment. In practice, the markers should be distributed over the maximum area possible for a segment, they should be placed in areas that exhibit the least soft tissue artifact, and they should be visible from as many cameras as possible throughout the movement.
Line 63: Line 65:
 For example, consider tracking the thigh segment for a walking trial relative to the above rules. The markers would cover the maximum volume by being placed on the greater trochanter, medial mid thigh, and lateral knee. The greater trochanter and lateral knee exhibit terrible soft tissue artifact, and the medial thigh marker would probably get knocked off the segment during walking, so none of these 3 locations should probably be used. The compromise is to place markers distributed along the anterior and lateral side of the mid thigh. These markers could be on a rigid cluster (or 3 or 4 markers), or distributed around the leg (eg 8 markers). For example, consider tracking the thigh segment for a walking trial relative to the above rules. The markers would cover the maximum volume by being placed on the greater trochanter, medial mid thigh, and lateral knee. The greater trochanter and lateral knee exhibit terrible soft tissue artifact, and the medial thigh marker would probably get knocked off the segment during walking, so none of these 3 locations should probably be used. The compromise is to place markers distributed along the anterior and lateral side of the mid thigh. These markers could be on a rigid cluster (or 3 or 4 markers), or distributed around the leg (eg 8 markers).
  
-===== 6 DOF Segment Residual =====+==== 6 DOF Segment Residual ====
  
 Visual3D computes the [[#6_DOF_Tracking|6 Degree of Freedom]] pose of a segment using a Least Squares fit of the tracking marker locations in the standing trial to the tracking marker locations at each frame of the movement trial. The Goodness of Fit is described by the residual. Visual3D computes the [[#6_DOF_Tracking|6 Degree of Freedom]] pose of a segment using a Least Squares fit of the tracking marker locations in the standing trial to the tracking marker locations at each frame of the movement trial. The Goodness of Fit is described by the residual.
Line 81: Line 83:
 So my bottom line is that I am not surprised different target combination produce different kinematics. So my bottom line is that I am not surprised different target combination produce different kinematics.
  
-===== Blips caused by Marker Dropout =====+==== Blips caused by Marker Dropout ====
  
 If you have four markers during calibration Visual3d will store the fixed (expected) location of these markers in local space. If you have four markers during calibration Visual3d will store the fixed (expected) location of these markers in local space.
Line 100: Line 102:
 The practical solution is probably to throw away tracking markers that show these blips during the range of frames that you are interested in. The practical solution is probably to throw away tracking markers that show these blips during the range of frames that you are interested in.
  
-Another option is to require that all tracking markers must exist or the pose won't be computed. See [[Visual3D:Documentation:Pipeline:Expressions:Overview#Example:_If_one_tracking_marker_is_no_data.2C_make_all_tracking_markers_no_data|here for an example]]+Another option is to require that all tracking markers must exist or the pose won't be computed. See [[Visual3D:Documentation:Pipeline:Expressions:Expressions_Overview#Example:_If_one_tracking_marker_is_no_data.2C_make_all_tracking_markers_no_data|here for an example]]
  
  
  
visual3d/documentation/kinematics_and_kinetics/six_degrees_of_freedom.1718717291.txt.gz · Last modified: 2024/06/18 13:28 by sgranger