Patent Publication Number: US-2015081062-A1

Title: Location-Based Athlete Pacing With Biofeedback Systems And Methods

Description:
RELATED APPLICATIONS 
     This Application claims priority to U.S. Patent Application Ser. No. 61/878,542, filed Sep. 16, 2013, and is incorporated herein by reference. 
    
    
     BACKGROUND 
     Some athletes love to compete, and all athletes improve through timely coaching on their performance and/or by being able to learn from and mimic the techniques of others. Competition events traditionally take place on a pre-surveyed track or route with fixed or staggered start times. 
     SUMMARY OF THE INVENTION 
     With the availability of cost-effective networking, data storage, and positioning technology, athletes may compete against a previous activity record from themselves or others, attain immediate feedback on their performance, learn from others by mimicking their approach to completing an activity, and receive mentoring and coaching based upon recorded activities of others. 
     A system and series of methods provide location-based athlete pacing with biofeedback to provide status updates and coaching cues including auditory, visual, haptic, vibrational, and shock. The system compares the athlete&#39;s current performance to a goal pace profile stemming from one or more other historical or theoretical activity records. For example the system may consist of a display or a series of indicator lamps, and/or audio channel with a speaker placed near the person or in the ear. Historical activity records are drawn from the individual athlete&#39;s history, or from the records of other athletes. Theoretical activity records are calculated either onboard or cloud-based by performing numerical analysis on historical activity records of the individual athlete and/or of other athletes under similar conditions. Optionally, theoretical activity records may be defined by the user specifying a route and entering one or more goals (e.g., pace, heart rate, and cadence) for the route. To clarify, the actual activity progress is cued against a goal pace profile. The goal pace profile may be one and the same as a theoretical activity record. However, the theoretical activity record is based upon processing of historical activity records but may become the goal pace profile for the user, or may be tweaked by the user to become the goal pace profile. 
     In addition to helping athletes compete, the system mentors and/or coaches them based upon the previous work of others. So rather than a competitive athlete trying to beat someone else&#39;s result, the same system can help a non-competitive athlete identify a new personal goal by considering what results have been realized by other similar athletes. 
     In one embodiment, a method provides location-based athlete pacing with biofeedback. A goal pace profile defining a performance goal of a user for a route segment is determined. A performance of the user is determined within a mobile computing device, and the performance is compared to the goal pace profile to generate real-time status and coaching cues during the performance. 
     In another embodiment, a software product has instructions, stored on non-transitory computer-readable media, wherein the instructions, when executed by a digital processor, perform steps for location-based athlete pacing with biofeedback. The software product includes instructions for determining a goal pace profile defining a performance goal of a user for a route segment; instructions for determining a performance of the user; instructions for determining a segment time indicative of a period for the route segment; instructions for determining a segment distance indicative of a distance traveled by the user in the route segment; instructions for determining a target time based upon the goal pace profile and the segment distance; and instructions for comparing the target time to the segment time to generate real-time status and coaching cues. 
     In another embodiment, a system provides location-based athlete pacing with biofeedback. The system includes a processor, a location device for determining a location of the system, and a non-transitory memory. The non-transitory memory stores machine readable instructions that when executed by the processor perform the steps of: determining a goal pace profile based upon a historical activity record of an athlete, the goal pace profile defining a performance goal of a user of the system; determining a performance of the user based upon the location; and comparing the performance to the goal pace profile to generate real-time status and coaching cues for the user during the performance. 
    
    
     
       BRIEF DESCRIPTION OF THE FIGURES 
         FIG. 1  shows one exemplary system for location-based athlete pacing with biofeedback, in an embodiment. 
         FIGS. 2A and 2B  show exemplary social media screen shots illustrating information shared by a sharing interface of the mobile device of  FIG. 1 , in an embodiment. 
         FIG. 3  is a flowchart illustrating one exemplary method for location-based pacing with biofeedback, in an embodiment. 
         FIG. 4  is a map illustrating route segments of an exemplary route taken by a user of the system of  FIG. 1 , in an embodiment. 
         FIG. 5  shows the pacing engine of  FIG. 1  in further exemplary detail, illustrating modules for pacing each selected route segment, in an embodiment. 
         FIG. 6  is a flowchart illustrating one exemplary method for segment based pacing with biofeedback, in an embodiment. 
     
    
    
     DETAILED DESCRIPTION OF THE EMBODIMENTS 
     Definitions 
     Route—A data set that describes the geographic (latitude, longitude, altitude) starting, and ending point, and possibly also waypoints of a given activity, or a set of fitness equipment settings and duration in order to simulate such waypoints. For example a route might describe the path taken to run or walk North across the East sidewalk of the Golden Gate Bridge. A route may contain any number of cyclical segments, with potential for each cyclical segment to be travelled for multiple laps. A route may also have associated with it a “toughness factor” that describes the impact of the route&#39;s terrain on the athlete&#39;s ability to traverse it. 
     Route Segment—A data set that describes the geographic starting, ending, and waypoints of any subset of a route, or a set of fitness equipment settings and duration in order to simulate such waypoints. For example a route segment might describe a portion of the Golden Gate Bridge route above beginning at the middle point of the bridge and extending to the observation point at the North end. A route segment may also have associated with it a “toughness factor” that describes the impact of the route&#39;s terrain on the athlete&#39;s ability to traverse it. 
     Route or Route Segment Toughness Factor—An indicator that represents the difficulty posed to the athlete in traversing a given route or route segment. The toughness factor may be calculated by examining the performance of a population of athletes on the particular route or route segment versus other routes or route segments with similar elevation profiles. The toughness factor quantifies the impact of irregular terrain, obstacles such as brush, etc. on the athlete&#39;s ability to traverse. 
     Activity Record—A data set that describes any of the route position epochs (latitude, longitude, and altitude), conditions (temperature, humidity, barometric pressure, wind speed, precipitation, visibility, etc.), execution, and biofeedback response (pace, cadence, power output, heart rate, breathing rate, fatigue, sweat, blood glucose Heart Rate Variability (HRV), R wave to R wave interval (R-R interval), fitness equipment data, etc.), of a given activity. For example, an activity record might describe the epoch-by-epoch progress of a 36 year old, 145 lb. female running North across the East sidewalk of the Golden Gate Bridge on Sep. 1, 2013 beginning at 11:05 am, with an ambient temperature of 85 degrees Fahrenheit, along with the woman&#39;s heart rate record and R-R interval data throughout the activity. An activity consists of one or more activity types that include but are not limited to the following: running, cycling, walking, hiking, rowing, kayaking, motocross racing, Nordic skiing, downhill skiing, and swimming. When the route involves multiple laps of a cyclical segment, an activity record may capture lap-to-lap variation of that segment due to athlete body fatigue or possible deterioration of the route. An activity may not have any route associated with it, for example playing field or rink sports, aerobic or anaerobic training, fitness dance, etc. 
     Activity Record Segment—A data set that describes any of the route position epochs, conditions, execution, and biofeedback response of a route segment, or a contiguous portion of an activity record having no associated route. For example, an activity record segment might describe a portion of the Golden Gate Bridge activity record (above) beginning at the middle point of the bridge and extending to the observation point at the North end. 
     Activity Quotient—A number that represents the overall capability level of an athlete, determined empirically by examining the performance of the athlete across a significant number of routes or route segments versus other athletes on those same routes or route segments. 
     Pace Profile—A function or data set that describes the realized athlete&#39;s pace over time and/or distance for a given route or segment thereof. 
     Goal Pace Profile—A function or data set that describes the athlete&#39;s desired pace over time and/or distance for a given route or segment thereof. 
     Lap Profile—A discrete function or data set that describes the athlete&#39;s realized pace of each lap across all laps traversed for a route. 
       FIG. 1  shows one exemplary system  100  for location-based athlete pacing with biofeedback. The terms “user” and “athlete” may be used interchangeably herein, and the user may be an athlete. System  100  includes a mobile device  102  that has a non-transitory memory  104  and a processor  106 . Mobile device  102  is for example one of a smart phone, a multimedia device, a smart watch, or any other similar mobile computing device. On certain embodiments, mobile device  102  is a device dedicated to operation within system  100 . For example, mobile device  102  is a self-contained computing device that may be carried by a person or attached to a vehicle operated by a person. In an alternative embodiment, mobile device  102  includes other functionality for use by external to system  100 . In one example, mobile device  102  is a smart phone carried or worn by a person. 
     Memory  104  is shown storing software  108  that comprises machine-readable instructions that when executed by processor  106  control mobile device  102  to provide functionality described herein. Software  108  includes a credibility auditor  110 , a pacing engine  112 , a monitoring engine  114 , a goal selection interface  116 , an activity record generator  118 , an activity manager  120 , a user interface  122 , and a sharing interface  124 . Memory  104  also stores an activity record database  130  that includes at least one activity record  132 . 
     Mobile device  102  also includes a locator  140  that operates to determine a location and/or position of mobile device  102 . Location device  140  determines accurate instantaneous position of itself, based upon steady or intermittent measurements from one or more of a Global Positioning System (GPS), cellular beacon identifiers, cellular beacon signal strength, GPS pseudolites, WiFi received signal strength indication (RSSI), any wireless network of surveyed nodes, pool turnaround, radio-frequency identification (RFID) sensors (e.g. ChampionChip), stride or wheel rotation sensors, altimeter, compass, or any combination of one or more of the above approaches. In one embodiment, locator  140  is external to mobile device  102  and sends location information to mobile device  102  via wireless interface  150 . For example, locator  140  may represent a body-worn GPS pod. 
     Mobile device  102  also includes a wireless interface  150  that communicates with one or more of an interface device  160  (e.g., a control, notification and cueing human interface device such as the Sportiiiis by 4iiii Innovations Inc.). Wireless interface  150  may implement one or more of Bluetooth, Ant+, NFC, and other wireless protocols that enable communication between mobile device  102  and interface device  160  and optionally with one or more biofeedback sensors  170 . Interface device  160  may represent one or both of: a heads-up display and a wrist watch. Interface device  160  may be integral with mobile device  102  and include a display, an audio system (headphones/speaker/Bluetooth audio/Airplay), and vibrator. In one embodiment, mobile device  102  and interface device  160  are configured as one of a wrist watch and a heads-up display. Device  102  may also communicate with other devices, such as BLE/Bluetooth headset to provide audio indications. 
     In one embodiment, interface device  160  is implemented within a bike computer and/or a rowing cox display. 
     Biofeedback sensors  170  may include discrete and/or integrated sensors that provide biofeedback monitoring including but not limited to pace, cadence, power output, heart rate, breathing rate, fatigue, sweat, blood glucose, etc. For example, biofeedback sensors  170  may represent bridging devices such as the Viiiiva dual heart rate monitor from 4iiii Innovations Inc. that operates to bridge sensor data across multiple communication protocols. 
     Activity manager  120 , when executed by processor  106 , operates to manage access to activity record database  130 , storing activity records for an athlete (i.e., a user of mobile device  102 ) or of other people or organizations. For example, activity record database  130  may store activity records  132  from friends, club or group members, and celebrities. Activity manager  120  allows the user to select activity record  132  from external sources (e.g., via wireless interface  150  and/or a wired interface such as USB—not shown) and store activity record  132  within activity record database  130  for use within mobile device  102 . In one example of operation, activity manager  120  allows activity record  132  to be selected and downloaded from an activity record database  184  of a server  182  located within the cloud  180 . Activity manager  120  may for example allow the user to search for activity records  132  based upon one or more of a particular route segment, a particular athlete, a friend, and so on. 
     Activity manager  120  may also calculate, maintain, and publish (e.g., in cooperation with sharing interface  124 ) within activity record database  130 , athlete activity quotient  135  that is a number representing an overall capability level of the user of mobile device  102  or of some other athlete. In one embodiment, server  182  calculates, maintains, and publishes activity quotients for athletes who are not users of mobile device  102 . Activity quotient  135  may be calculated in other modules without departing from the scope hereof. Activity manager  120  determines or adjusts activity quotient  135  empirically by examining the performance of the athlete across a significant number of routes or route segments in comparison to other athletes performing, or who have performed, on those same routes and/or route segments, and may publish activity quotient  135  to one or more databases (e.g., database  184 ). 
     Activity manager  120  may also calculate and maintain, within activity record database  130 , a route toughness factor that is a number representing an overall difficulty level of a given route or route segment. The route toughness factor may be calculated in other modules without departing from the scope hereof. Activity manager  120  determines or adjusts toughness factor empirically by examining the performance of a significant number of athletes on the route or route segment in comparison those same athletes&#39; performances on different routes and/or route segments, and may publish toughness factor to one or more databases (e.g., database  184 ). 
     In one example of operation, activity manager  120  is queried by the user for competitors on a given route segment, whereupon activity manager  120  takes the following actions: (a) searches for activity records of different database formats (e.g. FIT, GPS, TCX, etc.) to locate relevant records, and (b) isolates the activity record segments of interest by discarding unwanted portions of the activity record. In another example of operation, a first athlete records a FIT file of activity while running across the Golden Gate Bridge, starting from the Presidio, making his way up to the South end of the bridge and then across to the North end. A second athlete records a TCX format record of a run starting at the South end of the Golden Gate bridge and running across the bridge into the town of Sausalito. Each of the segments from the first, and second athletes, respectively, may be stored within activity record database  184 . A third athlete may operate activity manager  120  to select an activity record of only a segment on the Golden Gate bridge, wherein activity manager  120  truncates the pre- and post-segment activities from each of the FIT file and the TCX format (from the first and second athletes) record to create at least one activity record that contains only the portion recorded while on the Golden Gate bridge. 
     Credibility auditor  110  assigns a credibility score to each activity record  132  stored within activity record database  130  by evaluating the activity record against a number of credibility criteria. Exemplary credibility criteria that increase the score include: the current route has a high percentage agreement of the position epochs to the published records, there is correlating heart rate data included, there is power meter data included, there are additional biometric measurements included (e.g. sweat, breathing rate, hydration, blood glucose, etc.), the activity record was encrypted by a known trusted source (list of trusted sources would need to be maintained), and the accuracy circle of the location data is small (e.g. within the race line for some minimum percentage of the segment). Exemplary credibility criteria that decrease the score include: there is evidence that the file has been edited or there is data missing, there is evidence that the file has been changed after the data was posted, and the accuracy circle of the location data is large. For example, a person who attached a speed sensor to their motorbike and then rode across the Golden Gate Bridge in record time would have an impressive pace, but low credibility. An athlete who was able to match the pace of the clever motorcyclist and also show bike power measurements and heart rate fluctuations that matched the physical exertion of the body would have a much higher credibility score. 
     Goal selection interface  116  allows a user of mobile device  102  to select a route segment and one or more goals for an activity. In one embodiment, goal selection interface  116  allows the user to define a segment by drawing a series of curves on a map, possibly with automatic “snap to grid” like functionality to coerce the curves to align with a known street, sidewalk, pathway, trail, etc. Goal selection interface  116  also allows the user to choose from a list of existing segments from published records within a certain geographic region of interest. The interface allows the user to specify goals using any number of different methods, including referring to a number of published records from other athletes, private or published records from the same athlete, or any method of producing a theoretical activity record for comparison using methods outlined below. 
     Activity manager  120  includes an activity record search engine that searches among multiple data sources for historical activity records matching one or more specified criteria including but not limited to: activity quotient  135 , activity type, geographic location, elevation changes, minimum credibility score, refereed or sanctioned event (e.g. Banff Triathlon), day of the year, time of day, age of athlete, weight of athlete, sex of athlete, club or group affiliation (specific club membership, league division, school/grade, etc.), average heart rate, average pace, average cadence, ambient temperature, body mass index (BMI), average activity frequency, activity duration, activity intensity, distance traveled, and heart rate variability (HRV). For example, an athlete who is a member of Cochrane High School&#39;s Junior Football Team might want to compete against other members of that team, and so would to a query against that named club/group. Or a person who is just starting their journey into wellness will want to query for others of similar activity frequency/duration/intensity and body mass index. In one embodiment, activity manager  120  suggests search criteria to the user to help identify suitable mentors. 
     Activity record generator  118  cooperates with activity manager  120  to agglomerate and correlate historical activity records that meet certain criteria, and produce a goal pace profile  138  usable for comparison/pacing within mobile device  102 . In one embodiment, activity record generator  118  and activity manager  120  are combined as a single module. Activity record generator  118  may employ any number of data processing methods to produce goal pace profile  138 . An example of this would be to take the activity records that came as a result of a query and build a pace goal by averaging the pace of query results. Activity record processing methods are described in further detail below. 
     Pacing engine  112  operates to monitor the user&#39;s position/performance in real-time and compares that performance to goal pace profile  138  to generate status and coaching cues  136 . Pacing engine  112  may also compare the user&#39;s performance against partial activity records, to produce status and coaching cues  136 . For example if the athlete is competing against the performance of his previous run of the same segment, pacing engine  112  compares his position versus time into the activity against the previous activity record to determine if the athlete is ahead of or behind his or her previous performance. Pacing engine  112  may also examine current exertion levels within the context of the route, to check for sustainability issues. Thus, if an athlete is starting the segment at an unsustainable pace, given the overall exertion requirement of the segment, pacing engine  112  identifies the potential issue by looking at exertion data (pace, elevation, grade, wind speed) from recent historical activity records versus heart rate, HRV, and other biofeedback to determine if continuing the current level of exertion on the route is likely to be sustainable across the entire route, and generates status and coaching cues  136  to indicate that effort should be reduced. 
     User interface  122  operates to provide information within status and coaching cues  136  to the user. In one embodiment, user interface  122  communicates with interface device  160  via wireless interface  150 . In an alternate embodiment, user interface  122  uses an interface (e.g., touch screen) built into mobile device  102 , where for example mobile device  102  is a smart phone. Information within status and coaching cues  136  includes biofeedback, audio, visual, and other, as for example generated by pacing engine  112  during operation of mobile device  102 . Interface device  160  may comprise one or more indicator lamps or other display elements, and/or one or more audio channels, and/or other biofeedback components that are responsive to control by user interface  122 . Interface device  160  may represent one of a wrist watch display, a bicycle computer, and a heads-up/heads-down display. 
     Information within status and coaching cues  136  for presentation to the user via user interface device  160  may include: approaching segment start/end (e.g., “Approaching segment start in 30 seconds”), segment start (e.g., “Segment started”), segment end (e.g., “Segment completed. You finished ahead of the current first place finisher”), segment progress, elapsed time &amp; distance (e.g., “You are two thirds of the way through the segment”), instantaneous &amp; average heart rate, cadence, pace, and/or other biometrics, segment time remaining (e.g., “45 seconds remain in the segment”), leaderboard status: “You are eight seconds ahead of the current third place finisher, and four seconds behind the current second place finisher”), off-route (e.g., “You have strayed from the segment route”), and unsustainable exertion (e.g., “Your pace may be too high to maintain throughout the segment”). 
     Interface device  160  may also allow input from the user to user interface  122 , via wireless interface  150 , thereby allowing the user to control operation of mobile device  102  for example to start, stop, and/or pause the current activity. For example, interface device  160  may include one or more of capacitive touch button, a tactile button, a touch screen, and a tap detector (e.g., an accelerometer). In one embodiment, user interface  122  communicates with an application running on a separate mobile computation platform to display and receive control information via wireless interface  150 . In another embodiment, interface device  160  is part of mobile device  102 , such as when mobile device  102  is a smart phone or similar device. 
     Monitoring engine  114  operates in conjunction with biofeedback sensors  170  to monitor user biofeedback metrics such as one or more of speed, heart rate, fatigue, sweat, hydration, blood glucose, breathing rate, body temperature, as well as external conditions such as one or both of ambient temperature, and humidity. Monitoring engine  114  generates warnings (e.g., stored within status and coaching cues  136 ) for indicating apparent health or safety risks to the user based upon the length and difficulty of the selected route for example. For example, monitoring engine  114  may indicate one or more of: safety risk from excessive speed on a downhill grade, health risk from other factors such as elevated or erratic heart rate, extreme high/low body temperature, inadequate hydration level, and erratic or extreme breathing rate, and lack of movement (e.g., if the user has fallen or not moved for some prescribed time). Monitoring engine  114  may additionally cooperate with pacing engine  112  to generate pacing cues as discussed above. 
     Sharing interface  124  operates to publish one or more of recorded activity records  132 , activity quotient  135 , status updates, notes, challenges, photos, and friend lists to one or more of social media  190 , blogs, circles, forums, text messages, e-mail messages, and so on. Thus, sharing interface  124  shares information on the user&#39;s participation and progress during an event, and may also invite others to join. In one example of operation, sharing interface  124  publishes changes to activity quotient  135  to social media  190  and/or a server  182 . For example, upon completion of a segment in a selected activity, sharing interface  124  may post activity record  132 , a record of the user&#39;s activity, and/or activity quotient  135 , to server  182  located within cloud  180  for example, such that the user&#39;s information may be automatically and immediately updated on a published leaderboard. For example, an athlete might use this to notify their friends via social media of how they are doing in running a marathon, so their friends may cheer them on. Sharing interface  124  may then receive information from the social media such as a comment from a friend of the user and automatically relay this information in real-time to the user while the user is performing the activity. In other words, a notification of a user completion or progress of a route segment may be posted on social media to solicit “likes,” comments and other responses. These responses may then be relayed to the user in real-time such that the user is encouraged during the activity. Notification data includes: social media login credentials, an activity record database identifier and route segment identifier, the athlete&#39;s current position, real-time or average metrics, time of day, day of year, measured conditions, personal comments, photos, audio clips, motion video content, etc. 
     Sharing interface  124  may also cooperate with activity manager  120  to search one or more of the athlete&#39;s social networks to identify members of the social network that also have completed one or more segments similar to the athlete. If any are found, the athlete can send a notification (public of private) to share their result on the segment. 
     Where monitoring engine  114  detects a safety incident, sharing interface  124  may share this and other information of the user with first responders  192  via wireless interface  150 . In one example of operation, sharing interface  124  notifies first responders  192  of an emergency situation detected by monitoring engine  114 . 
     Exemplary Historical Activity Record Processing Methods 
     Build a Goal Pace Profile from a Specified Overall Pace Goal 
     In one embodiment, activity record generator  118  implements a method for generating goal pace profile  138  based upon a plurality of activity records  132  returned by activity manager  120  as a result of a search based upon a particular route segment for example. Activity record generator  118  generates an epoch-by-epoch goal pace profile within goal pace profile  138  by averaging, for each segment, information of each returned activity record. Thus, goal pace profile  138  contains an epoch-by-epoch average of the measured pace across all search results, interpolated where helpful, and normalized by dividing by the calculated average overall pace across all results. This normalized pace profile may then be used to build a goal pace profile by multiplying the normalized epoch-by-epoch goal pace by the overall goal pace. 
     Build a Goal Pace Profile from a Series of Waypoint-To-Waypoint Goals 
     In another embodiment, activity record generator  118  implements a method for generating goal pace profile  138  by identifying the waypoints of each segment and then determining a goal pace for each portion of the segment from one waypoint to the next. 
     Build a Goal Pace Profile from Examining Historical Lap Profiles 
     In another embodiment, activity record generator  118  implements a method for producing a lap-by-lap goal pace profile by examining the actual pace profiles from a query of historical activity records  132  returned by activity manager  120  for the selected route. For every matching activity record showing multiple laps of the same path loop, activity record generator  118  generates a lap-by-lap average of the measured pace across all returned results, then normalizes by dividing by the calculated average overall pace across all results. This normalized lap-by-lap pace profile may be used to build goal pace profile  138  by multiplying the normalized lap-by-lap goal pace by the overall goal pace. This lap profiling helps account for various ways a multiple lap route can elicit different performance levels from the competing athlete over the numerous laps due to body fatigue, route deterioration, or the final-lap sprint for example. 
     Build a Goal Pace Profile from an Average of a Defined Group or Club of Athletes 
     In another embodiment, activity record generator  118  implements a method for generating goal pace profile  138  by averaging returned best historical activity records of all members of a group (e.g., a club) for the same route. Goal pace profile  138  from an average of a defined group or club of athletes may additionally be altered such that the goal pace profile is better or worse than the average. 
     Build a Goal Pace Profile from an Average Pace of a Set of Similar Athletes 
     In another embodiment, activity record generator  118  implements a method for producing goal pace profile  138  by searching for historical activity records  132  of athletes similar to the user in terms of certain search criteria such as one or more of activity quotient  135 , sex, age, weight, body mass index (BMI), HRV, and activity intensity/duration/frequency, for the same route, and then generating goal pace profile  138  based upon the pace profiles and average pace of search results. 
     Build a Goal Pace Profile Based on the Same Athlete&#39;s Prior Activities on Similar Terrain 
     In another embodiment, activity record generator  118  implements a method for generating goal pace profile  138  by searching for recent partial historical activity records from the same athlete on different routes, piecewise-matching elevation changes in the segments of the route, determining anticipated biofeedback responses using filtering techniques, and then summing the response data from the various matched or transformed pieces and adjusting by the toughness factors for the route segments. The resulting goal pace profile  138  estimates impact of the route on the pace and/or other biofeedback metric of the user. 
     Build a Goal Pace Profile Based on Similar Athletes&#39; Prior Activities on Similar Terrain 
     In another embodiment, activity record generator  118  implements a method for generating goal pace profile  138  by searching for recent partial historical activity records from athletes similar to the user in terms of certain search criteria (e.g. activity quotient  135 , sex, age, weight, BMI, HRV, activity frequency) on different routes. Activity record generator  118  then piecewise-matches elevation changes in the segments of the route and estimates the anticipated biofeedback responses using filtering techniques and then sums the matched segments or transformed pieces and adjusting by the toughness factors for the route segments. The toughness factor for each segment and/or route is based upon the relative performance of a plurality of athletes that have traversed that segment and/or route. The resulting goal pace profile  138  includes an expected impact of the route on pace and/or other biofeedback of the user. The toughness factor, or an adjustment thereto, for each segment and/or route may be published to one or more servers (e.g., server  182 ) and/or databases (e.g., database  184 ). 
     EXAMPLE EMBODIMENTS  
     Basic Ghost Pacer from Previous Activity 
     In this embodiment, pacing engine  112  and/or monitoring engine  114  generates status and coaching cues  136  based upon one or more previously recorded historical activity records from the same athlete on the same route. 
     Ghost Pacer Using a Friend&#39;s Historical Activity Record File 
     In this embodiment, pacing engine  112  and/or monitoring engine  114  generates status and coaching cues  136  based upon one or more previously recorded historical activity records provided by another person from the same route. 
     Ghost Pacer Using Another Person&#39;s Historical Activity Record File 
     In this embodiment, pacing engine  112  and/or monitoring engine  114  generates status and coaching cues  136  based upon one or more previously recorded historical activity records (e.g., activity records  132 ) by another person from the same route, through performing a search of published activity records using any number of criteria as described above. 
     Ghost Pacer Using a Random Person&#39;s Historical Activity Record File 
     In this embodiment, pacing engine  112  and/or monitoring engine  114  generates status and coaching cues  136  based upon one or more previously recorded historical activity records (e.g., activity records  132 ) by a random person from the same route, without disclosing any details of the random person chosen. At some later point in time, for gamification, the pacer might possibly share with the user some details of the person chosen, like a celebrity. The random nature of the pacer allows for a more fun and playful interaction with system  100 . 
     “King of the Mountain” Style Ghost Pacer Drawing from a Published Leaderboard 
     In this embodiment, pacing engine  112  and/or monitoring engine  114  generates status and coaching cues  136  based upon the historical activity record (e.g., activity record  132 ) of the currently published records for that same route based on a real-time search of a given set of activity record databases based on the athlete&#39;s current location. For example, pacing engine  112  generates audible and/or visual indicators of relative position of a king of the mountain (KOM) ghost pacer (e.g., ahead or behind audibly announced in seconds and visually displayed using pace LEDs of interface device  160  and optionally color). 
     On-The-Fly Challenge for a Group of Athletes 
     In this embodiment, pacing engine  112  and/or monitoring engine  114  generates status and coaching cues  136  based upon real-time sharing and updates to the partial activity records of other group members following the same route at about the same time (allowing for staggered start times) based on real-time sharing and updates to the partial activity records of the group members. 
     “Lap Master” Style Pacer from a Published Leaderboard 
     In this embodiment, pacing engine  112  and/or monitoring engine  114  generates status and coaching cues  136  based upon the historical activity record of the currently published leader for a given lap of that same route based on a real-time search of a given set of activity record databases based on the athlete&#39;s chosen route. In one example of operation, pacing engine  112  compares the current lap against the same lap of a historical activity record, or compares against a previous lap of the current activity record. 
     “Coach Me” Style Pacer 
     In this embodiment, pacing engine  112  and/or monitoring engine  114  generates status and coaching cues  136  based upon an expected theoretical activity record for a given athlete on a given route, based upon a filtered or predicted activity record file of similar athletes&#39; prior activities (similar or slightly better activity quotient  135 ) on similar terrain (e.g., similar toughness factor). 
     Other Embodiments 
     In one embodiment, activity record generator  118  generates theoretical activity record  134  based upon flat and/or average time from activity records  132  returned by a search then and adjusts (e.g., extrapolates) these times based upon one or more of a detected gradient at during the actual activity, the time into the current activity, length of the current hill, and so on to generate goal pace profile  138 . In another embodiment, activity record generator  118  generates goal pace profile  138  by extrapolating from recorded similar activity of the user, and from other activities from other athletes. 
     In one embodiment, pacing engine  112  compares the current activity of the user to one or more activity records  132  of others. In another embodiment, pacing engine  112  compares the current activity of the user to activity records  132  received in real-time from server  182 . In another embodiment, pacing engine  112  compares the current activity of the user to activity records  132  received in real-time from multiple servers. 
     In one embodiment, pacing engine  112  automatically (e.g., periodically and without prompting from the user) identifies a challenge (e.g., a hill) within a current proximity of the user and automatically generates (e.g., by searching for similar activities within other activity records  132 ) goal pace profile  138  based upon that activity such that the user receives status and coaching cues. For example, if the user runs a route that includes three published segments, system  100  presents each segment to the athlete in real-time as the user nears the start point. The user may choose to compete or be coached from each of those three segments, and/or post his/her activity record for each segment upon completion. In this example, the user may not have planned to run any published segments, but changed their route in response to prompting from the system in order to include three published segments. 
     In another embodiment, pacing engine  112  compares the current activity of the user to one or more activity records  132  representative of a repeating track, or specified track. 
     System  100  allows the user to race against anybody that has one or more activity records  132  stored within activity record database  130  and/or activity record database  184 . For example, where activity record database  184  stores activity records  132  recorded by members of a club, the user may select and load one or more of these activity records into activity record database  130  within mobile device  102  such that pacing engine  112  may compare the user activity against these recorded activities. 
     In another embodiment, the user may interact with interface device  160  to generate goal pace profile  138  containing a challenge, and then share (e.g., using sharing interface  124 ) that challenge with other people (such as people that the user is currently running or cycling with). 
       FIGS. 2A and 2B  show exemplary social media screen shots  200 ,  250  illustrating information shared by sharing interface  124  of mobile device  102  of  FIG. 1 . In one embodiment, sharing interface  124  sends one or more of social media login credentials, an activity record database identifier (e.g., “Strava”, “MapMyRun”), a segment identifier for indexing within activity record database  184 , a current position of the user, current real-time and/or averaged biofeedback metrics, current goal pace and/or current rank and/or relative position against chosen pacers, time of day, day of year, any data on measured conditions such as ambient temperature, and personal comments, photographs, audio clips, motion video content, etc., provided by the user. Screen shot  200  is displayed from information received from sharing interface  124  when a segment is completed. Screen shot  250  is displayed from information received from sharing interface  124  while a segment is in-progress, illustrating a current position  252  of the user. 
       FIG. 3  is a flowchart illustrating one exemplary method  300  for location-based pacing with biofeedback. Method  300  is for example implemented within one or more of activity record generator  118 , activity manager  120 , user interface  122 , pacing engine  112 , and goal selection interface  116  of mobile device  102 ,  FIG. 1 . 
     In step  302 , method  300  determines a goal pace profile based upon historical activity records of one or more athletes and/or a theoretical activity record, the goal pace profile defining a goal of a user. In one example of step  302 , activity manager  120  searches for one or more activity records  132  corresponding to one or more athletes and activity record generator  118  generates goal pace profile  138  based upon the one or more activity records  132  and/or theoretical activity record  134 . 
     In step  304 , method  300  determines a current activity of the user. In one example of step  304 , locator  140  and one or more biofeedback sensors  170  determine a current activity of a user of mobile device  102 . 
     In step  306 , method  300  compares the current activity to the goal pace profile to generate status and coaching cues. In one example of step  306 , pacing engine  114  compares activity of the user of mobile device  102  to goal pace profile  138  and generates status and coaching cues  136 . In step  308 , method  300  sends the status and coaching cues to a notification and cueing human interface device that is visible to the user. In one example of step  308 , user interface  122  sends status and coaching cues  136  to interface device  160  via wireless interface  150 . 
     Steps  310  through  314  are optional. If included, in step  310 , method  300  publishes the status. In one example of step  310 , sharing interface  124  publishes the status of step  306  to social media  190 . If included, in step  312 , method  300  receives a response to the publication of step  310 . In one example of step  312 , sharing interface  124  receives “likes” and/or comments from social media  190 . If included, in step  314 , method  300  indicates the responses to the user. In one example of step  314 , sharing interface  124  cooperates with user interface  122  to indicate the “likes” and/or comments with the user of mobile device  102 . 
     Steps  304  through  314  repeat, as indicated by dashed outline  320 , to provide status, coaching cues, and optional encouragement, to the user of mobile device  102  until the activity is stopped. 
     In step  316 , method  300  posts the completed activity record to the server. In one example of step  316 , activity manager  120  posts activity record  132  to activity record database  184  of server  182 . Steps  302  through  316  may repeat for additional segments. Steps of method  300  may be reordered without departing from the scope hereof. 
       FIG. 4  is a map  400  illustrating route segments  402  of an exemplary route  401  to be taken by a user of system  100  of  FIG. 1 . Route  401  has three route segments  402 ( 1 )-( 3 ), but may have more or fewer without departing from the scope hereof. In the example of  FIG. 4 , segment  402 ( 1 ) starts at a location  404 (A) and ends at a location  404 (B); segment  402 ( 2 ) starts at location  404 (B) and ends at a location  404 (C); and segment  402 ( 3 ) starts at location  404 (C) and ends a location  404 (A). Although segments  402  are contiguous and completely cover route  401 , route segments  402  may form only part of a route  401  and need not be contiguous. That is, each segment  402  may be individually selected to be a part of route  401  and may or may not adjoin and/or overlap with other route segments. Each segment  402  may also have an associated start direction  406  that indicates an expected movement direction of device  102  when starting that segment. In the example of  FIG. 4 , movement directions are indicated by arrows, wherein segment  402 ( 1 ) has a direction  406 ( 1 ), segment  402 ( 2 ) has a direction  406 ( 2 ), and segment  402 ( 3 ) has a direction  406 ( 3 ). 
       FIG. 5  shows pacing engine  112  of  FIG. 1  in further exemplary detail, illustrating modules for pacing each selected route segment. Pacing engine  112  is shown with a segment start detector  502 , a segment distance tracker  504 , a relative position calculator  506 , a segment end detector  508 , and optionally a segment path tracker  510 . Segment start detector  502  operates to detect when device  102  passes through a segment starting point (e.g., location  404 (A) for segment  402 ( 1 )). In one example of operation, segment start detector  502  first locates a nearest segment starting location within goal pace profile  138 , and then determined when device  102  passes through the segment starting location. 
     Segment start detector  502  may be configured with a configurable trigger zone area that defines an area proximate the segment start location within which device  102  is considered at the start of the segment. In one example, the trigger zone area is defined as a circle having a radius of 100 yards and centered at the coordinates provided for the segment start location. In another example, the trigger zone area is defined as a rectangle of 15 yards by 30 yards, centered at the coordinates provided for the segment start location, and orthogonally aligned with start direction  406 . Other sizes, shapes, and orientations may be used without departing from the scope hereof. In one embodiment, a user defines the trigger zone interactively when defining segment  402  using a map, wherein the trigger zone is indicated on that map. 
     Segment start detector  502  may also determine a direction of movement of device  102  (e.g., calculated from latitude and longitude values of last two coordinates determined for device  102 ) and compare that determined direction to start direction  406  for segment  402 , wherein segment start detector  502  may generate a notification to the user if device  102  is heading in a wrong direction. In one embodiment, segment start detector  502  does not detect a start of segment unless the user is within the trigger zone area and with a heading corresponding to start direction  406 . Once a segment start is detected, segment start detector  502  resets a segment time  552  that is incremented in real-time to provide an indication of time into the segment. 
     Segment distance tracker  504  determines a segment distance  554  as the distance travelled by device  102  since segment start was indicated by segment start detector  502 . Segment distance  554  is an accumulated distance determined from coordinates periodically obtained by locator  140  as device  102  travels along segment  402 . 
     In one embodiment, relative position calculator  506  determines a target time  558  of the “ghost pacer” to reach segment distance  554  based upon activity records  132  and/or goal pace profile  138 . Pacing engine  112  may then indicate (e.g., visually and/or audibly) the time difference between the user of device  102  and the ghost pacer, such as “three seconds behind” for example. 
     In an alternative embodiment, relative position calculator  506  determines a target distance  556  within segment  402  based upon goal pace profile  138  and a segment time  552 . For example, where goal pace profile  138  is based upon one or more activity records  132 , relative position calculator  506  uses activity records  132  and segment time  552  to calculate target distance  556  representing a distance travelled into segment  402  by the “ghost pacer” corresponding to goal pace profile  138 . Calculator  506  then compares segment distance  554  to target distance  556  to determine a relative distance between the user of device  102  and the athlete associated with goal pace profile  138 . Pacing engine  112  may then indicate (e.g., visually and/or audibly) the relative distance to the user of device  102 . 
     Segment end detector  508  operates to detect when a current segment  402  is completed. In one embodiment, detector  508  determines the end of the current segment when segment distance  554  is equal to and/or greater than a defined distance of segment  402 . In an alternative embodiment, detector  508  determines the end of the current segment when a current location of device  102  is within an end zone of segment  402 . 
     In one embodiment, pacing engine  112  includes optional segment path tracker  510  that determines a minimum distance between device  102  and an indicated path/track within goal pace profile  138  and/or activity records  132 . For example, activity records  132  include information (e.g., coordinates and/or vectors) that defines a path/track of segment  402 . Tracker  510  then periodically determines a distance between device  102  and the defined path/track. Tracker  510  may generate a warning when device  102  is further than a threshold distance from the path/track of the current segment  402 . Tracker  510  may also cancel a current segment when the user diverges by more than a certain distance from the path/track of the segment. Where segments  402  overlap, device  102  may track multiple segments simultaneously. 
     During operation, the user may cancel a current segment, wherein segment tracking terminates and device  102  returns to providing biometric feedback to the user without comparison to goal pace profile  138 . In one embodiment, pacing engine  112  cancels a current segment automatically when deviation from the path of the current segment is greater than a threshold amount. Pacing engine  112  may then start looking for a subsequent segment start (e.g., using segment start detector  502 ) and may include a “de-bounce” function that prevents the same segment from automatically restarting. 
     In one example of operation, a user configures mobile device  102  to provide biometric feedback for segment  402 ( 1 ). Activity manager  120  automatically selects and downloads a corresponding activity record  132  from activity record database  184 , as described above. Pacing engine  112  then detects a start of the segment (e.g., using segment start detector  502 , as described above), and provides, during the segment, feedback to the user of performance relative to a selected ghost pacer. 
     Where the user of device  102  has not selected a ghost pacer (i.e., has not identified activity records  132 ) for a particular segment  402 , pacing engine  112  provides performance feedback in the form of percentage of the segment that is complete. Thus the user receives feedback on determined progress through the segment. 
     In one embodiment, pacing engine  112  generates audio output to indicate one or more of: approaching start, relative position (e.g., ahead/behind), percentage completed milestones updates when in a segment, encouragement (e.g., “Go! Go! Go!”) when certain percentages of the segment remain (e.g., five percent of distance remaining in the segment), and when the segment completed. When not in a segment, pacing engine  112  indicates one or more of heart-rate, speed, and temperature. 
     In one embodiment, pacing engine  112  and/or monitoring engine  114  operates to (a) check the user&#39;s speed, and when a certain speed has been exceeded for a certain amount of time, and (b) generate an alert to indicate to the user that certain safety conditions have been exceeded. For example, when one or more of heart-rate, breathing rate, and speed is too high, pacing engine  112  and/or monitoring engine  114  generate an audible signal indicating the user exertion levels are too high. For example, a GPS receiver may be used to measure speed when the GPS signal accuracy is sufficiently high. When GPS accuracy is not sufficient, monitoring engine  114  and/or pacing engine  112  may use other means (e.g., one or more of a foot-pod, a bike speed/cadence sensor, and so on, to determine when the user is operating outside of safe conditions. 
     When device  102  is implemented as a smart phone, pacing engine  112  may also provide visual updates to displayed maps to indicate KOM ghost pacer for the current segment. For example, pacing engine  112  may display ahead/behind polylines of the user and a partner, as well as visual and/or audio indications of the KOM ghost pacer (such as ahead/behind in seconds and/or color displays). Pacing engine  112  may also display live statistics of monitored activity, with expandable large views for selected statistics to facilitate easier viewing by the user during activity. 
     Device  102  may also provide a demo/debug test mode that allows the user to rewind and/or play back activity records  132  and/or .fit file activity to simulate a live activity. For example, device  102  may generate output to control interface device  160  (e.g., audio and/or visual feedback devices), and provide live map and live statistics to simulate activity in real time. Device  102  may also allow play back of activity at increased (e.g., ten-times and one-hundred-times) speed to allow the user to ‘jump’ to specific locations of the stored activity. 
       FIG. 6  is a flowchart illustrating one exemplary method  600  for segment based pacing with biofeedback. Method  600  is for example implemented within pacing engine  112  of device  102 . 
     In step  602 , method  600  receives a segment selection. In one example of step  602 , a user interacts with device  102  to select segment  402 ( 1 ). In step  604 , method  600  detects a start of segment. In one example of step  604 , segment start detector  502  determines that device  102  is located within a start zone area of segment  402 ( 1 ) and heading in a direction corresponding to direction  406 ( 1 ), and therefore indicates start of segment  402 ( 1 ). In step  606 , method  600  resets the segment time and distance. In one example of step  606 , segment start detector  502  sets segment time  552  and segment distance  554  to zero. In step  608 , method  600  accumulates distance into segment. In one example of step  608 , segment distance tracker  504  determines distance moved by device  102  based upon periodically determined coordinates from locator  140  and updates segment distance  554 . In step  610 , method  600  calculates position relative to goal pacer. In one example of step  610 , relative position calculator  506  determines target time  558  of the “ghost pacer” to reach segment distance  554  based upon activity records  132  and/or goal pace profile  138 . In step  612 , method  600  indicates the relative position to the user. In one example of step  612 , pacing engine  112  sends audible signals to the user of device  102  to indicate that they are two seconds behind the ghost pacer for segment  402 ( 1 ). 
     Steps  614  and  616  are optional. If included, in step  614 , method  600  determines encouragement indications. In one example of step  614 , pacing engine  112  determines, based upon segment distance  554  as a portion of total distance of segment  402 ( 1 ), “Go! Go! Go!” for the encouragement indication. In step  616 , method  600  provides encouragement to the user. In one example of step  616 , pacing engine  112  sends “Go! Go! Go!” to an audio interface device  160 . 
     Step  618  is a decision. If, in step  618 , method  600  determines that the end of the segment is reached, method  600  continues with step  620 ; otherwise method  600  continues with step  608 . Steps  608  through  618  repeat until the end of the segment is reached. In one example of step  618 , segment end detector  508  detects when the end of the segment is reached and method  600  continues with step  620 . 
     In step  620 , method  600  indicates the end of the segment. In one example of step  620 , pacing engine  112  generates and sends an audio message saying “Great job! Segment complete!” to the user of device  102 . 
     Changes may be made in the above methods and systems without departing from the scope hereof. It should thus be noted that the matter contained in the above description or shown in the accompanying drawings should be interpreted as illustrative and not in a limiting sense. The following claims are intended to cover all generic and specific features described herein, as well as all statements of the scope of the present method and system, which, as a matter of language, might be said to fall therebetween.