visual3d:documentation:kinematics_and_kinetics:six_degrees_of_freedom
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
visual3d:documentation:kinematics_and_kinetics:six_degrees_of_freedom [2024/06/17 18:16] – created sgranger | visual3d:documentation:kinematics_and_kinetics:six_degrees_of_freedom [2024/07/17 15:45] (current) – created sgranger | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ====== Six Degrees of Freedom ====== | ||
- | + | === Pose Estimation with 6 Degree of Freedom Segments === | |
- | + | ||
- | + | ||
- | ==== 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 13: | 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" | This is one of the occasions where the common use of the term "joint center" | ||
Line 19: | Line 17: | ||
We prefer to use the term " | We prefer to use the term " | ||
- | === 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 " | 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 " | ||
- | ===== 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 33: | 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 39: | 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 53: | 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, | is used to supply the boundary conditions (This solution is adapted from the solution outlined by Spoor & Veldpaus in the Journal of Biomechanics, | ||
Line 59: | 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 67: | 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 [[# | Visual3D computes the [[# | ||
Line 85: | 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 104: | 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: | + | Another option is to require that all tracking markers must exist or the pose won't be computed. See [[Visual3D: |
- | + | ||
visual3d/documentation/kinematics_and_kinetics/six_degrees_of_freedom.1718648177.txt.gz · Last modified: 2024/06/17 18:16 by sgranger