How to Select Joint Parameters
Joint Model Personalization's nuance comes from the ability to include (or exclude) any number of joint, marker motion, and body scaling parameters for each task in a JMP run.
Joint Parameter Selection
Joint parameters are the twelve parameters that describe the relationship between the parent and child joint centers for a given joint. Each parent and child is described by three (X,Y,Z) translational and three (X,Y,Z) rotational terms that define the nature of the joint.
Understanding Joint Parameters
Joint parameters are not usually considered when using OpenSim; most default joint parameters are selected using cadaveric data and modelers tend to not modify these values. Even so, using default model values fails to produce consistent results. Modifying joint parameters intelligently can dramatically improve the usefulness of the model and the accuracy of downstream computations.
Knee Joint Example
Using the OpenSim GUI, one can select the parent and child joint frames of a joint and modify their values to see how the joint's definition changes.
A simple and illustrative example is the knee joint on the RCNL Model. For this example, we can use the RCNL Model found in the RCNLModel directory of nmsm-examples.
- Load the RCNL Model in the OpenSim GUI.
- Locate the knee_r joint in the left menu.
- Uncollapse the joint to show its parent and child frames.
- Select the child frame.
- In the bottom left menu, double click the rotational joint parameters to modify the first value (X rotation) value.
Notice how the knee adduction angle changes?
Next, modify the third value in the child frame's translational joint parameter (Z translation).
Did the tibia shift laterally away from the femur?
Example Takeaways
The first modification, knee adduction angle, modified a joint parameter that varies between subjects and contributes to inverse kinematics marker distance errors and the quality of other computations. The second modification may also improve inverse kinematics marker distance errors, but through non-anatomical modeling. Modifying the Z translation of the knee joint should be excluded because it could cause JMP change joint parameters that no longer describe the joint in a physically possible way.
Modifying Joint Parameters Along Coordinate Axes
Another concern for selecting joint parameters is selecting parameters that rotate along a free coordinate in the model. Modifying the above example's knee_r parent frame Z rotation value will have no effect on the resulting JMP results because the model can change its coordinates to find the exact same inverse kinematics results regardless of the joint parameter value. Adding these joint parameters to the optimization will cause the tool to run slower and could cloud the ability of the optimizer to find a global minimum.
Modifying Joint Parameters Without Sufficient Range of Motion
Some joint parameters cannot be accurately or sufficiently optimized if the range of motion of the joint of interest is not sufficiently large during the trial used for JMP. A good illustration of this is the parent X translation of the hip during a gait trial. Since the hip does not adduct sufficiently during gait, finding an accurate position of the hip joint along the X axis is not feasible. An estimation will be made, but there is low confidence in the result if the range of motion of the joint is less than ~25 degrees.
Lower Body Joint Parameter Selection
It is heavily advised that users do not simply allow all joint parameters to be 'on', but rather think analytically about which joint parameters should be modified to create an anatomically realistic, accurate, and unique solution.
Below are tables describing the joint parameters that should be included and excluded from each joint in the lower body of the RCNL Model.
Hip
Frame/Transformation | X | Y | Z |
---|---|---|---|
Parent Translation | ✓ | ✓ | ✓ |
Parent Rotation | 🗴 | 🗴 | 🗴 |
Child Translation | 🗴 | 🗴 | 🗴 |
Child Rotation | 🗴 | 🗴 | 🗴 |
Knee
Frame/Transformation | X | Y | Z |
---|---|---|---|
Parent Translation | ✓ | ✓ | 🗴 |
Parent Rotation | ✓ | ✓ | 🗴 |
Child Rotation | ✓ | ✓ | 🗴 |
Child Translation | ✓ | ✓ | ✓ |
Subtalar
Frame/Transformation | X | Y | Z |
---|---|---|---|
Parent Translation | ✓ | ✓ | 🗴 |
Parent Rotation | ✓ | ✓ | 🗴 |
Child Rotation | ✓ | ✓ | 🗴 |
Child Translation | ✓ | ✓ | ✓ |
Ankle
Frame/Transformation | X | Y | Z |
---|---|---|---|
Parent Translation | ✓ | ✓ | 🗴 |
Parent Rotation | ✓ | ✓ | 🗴 |
Child Rotation | 🗴 | 🗴 | 🗴 |
Child Translation | 🗴 | 🗴 | 🗴 |
Marker Motion Selection
Marker motion should be done selectively and intentionally since allowing the markers to move allow all axes will absorb IK error, but may cause the model to not represent the underlying experimental data or anatomy.
We can understand marker motion selection via a few examples:
- The subject has larger than average thigh circumference. As a result, you allow the femur_r and femur_l markers to move in the X and Z directions, that is, radial to the major axis.
- The scaled model pelvis does not appear to be scaled correctly. Allow the pelvis to scale and also allow the femur_r and femur_l markers to move in the Z direction to prevent the pelvis scaling from reducing the accuracy of the femur markers.
Body Scaling Selection
Body scaling should be done when lower IK marker error is desired but anatomically, the parent and child bodies of a joint are positioned correctly. The best example of this is the femur head placement in the pelvis. Thus, rather than optimizing the hip joint, better results can be found by scaling the pelvis.