Introduction
During the past two weeks, I have been learning the Wolfram Language at the Wolfram High School Summer Camp, where I developed this project that models the vertical ground reaction force of the foot while walking or running. Last year, due to being high school varsity cross country runner, I got a stress fracture in my right foot. After a few trips to the doctor, I learned that my stress fracture was related to the way I applied force and pressure to my foot. This left me wondering, how does applying force on the ground cause forward motion and how does that amount of force change over time?
Abstract
While walking and running, the foot exerts pressure on the ground, which returns an equal push in the opposite direction, called the ground reaction force (GRF). By pushing back against the foot, the ground allows the foot to move forward. The force applied by the foot causes three kinds of GRF: anterior-posterior force, medial-lateral force, and vertical force. My project focuses on vertical ground reaction force (VGRF). The VGRF resulting from the foots push varies according to the fraction of stance. My demonstration animates a foot moving while modeling the foots VGRF over time as a function of gender, movement type (walking vs running), velocity, and body weight.
Calculation Methods
In Biomechanics of Running and Walking, Tongen and Wunderlich established a regression equation for the VGRF as a function of time and the maximum VGRF of each step of a single experimental subject.
Walking Equation: $F_W(t) = - \frac{t(T^2 t - 2 t_{max} T^2 + 2 T t_{max}^2-2 t^2 T + 2 T t t_{max} + t^3 - 2 t t_{max}^2 )M}{(-t_{max}+T)^2 t_{max}^2}$
Running Equation: $F_R(t) = -\frac{4 M}{T^2} t (t -T)$
Independently, in Relationship Between Vertical Ground Reaction Force and Speed During Walking, Slow Jogging, and Running, Keller et al researched the maximum VGRF as a function of velocity and body weight. My project uses data collected by Keller et al to develop a quadratic regression ( $F_z$) of the maximum VGRF as a function of velocity and body weight.
Thus, $M$ in Tongen and Wunderlichs equation can be replaced with $F_z(x) \times BW$. In my equations to model VGRF as a function of time, $T$ was scaled to 0.6 for walking and 0.4 for running based on research by Dr. Pribut that the foot is in contact with the ground for 60% of a cycle during walking and 40% during running. $T_{max}$ was also scaled to these values of $T$. Wolfram Language code defining variables and functions for walking are shown below:
TWalk=3/5;
TRun=2/5;
tWalkMax:=0.16/0.7099 *TWalk;
BW[BM_]:=9.8*BM
M[Fz_,BW_]:=Fz*BW
FWalk[t_,M_]:=-t(TWalk^2*t-2tWalkMax*TWalk^2+2TWalk*tWalkMax^2-2*t^2*TWalk+2TWalk*t*tWalkMax+t^3-2t*tWalkMax^2)*M/
((-tWalkMax+TWalk)^2*tWalkMax^2)
TotalFWalk[t_,M_]:=Piecewise[{{FWalk[t,M],0<t<TWalk},{0,t<0|t>TWalk}}
Programming Methods
My demonstration shows two major outputs: a dynamic graph with numerical values of the VGRF and an animation of the foot over time.
The dynamic graph was created by plotting the function and showing graphics using a series of nested if statements with conditions depending on movement type (walking vs. running) and gender.
If[MoveType=="Walk",
If[Gender=="Male",
Dynamic[Deploy[Show@@Join[{Plot[TotalFWalk[t,M[MaleRegvF[v],BW[BM]]],{t,0,1}],
Graphics[{PointSize->Large,Point[{t,TotalFWalk[t,M[MaleRegvF[v],BW[BM]]]}],
Style[Text[Column[{NumberForm[TotalFWalk[t,M[MaleRegvF[v],BW[BM]]],4]"N",MoveType,Gender,BM " kg",v " m/s"},Center],
{0.8,M[MaleRegvF[v],BW[BM]]*5/6}],FontFamily->"Lato",FontSize->18],
Blend[{Hue[.3-TotalFWalk[t,M[MaleRegvF[v],1]]/M[MaleRegvF[v],1]*.3],Brown},.25],
Arrow[{{0.8,0},{0.8,TotalFWalk[t,M[MaleRegvF[v],1]]/M[MaleRegvF[v],1]*M[MaleRegvF[v],BW[BM]]*3/7}}],
Black,Style[Text[Column[{NumberForm[TotalFWalk[t,M[MaleRegvF[v],1]],3]"Times","Body Weight"},Center],
{0.8,M[MaleRegvF[v],BW[BM]]*1/2}],FontFamily->"Lato",FontSize->14]}]},plotGraphicsProperties]]],
If[Gender=="Female",(*Similar Graphing Code*)]],
If[MoveType=="Run",
If[Gender=="Male",(*Similar Graphing Code*),
If[Gender=="Female",(*Similar Graphing Code*)]]]]
The foot animation uses Translate and Rotate nested in AnimationPlot3D. Two Rotates are used, one nested in the other. The interior function rotates the foot about the ankle according to a piecewise function from observation. Similarly, the outside function rotates the entire lower leg around the knee according to another piecewise function. Finally, the translate function moves the rotated lower leg according to two functions, one for horizontal translation and the other for vertical translation. Code for walking is shown below, and similar code is used for running with different piecewise functions:
Deploy[Show[
AnatomyPlot3D[
Translate[
Rotate[{Entity["AnatomicalStructure", "RightTibia"],
Entity["AnatomicalStructure", "RightFibula"],
Rotate[Entity["AnatomicalStructure", "SkeletonOfRightFoot"],
Dynamic[WalkAnkleAngle[Mod[t + Walkp2, 1]] Degree], {1, 0, 0},
Entity["AnatomicalStructure", "RightTalus"]]},
Dynamic[WalkKneeAngle[Mod[t + Walkp2, 1]] Degree], {1, 0, 0},
Entity["AnatomicalStructure", "RightKnee"]], {0,
Dynamic[WalkHorizTranslate[Mod[t + Walkp2, 1]]],
Dynamic[WalkVertTranslate[Mod[t + Walkp2, 1]]]}],
SkinStyle -> None, ViewCenter -> Center, ViewPoint -> {-2, 0, 0}],
Graphics3D[{Opacity[.2], Lighter@Green,
Cuboid[{-2000, -2500, -211}, {1000, 5000, -210}]}],
PlotRange -> {{-250, 800}, {-450, 50}, {-240, 350}},
ImageSize -> 250]]
Conclusion
While working on this project, I learned about how VGRF changes over time and the causes of those changes. For example, in walking, there are two major VGRF peaks. The first peak is caused by the impact of the heel on the ground, which partially dissipates by bending the knees and ankles. The second peak results from the ball of the foot pushing away from the ground to move the person forward. However, there is only one peak in the graph of VGRF when running because the two peaks move so close together. Additionally, many runners land on the ball of their feet rather than the heel, which may lead to a single VGRF peak.
Over the course of two weeks, I have learned the Wolfram Language on Mathematica. I truly enjoyed the time I spent meeting people, learning, and working on my project at this camp.
Acknowledgements
I would like to thank my mentor Rob Morris for helping me with this project.
References
Fahad N. AlGheshyan, Comparison of Ground Reaction Force in Treadmill Walking and in Overground Walking, University of Miami Scholarly Repository, University of Miami, 5 Jul. 2012. pp. 1-5.
Keller, TS, et al, Relationship between Vertical Ground Reaction Force and Speed during Walking, Slow Jogging, and Running, Clinical Biomechanics, vol. 11, no. 5, 1996, pp. 253259.
Tongen, Anthony, and Roshna E. Wunderlich, Biomechanics of Running and Walking, Mathematics and Sports, pp. 315328.
Pribut, Stephen M, Gait Biomechanics, Dr. Pribut on Gait, 7 May 2015, www.drpribut.com/sports/spgait.html. Accessed 6 July 2017.
Attachments: