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.
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.
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.
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.
Throughout the drawings, identical reference numbers designate similar, but not necessarily identical, elements.
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.
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.
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's computer, partly on the user's computer, as a stand-alone software package, partly on the user'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'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).
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.
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.
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.
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.
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.
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).
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.
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,
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,
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.
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.
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.
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.
A fourth “performance” module, (440) could be used to display performance parameters that reflect the user's physical state. By way of example and not limitation, many competition runners are interested in a parameter referred to as % VO2 max. The VO2 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. VO2 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.
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.
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.
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.
According to one exemplary embodiment, additional sensors are positioned on the user'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'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.
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.
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.
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.
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.
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.