Functional Joints Overview

The functional joint calculation has been adapted from:

SchwartzMH, Rozumalski A (2005) A new method for estimating joint parameters from motion data. Journal of Biomechanics, 38, 107-116

The movement required

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).

For joints modeled with 3 degrees of freedom, a movement trial in which the joint has modest range of motion about all three axes of rotation should be used for computing the functional joint. The movement should have sufficient range of motion that the computation statistics produce a reasonable stationary point, but the range of motion should not be too large because soft tissue artifact (e.g. movement of markers relative to the underlying skeleton) should be minimized. Our experience is that 20 degrees range of motion is usually sufficient to compute a stationary point reliably.

Several cycles of movement should be included in the motion, but it isn't clear exactly how many cycles there should be. We recommend more than 5 cycles, but users should experiment with their own data setups because the optimal number of cycles depends on many issues, including the joint tested, and the amount of soft tissue artifact present in the data.

The movement trial used is "contrived" specifically for the purpose of computing the functional joint. It should not be assumed that any movement (e.g. a walking trial) is sufficient. This "functional joint" trial should be separate from the movement data trials.

Reference defining characteristics of the movement profile that should be used for the functional joint calculation.

Begon M, Monnet T, Lacouture P (2007) Effects of movement for estimating the hip joint center. Gait and Posture 25, 353-359

The principles of the algorithm implemented in Visual3D

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
For all combinations of 3 frames (a,b,c) of data from the moving trial

Compute Finite Helical Axis (A) for frames a and b.
Compute Finite Helical Axis (B) for frames a and c.
Compute Finite Helical Axis (C) for frames b and c.

Use only helical axes for which  the amount of rotation is greater than a minimum value (e.g. 5 degrees).
 

Compute the intersection of Axes A & B

Compute the intersection of Axes A & C

Compute the intersection of Axes B & C

 

With "real" data there is rarely an intersection of the two Finite Helical Axes.

Compute the intersection as a line segment hat is the shortest route between the two axes. The "intersection" is the mid-point of this straight line.

This intersection is considered one estimate of the joint center (eg a candidate joint center).

All candidate joint centers are added to a "candidate array". This candidate array gets very big very quickly because the number of permutations grows dramatically with the number of frames considered.

The joint center returned is the mode of the set of candidates. The 3D mode is challenging to compute, so Visual3D estimates the mode.

In principle Visual3D would use all candidates, but this is often impractical, so Visual3D samples the candidate array randomly. The number of candidates selected is ann option defined by the user.

The "candidate array" is reduced by removing all candidates that are not in the interior of this sphere.

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)

 

 

 

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.