visual3d:documentation:modeling:functional_joints:functional_joints
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| visual3d:documentation:modeling:functional_joints:functional_joints [2025/09/05 15:04] – sgranger | visual3d:documentation:modeling:functional_joints:functional_joints [2026/09/11 18:23] (current) – Clarified that this is the Functional Joints Overview page and better organized the links to other pages. richard | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ====== Functional Joints ====== | + | ====== Functional Joints |
| - | ==== The movement | + | Functional joints are a method for modelling the joint between two segments according to their apparent relative |
| - | The calculation of a functional joint requires movement of one segment relative to another segment. The algorithm (see below) searches for a point (or for a one degree of freedom joint, an axis) that is stationary relative to the 2 segments (or 2 sets of markers). | + | ==== Data Collection==== |
| - | For joints | + | Using functional joints increases data collection collections and processing time and requirements. More movement trials must be collected specifically to compute the functional |
| - | Several cycles of movement | + | ===== The input movement |
| - | The movement trial used is " | + | Calculating a functional joint requires the movement of one segment relative to another segment. Based on this relative |
| - | \\ | + | ==== Three Degrees |
| - | **Begon M, Monnet T, Lacouture P (2007) Effects | + | |
| - | This article defines | + | For joints modelled with 3 degrees of freedom, the chosen movement trial should have the following |
| + | - the joint has modest range of motion about all three axes of rotation; | ||
| + | - the movement should | ||
| + | - but the range of motion should also not be too large because soft tissue artifact (e.g. movement of markers relative to the underlying skeleton) should be minimized. | ||
| + | |||
| + | Our experience | ||
| - | If you are interested in the user actively performing | + | The movement trial used is contrived specifically for the purpose of computing |
| - | === Functional Axis === | + | Begon, Monnet, and Lacouture defined characteristics of the movement profile that should be used for the functional joint calculation, |
| - | If the joint is precisely one degree of freedom, it is possible to compute an axis, but it is not possible to compute a stationary point. In practice, joints aren't only one degree of freedom, and there is often some soft tissue artifact. This " | + | It is very difficult for many subjects to balance themselves for the functional trials, so many investigators support the subject and move the thigh for the subject. If you are interested in the user actively performing the movement, we recommend a hula movement for the hip joints. |
| + | |||
| + | ==== One Degree of Freedom (Functional Axis) ==== | ||
| + | |||
| + | If the joint is precisely one degree of freedom, it is possible to compute an axis, but it is not possible to compute a stationary point. In practice, joints aren't only one degree of freedom, and there is often some soft tissue artifact. This " | ||
| For the knee joint, we recommend projecting a lateral and medial knee marker onto the functional knee axis. | For the knee joint, we recommend projecting a lateral and medial knee marker onto the functional knee axis. | ||
| - | **Warning**. The functional knee axis is not the flexion/ | ||
| - | \\ | ||
| - | Mathematically the functional axis computed has no direction. It could point medial or lateral to the segment, but the algorithm doesn' | ||
| - | ==== Principles of the Gilette algorithm | + | ===== Algorithms for calculating Functional Joints |
| + | |||
| + | Visual3D includes multiple algorithms for calculating functional joints. Regardless of the algorithm chosen, the general approach is to search for a point (or, for a one degree of freedom joint, an axis) that is stationary relative to the joint' | ||
| - | adapted from: | + | ==== The Gilette Algorithm ==== |
| - | [[http:// | + | |
| - | Specify a segment coordinate system in which the motion capture data is to be resolved, and into which the landmark represented. For the case of the hip joint center, for example, the pelvis is considered a stationary coordinate system. Specify the motion capture markers attached to the moving segment. For the case of the hip joint center, markers attached to the thigh are used. | + | |
| - | **Algorithm**\\ | + | This approach is adapted from: Schwartz MH, Rozumalski A (2005) A new method for estimating joint parameters |
| - | For all combinations of 3 frames (a,b,c) of data from the moving trial | + | |
| - | Compute Finite Helical Axis (A) for frames | + | To begin: |
| + | - specify | ||
| + | - specify the motion capture markers attached to the moving segment. For the case of the hip joint centre, markers attached to the thigh are used. | ||
| - | Compute Finite Helical Axis (B) for frames a and c.\\ | + | Then, for all combinations of 3 frames (a,b,c) of data from the moving trial: |
| + | - Compute | ||
| + | - Remove any helical axis where the amount of rotation is less than a minimum value (e.g. 5 degrees). | ||
| + | - Compute the intersection of Axes A & B, of Axes A & C, and of Axes B & C. | ||
| + | - Compute the intersection as a line segment hat is the shortest route between the two axes. The " | ||
| + | - All candidate joint centres are added to a " | ||
| + | - **NOTE**: With " | ||
| + | - Calculate the mode of the candidate array: | ||
| + | - **NOTE**: The 3D mode is challenging to compute, so Visual3D estimates the mode. In principle Visual3D would use all candidates, but this is often impractical, | ||
| + | - Compute the mean value of all candidates. | ||
| + | - Specify a sphere surrounding this location (the size of the initial sphere is an option defined by the user). A fairly big number is used typically, but the actual value hasn't been found to be particularly important. | ||
| + | - While the number of candidates is greater than 500 (a threshold defined by the user)... | ||
| + | - The " | ||
| + | - The median value of each component is computed for the remaining candidates. | ||
| + | - The radius of the sphere is reduced (the percent decrease is another user-defined option). | ||
| + | - When only 500 candidates remain, the function joint is defined as the mean value of these remaining candidates. | ||
| + | - **NOTE**: The number of combinations gets very big very quickly and can easily crash the system if the user isn't careful. An option exists to select a subset of combinations at random (e.g. 2,000,000 combinations) as a representative sample. | ||
| + | - Return the mode of the candidate array as the joint centre. | ||
| - | Compute Finite Helical Axis (C) for frames b and c.\\ | + | ==== The Mayo Algorithm ==== |
| - | Use only helical axes for which the amount of rotation | + | This approach |
| - | \\ | + | |
| + | From the authors' | ||
| - | Compute | + | > |
| - | Compute | + | |
| - | Compute | + | |
| - | \\ | + | |
| + | ==== Limitations ==== | ||
| - | With " | + | Functional |
| - | Compute the intersection as a line segment hat is the shortest route between the two axes. The " | + | |
| - | This intersection is considered one estimate of the joint center (eg a candidate joint center). | + | |
| - | All candidate joint centers are added to a " | + | |
| - | The joint center returned is the mode of the set of candidates. The 3D mode is challenging | + | |
| - | In principle Visual3D would use all candidates, but this is often impractical, | + | |
| - | The mode is computed as follows: | + | |
| - | Compute | + | |
| - | Specify a sphere surrounding this location (the size of the initial sphere is an option defined by the user). A fairly big number is used typically, but the actual value hasn't been found to be particularly important) | + | |
| - | While() the number of candidates is greater than 500 (defined by the user) | + | |
| - | The " | + | **Functional Knee Axis Warning**: |
| - | Compute the median value of each component of the remaining candidates | ||
| - | Reduce the radius of the sphere (the percent decrease is an option defined by the user) | + | ===== See Also ===== |
| - | End While() | + | Learn more about Visual3D' |
| - | When only 500 candidates remain, the function joint is defined as the mean value of these remaining candidates. | + | * [[visual3d:documentation: |
| - | **Note: The number of combinations gets very big very quickly and can easily crash the system if the user isn't careful. An option exists to select | + | * [[visual3d: |
| - | ==== Principles of the Mayo Algorithm ==== | + | |
| - | adapted from | + | Follow along with our tutorial for defining a functional joint at the right hip: |
| - | [[http:// | + | |
| - | Abstract | + | |
| - | Accurate and precise knee flexion axis identification is critical | + | See these examples |
| + | * [[visual3d: | ||
| + | * [[visual3d: | ||
| + | * [[visual3d: | ||
| - | ==== Examples | + | ===== References ===== |
| - | [[visual3d:documentation: | + | - Begon M, Monnet T, Lacouture P (2007) Effects of movement for estimating the hip joint center. Gait and Posture 25, 353-359. |
| - | [[visual3d:documentation: | + | - Jensen, E., Lugade, V., Crenshaw, J., Miller, E., & Kaufman, K. (2016). A principal component analysis approach to correcting the knee flexion axis during gait. Journal of Biomechanics, |
| - | [[visual3d: | + | - Schwartz MH, Rozumalski A (2005) A new method for estimating joint parameters from motion data. Journal of Biomechanics, |
| - | [[visual3d: | + | |
| - | [[visual3d:documentation: | + | |
visual3d/documentation/modeling/functional_joints/functional_joints.1757084649.txt.gz · Last modified: by sgranger
