Skip to main content

Ground Contact Personalization

Ground Contact Personalization (GCP) optimizes personalized physical properties of a model describing contact between the ground and a subject's shoe or foot. These models enable the prediction of ground reaction forces and moments for new kinematics. If the model being personalized does not use external reaction forces, this tool should be skipped.

Background

This tool is primarily based on a 2016 paper by Jackson et al. It represents foot-ground contact with planes of springs attached to the toe and hindfoot bodies and optimizes parameters to produce personalized models.

Significance

Using personalized ground-contact models to predict reaction forces and moments, it is possible to calculate a subject's joint moments during predicted kinematics. This is particularly useful when a model is used for treatment optimization or other optimal control problems because new kinematic states are produced.

Method

For each foot, markers respresenting springs are placed on the bottom of a subject's shoe. It is assumed that a two-segment (toes and hindfoot) foot model is used. The markers are placed on the floor, and each marker's parent body is either the toes or hindfoot body depending on its position relative to the toes joint.

Physical parameters for the model are determined using MATLAB's lsqnonlin optimization algorithm. These parameters include spring-specific stiffness, shared spring resting length, damping factor, and friction coefficients, and deviations from experimental kinematics allowed for dynamic consistency. During the optimization, the foot models are isolated from the full body model for computational efficiency.

The cost function minimizes errors in tracking experimental ground reaction forces and moments, deviations from experimental kinematics, and discontinuities in the stiffness profile.

Input Files

  • Model file (.osim)
  • Motion file (.mot)
  • Ground reaction forces file (.mot)
    • Must contain forces, moments, and force plate electrical center
  • Optional: Model personalization file (.osimx)
    • If MTP or NCP have already been used, contact surfaces will be appended to this file

The motion file and ground reaction forces file must have matching time columns at every point within a tolerance of 0.005 seconds.

Output Files

  • Model personalization file containing contact surface parameters (.osimx)
  • Experimental foot kinematics (.sto)
  • Modeled foot kinematics (.sto)
  • Experimental ground reactions (.sto)
    • Moments are calculated about the midfoot superior marker projected onto the floor
  • Modeled ground reactions (.sto)

Design Variables

GCP supports six types of design variables. In general, we recommend including the following:

  • Spring constants: the stiffness values at each spring marker
  • Viscous friction coefficient: the viscous coefficient of friction used to calculate horizontal ground reaction forces
  • Kinematics B-spline coefficients: deviation nodes defining changes from experimental kinematics
  • Resting spring length: the distance at which spring markers come into contact with the floor. This should only be enabled during the first stage, as described in the section below.

These design variables may also be used:

  • Damping factor: a shared coefficient used to calculate linear damping force at spring markers
  • Dynamic friction coefficient: a friction coefficient used for an alternative friction model to the viscous friction model

The viscous friction model uses linear damping to calculate horizontal ground reaction forces from spring marker horizontal velocities. The dynamic friction coefficient is used with a tanh() function, and it may be used instead of or in addition to the viscous friction model.

Optimization Stages

As this is a complex optimization, this tool allows the personalization process to be divided into multiple stages to help the gradient-based optimizer find a search direction. We recommend using three stages as shown in the examples.

The focus of the first stage is determining the spring resting length (the height at which a spring marker comes into contact with the floor) and matching the experimental vertical ground reaction force. The resting length is determined in this stage, and it is not included as a design variable in future stages. All cost terms are included, but less emphasis is placed on horizontal ground reaction forces and moments.

In the second stage, the horizontal ground reaction forces have a more significant effect on the cost. In the third stage, the ground reaction moments also become more important. This gradual inclusion of tracking costs generally improves the performance of the tool, but the configuration of stages is fully customizable.

For a three-stage optimization as recommended above, the following table shows general recommendations for cost terms to include and their allowable errors in each stage.

Cost term type (units)Stage 1 allowable errorStage 2Stage 3
marker_position (m)0.0050.0050.005
rotation (degrees)111
vertical_grf (N)555
horizontal_grf (N)2055
ground_reaction_moment (Nm)10102
neighbor_spring_constant (N/m)100100100

In addition to these allowable errors, we recommend setting the "neighborStandardDeviation" element in each stage to 0.2.

The marker_position cost penalizes deviations in X, Y, and Z coordinate positions of markers on the foot during motion. The rotation cost penalizes differences in rotational coordinate values (X, Y, and Z rotation, toe angle) of the foot from experimental motion. The neighbor_spring_constant cost prevents discontinuities in stiffness profile and is explained in more detail in the next section.

Neighbor Stiffness Deviation Cost

GCP uses a neighbor stiffness deviation cost term to produce a more consistent and robust spring constant distribution. Each spring constant is penalized for its difference from a weighted average of the other spring constants. The weights are determined using the distances from the spring marker to each of the other spring markers and the following equation, where WijW_{ij} is the weight between markers ii and jj:

Wij=e1/(2σ2)[(xixj)2+(yiyj)2+(zizj)2]W_{ij} = e^{-1 / (2σ^2) * [(x_i - x_j)^2 + (y_i - y_j)^2 + (z_i - z_j)^2]}

Similar to other cost terms, this term uses an allowable error. The standard deviation, σ in the above equation, can also be set with the "neighborStandardDeviation" field in the GCP settings file.

GCP can generate contact models with accurate ground reaction and kinematics tracking for various values of σ, so the ideal value will depend on the application. Higher values of σ will cause spring constants to be more similar over a larger area, which generally produces more robust models for optimal control problems. However, a lower value may be necessary if there are significant variations in the stiffness of a subject's shoe. In general, higher standard deviation values are recommended.

Spring Resting Length Initialization

In addition to user-defined stages, an optional preliminary optimization can calibrate the spring resting length. It finds the spring resting length that tracks vertical ground reaction force most accurately with other design variables fixed at their initial values. This can improve performance in the first optimization stage. It is recommended to have this enabled unless the initial value given for the spring resting length is intended to be used.