Making Sense of Gait Ground Reaction Force Data

John Rogers, U.S. Military Academy, Civil and Mechanical Engineering

Author Profile


Students analyze a data set containing ground reaction forces from a human walking on an instrumented treadmill.

Used this activity? Share your experiences and modifications

Learning Goals

Pedagogical Objectives:

1. Understand that raw data collected from sensors or instruments always requires processing steps before it is useful.

2. Process raw data from sensors or other data sources so that it is easy to interpret, and clear to present to others. In order to achieve this objective students should be able to:

  • Import data from a spreadsheet into Matlab. (see a_loadPlotSaveDemo).
  • Understand the tradeoff between noise reduction and signal fidelity when filtering data. (see b_FilterDemo).
  • Use Matlab to programmatically identify peaks in a periodic data, i.e. a "signal." (see c_FindPeaksDemo).
  • Use the Matlab "Brush Data" tool to select a subset of points in a data plot. (see d_BrushDataDemo).
  • Compensate for known systematic error. (see e_FloorDemo).
  • Identify repeating features in a periodic signal (see f_FO_IC_Demo).
  • Parse a periodic signal and overlay all repetitions with one another (see g_overlayGaitDemo).

Context for Use

Scientific and engineering context:

  • Scientists and engineers in the field of biomechanics are interested in (among other things) forces acting on the human or animal body.

Click to watch: The Biomechanics of Usain Bolt (NBC Learn and the National Science Foundation, 2012)

  • "Ground Reaction Forces" are forces exerted on the human (or animal) body by the ground we walk on.
  • Ground reaction forces during walking can be measured and recorded by an instrumented treadmill and a data acquisition system.
  • Raw data (such as ground reaction forces) from sensors or instruments always require processing before they are useful.
  • Data can be shared in a meaningful way after interpretation and presentation in graphical form such as plots and graphs.

Pedagogical Context:

  • This activity is used in a sophomore level class in a mechanical engineering major.
  • Students are generally not familiar with the scientific and engineering context.
  • The activity is designed to be an independent learning activity but it can be used as a live classroom activity as well.
  • Allow one hour to complete the activity.
  • Students have had about 10 lessons of MATLAB before doing this activity.
  • Someone who has done the MATLAB On-ramp could do this activity.

Description and Teaching Materials

This activity is a series of exercises intended to help students learn data analysis methods remotely and independently. A series of videos explains the code to illustrate interpretation of the data and communication of the results.

The spreadsheet ForcePlateData.xls contains vertical ground reaction force data from a person walking on an instrumented treadmill. Column A, labeled "FZR," is right foot data, Column B is left foot data, "FZL."

The complete demonstration is in 7 parts:

  1. load, plot, and save data,
  2. disadvantages of noise filtering,
  3. finding peaks,
  4. selecting data subsets with the Matlab Brush tool,
  5. correcting systematic offset error and selectively removing noise,
  6. marking data features, and
  7. segmenting a periodic function and interpolating to a common horizontal scale.


Raw Data:

Videos and Scripts:

Videos: Fill-in Matlab scripts: Solution scripts:
a_loadSavePlot.mp4 (MP4 Video 29.7MB Sep15 21) a_loadPlotSave_Fill_in.m (Matlab File 1kB Oct19 21) a_loadPlotSaveDemo.m (Matlab File 819bytes Sep15 21)
b_FilterDemo.mp4 (MP4 Video 31.2MB Sep15 21) b_Filter_Fill_in.m (Matlab File 1kB Oct19 21) b_FilterDemo.m (Matlab File 904bytes Sep15 21)
c_FindPeaksDemo.mp4 (MP4 Video 44.9MB Sep15 21) c_FindPeaks_Fill_in.m (Matlab File 2kB Oct19 21) c_FindPeaksDemo.m (Matlab File 1kB Sep15 21)
d_BrushDataDemo.mp4 (MP4 Video 17.3MB Sep15 21) d_BrushData_Fill_in.m (Matlab File 971bytes Oct19 21) d_BrushDataDemo.m (Matlab File 799bytes Sep15 21)
e_FloorDemo.mp4 (MP4 Video 20.8MB Sep15 21) e_Floor_Fill_in.m (Matlab File 1kB Oct19 21) e_FloorDemo.m (Matlab File 1kB Sep15 21)
f_FO_IC_Demo.mp4 (MP4 Video 36.8MB Sep15 21) f_FO_IC__Fill_in.m (Matlab File 2kB Oct19 21) f_FO_IC_Demo.m (Matlab File 1kB Sep15 21)
g_overlayGaitDemo.mp4 (MP4 Video 81.5MB Sep15 21) g_overlayGait_Fill_in.m (Matlab File 2kB Oct19 21) g_overlayGaitDemo.m (Matlab File 2kB Sep15 21)

Teaching Notes and Tips

All files are provided to students.
Students watch the videos and run the corresponding MATLAB code.
Videos and corresponding Matlab scripts are to be viewed in alphabetical order:

Start with a_loadPlotSaveDemo.mp4 video, then a_loadPlotSaveDemo.m MATLAB script


Students may complete this Self Assessment self assessment.pdf (Acrobat (PDF) 69kB Oct19 21)

Assessment Answers      self assessment answers.pdf (Acrobat (PDF) 58kB Oct19 21)

References and Resources

Muscle contributions to fore-aft and vertical body mass center accelerations over a range of running speeds

Samuel R.Hamner, Scott L.Delp

DOI: 10.1016/j.jbiomech.2012.11.024