Patent Publication Number: US-2004046692-A1

Title: Physical training system

Description:
BACKGROUND OF THE INVENTION  
       [0001] The present invention relates to a physical training system.  
       [0002] People planning a hike, a climb, a bike ride, or otherwise traveling typically search through guide books to locate a suitable adventure. For example, Joe may be relatively out of shape and only capable of a relatively easy hike. Accordingly, Joe may search through his many guide books for a hike in the Columbia Gorge in Oregon having an estimated duration of less than one hour with an elevation gain of less than 500 feet. In contrast, Kevin being a fitness fanatic may search through his many guide books for a strenuous hike in the Columbia Gorge in Oregon having an estimated duration of more than 7 hours with an elevation gain of more than 8,000 feet. For both Joe and Kevin, searching through a stack of guide books for an appropriate hike is a tedious process where the estimated duration and strenuous nature of the hike is merely a rough estimate based upon some arbitrary criteria, typically the authors impression of the hike. The resulting exercise that either Joe or Kevin would expect to receive is merely estimated by the terse description available in the guide book. Further, after completing the hike Joe or Kevin would likewise be only able to estimate the aerobic results in some crude manner based on the actual elapsed time, elevation gain/loss indicated in the guide book, and estimated length in the guide book.  
       [0003] People planning a hike or a climb that does not follow a designated trail tend to plan their adventure using a combination of guide books and topology maps. During the travel such people also tend to carry a handheld global positioning device, such as those available from Magellan and Garmin, to help navigate. In addition, the handheld global positioning device may also be used in the event of getting lost in combination with a topology map (or internal map within the global positioning device) to locate ones position or otherwise to help navigate to a known location, such as a designated trail.  
       [0004] A global positioning system (GPS) typically works by triangulation of its current position from satellites. To triangulate the current position the GPS receiver measures distance using the time travel of radio signals. Typically some timing and error corrections are performed on the received signals to further refine the measurement. The result of the measurement includes ones position, which may be expressed by one or more of longitude, latitude, and elevation.  
       [0005] Currently available handheld global positioning devices track the longitude and latitude (or otherwise the persons location in some manner) of the person as they travel. This is normally presented to the user in the form of textual data or in a graphical format. Also, positioning data may be included within the global positioning device so that the user may navigate based upon the data, such as traveling from a first point to a second point. In addition, the global positioning devices may also include a compass, a trip odometer, maximum speed, current speed, moving average speed, overall average speed, etc. One example of such a device is the eTrek Venture, as explained in its owner&#39;s manual and reference guide, incorporated by reference herein. Accordingly, the handheld global positioning devices are used as navigational aids, which is their intended purpose. 
     
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
     [0006]FIG. 1 illustrates a global position device and data.  
     [0007]FIG. 2 illustrates a technique to specify an activity.  
     [0008]FIG. 3 illustrates a set of position vectors.  
     [0009]FIG. 4 illustrates an output display.  
     [0010]FIG. 5 illustrates a global position device and computer system.  
     [0011]FIG. 6 illustrates a graph of work out rate versus grade.  
     [0012]FIG. 7 illustrates a graph of speed versus grade.  
     [0013]FIG. 8 illustrates a rate of accent rate versus grade.  
     [0014]FIG. 9 illustrates calories burned.  
     [0015]FIG. 10 illustrates trek work.  
     [0016]FIG. 11 illustrates a map with a trek overlaid thereon.  
     [0017]FIG. 12 illustrates a topology may with a trek overlaid thereon. 
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT  
     [0018] One current technique to characterize the physical activity of a person is to measure the breathing rate and oxygen concentration of the person while exhaling. Because of the required equipment for such measurements this is typically done in a laboratory setting on a treadmill. This technique provides accurate information regarding the chemical energy expended but typically requires complicated measurement techniques using a large breathing apparatus.  
     [0019] Another current technique to characterize physical activity of a person is to measure the torque at the petals of a bicycle. This provides an indication of the power delivered by the legs to the bicycle which is helpful for training purposes. However, such torque measurement devices are relatively expensive and limited to one sport, namely, biking.  
     [0020] Yet another technique to characterize physical activity of a person is to measure the heart rate of the body as an indication of the training level. By exercising within a specified heart rate range more targeted training may be achieved. However, heart rate monitors tend to indicate what the personal already knows, if he is “sucking air” then he is probably exercising to hard and if he is “not sucking air” then he should probably be exercising harder. However, simply monitoring the current heart rate indicates little, if anything, about the person&#39;s training progress over time.  
     [0021] A further technique to characterize physical activity of a person is to measure the distance and the elapsed time that the person traveled. On a flat surface, such as a oval track, together with a constant speed, then a reasonably accurate indication of the physical activity of the person may be determined. In addition, with a known profile of uneven terrain, such as a specific road, a reasonably accurate indication of the physical activity of the person may likewise be determined because it is the same every time.  
     [0022] The present inventors considered currently accepted techniques for characterizing physical (e.g., cardiovascular) activity and came to the realization that by extending the previously accepted applications for global positioning devices physical activity may be measured for a significant range of activities. Referring to FIG. 1, one or more satellites  10  provides signal(s) to a global positioning device  12 . The global positioning device  12  may be a non-handheld device (e.g., large heavy device, mounted to a vehicle, mounted to a bicycle, integrated within other electronics, etc.) though the GPS is preferably suitably sized for holding within the palm of the hand of the user, incorporated in a phone, incorporated in a watch, incorporated in a radio, etc. During activity of the user the GPS device  12  may obtain a set of position based information. The position based information may include, for example, latitude and longitude of the user, or relative displacements of the user based upon a previous measurement or position. In any event, the position based information provides data indicating the location of the user in some manner. The GPS device  12  normally measures the position of the user at different times which provides an indication of the current position of the user and data indicating the previous position(s) of the user, as illustrated in data set  14 .  
     [0023] The position based information may further include respective time based information associated with the respective position based information. The time based information, may be for example, “wall clock” time (e.g., 12:34.23 pm, 12:34:23 am, or 20:23.23), or relative elapsed time based upon a previous time, or relative elapsed time from a previous position. In any event, the time based information provides an indication of the temporal based movement of the user in some manner.  
     [0024] The position based information may further include elevation based information associated with the respective position based information. The elevation information, may be for example, altitude relative to sea level (e.g., 1000 feet, 1000 meters, 29.67 mbars) or relative elevation information based upon a previous elevation, or relative elevation from a previous time or position. In any event, the elevation based information provides an indication of the elevation based movement of the user in some manner.  
     [0025] Referring to FIG. 2, with multiple different sets of position based information (e.g., at least two different positions) the handheld global positioning device may calculate physical activity based information for the user, such as calories burned. The user may select a starting position within the data set or otherwise the system selects a starting position. The user may also select an ending position within the data set or otherwise the system selects an ending position. The positioning device may then calculate the physical activity of the user based upon all or a portion of the data between the starting position and ending position (e.g., temporal based or otherwise).  
     [0026] Referring to FIG. 3, a change in position may be measured in a variety of ways, such as for example, those ways illustrated below.  
     [0027] The longitude and latitude positions (or relative displacements, etc.) may be used to determine the distance that the user traveled between the starting position and the ending position. The distance may be calculated as a summation of the vectors V 1 , V 2 , V 3 , V 4 , V 5 , V 6 , and V 7  between subsequent data points using the x (longitude) and y (latitude) information. This calculation is particularly suitable when the terrain is generally flat.  
     [0028] A distance measurement may be calculated as a summation of the vectors V 1 , V 2 , V 3 , V 4 , V 5 , V 6 , and V 7  (or e.g., V 1 , V 2 , V 4 , V 5 , and V 7 ) between the subsequent data points using the e (elevation) information. This calculation is particularly suitable when the terrain is generally vertical such mountain or rock climbing.  
     [0029] A distance measurement may be calculated as a summation of the vectors V 1 , V 2 , V 3 , V 4 , V 6 , and V 7  between the subsequent data points using the x, y, and e (elevation) information. This calculation is particularly suitable when the terrain is varied, such as hiking a along forest trail or running through the hills.  
     [0030] The GPS device or a separate device worn by the user may monitor the user&#39;s heart rate. The heart rate monitor may be used by itself or otherwise in conduction with the GPS or other device capable of receiving signals from the heart rate monitor. The data from the heart rate monitor is stored in the GPS device or otherwise the computer system.  
     [0031] A temporal based measurement may be calculated using the time information together with any of the previous calculations, as desired. For example, the time information for particular segments (Vx), or the elapsed time between the starting and ending positions, may provide further indications of physical activity, such as for example, relatively fast movement between points may be a higher cardiovascular workout than relatively slower movement between points. The cardiovascular activity (e.g., physical) information may take any suitable format, such as for example, difficult, easy, hard, medium, strenuous, calories burned, or stories climbed.  
     [0032] It is to be understood that the data may be obtained by any suitable device. For example, a Garmin handheld GPS device may be used, and a Suunto Watch and strap (includes a heart rate monitor).  
     [0033] The calculations to determine cardiovascular activity (or otherwise) may be performed by the GPS device itself. In this manner, the user may determine his cardiovascular (or otherwise) activity readily using the device. This provides nearly immediate feedback regarding the activity that was recently undertaken. In addition, the system may provide feedback regarding the current level of physical activity on an ongoing or periodic basis based on all or part of the data. This avoids the necessity of using pencil and paper to perform the calculations. The device may present the results of the calculations to the user in any suitable manner, such as that illustrated in FIG. 4.  
     [0034] While monitoring the user&#39;s movement with a handheld global positioning device provides significantly enhanced benefits, especially for the monitoring of physical activity, it is still limited in the potential benefits that may be provided to the user. After considering the somewhat limited nature of a self-contained handheld global positioning device, the present inventors determined that providing network based capability for the physical activity monitoring significantly enhances its capabilities. Referring to FIG. 5, the GPS device may be interconnected to a computer system so that the data from the global positioning device may be transferred to the computer system. The computer system may be any type of computing device, such as a laptop, desktop computer, network server, either connected to the GPS device directly (wired or wireless) or through a network (wired or wireless).  
     [0035] A virtual race may be undertaken using the system, where the racers start and end at different times. Normally the elapsed time can be determined by using a stopwatch, it is difficult to measure the relative position of the racers during the race with them being run at different times. The GPS data may be used to measure the relative position with an associated temporal offset of the user during the race. For example a plot of the data of one racer relative to another racer may be performed with indications of the speed or relative time difference at different points in the race. In this manner, the users may determine that one racer while moving faster on the downhill portions lost significant relative time to the other racer on the up hill portions. The data may likewise be overlaid on maps, if desired. In addition, the data may be adjusted to reflect environmental factors, such as wind, rain, time, temperature, etc.  
     [0036] The computer system may receive data from previous activities (either as a group or data on an on-going basis if continuously interconnected to the computer system). The computer system then processes the data to provide information regarding the physical activity. The processed or unprocessed data may be maintained by the computer system, transferred to the GPS device, or otherwise made available to the user.  
     [0037] The computer system (or the handheld GPS device) may maintain a historical database of separate user activities. The historical database may then be used to track the user&#39;s training activities. For example, the historical database may be used as the basis to determine the change (increase or decrease) in the user&#39;s physical activity, cardiovascular ability, etc. In addition, the database may be used by the user to select an appropriate activity based on some criteria contained within the database.  
     Trail Database  
     [0038] Normally the selection of an appropriate trail or path involves sifting through a myriad of guide books which provides some selective criteria based upon the authors impression. While of some value, it is still limited to the authors impression of the activity and provides somewhat limited information, such as a few paragraphs of directions and path information. In some instances, the user also has access to a relevant topology map which provides some additional information.  
     [0039] To enhance the user&#39;s ability to accurately select an appropriate activity, the present inventors determined that a database of path data from one or more users as a result of their downloading the data to the computer system is useful. The enhanced database enables user&#39;s to select from among a greater variety of potential activities. In addition, the data regarding a particular activity may provide additional insight into the strenuousness of the activity for the particular user. For example, the user may desire to select an activity in the Columbia George, Oregon that is about 2 hours long that burns approximately 3000-4000 calories. By searching the database the user may be able to locate such an activity. Furthermore, because the same activity may be previously undertaken by multiple users, the database may be able to provide more accurate information regarding the activity by providing both sets of data, or otherwise merging the data into a single data set, both of which provide much more than merely an author&#39;s subjective opinion of an activity. Preferably, the same path (e.g., trail, climb, etc.) are labeled or otherwise indicated as being the same.  
     [0040] Handicapping of the activity may likewise be performed. Based upon historical data a handicap may be determined for a particular user. For a particular race the handicap may be applied to even out the results. The handicap may be derived from, for example, the course distance, overall elevation, elevation gain, elevation loss, type of activity, type of terrain, type of road, type of trail, trail rating, etc. In addition, the resulting database of information may be used in the GPS device to travel along someone else&#39;s trek. The GPS device may include the ability to follow a previous set of points and indicate that you are off track if you vary from the downloaded path.  
     [0041] The database may be further annotated with characteristics of the activity, such as for example, single track, dual track, rocky road, smooth road, windy trail, altitude, etc. Further, the items in the database may include an address, such as for example, a city, a state, a zip code, a country, latitude, and/or longitude. To make searching for particular activities more straightforward, search words may further be included.  
     [0042] For some trail activities, different user&#39;s may go slightly different distances. For example, one user may hike 5 miles down the trail before returning while another user may hike 5.2 miles down the trail before returning. Accordingly, the data from the two different user&#39;s will be slightly different, namely, the additional 0.2 miles (0.4 round trip). The computer system, or an operator of the computer system, preferably modifies one or both of the data sets to make the path of travel more consistent than the original data. In this manner, physical information that is determined based upon the modified path is more consistent with the other data, which itself may have been modified.  
     [0043] For many potential trails the user may have a map and guidebook information, but typically along the hike the user has no particular information regarding his exact position. For example, the user may know that he passed the waterfall 1 hour ago and that the fork in the trail is somewhere approximately 7 miles past the waterfall. With the GPS device the user has the ability to know his position, which may then be located on a topology map to provide an indication of his position relative to other landmarks. While beneficial, the user still remains unsure how long it should take to get to the fork in the trail, which may involve traversing a rocky hillside on a marginal trail and an additional 5000 feet of elevation gain.  
     [0044] The present inventors considered the current limitations and came to the realization that by downloading a previous data set(s) from the computer system to the GPS device regarding another user(s) who previously traveled the same path, the current user may obtain a far more accurate estimate of the time remaining, calories to be burned, elevational gain remaining, etc. The data (or path information) may be overlaid on a topology map contained within the GPS device to provide additional information. Such information is especially useful when the path traveled includes a significant amount of cross-country travel away from designated trails.  
     [0045] Another set of features that may be included is a personal profile of the particular user who obtained the data or otherwise is using the GPS device. The personal profile may include, for example, his age, weight, height, gear weight, etc. The gear weight affects calories burned which is reflected in accurate chloric calibration. This permits, if desired, the analysis of the data to be modified in such a manner that it is specific to the particular user. For example, the analysis of the physical activity of the user for a particular activity may be based upon his personal profile and/or performance during previous activities. In addition, while searching through other activities in the database, the data may be recalculated to provide physical activity that is particularized for the particular user. For example, the data from a marathon runner averaging 5:30 miles for a particular run that took 45 minutes may be recalculated for the new user to indicate a new anticipated average time per mile together with an overall anticipated time to complete of 2 hours. In this manner, the data may be adjusted to reflect a more realistic performance.  
     [0046] Another benefit of the trail database provides accurate distance measurements of particular activities together with an accurate mapping of the activity that includes actual elevation measurements. In addition, the system may likewise determine, with reasonable accuracy, the total elevation gain, elevation loss, and net elevation loss/gain.  
     [0047] With the benefit of developing accurate trail information together with accurate elevation information, this data may be used as the basis of the development of trail/activity guides and maps. This results in revised guides and maps with more accuracy.  
     [0048] Another feature that may be used is the replaying of a trek in two-dimensions or three-dimensions if altitude information is available. In this manner, the user can observe in some manner his performance during the activity. For example, the replay can indicate the slowness of the user when traveling up a steep hill and the fastness of the user when traveling down a relatively steep hill together with transition information.  
     [0049] It is further noted that in some instances the existing database, or other available databases, will have elevation information for a given position (e.g., latitude and longitude). In such case it may not be necessary to obtain the altitude information from the user.  
     [0050] To provide an example of how a limited implementation of the system may operate the following information is provided. Referring to FIGS. 6, 7, and  8  a plot of the work out rate versus grade, speed versus grade, and rate of accent versus grade. Any one of the three and others may be used to handicap a ride. Elevation change (grade) is the primary ingredient for handicapping a ride or a hike.  
     [0051] Referring specifically to FIG. 7 the process may be as follows (with focus on mountain biking, but it works for other activities as well):  
     [0052] 1) Someone goes on a ride; and the system does its analysis.  
     [0053] (a) Between each two GPS points during their ride, the system may calculate speed and grade, hence the scatter plot.  
     [0054] (b) The system may then calculate a histogram (the thick line) based on the entire ride (or the system could do a correlation).  
     [0055] (c) This represents what the system thinks they can do for any ride.  
     [0056] 2) Note that at this point the system is able to use the histogram information to calculate the time it would take them to go between any two points on a different trail.  
     [0057] 3) Next, the system may come up with a “professional biker” histogram. i.e. data derived from a real professional (or other) biker.  
     [0058] 4) To handicap a particular trail:  
     [0059] (a) The system predicts our client&#39;s time by using the velocity versus grade histogram to calculate the time step between every two GPS points. The sum of this time is the estimated time to complete the trail.  
     [0060] (b) The system predicts the “professional biker” to find the “professional biker&#39;s estimated time to complete the trail.  
     [0061] (c) The user&#39;s handicap is equal to their time minus the pro&#39;s time, all divided by the number of miles in the trail. That is, the handicap is the number of seconds per mile you get subtracted from your final time if you are racing a handicap race against the pro.  
     [0062] 5) Note the following:  
     [0063] (a) A client has a different handicap for every trail (which will indicate if the trail is good for their style of riding or not).  
     [0064] (b) A client has a different histogram for every ride they&#39;ve done. Typically handicaps are calculated based on an average of the last five or ten rides.  
     [0065] (c) The system may make this more complex as desired by the customer base. For example, the system could further categorize based on how long a client has been riding. If they went up a 10% grade at 3 m/s during the first half hour of a ride, they might only be able to go up a 10% grade at 2.5 m/s during the fourth hour of a ride. This can be taken into account.  
     [0066] One added benefit is that once the system has someone&#39;s histogram figured out, the system may use it to determine their riding characteristics for any trail: The system uses the velocity versus grade histogram to calculate the time step between every two GPS points. Then the system may port this into the analysis code to give a predicted workout rate and energy expenditure for a given ride. The system could very accurately predict how long it would take a typical client to ride on a particular trail, even if they&#39;ve never been on it.  
     [0067] Referring to FIG. 9, a simple chart of the number of calories consumed over time during a particular athletic endeavor is shown. If multiple endeavors (treks) had been selected, those may appear as a comparison in the same graph.  
     [0068] Referring to FIG. 10, the graph depicts three similar activities performed at different times. This graph specifically demonstrates the workout rate (expressed in terms of watts). Because the workout was quite similar (in this case a bike ride over the same trail), the comparisons show many similarities.  
     [0069] Referring to FIG. 11, the image may depict a trek or ride data overlaid on top of an aerial photograph. The trek points in this image are selectable for the purposes of selecting the starting and ending points of a trek.  
     [0070] Referring to FIG. 12, the image may depict a ride comparison on a topographical map. The map type can be readily specified (aerial, topographical, or relief), as can the map scale and centering.  
     [0071] Algorithm (Data analysis)  
     [0072] Main Function( )  
     [0073] Call Get_Preferences (subroutine)  
     [0074] Call Get_Data (subroutine)  
     [0075] Convert latitude and longitude to meters.  
     [0076] This section determines the distance between two points.  
     [0077] Specifically, the system looks for the associated change in x and y distances.  
     [0078] However, the globe is a sphere and x and y are in Cartesian coordinates.  
     [0079] Determine section breaks  
     [0080] There are two types of section breaks  
     [0081] (1) The GPS system puts in breaks when satellites are lost or GPS is turned off and on.  
     [0082] (2) We put in additional section breaks when the workout stops for a period of time.  
     [0083] Smooth data by section  
     [0084] All of the data is looped through, taking four point sections.  
     [0085] Each four points are used to smooth the date between points 2 and 3.  
     [0086] Call b_spline( )  
     [0087] If there are only two points, then fictitious points are created (mathematically equal to a line between points  2  and  3 , i.e., no smoothing)  
     [0088] Once the data is smoothed gradients are calculated  
     [0089] (the gradient of position is velocity)  
     [0090] (the gradient of velocity is accleration)  
     [0091] (the gradient of altitude is rate of accent)  
     [0092] Once gradients are calculated the following are calculated:  
     [0093] distance traveled  
     [0094] speed  
     [0095] direction (compass degrees)  
     [0096] acceleration in direction traveled  
     [0097] grade  
     [0098] Then energy calculations are performed  
     [0099] Potential_Calc  
     [0100] Kinetic_Calc  
     [0101] Friction_Calc  
     [0102] Aero_Calc  
     [0103] Walk_Calc  
     [0104] Run_Calc  
     [0105] Total power is the sum of above  
     [0106] If total power for unit is positive, then effort is required (positive power).  
     [0107] If total power for unit is negative, then effort is required (negative power)  
     [0108] Since power is the rate of change (gradient) of energy expended, it often needs to be smoothed. This is done next.  
     [0109] Call Metrics (Metrics are Calculated)  
     [0110] Subroutines  
     [0111] b_spline( )  
     [0112] Purpose: Given four data points with (x) and (y) values, this subroutine smoothly interpolates between them using a b-spline. This is done four times with time, longitude, latitude, and altitude.  
     [0113] Potential_Calc( )  
     [0114] Purpose: Calculate the potential energy required.  
     [0115] Equations: Force=m*g  
     [0116] Energy(work)=force*h  
     [0117] Inputs: m=mass [lbs] 
     [0118] dz=altitude gain [m] 
     [0119] dx=horizontal distance traveled [m] 
     [0120] Outputs: energy/work required [J] 
     [0121] Limit potential energy  
     [0122] Potential_Calc=m*lbs_to_kg*gc*tempz  
     [0123] Kinetic_Calc( )  
     [0124] Purpose: Calculate the ma term in F=ma; due to kinetic energy changes.  
     [0125] Equations: Force=m*a  
     [0126] Energy(work)=force * distance  
     [0127] Inputs: m=mass [lbs] 
     [0128] Accel=Acceleration term [m/s2] 
     [0129] dx=horizontal distance traveled [m] 
     [0130] Outputs: energy/work required [J] 
     [0131] Kinetic Calc=dx*m*lbs_to_kg*tempa  
     [0132] Friction_Calc( )  
     [0133] Purpose: Calculate the energy required to overcome friction.  
     [0134] Equations: Force=Crr*m*g*cos(angle)  
     [0135] Energy(work)=force*distance  
     [0136] Inputs: m=mass [lbs] 
     [0137] Crr=coeffiecent of rolling resistance [ ] 
     [0138] dz=altitude gain [m] 
     [0139] dx=horizontal distance traveled [m] 
     [0140] Outputs: energy/work required [J] 
     [0141] Friction_Calc=dx*Crr*m*lbs_to_kg*gc*Cos(Atn(dz/dx))  
     [0142] Aero_Calc( )  
     [0143] Purpose: Calculate the energy required to overcome aerodynamic drag.  
     [0144] Equations: Force=0.5*Cd*A*rho*V{circumflex over ( )}2  
     [0145] Energy(work)=force*distance  
     [0146] Inputs: Cd=coeffiecent of rolling resistance [ ] 
     [0147] Spd=speed [m/s] 
     [0148] Frontal_Area=projected frontal area [m2] 
     [0149] Density=density of air [kg/m3] 
     [0150] dx=horizontal distance traveled [m] 
     [0151] Outputs: energy/work required [J] 
     [0152] Aero_Calc=dx*0.5*Cd*Frontal_Area*Density*Spd*Spd  
     [0153] Walk_Calc( )  
     [0154] Purpose: Calculate the energy required to walk.  
     [0155] Equations: Force=V{circumflex over ( )}2*500/4/1000*m*dt  
     [0156] Force=V{circumflex over ( )}2*500/4/1000*m*(dx/V)  
     [0157] Force=V/8*m*dx  
     [0158] Energy(work)=force*distance  
     [0159] Inputs: m=mass [lbs] 
     [0160] Spd=speed [m/s] 
     [0161] dx=horizontal distance traveled [m] 
     [0162] Outputs: energy/work required [J] 
     [0163] Walk_Calc=Spd/8*m*lbs_to_kg*dx{circumflex over ( )}2  
     [0164] Run_Calc( )  
     [0165] Purpose: Calculate the energy required to run.  
     [0166] Equations: Force=V/4/1000*m*dt  
     [0167] Force=V*500/4/1000*m*(dx/V)  
     [0168] Force=1/4000*m*dx  
     [0169] Energy(work)=force*distance  
     [0170] Inputs: m=mass [lbs] 
     [0171] Spd=speed [m/s] 
     [0172] dx=horizontal distance traveled [m] 
     [0173] Outputs: energy/work required [J] 
     [0174] Run_Calc=1/4000*m*lbs_to_kg*dx{circumflex over ( )}2  
     [0175] Get_Preferences( )  
     [0176] Reads in preferences (user settings)  
     [0177] Variables include:  
     [0178] Sex, Height, Age, Mass (Weight), Activity (bike, run, etc)  
     [0179] Crr (rolling friction)  
     [0180] Cd (aerodynamic drag)  
     [0181] Frontal_Area  
     [0182] Mech_Pos (mechanical efficiency with power out)  
     [0183] Mech_Neg (mechanical efficiency with power in (going down hill))  
     [0184] Mass_Gear (e.g., bike or backpack)  
     [0185] Density (of air)  
     [0186] User settable smoothing variables:  
     [0187] VelocityStoppedThreshold, TimeStoppedThreshold, UpRateThreshold, DnRateThreshold, SpeedThreshold, AccelerationThreshold, TimeResolution, PowerWeightAve, PowerIterations, PowerBlockMin, PowerBlockMax, Override, GradeFlatCriterion, PowerStoppedCriterion, IncludeGlitch, WeightLossGoal, Hill_Up_Grade, Hill_Up Distance, Lc_Threshold,  
     [0188] Get_Data( )  
     [0189] Read in data from GPS transfer manager  
     [0190] Gradient( )  
     [0191] Determine gradients using a differentiated second-order Lagrange interpolating polynomial  
     [0192] Function Metrics( )  
     [0193] Calculate metrics  
     [0194] Latitude and Longitude  
     [0195] Latitude(i), Longitude(i)  
     [0196] LatitudeStart, LatitudeStop, LatitudeAve  
     [0197] LongitudeStart, LongitudeStop, LongitudeAve  
     [0198] Time  
     [0199] TimeOverall, imeEvent, TimeGlitch  
     [0200] TimeUp, TimeDn, TimeFlat, TimeStopped  
     [0201] TimeUpPerc, TimeDnPerc, TimeFlatPerc, TimeStoppedPerc  
     [0202] TimeRest, TimePropulsion, TimeBrake,  
     [0203] TimeRestPerc, TimePropulsionPerc, TimeBrakePerc  
     [0204] Distance and Velocity  
     [0205] DistanceEvent  
     [0206] DistanceUp, DistanceDn, DistanceFlat, DistanceStopped, DistanceGlitch  
     [0207] DistanceRest, DistancePropulsion, DistanceBrake  
     [0208] VelocityUp, VelocityDn, VelocityFlat  
     [0209] VelocityRest, VelocityPropulsion, VelocityBrake  
     [0210] Altitude and Grade  
     [0211] AltitudeNet, AltitudeUpNet, AltitudeDnNet  
     [0212] AltitudeUp, AltitudeDn, AltitudeFlat, AltitudeStopped  
     [0213] AltitudeRest, AltitudePropulsion, AltitudeBrake  
     [0214] AccentUp, AccentDn, AccentFlat  
     [0215] AccentRest, AccentPropulsion, AccentBrake  
     [0216] GradeUp, GradeDn, GradeFlat  
     [0217] GradeRest, GradePropulsion, GradeBrake  
     [0218] Energy and Power  
     [0219] EnergyEvent-BrakeEvent  
     [0220] EnergyLightBeer, EnergyDarkBeer, EnergyChocolate, EnergyRamen  
     [0221] EnergyWeight, EnergyWeightPerc, EnergyReqGoal  
     [0222] EnergyUp, EnergyDn, EnergyFlat, EnergyStopped  
     [0223] EnergyRest, EnergyPropulsion, EnergyBrake  
     [0224] PowerUp, PowerDn, PowerFlat  
     [0225] PowerRest, PowerPropulsion, PowerBrake  
     [0226] Energy modes  
     [0227] EnergyEvent, EnergyPotential, EnergyKinetic  
     [0228] EnergyFriction, EnergyAero, EnergyWalking, EnergyRunning  
     [0229] Braking modes  
     [0230] BrakeEvent  
     [0231] BrakePotential, BrakeKinetic, BrakeFriction  
     [0232] BrakeAero, BrakeWalking, BrakeRunning  
     [0233] METS and Activity Factor  
     [0234] SedDay, SedEvent, SedWorkout  
     [0235] METS_Day, METS_Event, METS_Workout  
     [0236] ActivityFactor  
     [0237] Grade Analysis  
     [0238] GrTime(j), GrAltitude(j), GrDistance(j), GrEnergy(j)  
     [0239] GrPower(j), GrMETS(j), GrAccent(j), GrSpeed(j)  
     [0240] StTime, StAltitude, StDistance, StEnergy  
     [0241] It is noted that the algorithms may modified in any manner, as desired.