Abstract:
A method of implementing a user-defined environment for exercise includes specifying a course route with a course development tool, and designating additional parameters associated with the course route. The course route and additional parameters support simulation of exercise on a course corresponding to the specified court route and additional parameters.

Description:
BACKGROUND OF THE INVENTION 
       [0001]    Individuals training for a foot race on a specific route may not always have easy access to the physical terrain over which the race takes place. Many race courses have high vehicle traffic that is rerouted only during the actual race. Inclement weather may prevent training. In addition, the race course could be a long distance away from where the runner lives. For example, a runner could live in California but want to run the Boston Marathon. 
         [0002]    To improve their performance the competitors may want to simulate a course that corresponds to a future or past event. For example, race terrain can vary widely in difficulty due to elevation changes. For example, the course for an upcoming race could begin with relatively flat terrain and end with a large uphill climb. This would be far more difficult than a predominately flat course. To properly prepare for an upcoming race where it is not possible to train on the actual race course, runners may want to run a simulation of the race to improve their pacing or other aspects of their strategy specific to that race course, such as conserving enough energy to finish a final hill. 
       BRIEF SUMMARY OF THE INVENTION 
       [0003]    A system for creating and utilizing user-defined environments for exercise machine training includes a course development software tool which allows a user to define a course and other parameters, the course and other parameters being exported to an exercise machine, the exercise machine being configured to simulate the course based on the received parameters. A method of implementing a user-defined environment for exercise machine training includes: a user entering a course route and additional parameters through a web-based course development tool, and exporting the course route and additional parameters to an exercise machine which simulates the course. 
     
    
     
       BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS 
         [0004]    The accompanying drawings illustrate various embodiments of the principles described herein and are a part of the specification. The illustrated embodiments are merely examples and do not limit the scope of the claims. 
           [0005]      FIG. 1  is an illustrative diagram showing a simulated screenshot of a course development software tool according to one possible embodiment of the principles described herein. 
           [0006]      FIG. 2  is a diagram of one illustrative embodiment of an exercise machine configured to receive course data and reproduce the course environment according to principles described herein. 
           [0007]      FIGS. 3A and 3B  are diagrams showing one illustrative embodiment of data that could be generated by course development software and exported to an exercise machine according to principles described herein. 
           [0008]      FIG. 4  is an illustrative diagram showing a simulated display of an exercise machine console according to one possible embodiment of the principles described herein. 
           [0009]      FIG. 5  is an illustrative diagram showing a simulated display of an exercise machine console according to one possible embodiment of the principles described herein. 
           [0010]      FIG. 6  is a flow chart showing one illustrative method for creating a user-defined environment for an exercise machine according to one possible embodiment of the principles described herein. 
       
    
    
       [0011]    Throughout the drawings, identical reference numbers designate similar, but not necessarily identical, elements. 
       DETAILED DESCRIPTION OF THE INVENTION 
       [0012]    As will be appreciated by one skilled in the art, the present invention may be embodied as a method, system, or computer program product. Accordingly, the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.) or an embodiment combining software and hardware aspects that may all generally be referred to herein as a “circuit,” “module” or “system.” Furthermore, the present invention may take the form of a computer program product on a computer-usable storage medium having computer-usable program code embodied in the medium. 
         [0013]    Any suitable computer usable or computer readable medium may be utilized. The computer-usable or computer-readable medium may be, for example but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, device, or propagation medium. More specific examples (a non-exhaustive list) of the computer-readable medium would include the following: an electrical connection having one or more wires, a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a transmission media such as those supporting the Internet or an intranet, or a magnetic storage device. Note that the computer-usable or computer-readable medium could even be paper or another suitable medium upon which the program is printed, as the program can be electronically captured, via, for instance, optical scanning of the paper or other medium, then compiled, interpreted, or otherwise processed in a suitable manner, if necessary, and then stored in a computer memory. In the context of this document, a computer-usable or computer-readable medium may be any medium that can contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device. The computer-usable medium may include a propagated data signal with the computer-usable program code embodied therewith, either in baseband or as part of a carrier wave. The computer usable program code may be transmitted using any appropriate medium, including but not limited to the Internet, wireline, optical fiber cable, RF, etc. 
         [0014]    Computer program code for carrying out operations of the present invention may be written in an object oriented programming language such as Java, Smalltalk, C++ or the like. However, the computer program code for carrying out operations of the present invention may also be written in conventional procedural programming languages, such as the “C” programming language or similar programming languages. The program code may execute entirely on the user&#39;s computer, partly on the user&#39;s computer, as a stand-alone software package, partly on the user&#39;s computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user&#39;s computer through a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider). 
         [0015]    The present invention is described below with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks. 
         [0016]    These computer program instructions may also be stored in a computer-readable memory that can direct a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer-readable memory produce an article of manufacture including instruction means which implement the function/act specified in the flowchart and/or block diagram block or blocks. 
         [0017]    The computer program instructions may also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide steps for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks. 
         [0018]    The invention provides a way to use a course development software tool to create data that will allow an exercise machine to simulate the desired terrain and environmental conditions of a specific race route or course. By way of example and not limitation, an exercise machine may be a treadmill, bicycle, aerobic elliptical, stepper, rowing device, or other machine designed to allow training or exercise. 
         [0019]      FIG. 1  is an illustrative diagram showing a simulated screenshot ( 100 ) of a course development software tool. The simulated screenshot ( 100 ) shows various functions of one exemplary embodiment of course development software which may allow users to define courses and environments for exercise machine training. The course development software may include a plurality of buttons ( 140  through  155 ) which indicate whether a user desires to create a new event ( 140 ), load an archived event ( 145 ), save an event ( 150 ), or export an event ( 155 ). According to one exemplary embodiment, the course development software may include a mapping module ( 110 ). The primary utility of the mapping module ( 110 ) is to allow a user to define a course which they desire to simulate on an exercise machine. The map module ( 110 ) may display a variety of maps or terrain representations to allow the user to select their desired route. The displayed maps may be actual representations of portions of the Earth&#39;s surface or may be computer generated terrain. The mapping module ( 110 ) may include a plurality of mapping tools ( 115 ) such as icons ( 120 ) which can be used to indicate various features along the course. By way of example and not limitation, the icons ( 120 ) may include starting and ending points for the course, restroom facilities, water availability, first-aid stations, timing stations, parking, and other features. The map tools ( 115 ) could also include a variety of editing commands ( 125 ), such as create a loop course, create an out-and-back course, undo, clear all, and other commands. 
         [0020]    A variety of other informational displays or functional tools could be used to facilitate the use of the software by the user. By way of example and not limitation, a route summary window ( 135 ) could be displayed which gives summary or aggregated information about the user-designed course, such as the total distance of the course. 
         [0021]    Additionally, the course development software may include an elevation profile ( 160 ). The elevation profile ( 160 ) may include a graph showing the change in elevation as a function of distance over the designated race route. By way of example and not limitation, the vertical axis of the graph may show elevation changes and the horizontal axis may show distance. Additional parameters such as the maximum elevation, minimum elevation, accumulative ascent, and accumulative descent may also be shown or indicated on the profile ( 160 ). 
         [0022]    Weather data ( 165 ) may also be included in the course development software. According to one exemplary embodiment, the user designates a specific time period during which the exercise will take place. The weather data ( 165 ) is then retrieved from a data base and shows either the forecasted weather or historical weather parameters. If forecasted weather is not available for the specific location or time, historical averages or probable environmental conditions could be used. The weather data could include information relating to the time of day, amount of sunlight, precipitation, humidity, wind, air temperature, elevation, pressure variances, and other factors. The software tool could be used to recreate the courses and weather of historical races. By way of example and not limitation, the route and weather conditions for the first Boston Marathon could be generated using the course development software. 
         [0023]      FIG. 2  is an illustrative diagram of one embodiment of an exercise machine configured to receive course data and reproduce the course environment. According to one exemplary embodiment, the exercise machine is capable of changes in resistance, positive slope, negative slope, side-to-side slope, and/or speed that provide a simulation of the desired course. In  FIG. 2 , a user ( 200 ) is exercising on a treadmill ( 210 ). The treadmill has a base ( 220 ), a track ( 230 ) supported by the base, and a console ( 240 ). According to one exemplary embodiment, the console comprises a large visual display element ( 260 ), controls ( 270 ), and environmental control elements ( 250 ). Controls ( 270 ) for the treadmill ( 210 ) could include a variety of functions including incline angle, track speed, on/off, etc. By way of example and not limitation, environmental control elements ( 250 ) may include audio speakers, fans, heaters, air conditioners, heat lamps or other environmental control units. Additionally, exterior environmental controls could be utilized to provide the desired level of environmental accuracy to the simulated course. 
         [0024]      FIGS. 3A and 3B  are illustrative diagrams showing one exemplary embodiment of data that could be generated by course development software and exported to an exercise machine. The data produced by the course development software could be written in a variety of formats including Extensible Markup Language (XML), delimited text, proprietary or other formats. As shown in  FIG. 3A , course data ( 300 ) could comprise various elements such as distance from the start point of the course ( 310 ), the elevation of at each distance increment ( 320 ), the accumulated ascent ( 330 ), the accumulated descent ( 340 ), waypoints ( 350 ) at various locations along the course, and waypoint tags ( 360 ). Waypoint data may be given in latitude and longitude in any format, such as might be used by or received from a Global Positioning System (GPS). The example shown in  FIG. 3A  is not intended to be exhaustive, but only to show one example of data that could be exported by the course development software. Other data could be included, such as slope (pitch), side-to-side inclination (roll), ground characteristics, etc. 
         [0025]    GPS waypoints ( 350 ) could be included in the data to pin point the location and direction of travel throughout the course. The GPS waypoints could be generated by the course development software or could be inputs from a GPS device to define the course. According to one exemplary embodiment, the user clicks on a map ( 110 ,  FIG. 1 ) to define the course. The course development software could translate the designated point on the map ( 110 ,  FIG. 1 ) into a GPS waypoint. The user could associate a symbol ( 120 ,  FIG. 1 ) with a GPS waypoint or other location on the course by selecting a map tool icon ( 120 ,  FIG. 1 ). By way of example and not limitation, the user could designate a drinking fountain or restroom location along a course. This information could be included as a waypoint tag ( 360 ) associated with a particular waypoint or series of waypoints. 
         [0026]    According to one exemplary embodiment, the distance data ( 310 ) and the corresponding elevation data ( 320 ) could be used to calculate the slope at a specific part of the course. The exercise machine ( 210 ,  FIG. 2 ) could then adjust the slope of the track ( 230 ,  FIG. 2 ) to match the slope of the course, thereby simulating actual course conditions. As the user moves through the course, the distance from the starting point is progressively incremented. At a specific distance within the course, specific actions could occur. As was previously mentioned, the slope of the course could change. Additionally, as the user passes waypoints, specific feedback could be displayed. By way of example and not limitation,  FIG. 3A  shows that when the user has traveled 0.04 miles from the starting point, the user is at a waypoint “N 42 33.57 Latitude W 71 16.13 Longitude.” This waypoint has a waypoint tag “Image2jpg.” According to one exemplary embodiment, this image could be displayed on the visual display ( 260 ,  FIG. 2 ). This image could be a visual representation of the course at this waypoint. A visual display of the actual course could assist the user in becoming familiar with a course that is currently unavailable. As noted above, the course could be unavailable because of distance, inclement weather, traffic, etc. Other images could also be displayed. By way of example and not limitation, the waypoint tags ( 360 ) could contain visual images, audio clips, video clips, executable files, or other data. 
         [0027]      FIG. 3B  shows one exemplary embodiment of environmental data that could be exported by the course development software. According to one exemplary embodiment, a time local to the course being simulated ( 370 ) is displayed in a first column. The temperature ( 372 ), humidity ( 374 ), and wind speed and direction ( 376 ) associated with that time are displayed in corresponding columns. For example, on a date of Nov. 30, 2007 at 1:00 pm local time, the temperature on the course being simulated is or was 40° F., the humidity was 45% and the wind was blowing at 10 miles per hour from the North-northwest. 
         [0028]    The weather data may be historical, current, predicted or user generated. For example, historical weather data could be used to simulate a past race or other event. Historical weather data could be archived or retrieved from a number of sources including the National Oceanic and Atmospheric Administration archives. Also, in another alternative, the weather data used may be predicted weather for the course being simulated at the time of an actual future race. According to still another alternative embodiment, the user could choose desired environmental parameters. 
         [0029]    Environmental factors often play a critical role in races, particularly long distance races such as marathons. Temperature, humidity, altitude, wind and other factors can become significant challenges for the contestants. Elevated temperatures can lead to dehydration, while head winds can require a small but significant increase in effort. According to one exemplary embodiment, environmental controls external to the exercise machine are used to more closely simulate the course conditions. For example, air conditioners, heaters, heat pumps, fans, heat lamps, humidifiers, dehumidifiers and other environmental control devices could be used in the same room to help simulate weather conditions of the desired course. In one embodiment, an exercise machine may be placed within a general weather simulating room or chamber. The general weather simulating room or chamber could, for example, be controlled by the weather module. 
         [0030]    Additionally, these environmental controls could be altered as the user progresses through the course. Direction of travel can be inferred from data produced by the course development software. As the user progresses along the course route, the direction of the simulated wind and radiant heating (simulating the sun) could be altered to match the actual orientation of a user running on the physical terrain. This allows for a more realistic course simulation and provides an opportunity for the user to more fully appreciate the challenges of the course. For example, the location of the sun at the indicated local time and relative to the position of the user on the racecourse can be simulated by heat lamps and can change as the user progresses through the simulated course. Both time and user progress on the course may change the relative position of the simulated sunshine. 
         [0031]    The weather data being used for the simulation may also affect the heating that is used to simulate the sunshine. For example, if the weather is cloudy, the amount of heat produced to simulate the sunshine can be decreased accordingly. 
         [0032]      FIG. 4  is an illustrative diagram showing a simulated display of an exercise machine display ( 240 ). According to one exemplary embodiment, the display ( 240 ) comprises an LCD screen or other visual display ( 260 ). The LCD display can be programmed to display a variety of motivational and informational elements to assist the user. According to one exemplary embodiment, a map ( 400 ) is displayed showing the course created or selected by the user along with significant landmarks, waypoints, start and end points, and other information. Below the map ( 400 ) an elevation profile ( 410 ) could be displayed showing the user&#39;s progress throughout an exercise period. Additionally, other information ( 420 ) such as elapsed time, elapsed distance, lap times, and other data of interest can be displayed. The visual display ( 260 ) could also be utilized to display environmental parameters ( 430 ) such as location, date, time, temperature, wind, and humidity. 
         [0033]    A fourth “performance” module, ( 440 ) could be used to display performance parameters that reflect the user&#39;s physical state. By way of example and not limitation, many competition runners are interested in a parameter referred to as % VO 2  max. The VO 2  max represents the maximum capacity of a body to transport and utilize oxygen during exercise. It is also called maximal oxygen consumption or maximal oxygen uptake and reflects the aerobic capacity of an individual. VO 2  max is reached when oxygen consumption plateaus despite an increase in workload. According to one exemplary embodiment, other parameters such as heart rate, lactic acid percent, blood oxygen percent concentration and other parameters could be displayed and graphed in the performance parameter module. Depending on the desired training profile, the physical parameters displayed in the performance window ( 440 ) could be selected to meet a specific goal or reduce the chance of injury. For example, the parameters displayed in the performance module ( 440 ) could indicate that the user is running faster than his condition allows. A relatively high heart rate, high lactic acid %, and low blood oxygen concentration could indicate that the user has entered an anaerobic stage that is not sustainable over the remaining distance in the course. 
         [0034]      FIG. 5  is an illustrative diagram showing a simulated display of an exercise machine console. According to this embodiment, the console ( 240 ) displays a visual representation ( 500 ) of the course over which the user is running. By way of example and not limitation, the course may be displayed with video footage that corresponds to the user&#39;s location on the course, by using still pictures, or by using computer-generated simulations of the course. For example, a video display of the course could assist a marathon runner who is preparing for the Boston Marathon. By seeing a visual representation of the course, a runner could identify landmarks and aid stations that would assist him in feeling comfortable in running the actual race being simulated at a future date. 
         [0035]      FIG. 6  is an illustrative flow chart showing one exemplary method for creating a user defined environment for an exercise machine. The user first enters the course information into the course software development tool ( 600 ). Other parameters, such as time, weather, and station data may be entered or retrieved (step  610 ). A variety of means could be used to enter the data. For example, the data could be entered entirely through the interface on the exercise machine itself, a computer in communication with the exercise machine, a web interface, or the course information could be retrieved from a mobile GPS unit. The data entered can be for a hypothetical race course or an actual race course for which information is available, or can be generated for a specific course the user has in mind. The user may have traveled the course to be simulated with a mobile GPS unit to generate some of the data. The data may be for a specific upcoming race. Alternatively, as indicated, some or all of the data can be retrieved from existing sources rather than entered by the user. By way of example and not limitation, the course development software tool may be a mashup that merges data from a variety of sources. For example, the course development software could incorporate geographic data, weather data, topographic data, race information, visual representations of the actual course, and other data from a variety of websites or other databases. 
         [0036]    Following the entry of the course route and other desired parameters, the data could be formatted, saved, and/or exported (step  620 ). The data could be formatted such that the data is compatible with a specific exercise machine. According to one exemplary embodiment, the data could be saved to an online repository and, upon request for the data by a web enabled exercise machine, the data could be formatted (if necessary) and transferred to the requesting exercise machine. The data is then loaded onto the exercise machine (step  630 ). By way of example and not limitation, the data could be saved to a flash drive or other storage medium and manually transferred to the exercise machine. The exercise machine could copy the data into an internal memory or simply access the data as required during use. 
         [0037]    In an alternative embodiment, the course development software resides on the exercise machine itself and no transfer of information is required. In this embodiment, the display, such as a liquid crystal display (LCD), may be touch-sensitive or another input device may be provided. The exercise machine computer may be Internet enabled and access a web portal that contains the course development software. Alternatively, the course development software could reside on the exercise machine and access online data, such as map and weather information. The user directly enters the course waypoints and other parameters, which are then saved on the exercise machine. 
         [0038]    When the appropriate course data has been provided by any of the methods described herein, the user may then begin the simulation of the course by instructing the exercise machine to simulate the course that was entered or for which data was imported (step  640 ). The simulation then begins. 
         [0039]    According to one exemplary embodiment, additional sensors are positioned on the user&#39;s clothing or person. By way of example and not limitation, sensors could be placed on or in the shoes of the user to gage parameters such as stride tempo, stride length, impact, or other parameters. Other sensors such as heart rate sensors could be worn or otherwise accessed by the user. These sensors could wirelessly transmit data to the exercise machine, which then displays the user&#39;s physical performance parameters throughout the exercise period (step  650 ). Additionally, the exercise machine can display distance and other time based parameters as the user moves through the course (step  650 ). As previously mentioned, these distance and time based parameters may include elapsed distance, lap times, weather data, changes in resistance or incline, changes in environmental parameters, motion on a map, pictures or videos that correspond to the users location on the course, etc. 
         [0040]    When the exercise period or course simulation is complete, the user can terminate the program by pushing a control button or through other means (step  660 ). The exercise machine would then cease operation and store the accumulated data, including the present position of the user on the course being simulated. In this manner, the user could break up long courses, such as a marathon or mountain assent, into several different exercise sessions. According to one exemplary embodiment, the exercise machine saves the data onto a web repository, where it can be later retrieved by the same or a different exercise machine. 
         [0041]    The flowchart and block diagrams in the Figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present invention. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s). It should also be noted that, in some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts, or combinations of special purpose hardware and computer instructions. 
         [0042]    The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. As used herein, the singular forms “a”, “an” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “comprises” and/or “comprising,” when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof. 
         [0043]    The corresponding structures, materials, acts, and equivalents of all means or step plus function elements in the claims below are intended to include any structure, material, or act for performing the function in combination with other claimed elements as specifically claimed. The description of the present invention has been presented for purposes of illustration and description, but is not intended to be exhaustive or limited to the invention in the form disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the invention. The embodiment was chosen and described in order to best explain the principles of the invention and the practical application, and to enable others of ordinary skill in the art to understand the invention for various embodiments with various modifications as are suited to the particular use contemplated. 
         [0044]    Having thus described the invention of the present application in detail and by reference to embodiments thereof, it will be apparent that modifications and variations are possible without departing from the scope of the invention defined in the appended claims.