Controlling an exercise machine using a video training program

文档序号:1926248 发布日期:2021-12-03 浏览:17次 中文

阅读说明:本技术 使用视频训练程序控制锻炼机器 (Controlling an exercise machine using a video training program ) 是由 埃里克·S·沃特森 查斯·布拉默 克里斯蒂安·哈撒韦 丽贝卡·林恩·卡佩尔 于 2020-02-03 设计创作,主要内容包括:使用视频训练程序控制锻炼机器。在本公开内容的一个方面中,方法可以包括捕获视频,将锻炼机器控制命令编码到视频的字幕流中以创建视频训练程序,对视频的字幕流进行解码以访问锻炼机器控制命令,5至少周期性地确定用户的实际心率区间不等于当前编制心率区间并且用户的实际心率不以至少阈值心率趋势率趋向当前编制心率区间,以及作为响应,通过分别根据实际心率区间是低于还是10高于当前编制心率区间上调或下调当前难度等级来适应性地调节视频训练程序。(The exercise machine is controlled using a video training program. In one aspect of the disclosure, a method may include capturing video, encoding an exercise machine control command into a subtitle stream of the video to create a video training program, decoding the subtitle stream of the video to access the exercise machine control command, 5 at least periodically determining that an actual heart rate interval of a user is not equal to a current programming heart rate interval and that the actual heart rate of the user does not trend toward the current programming heart rate interval at least a threshold heart rate trend rate, and in response, adaptively adjusting the video training program by up-or down-adjusting a current difficulty level according to whether the actual heart rate interval is below or 10 above the current programming heart rate interval, respectively.)

1. A method for controlling an exercise machine using a video training program, the method comprising:

encoding exercise machine control commands into a video subtitle stream to create a video training program;

decoding a subtitle stream for the video to access the exercise machine control command;

displaying the video; and

controlling one or more movable members of the exercise machine using the exercise machine control commands.

2. The method of claim 1, wherein said exercise machine control commands are encoded as Comma Separated Values (CSVs).

3. The method of claim 2, wherein the comma separated value further comprises training data associated with training depicted in a video of the video training program.

4. The method of claim 3, wherein the training data comprises one or more of:

a target Revolutions Per Minute (RPM) of the training;

a target watt of the training;

the trained target heart rate interval;

a target heart rate for the training;

a current number of seconds from a start of the training; and

a training state of the training, the training state including a warm-up state, a training in-progress state, or a relaxation state.

5. The method of one of claims 1 to 4, wherein the exercise machine control commands are configured to control one or more of:

a speed of one or more movable members of the exercise machine;

a percentage of incline of one or more movable members of the exercise machine; or

Resistance of one or more movable members of the exercise machine.

6. The method of one of claims 1 to 5, wherein:

the exercise machine comprises a treadmill;

the one or more movable members comprise a running belt;

the exercise machine control commands are configured to control a speed of the tread belt;

the one or more movable members further comprise a running board; and is

The exercise machine control commands are further configured to control a slope percentage of the running board.

7. The method of one of claims 1 to 5, wherein:

the exercise machine comprises an exercise bicycle;

the one or more movable members comprise a pedal;

the exercise machine control command is configured to control a resistance of the pedals;

the one or more movable members further comprise a frame; and is

The exercise machine control commands are also configured to control a tilt percentage of the frame.

8. The method of one of claims 1 to 5, wherein:

the exercise machine comprises an elliptical machine;

the one or more movable members comprise a foot rest and a handle;

the exercise machine control commands are configured to control the resistance of the pedals and the handles;

the one or more movable members further comprise a frame; and is

The exercise machine control commands are also configured to control a tilt percentage of the frame.

9. A method for controlling an exercise machine using a video training program, the method comprising:

encoding exercise machine control commands into a subtitle stream of video to create a video training program, wherein changes to the exercise machine control commands are synchronized with associated changes to training depicted in video;

decoding a subtitle stream for the video to access the exercise machine control command;

displaying the video; and

controlling one or more movable members of the exercise machine using the exercise machine control commands, wherein changes to the control of the one or more movable members of the exercise machine occur in synchronization with associated changes to the workout displayed in the video.

10. The method of claim 9, wherein said exercise machine control commands are encoded as Comma Separated Values (CSVs).

11. The method of claim 10, wherein the comma separated value further comprises training data associated with training depicted in a video of the video training program.

12. The method of claim 11, wherein the training data comprises one or more of:

a target Revolutions Per Minute (RPM) of the training;

a target watt of the training;

the trained target heart rate interval;

a target heart rate for the training;

a current number of seconds from a start of the training; and

a training state of the training, the training state including a warm-up state, a training in-progress state, or a relaxation state.

13. The method of one of claims 9 to 12, wherein the exercise machine control commands are configured to control one or more of:

a speed of one or more movable members of the exercise machine;

a percentage of incline of one or more movable members of the exercise machine; or

Resistance of one or more movable members of the exercise machine.

Background

Stationary exercise machines have become an increasingly popular form of exercise. To combat the boredom and boredom often experienced by users exercising with these exercise machines, exercise machines are typically sold with many different pre-programmed training programs stored within the electronic devices of the exercise machines. For example, these training programs may include a "fat burning" training program, a "mountain" training program, an "intensity" training program, and/or other training programs.

To enable a user to be more immersed in a workout performed on an exercise machine, some exercise machines are capable of performing a video training program. The video training program typically includes video and corresponding control commands. The video typically depicts a trainer performing the training. When executed during the display of the video, the corresponding control commands typically control the exercise machine to mimic the training depicted in the video as being performed by the trainer. For example, where the trainer is running at 6 miles per hour in the video of the video training program, the corresponding control commands of the video training program may control the treadmill's running belt to also run at 6 miles per hour.

One problem faced by users attempting to perform video training programs on exercise machines is that it may be difficult to maintain synchronization between the video and the corresponding control commands in the video training program. For example, where a video in a video training program experiences a delay, the corresponding control commands of the video training program may not be synchronized with the video, thereby causing an inconsistency between what the user sees in the video and the user's experience on the exercise machine. For example, where a video in a video training program on a treadmill shows a trainer transitioning from running at 5 miles per hour to running at 6 miles per hour, if the video buffers or experiences some other delay near the time the transition is depicted in the video, the corresponding control command in the video training program may lead the video, causing the treadmill's tread belt to accelerate from running at 5 miles per hour to running at 6 miles per hour before the transition depicted in the video. This lack of synchronization between the video and the corresponding control commands in the video training program may be disconcerting or even dangerous to the user of the exercise machine and may limit the ability of the user to be sufficiently immersed in the training performed on the exercise machine to effectively combat boredom and boredom.

Another problem faced by users attempting to perform video exercise programs on exercise machines is that the user's fitness level may be higher or lower than optimal for the exercise being performed in the video. In these cases, to enable the user to adjust the video training program to better match the user's fitness level, the video training program may enable the user to manually override the control commands. Unfortunately, however, the adjustments that require the video training program to be manually performed by the user may detract from the user's enjoyment and may result in the user inadvertently operating the exercise machine at a level that is not optimal for the user's fitness level. Moreover, manual adjustments to the video training program on the exercise machine may result in a lack of integrity between what the user sees in the video and the user's experience on the exercise machine. This lack of integrity between the video and the manual override control commands in the video training program may be disconcerting to the user of the exercise machine and may limit the ability of the user to be sufficiently immersed in the training performed on the exercise machine to effectively combat boredom and boredom.

The subject matter claimed herein is not limited to implementations that solve any disadvantages or that operate only in environments such as those described above. Rather, this background is provided merely to illustrate one example area of technology in which some embodiments described herein may be practiced.

Disclosure of Invention

In one aspect of the present disclosure, a method for controlling an exercise machine using a video training program may include capturing a video including a depiction of a training performed on a trainer at a remote location from the exercise machine. The method may further include encoding, at the remote location, an exercise machine control command into a subtitle stream of the video to create a video training program, the exercise machine control command including a plurality of programming rate intervals corresponding to depictions in the video that perform training on the trainer. The method may also include decoding the subtitle stream for the video at a local location local to the exercise machine to access the exercise machine control commands. The method may further include executing a video training program at the local location to continuously control one or more movable members of the exercise machine at the current difficulty level using exercise machine control commands, continuously displaying video, and continuously monitoring the user's actual heart rate. The method may further include at least periodically determining that the user's actual heart rate interval is not equal to the current programming heart rate interval, and that the user's actual heart rate does not trend toward the current programming heart rate interval at least a threshold heart rate trend rate. The method may also include adaptively adjusting the video training program in response to the periodic determination by adjusting the current difficulty level up if the actual heart rate interval is lower than the current programming heart rate interval or by adjusting the current difficulty level down if the actual heart rate interval is higher than the current programming heart rate interval.

Another aspect of the present disclosure may include any combination of the above-mentioned features, and may further include that the changes to the exercise machine control commands of the video training program are synchronized with associated changes to the depiction of the training performed by the trainer in the video of the video training program, and that the changes to the control of the one or more movable members of the exercise machine occur in synchronization with associated changes to the training displayed in the video.

Another aspect of the present disclosure may include any combination of the features mentioned above, and may further include transmitting the video training program in a live manner from the remote location to the local location, to enable decoding and execution to occur during training by the trainer at the remote location, and to enable training to be performed on the exercise machine at the local location mimicking training performed by the trainer at the remote location.

Another aspect of the present disclosure may include any combination of the features mentioned above, and may also include or be stand alone by including a method for controlling an exercise machine using a video training program, which may include: encoding, remotely from an exercise machine, exercise machine control commands of a video training program into a subtitle stream of video of the video training program; decoding a subtitle stream of video locally at the exercise machine to access exercise machine control commands; displaying the video locally at the exercise machine; and controlling one or more movable members of the exercise machine locally to the exercise machine using exercise machine control commands.

Another aspect of the present disclosure may include any combination of the features mentioned above, and may also include that changes to the exercise machine control commands are synchronized with associated changes to the workout depicted in the video, and that changes to the control of the one or more movable members of the exercise machine occur in synchronization with associated changes to the workout depicted in the video.

Another aspect of the present disclosure may include any combination of the above-mentioned features, and may also include capturing video depicting the training remotely from the exercise machine.

Another aspect of the present disclosure may include any combination of the above-mentioned features, and may also include encoding exercise machine control commands as Comma Separated Values (CSVs). The comma separated values may also include training data associated with training depicted in the video of the video training program. The training data may include one or more of: a target Revolutions Per Minute (RPM) of training, a target watt of training, a target heart rate interval of training, a target heart rate of training, a current number of seconds since the start of training, and a training state of training including a warm-up state, a training in-progress state, or a relaxation state.

Another aspect of the present disclosure may include any combination of the features mentioned above, and may also include the exercise machine control commands being configured to control one or more of: a speed of one or more movable members of the exercise machine, a percentage of incline of one or more movable members of the exercise machine, or a resistance of one or more movable members of the exercise machine.

Another aspect of the present disclosure may include any combination of the above-mentioned features, and may further include the exercise machine being a treadmill, the one or more movable members including a tread belt, the exercise machine control command configured to control a speed of the tread belt, the one or more movable members further including a tread plate, and the exercise machine control command further configured to control a slope percentage of the tread plate.

Another aspect of the present disclosure may include any combination of the above-mentioned features, and may further include the exercise machine being an exercise bicycle, the one or more movable members including pedals, the exercise machine control command configured to control a resistance of the pedals, the one or more movable members further including a frame, and the exercise machine control command further configured to control a percentage of incline of the frame.

Another aspect of the present disclosure may include any combination of the above-mentioned features, and may further include the exercise machine being an elliptical machine, the one or more movable members including pedals and handles, the exercise machine control commands configured to control resistance of the pedals and handles, the one or more movable members further including a frame, and the exercise machine control commands further configured to control a percentage of inclination of the frame.

Another aspect of the present disclosure may include any combination of the features mentioned above, and may also include performing encoding of exercise machine control commands into a subtitle stream of video after the video is captured.

Another aspect of the present disclosure may include any combination of the features mentioned above, and may also include performing encoding of exercise machine control commands into a subtitle stream of video in synchronization with the capturing of video.

Another aspect of the present disclosure may include any combination of the features mentioned above, and may further include transmitting the video exercise program in a live manner from a location remote from the exercise machine to a location local to the exercise machine, to enable decoding, display, and control to occur during performance of the exercise by the trainer at the location remote from the exercise machine, and to enable performance of the exercise by a user on the exercise machine that mimics performance of the exercise by the trainer at the location remote from the exercise machine.

Another aspect of the present disclosure may include any combination of the features mentioned above, and may also include or be self-contained by including a method for dynamically adjusting a video training program on an exercise machine based on heart rate monitoring, which may include executing the video training program at the exercise machine. The exercise machine may include one or more movable members. The video training program may include a video depicting a trainer performing a training and a plurality of programming rate intervals corresponding to the depiction of the trainer in the video. The method may further include continuously controlling the one or more movable members at the current difficulty level, continuously displaying a video, and continuously monitoring the actual heart rate of the user. The method may further include at least periodically determining that the user's actual heart rate interval is not equal to the current programming heart rate interval, and that the user's actual heart rate does not trend toward the current programming heart rate interval at least a threshold heart rate trend rate. The method may also include adaptively adjusting the video training program in response to the periodic determination by adjusting the current difficulty level up if the actual heart rate interval is lower than the current programming heart rate interval or by adjusting the current difficulty level down if the actual heart rate interval is higher than the current programming heart rate interval.

Another aspect of the disclosure may include any combination of the above-mentioned features, and may also include: the periodic determination further includes at least periodically determining that an elapsed time since the video training procedure began execution is greater than a warm-up time threshold.

Another aspect of the disclosure may include any combination of the above-mentioned features, and may also include: the periodic determination further includes at least periodically determining that an elapsed time since the video training program began execution is less than a warm-up time threshold and that the actual heart rate interval is higher than the current programming heart rate interval.

Another aspect of the disclosure may include any combination of the above-mentioned features, and may also include: the periodic determination further includes at least periodically determining that a remaining time in the current programming heart rate interval is greater than a remaining time threshold.

Another aspect of the disclosure may include any combination of the above-mentioned features, and may also include: continuously monitoring the actual heart rate of the user includes continuously monitoring the actual heart rate of the user at least once per second.

Another aspect of the disclosure may include any combination of the above-mentioned features, and may also include: the periodic determination is performed once in a time period of every 10 seconds.

Another aspect of the disclosure may include any combination of the above-mentioned features, and may also include: any actual heart rate determined to be an outlier is not used in performing the periodicity determination.

Another aspect of the disclosure may include any combination of the above-mentioned features, and may also include: the difficulty levels to which the current difficulty level may be adjusted include a baseline difficulty level, a limited number of positive difficulty levels that are more difficult than the baseline difficulty level, and a limited number of negative difficulty levels that are less difficult than the baseline difficulty level.

Another aspect of the present disclosure may include any combination of the above-mentioned features, and may also include the current difficulty rating being initially set to the baseline difficulty rating.

Another aspect of the present disclosure may include any combination of the above-mentioned features, and may also include initially setting a current difficulty level based on a user's performance history on the exercise machine.

Another aspect of the disclosure may include any combination of the above-mentioned features, and may also include: the exercise machine includes one or more actuators configured to control one or more movable members.

Another aspect of the present disclosure may include any combination of the above-mentioned features, and may further include that the exercise machine is a treadmill, the one or more movable members include a tread belt, and the current difficulty rating of the tread belt includes a speed and/or a slope percentage of the tread belt.

Another aspect of the present disclosure may include any combination of the above-mentioned features, and may also include the exercise machine being an exercise bicycle, the one or more movable members including pedals, and the current difficulty rating of the pedals including resistance applied to the pedals.

Another aspect of the present disclosure may include any combination of the above-mentioned features, and may further include the exercise machine being an elliptical machine, the one or more movable members including pedals and handles, and the current difficulty rating of the pedals and handles including resistance applied to the pedals and handles.

Another aspect of the present disclosure may include any combination of the above-mentioned features, and may further include that the exercise machine is a rowing machine, the one or more movable members include a rowing bar, and the current difficulty rating of the rowing bar includes a resistance applied to the rowing bar.

It is to be understood that both the foregoing summary of the invention and the following detailed description are illustrative, and are not restrictive of the invention as claimed.

Drawings

Embodiments will be described and explained with additional specificity and detail through the use of the accompanying drawings in which:

FIG. 1 illustrates a flow diagram of an example exercise system for controlling an exercise machine using a video training program;

FIG. 2 illustrates a block diagram of an example exercise machine that may be controlled using a video training program;

3A-3D illustrate video frames and charts that may be employed in controlling an exercise machine using exercise machine control commands of a video training program encoded into a subtitle stream of video of the video training program;

FIG. 4A shows a graph of a heart rate interval of a user based on the resting heart rate and the maximum heart rate of the user;

FIG. 4B shows a chart of programmed heart rate intervals for a video training program;

5A-5D illustrate video frames and charts that may be employed in dynamically adjusting a video training program on an exercise machine based on heart rate monitoring;

6A-6B illustrate a flow chart of an example method for controlling an exercise machine using a video training program; and

FIG. 7 illustrates an example computer system that may be employed when controlling an exercise machine using a video training program.

Throughout the drawings, identical reference numbers designate similar, but not necessarily identical, elements.

Detailed Description

While conventional stationary exercise machines typically include a plurality of conventional exercise programs stored within the electronic devices of the exercise machine, these conventional exercise programs are generally not effective in enabling a user to be immersed in the exercises performed on the exercise machine. Accordingly, some exercise machines can be updated with a video training program that includes a video of the trainer performing the training in addition to the corresponding control commands that control the exercise machine to mimic the training performed by the trainer in the video. For example, in the case where the trainer is running at 6 miles per hour in a video (along a real world path or on a treadmill), the corresponding control commands may control the treadmill's tread belt to also run at 6 miles per hour.

Unfortunately, however, it is difficult to maintain synchronization between the video and the corresponding control commands in the video training program. For example, where a video of a video training program experiences a delay due to network limitations, storage limitations, or processing limitations, the corresponding control commands may become out of sync with the video, resulting in the user's viewing of the video being inconsistent with the user's experience on the exercise machine. For example, where a video in a video training program on a treadmill shows the trainer transitioning from running at 10 miles per hour to running at 4 miles per hour, if the video is buffered for a few seconds (due to network limitations, storage limitations, or processing limitations) near the transition time in the video, the corresponding control command may lead the video, causing the treadmill's tread belt to prematurely slow down from running at 10 miles per hour to running at 4 miles per hour. In this example, the lack of synchronization between the video and the corresponding control commands may be disconcerting or even dangerous to a user of the treadmill, as the treadmill may slow down before the user anticipates that the treadmill slows down, which may limit the user's ability to become sufficiently immersed in the training performed on the treadmill to effectively combat boredom and boredom.

Furthermore, the difficulty of maintaining synchronization between video and corresponding control commands in a video training program may be exacerbated where the video is live and depicts a live event. For example, where a video in a video training program depicts a live marathon, a user may be able to perform training that mimics the live marathon on their treadmill in their home while the live marathon is in progress at a remote location, which may enable the user to be immersed in the training performed on the treadmill as they may feel like they are participating in the live marathon. However, network limitations, storage limitations, or processing limitations may prevent video from the video training program from keeping up with the actual live marathon, or cause the video to jump ahead relative to the actual live marathon, which may cause the control commands to lead or lag the video. The lack of synchronization between the video and the corresponding control commands may be uncomfortable or even dangerous for the user of the treadmill, as the treadmill may accelerate before the user anticipates acceleration of the treadmill or decelerate after the user anticipates deceleration, which may limit the user's ability to be adequately immersed in the exercise performed on the treadmill by impeding the user's perception as if they were participating in a live marathon.

Further, in some cases, the user's fitness level may be higher or lower than the optimal level for the training being performed in the video of the video training program. In these cases, the video training program may allow the user to manually override the control commands in order to enable the user to adjust the video training program to better match the user's fitness level. Continuing with the previous example, in the case where the trainer is running at 6 miles per hour in the video, but the fitness level of the user is high enough to make it too easy for the user to run at 6 miles per hour, the user may manually override the control commands to control the treadmill's tread belt to run at 10 miles per hour. Alternatively, in the event that the user's fitness level is low enough to run at a speed of 6 miles per hour that is too difficult for the user, the user may manually override the control commands to control the treadmill's tread belt to run at a speed of 2 miles per hour. Unfortunately, however, the need for manual adjustment of the video training program by the user may detract from the user's enjoyment and may result in the user inadvertently operating the exercise machine at a level that is not optimal for the user's fitness level.

Moreover, manual adjustments to the video training program on the exercise machine may result in a lack of integrity between what the user sees in the video and the user's experience on the exercise machine. Continuing with the previous example, where the video on the treadmill shows the trainer running at a speed of 6 miles per hour, but the user has manually overridden the control commands to control the treadmill's tread belt to run at a speed of 2 miles per hour, the video may depict the trainer running while the user is simply walking at a significantly slower pace than the trainer. Alternatively, where the video on the treadmill shows the trainer running at 6 miles per hour, but the user has manually overridden the control commands to control the treadmill's running belt to run at 10 miles per hour, the video may depict the trainer running while the user is running at a significantly faster pace than the trainer. This lack of integrity between the video and the manually overridden control commands in the video training program may be uncomfortable for the user of the exercise machine and may limit the ability of the user to be sufficiently immersed in the training performed on the exercise machine to effectively combat boredom and boredom.

Some embodiments disclosed herein may include a method for controlling an exercise machine using a video training program. For example, a method may include remotely capturing video from an exercise machine depicting performance of a training session of a video training program. The method may then include encoding exercise machine control commands of the video training program into a video subtitle stream (also referred to as a closed caption stream) remotely from the exercise machine. Where the video training program depicts live training, the encoding may occur in synchronization with the capturing of the video. Alternatively, where the video training program depicts pre-recorded training, the encoding may occur after the capture of the video. The video training program may then be transmitted to the exercise machine, and the method may include various actions performed locally at the exercise machine, such as decoding a subtitle stream of the video to access exercise machine control commands, and controlling one or more movable members of the exercise machine using the exercise machine control commands concurrently with displaying the video.

Due to the fact that frames from the video are timed (e.g., linked or associated) with frames of the subtitle stream in the video, the encoding of control commands in the subtitle stream of the video may maintain synchronization of the video and corresponding control commands. This synchronization between the video and the corresponding control commands may enable the user to be sufficiently immersed in the training performed on the exercise machine to avoid the boredom and boredom often experienced by users of the exercise machine.

Further, in another example of a method for controlling an exercise machine using a video training program, the method may include executing the video training program at the exercise machine, continuously monitoring an actual heart rate of a user, and periodically determining at least that the user's actual heart rate interval is not equal to a current programming heart rate interval of the video training program. The method may further include periodically determining that the user's actual heart rate does not trend toward the current programming heart rate interval by at least a threshold heart rate trend rate. In response, the method may further comprise adaptively adjusting the video training program by adjusting the current difficulty level up if the actual heart rate interval is lower than the current programming heart rate interval, or by adjusting the current difficulty level down if the actual heart rate interval is higher than the current programming heart rate interval.

By monitoring not only the user's current heart rate, but also the direction and speed of the user's heart rate trend (e.g., the slope of the user's heart rate), some embodiments may avoid changing the current difficulty level too frequently. Furthermore, in some implementations, to avoid the current difficulty level experienced by the user being distinct from the difficulty level seen by the user in the video, changes to the current difficulty level may be limited to avoid changing the difficulty level too significantly. As a result of not changing the current difficulty level too frequently and/or too significantly, the enjoyment of the user may be increased, inadvertent operation of the exercise machine at a level that is not optimal for the fitness level of the user may be avoided, and/or integrity between the trainer's training shown in the video and the actual training performed by the user may be maintained, thus enabling the user to be sufficiently immersed in the training performed on the exercise machine to avoid boredom and boredom that is often experienced by the user of the exercise machine.

Turning now to the drawings, FIG. 1 illustrates a flow diagram of an example exercise system 100 for controlling an exercise machine using a video training program. Exercise system 100 may include a remote location 102 and a local location 104 connected by a network 118.

In some implementations, network 118 may be configured to communicatively couple any two devices in exercise system 100 to each other and/or to other devices. In some implementations, the network 118 can be any wired or wireless network or combination of networks configured to send and receive communications between systems and devices. In some implementations, the network 118 may include a Personal Area Network (PAN), a Local Area Network (LAN), a Metropolitan Area Network (MAN), a Wide Area Network (WAN), a Storage Area Network (SAN), the internet, or some combination thereof. In some embodiments, the network 118 may also be coupled to or may include a portion of a telecommunications network, including telephone lines, for transmitting data in a variety of different communication protocols, such as a cellular network or a voice over IP (VoIP) network.

In remote location 102, exercise device 100 may include video cameras 106a or 106b, which may be used to capture video of the trainee 108a or 108b performing the training, and which include stabilization capability to avoid excessive jitter in the captured video. For example, video camera 106a may be employed by photographer 110a to capture video of trainer 108a performing a training in which trainer 108a runs live marathon. Similarly, video camera 106b may be employed by photographer 110b to capture video of trainer 108b performing a training in which trainer 108b bikes in a live road bike race. In either example, the result may be a captured video that may be sent to remote server 112 for further processing. The video may be formatted in any of a variety of video formats, at least some of which are capable of supporting subtitle streams. Some example formats may include, but are not limited to, MPEG-4, dynamic adaptive streaming over HTTP (MPEG-DASH), and HTTP Live Streaming (HLS).

Next, a producer (not shown) may utilize computer 114 to input exercise machine control commands for the video into a video training program, which may be encoded into a subtitle stream for the video, or may be encoded separately from the video. For example, in the case of making video for use as a live video training program, the producer may use computer 114 to input exercise machine control commands in synchronization with the video camera 110a or 110b using video camera 106a or 106b to capture video of the trainee 108a or 108b performing the training (e.g., during a live event). In this example, the producer may also give corresponding instructions to the trainer, e.g. through headphones worn by the trainer, to help the trainer and producer to follow a common training script or plan synchronously. Alternatively, where the video is made for use in a pre-recorded video training program, the producer may use computer 114 to enter exercise machine control commands after camera 110a or 110b captures video of trainer 108a or 108b using video camera 106a or 106b (e.g., minutes, hours, or days after a live event).

In some embodiments, the control commands may be encoded into a subtitle stream for the video, which may be a non-generic subtitle stream. For example, where a first subtitle stream (e.g., subtitle stream 1) is typically used for english subtitles, a second subtitle stream (e.g., subtitle stream 2) is typically used for spanish subtitles, and a third subtitle stream (e.g., subtitle stream 3) is typically not used, the third subtitle stream (e.g., subtitle stream 3) may be used to encode exercise machine control commands. The video training program, including the captured video and control commands (which may be encoded in a subtitle stream for the video, or may be encoded separately from the video), may then be transmitted from the remote server 112 at the remote location 102 to the local server 116 at the local location 104 over the network 118.

A video training program may then be transmitted from local server 116 for use in conjunction with exercise machine 120a, 120b, 120c, or 120 d. For example, a video training program may be sent from local server 116 to a console 122a, 122b, 122c, or 122d of exercise machine 120a, 120b, 120c, or 120d, which may include a display such as a touch screen display. Alternatively, a separate tablet computer 124 may serve as or may function in conjunction with a console for exercise machines 120a, 120b, 120c, or 120d, and may also include a display, such as a touch screen display. Tablet computer 124 may communicate with console 122a, 122b, 122c, or 122d and/or with exercise machine 120a, 120b, 120c, or 120d via a network connection, such as a bluetooth connection. In either example, video and control commands (which may be encoded in a subtitle stream for the video) may be decoded and/or accessed. The console 122a, 122b, 122c, or 122d and/or tablet 124 may then display video from a video training program (e.g., of the trainer 108a or 108b performing a marathon or road bike race at the remote location 102) while simultaneously using the control commands to control one or more movable members of the exercise machine 120a, 120b, 120c, or 120 d.

In embodiments where the control commands are encoded in a subtitle stream for a video, encoding the control commands in the subtitle stream maintains synchronization of the video and corresponding control commands due to the fact that frames from the video in the video are timed with frames of the subtitle stream. This synchronization in the video training program between the video and the corresponding control commands may enable the user to be immersed in training on the exercise machine 120a, 120b, 120c, or 120d, which may help the user avoid boredom and boredom that users of exercise machines often experience.

Additionally, during a workout performed by the user 109 using a video workout routine on the exercise machine 120a, 120b, 120c, or 120d, the heart rate of the user 109 may be monitored by the console 122a, 122b, 122c, or 122d and/or the tablet 124. This heart rate monitoring may be achieved by wirelessly (e.g. by bluetooth or Ant +) receiving continuous heart rate measurements from a heart rate monitoring device worn by the user 109, such as a heart rate belt 111a or heart rate meter 111b or other wearable heart rate monitor. Alternatively, the heart rate monitoring device may be built into another device, such as into the handles or grips of the exercise machines 120a, 120b, 120c, or 120 d.

The exercise machine 120a is shown in fig. 1 as a treadmill. Treadmill 120a may include a plurality of different movable members including tread belt 126a and tread plate 126b, which may include one or more operating parameters that may be selectively adjustable within a limited range. During the performance of a workout using a video workout routine on the treadmill 120a, the tread belt 126a may be rotated and the tread table 126b may be tilted. One example of an operating parameter on treadmill 120a is the speed of tread belt 126 a. The running belt 126a may rotate at different speeds within a limited range. An actuator (see fig. 2), such as a belt motor, may selectively adjust the speed at which the tread belt 126a rotates within a limited range. Another example of an operating parameter on treadmill 120a is the incline of deck 126 b. The deck 126b may be selectively inclined to different angles within a limited range. An actuator, such as a tilt motor, can selectively adjust the tilt of the tread plate 126b within a limited range.

Exercise machine 120b is shown in fig. 1 as an elliptical machine. The elliptical machine 120b may include a number of different movable members, including a flywheel 126c, pedals or pedals 126d, and a handle 126e, that include one or more operating parameters that can be selectively adjusted within a limited range. During the performance of a workout using a video workout routine on the elliptical machine 120b, the movement of the pedals or pedals 126d and the handle 126e may cause the flywheel 126c to rotate. One example of an operating parameter on the elliptical machine 120b is the amount of resistance applied to the flywheel 126 c. Different amounts of resistance may be applied to the flywheel 126c to make movement of the pedals or pedals 126d and the handle 126e more or less difficult. An actuator, such as a brake, may be used to selectively adjust the amount of resistance applied to the flywheel 126 c. Another example of an operating parameter on the elliptical machine 120b is the inclination of the foot pedal or pedal 126 d. The pedals or footplates 126d may be inclined at different angles within a limited range. An actuator, such as a tilt motor, can selectively adjust the tilt of the pedals or pedals 126d within a limited range. Yet another example of an operating parameter on exercise machine 120b is the step size of pedals or pedals 126d and/or handles 126 e. The step size of the pedals or pedals 126d and/or the handle 126e can be adjusted to different distances within a limited range. Actuators such as step motors can selectively adjust the step size of pedals or pedals 126d and/or handle 126e within a limited range.

Exercise machine 120c is shown in fig. 1 as an exercise bicycle. Exercise bicycle 120c may include a number of different movable members, including flywheel 126f, pedals 126g, and frame 126h, that include one or more operating parameters that can be selectively adjusted within a limited range. During the performance of a workout using a video workout routine on the exercise bike 120c, the movement of the pedals 126g may cause the flywheel 126f to rotate. One example of an operating parameter on exercise bike 120c is the amount of resistance applied to flywheel 126 f. Different amounts of resistance may be applied to the flywheel 126f to make rotation of the pedal 126g more or less difficult. An actuator, such as a brake, may be used to selectively adjust the amount of resistance applied to the flywheel 126f within a limited range. Another example of an operating parameter on exercise bike 120c is the position of frame 126 h. The frame 126h may be inclined forward, backward, or left and right within a limited range. An actuator, such as a tilt motor, can selectively adjust the position of the frame 126h within a limited range.

Exercise machine 120d is shown in fig. 1 as a rowing machine. The rowing machine 120d may include a number of different movable members including a flywheel 126i, a rowing bar 126j, and a seat 126k that include one or more operating parameters that can be selectively adjusted within a limited range. During training using the video training program on the rowing machine 120d, the movement of the rowing bar 126j may rotate the flywheel 126 i. One example of an operating parameter on the rowing machine 120d is the amount of resistance applied to the flywheel 126 i. Different amounts of resistance may be applied to the flywheel 126i to make pulling of the paddle 126g more or less difficult. An actuator, such as a brake, may be used to selectively adjust the amount of resistance applied to the flywheel 126i within a limited range.

FIG. 2 illustrates a block diagram of an example exercise machine 120 that may be controlled using a video training program. Exercise machine 120 of FIG. 2 may represent, for example, any of exercise machines 120a, 120b, 120c, or 120d of FIG. 1, and may include similar components thereto.

As disclosed in fig. 2, exercise machine 120 may include a processing unit 150, a receiving port 152, an actuator 154, and a movable member 126. The movable member 126, which may be similar to, for example, any of the movable members 126 a-126 k of fig. 1. The processing unit 150 may be communicatively connected to the receiving port 152 and may be included within a console 122, which may be similar to, for example, a console in consoles 122a, 122b, 122c, or 122d of fig. 1. The processing unit 150 may also be communicatively connected to an actuator 154. In response to control commands executed by the processing unit 150, the actuator 154 may selectively adjust one or more operating parameters of the movable member 126 within a limited range.

Data, including data from a video training program, may be received by exercise machine 120 through receiving port 152. As previously described, the video training program may include video as well as control commands. The control commands may provide control instructions to an exercise machine (e.g., a treadmill, elliptical, exercise bicycle, or rowing machine). The control commands may include, for example, control commands for belt motors, tilt motors, and other actuators. In addition to the actuator control commands, the control commands may also include distance control commands, time control commands, and/or heart rate interval control commands. These control commands may provide a series of actuator control commands for execution at a particular time or at a particular distance. For example, a control command for bringing the actuator to a certain level for a certain amount of time or a certain distance. These control commands may also provide a series of actuator control commands for execution at a particular time or distance based on the user's monitored heart rate or heart rate trend over time. For example, a control command for an actuator may specify a certain heart rate interval for a certain amount of time or distance, and the difficulty level of the control command may be dynamically adjusted based on the monitored heart rate of the user to cause or maintain the user in the certain heart rate interval for the certain amount of time or distance.

Using control commands in the video training program received at the receive port 152, e.g., decoded from a subtitle stream of video of the video training program, the processing unit 150 may control the actuators 154 on the exercise machine 120 in sequence and at a time or distance specified by the control commands. For example, actuator control commands that provide processing unit 150 with commands for controlling a belt motor, tilt motor, flywheel brake, step motor, or other actuator may be included in control commands received in a video training program at exercise machine 120.

Actuator control commands may be received for different time periods or distance periods of an exercise. For example, a ten minute workout may have twenty different control commands that provide different control commands to the processing unit 150 for controlling the actuators every thirty seconds. Alternatively, a ten mile workout may have twenty different control commands that provide different control commands to the processing unit for controlling the actuators every half mile. The training may be of any duration or distance, and the different control commands may be received at any time or distance during the training. Alternatively, a 5 minute training may have 300 different control commands that provide the processing unit 150 with different control commands for controlling the actuators once per second.

The control commands received in the video training program at exercise machine 120 may be executed by processing unit 150 in a number of different ways. For example, the control command may be received and then stored into a read/write memory included in the processing unit 150. Alternatively, control commands may be streamed to exercise machine 120 in real-time. Control commands may also be received and/or executed from a portable storage device, such as a USB memory stick or SD card.

The video training program may include a plurality of control commands that provide instructions for different types of exercise machines. For example, a video training program may include a first set of control commands for controlling a belt motor and a tilt motor on a treadmill, and a second set of control commands for controlling a flywheel brake, a tilt motor, and a step motor of an elliptical machine. Where the exercise machine 120 is a treadmill, the processing unit 150 of the exercise machine 120 may be configured to recognize and select a first set of control commands that provide instructions to the treadmill while ignoring a second set of control commands that provide instructions to the elliptical machine. Similarly, where exercise machine 120 is an elliptical machine, processing unit 150 of exercise machine 120 may be configured to recognize and select a second set of control commands that provide instructions for the elliptical machine while ignoring the first set of control commands that provide instructions for the treadmill.

In addition to identifying and selecting a compatible set of control commands, processing unit 150 may also apply a sizing restriction (sizing) to the control commands before the control commands may be executed by exercise machine 120. As well as identifying compatible sets of control commands, the processing unit 150 may use the reference data to determine whether a sizing restriction is necessary and, if necessary, apply the sizing restriction. Due to the fact that movable members 126 on exercise machine 120 have operating parameters that are adjustable only within a limited range, it may be necessary to apply sizing restrictions to compatible control commands. Thus, even if two exercise machines have the same type of actuator (i.e., both the treadmill and elliptical machines may have tilt motors), the control command set for that actuator may not be compatible with both exercise machines.

Fig. 3A-3D illustrate video frames and charts that may be employed when controlling an exercise machine using exercise machine control commands of a video training program, wherein the exercise machine control commands are encoded into a subtitle stream of video of the video training program. In particular, fig. 3A-3D illustrate frames 300 a-300D of video captured by a camera 110a (see fig. 1) of a trainer 108a performing a training, which may include running marathon along a path 306. 3A-3D also show data graphs 302 a-302D that contain certain relevant data parameters collected during training while corresponding video frames are captured, either manually or automatically, for example, using one or more sensors. Finally, fig. 3A-3D also show Comma Separated Value (CSV) code charts 304 a-304D, which show how data parameters from data charts 302 a-302D are converted and coded into control commands.

The frames 300 a-300 d of the captured video of the trainee 108a of the sport marathon represent frames of video captured continuously every second. However, it should be understood that other intermediate video frames may also be captured, such as 29 intermediate video frames between each of the successive frames 300 a-300 d, resulting in a captured video having 30 frames per second. Only one frame per second is shown in frames 300a to 300D of the video because encoding the control commands of the video training program into the subtitle stream of the video training program occurs only once per second in the example encoding disclosed in fig. 3A to 3D. Other encoding rates are also possible, such as two encodings per second or four encodings per second. In some implementations, the encoding rate may be up to as many times per second as there are frames per second (e.g., in the case of a frame rate of 30 frames per second, the encoding rate may be up to 30 times per second).

As disclosed in frame 300a of fig. 3A, trainer 108a may perform training by running marathon along path 306. As disclosed by data chart 302a, when frame 300a is captured by a video camera, 605 seconds may have elapsed since the start of training, trainer 108a may be running at a pace of 6 miles per hour along a 0.5% incline, trainer 108a may currently be in a heart rate interval of 3, with a heart rate of 150 beats per minute, and may be in a "training state (distinguished from a" warm-up "or" relaxed "training state). As disclosed in the CSV code graph 304a, the data parameters from the data graph 302a may be encoded as "605, 6,0.5,0,0,0,3,150, 1" into the CSV code 305a in the subtitle stream of video timed (e.g., linked or associated) with the frame 300a, "605, 6,0.5,0,0,0,3,150, 1" represents 605 seconds from the start of training, a speed of 6 miles per hour, a slope of 0.5%, a resistance not applicable (N/a represented by 0), a target number of revolutions per minute not applicable (N/a represented by 0), a target watt not applicable (N/a represented by 0), a target heart rate interval of 3, a target heart rate of 150, and a training status of 1 (which represents a training status of "in training"). In some implementations, the CSV code 305a may have all values separated by commas, may have all values as numbers (e.g., numbers between-99999.0 and 99999.0), may have no spaces between values, may encode values in order (e.g., so that the position of each value may be used to interpret the meaning of each value), and may allow for new values if they are appended at the end of the CSV code.

As disclosed in frame 300B of FIG. 3B, trainer 108a may continue to perform training by running Marathon along path 306. As disclosed by data chart 302b, when frame 300b is captured by the video camera device, 606 seconds may have elapsed since the start of training (e.g., an additional one second has elapsed since frame 300a was captured), trainer 108a may still be running at a pace of 6 miles per hour along a 0.5% incline, trainer 108a may still be in heart rate interval 3, but the heart rate is increased 152 times per minute, and may still be in a "training in training" state. As shown in frame 300b, trainer 108a may approach a transition 308 in path 306 where the slope transitions from a relatively gradual slope of 0.5% to a relatively steep slope of 4.5%. As disclosed in the CSV code table 304b, the data parameters from the data table 302b may be encoded as "606, 6,0.5,0,0,0,3,152, 1" into the CSV code 305b in the subtitle stream for the video timed with the frame 300 b.

As disclosed in frame 300C of FIG. 3C, trainer 108a may continue to perform training by running Marathon along path 306. As disclosed by data chart 302c, when frame 300c is captured by the video camera, 607 seconds may have elapsed since the start of training (e.g., an additional one second has elapsed since frame 300b was captured and an additional two seconds has elapsed since frame 300a was captured), trainer 108a may now have slowed down to run at a pace of 5 miles per hour along a 4.5% incline, trainer 108a may still be in heart rate interval 3, but the heart rate increased 156 times per minute, and may still be in a "training state. As shown in frame 300c, the trainer 108a may have traversed a transition 308 in the path 306 where the incline transitions from a relatively flat incline of 0.5% to a relatively steep incline of 4.5% (incline), which may account for the slowed speed and increased heart rate of the trainer 108 a. As disclosed in the CSV code table 304c, the data parameters from the data table 302c may be encoded as "607, 5,4.5,0,0,0,3,156, 1" into the CSV code 305c in the subtitle stream for the video timed with frame 300 c.

As disclosed in frame 300D of FIG. 3D, trainer 108a may continue to perform training by running Marathon along path 306. As disclosed by data chart 302d, when frame 300d is captured by the video camera device, 608 seconds may have elapsed since the start of training (e.g., an additional one second has elapsed since frame 300c was captured, an additional two seconds has elapsed since frame 300b was captured, and an additional three seconds has elapsed since frame 300a was captured), trainer 108a may still run at a pace of 5 miles per hour along a 4.5% incline, trainer 108a may still be in heart rate interval 3, but with a 160 increase in heart rate per minute, and may still be in a "training state of training". As disclosed in the CSV encoding graph 304d, the data parameters from the data graph 302d may be encoded as "608, 5,4.5,0,0,0,3,160, 1" into the CSV encoding 305d in the subtitle stream for the video timed with frame 300 d.

Due to the fact that frames 300a to 300d from the video are timed in the video with the frames of the subtitle stream, the encoding of control commands in the subtitle stream, for example in the CSV encoding 305a to CSV encoding 305d shown in the CSV encoding diagrams 304a to 304d, maintains the synchronization of the video training program and the corresponding control commands of the video training program. For example, even if the video is buffered or otherwise delayed, the subtitle stream will be buffered or otherwise delayed by the same amount, which will maintain synchronization of the video and the corresponding control commands. This synchronization between the video and the corresponding control commands in the video training program may enable the user to be immersed in training on the exercise machine, which may help the user avoid boredom and boredom that users of the exercise machine often experience.

Fig. 4A shows a graph 400 of heart rate intervals of the user 109 based on the resting heart rate and the maximum heart rate of the user 109. The difference between the maximum heart rate and the resting heart rate of the user 109 is referred to as the Heart Rate Reserve (HRR). Some embodiments may calculate the heart rate interval using a reserved heart rate rather than using a simple percentage of the maximum heart rate, which may allow the zone to be calculated based only on the value at which the heart is actually able to beat. As disclosed in graph 400, the user 109 may have a measured or estimated resting heart rate of 65 Beats Per Minute (BPM) and a measured or estimated maximum heart rate of 185 BPM. Based on these two data points, five heart rate intervals of the user 109 may be calculated. In particular, as shown in graph 400, each heart rate interval may be associated with a particular range of heart rates, such as 96BPM to 114BPM for heart rate interval 1 or 173BPM to 192BPM for heart rate interval 5. In some embodiments, prior to performing the video training procedure, the user's resting heart rate and maximum heart rate may be obtained to calculate heart rate interval 1 through heart rate interval 5. Since the resting heart rate and the maximum heart rate may vary from user to user, the calculated heart rate intervals 1 to 5 may also vary from user to user.

In some embodiments, the resting heart rate and the maximum heart rate in graph 400 may be measured or estimated. For example, even though a resting heart rate and a maximum heart rate may be initially estimated for the user 109, then if the user 109 knows their resting heart rate or maximum heart rate, the user 109 may be allowed to override the initial estimates. Further, the user 109 may be provided with instructions on how to properly measure or test their resting heart rate and/or maximum heart rate. For example, treadmill 120a of fig. 1 may be configured to provide a test that may be performed on treadmill 120a to accurately test the maximum heart rate of user 109. This may be a graded test, which becomes progressively more difficult until the user 109 reaches their maximum heart rate. The user 109 can perform the test for as long as possible. When the user 109 ends the test, the treadmill 120a may automatically save the maximum heart rate of the user 109 and then recalculate the heart rate interval shown in the chart 400 for the user 109. Similarly, any time the user 109 adjusts their resting heart rate or maximum heart rate, the heart rate interval of the user 109 may automatically shift to reflect these new values. Furthermore, it is noted that the maximum heart rate of the user 109 may be different for different exercise modalities, e.g. for different exercise machines. For example, the maximum heart rate of the user 109 on the rowing machine 120d (e.g., because the rowing machine is not a weight exercise machine) may be lower than the maximum heart rate on the treadmill 120a (because the treadmill is a weight exercise machine). Thus, for any given user, a different maximum heart rate may be used for different exercise modalities.

Fig. 4B shows a chart 450 of programmed heart rate intervals for a video training program. As disclosed by graph 450, the video training program may include a plurality of programming rate intervals (i.e., interval 2 through interval 5, or Z2 through Z5) corresponding to the depiction of the trainer in the video. In particular, the programming heart rate interval transitions from interval 2 to interval 4, to interval 5, to interval 4, to interval 2, to interval 3, to interval 2, to interval 4, to interval 5, and to interval 4. Each of the transitions may occur at a particular time during the video training program and may correspond to a respective change in the trainer's heart rate interval shown in the video of the video training program. To enable the exercise machine to automatically and adaptively adjust the current difficulty level of the video training program such that the user's heart rate interval closely tracks the programming heart rate interval, the user's heart rate may be continuously monitored. Furthermore, trends in the heart rate of the user may also be taken into account in order to avoid that the current difficulty level changes too frequently and/or too significantly.

Fig. 5A-5D illustrate video frames and data charts that may be employed in dynamically adjusting a video training program on an exercise machine based on heart rate monitoring. In particular, fig. 5A-5D illustrate frames 500 a-500D of video captured by a camera 110a (see fig. 1) of a trainer 108a performing a training, which may include running marathon along a path 506. Further, fig. 5A-5D also show data graphs 502 a-502D that contain certain relevant data parameters. These data parameters may be collected during training while the corresponding video frame is captured, or may be collected at or before the time the corresponding video frame is displayed. These data parameters may be collected manually, for example, by listening to the voice fate of trainer 108 a. Alternatively, these data parameters may be collected automatically, for example, using one or more sensors.

Finally, fig. 5A-5D also show widgets (widgets) 508 a-508D and widgets 510 a-510D, respectively, that may be overlaid on frames 500 a-500D when dynamic adjustments based on heart rate monitoring are active during training. In some embodiments, the dynamic adjustment may be turned on and off by the user, for example, using a "smart HR training" control. Further, in some embodiments, when the user selects the header of any of the widgets 508 a-508 d or 510 a-510 d, the chart 400 of fig. 4A may be displayed.

Frames 500 a-500 d of the video showing trainer 108a running marathon represent video frames captured over time. However, it should be understood that other intermediate video frames may also be captured between each of frames 500 a-500 d, resulting in captured video having additional frames (e.g., having a frame rate of 24, 30, or 60 frames per second).

As disclosed in frame 500a of FIG. 5A, trainer 108a may perform training by running Marathon along path 506. As disclosed by the data graph 502a, upon capture of the frame 500a by the video camera 106a (see fig. 1), the trainer 108a may perform training in and/or may instruct the user to perform training in the current programming heart rate interval of interval 2, which interval 2 corresponds to the personalized current programming heart rate interval range of 115BPM to 134BPM for the user 109 of fig. 4A. As shown by the heart rate training widget 508a and data graph 502a, the previous programming heart rate interval is interval 4, the time since the training began is 450 seconds, the time since the last interval change is 70 seconds, the remaining time in the current programming heart rate interval is 50 seconds, and the remaining time for the training is 1350 seconds. As disclosed in data chart 502a, the heart rate monitoring rate is once per second, the threshold heart rate trend rate is-5 seconds, the warm-up time threshold is 180 seconds, and the user's last ten actual heart rates (in BPM) are 122, 123, 124, 125 and 125. Also as disclosed in data chart 502a, the base difficulty rating is B0Wherein the reference speed is 4MPH and the current difficulty level is B2With a current speed of 4.3 MPH. Finally, the data graph 502a also discloses that the user's actual heart rate is 125BPM, which corresponds to the user's actual heart rate interval for interval 2, and the user's actual heart rate interval range of 115BPM to 134 BPM. Some or all of the data in the data graph 502a may be employed to determine a video training program (frame 5)00a is part of the video training program) should not be dynamically adjusted because the user is already performing in the appropriate interval (i.e., interval 2).

As disclosed by frame 500B and data chart 502B of fig. 5B, trainer 108a may perform training in and/or may instruct the user to perform training in the current programming heart rate interval of interval 3, which corresponds to the personalized current programming heart rate interval range of 135BPM to 153BPM for user 109 of fig. 4A. As shown by the heart rate training widget 508b and data graph 502b, the previous programming heart rate interval is interval 2, the time since training began is 675 seconds, the time since the most recent interval change is 60 seconds, the remaining time in the current programming heart rate interval is 60 seconds, and the remaining time of training is 1125 seconds. As disclosed in data chart 502b, the heart rate monitoring rate is once per second, the threshold heart rate trend rate is +4 seconds, the warm-up time threshold is 180 seconds, and the user's last ten actual heart rates (in BPM) are 152, 153, 154, 155, and 155. Also as disclosed in data chart 502B, the base difficulty rating is B0Wherein the reference speed is 6MPH and the current difficulty level is B2With a current speed of 6.7 MPH. Finally, the data chart 502b also discloses that the user's actual heart rate is 155BPM, which corresponds to the user's actual heart rate interval for interval 4, and the user's actual heart rate interval range of 154BPM to 172 BPM. Some or all of the data in the data graph 502b may be employed to determine that the current difficulty level of the video training program (of which frame 500b is a part) should be dynamically adjusted downward to move the user into the appropriate interval (i.e., from heart rate interval 4 to heart rate interval 3).

As disclosed by frame 500C and data chart 502C of fig. 5C, trainer 108a may perform training in and/or may instruct the user to perform training in the current programming heart rate interval of interval 2, which corresponds to the personalized current programming heart rate interval range of 115BPM to 134BPM for user 109 of fig. 4A. As shown in the heart rate training widget 508c and the data graph 502c, the previously programmed heart rate interval is interval 3, self-trainingThe time since the start of the exercise was 810 seconds, the time since the most recent interval change was 50 seconds, the remaining time in the current programming heart rate interval was 70 seconds, and the remaining time of the exercise was 990 seconds. As disclosed in data chart 502c, the heart rate monitoring rate is once per second, the threshold heart rate trend rate is-4 seconds, the warm-up time threshold is 180 seconds, and the user's last ten actual heart rates (in BPM) are 131, 132, 133, 134, 135, 136, and 137. Also as disclosed in data chart 502c, the base difficulty rating is B0Wherein the reference speed is 4MPH and the current difficulty level is B1With a current speed of 4.2 MPH. Finally, data chart 502c also discloses that the user's actual heart rate is 137BPM, which corresponds to the user's actual heart rate interval of interval 3, and a range of user's actual heart rate intervals of 135BPM to 153 BPM. Some of all of the data in the data chart 502c may be employed to determine that the current difficulty level of the video training program (of which frame 500c is a part) should be dynamically adjusted downward to move the user into the appropriate interval (i.e., from heart rate interval 3 to heart rate interval 2).

As disclosed by frame 500D and data chart 502D of fig. 4D, trainer 108a may perform training in and/or may instruct the user to perform training in the current programming heart rate interval of interval 4, which corresponds to the personalized current programming heart rate interval range of 154BPM to 172BPM for user 109 of fig. 4A. As shown in the heart rate training widget 508d and data graph 502d, the previous programming heart rate interval is zone 2, the time since the start of training is 1020 seconds, the time since the last interval change is 120 seconds, the remaining time in the current programming heart rate interval is 120 seconds, and the remaining time of training is 780 seconds. As disclosed in data chart 502d, the heart rate monitoring rate is once per second, the threshold heart rate trend rate is +5 seconds, the warm-up time threshold is 180 seconds, and the user's last ten actual heart rates (in BPM) are 148, 147, 148, 149, 150, and 150. Also disclosed as data chart 502d, the base difficulty rating is B0Wherein the reference speed is 8MPH and the current difficulty level is B0Which isThe current speed is 8 MPH. Finally, the data chart 502d also discloses that the user's actual heart rate is 150BPM, which corresponds to the user's actual heart rate interval of interval 3, and a range of user's actual heart rate intervals of 135BPM to 153 BPM. Some of all of the data in the data graph 502d may be employed to determine that the current difficulty level of the video training program (of which frame 500b is a part) should be dynamically adjusted upward to move the user into the appropriate interval (i.e., from heart rate interval 3 to heart rate interval 4).

During the video training program in which the heart rate training widgets 508 a-508 d are displayed to the user 109, two states are displayed, namely, (1) a programming state 509 that displays the programming heart rate interval for the entire video training program, and (2) historical states 511 a-511 d that show the user's historical heart rate interval (and/or corresponding heart rate) from the start of the video training program to the current point in time in the video training program. These two displayed states enable the user to track their actual heart rate performance (usage history states 511a to 511d) against the programming heart rate performance (usage state 509) of the video training program.

During a video training procedure in which frames 500 a-500 d from a video are displayed to the user 109, the current difficulty level may be dynamically adjusted based on the monitored heart rate of the user 109 of fig. 4A. However, since the direction and speed of the heart rate trend of the user 109 is also continuously monitored, the video training program may avoid changing the current difficulty level too frequently and/or too significantly. Thus, the enjoyment of the user 109 may be increased, inadvertent operation of the exercise machine at a difficulty level that is not optimal for the fitness level of the user 109 (e.g., the treadmill 120a of fig. 1) may be avoided, and integrity between the training of the trainer 108a shown in frames 500 a-500 d from the video and the actual training performed by the user 109 may be maintained, thus increasing the ability of the user 109 to be more immersive in the training on the exercise machine.

6A-6B illustrate a flow chart of an example method 600 for controlling an exercise machine using a video training program. In some embodiments, method 600 may be performed by one or more applications, devices, or systems, such as video cameras 106 a-106 b, computer devices 114, remote server 112, local server 116, exercise machines 120 a-120 d, consoles 122 a-122 d, and/or tablet 124, or some combination thereof. In these and other embodiments, the method 600 may be performed by one or more processors based on one or more computer-readable instructions stored on one or more non-transitory computer-readable media. The method 600 will now be described in conjunction with fig. 1, fig. 2, fig. 3A-3D, fig. 4A-4B, fig. 5A-5D, and fig. 6.

Prior to the method 600, a user may subscribe to a subscription service (e.g., an IFIT account) that allows the user to access the video training program. The subscription service may store a user profile and historical information related to the user's sleep, nutrition, stress levels, exercise, health, and activity levels (which may be automatically collected via sensors, or manually input by the user). The profile and historical information may be accessed to recommend a particular video training program that will best assist the user in achieving the fitness objectives set by or automatically generated for the user. By providing a high quality video training program, the user may be incentivized to continue to subscribe and the retention rate of the subscriber may be positively influenced. In addition, some video training programs created using the method 600 may be accessed by a user using a pay-per-view model rather than a continuous subscription model. For example, a pay-per-view model may be suitable for rare events or courses, or for one-to-one training courses between a single trainer and a single user.

Further, prior to method 600, a pre-roll video of the video training program may be displayed to the user. For example, there may be several minutes (e.g., 10 minutes) of pre-roll video before the start time of a live or pre-recorded exercise session or sporting event that the user may view while waiting for the session or event to begin. The pre-roll video may include pre-recorded video or live video, or may alternate between the two (e.g., start with pre-recorded video 10 minutes before the start time and then switch to live video of the trainer 5 minutes before the start time). The pre-roll video may include a countdown clock of the start time of the lesson or event. In some implementations, the pre-roll video does not include control commands encoded into the subtitle stream because the encoding begins at the start time of the lesson or event. In other embodiments, there may be pre-lesson or pre-event control commands encoded in the subtitle stream of the pre-roll video, such as control commands to adjust environmental control devices in the room (e.g., to adjust the temperature, lighting, music, etc. of the room).

Method 600 may include capturing a video at act 602. For example, at act 602, video of the trainer 108a performing the training may be captured by the photographer 110a using the video camera 106 a. In this example, the training performed by trainer 108a may be a tramadol, and the video may be sent from video camera 106a to remote server 112 for further processing.

Method 600 may include encoding exercise machine control commands into a subtitle stream of video to create a video training program at act 604. For example, at act 604, computer 114 may be employed by the producer to encode exercise machine control commands into a subtitle stream of video (which is sent to remote server 112) to create a video training program. These exercise machine control commands may be specific to a particular type of exercise machine, such as treadmill 120 a.

In some embodiments, the exercise machine control commands may be encoded as Comma Separated Values (CSVs). For example, at act 604, an exercise machine control command may be encoded into CSV encoding 305a, 305b, 305c, or 305d by the producer using computer device 114.

In some embodiments, the exercise machine control commands may be configured to control one or more of: a speed of one or more movable members of the exercise machine, a percentage of incline of one or more movable members of the exercise machine, or a resistance of one or more movable members of the exercise machine. For example, the CSV code 305a, 305b, 305c, or 305d may include control commands configured to control one or more of the speed (e.g., in the CSV code 2 nd position), the slope percentage (e.g., in the CSV code 3 rd position), or the resistance (e.g., in the CSV code 4 th position) of one or more movable members 126 a-126 h of the exercise machine 120a, 120b, or 120 c.

In some implementations, the comma separated values can also include training data associated with training depicted in the video. The training data may include one or more of: a target Revolutions Per Minute (RPM) of training, a target Watt of training, a target heart rate interval of training, a target heart rate of training, a current number of seconds since the start of training, and a training state of training. In some embodiments, the training state may include a warm-up state, a training in-progress state, or a relaxation state. For example, the CSV encoding 305a, 305b, 305c, or 305d may include training data from the video associated with training depicted in the video, which in this example is tamarasone. The training data may include one or more of: a training target RPM (e.g., at position 5 of the CSV code), a training target watt (e.g., at position 6 of the CSV code), a training target heart rate interval (e.g., at position 7 of the CSV code), a training target heart rate (e.g., at position 8 of the CSV code), a current number of seconds since the start of training (e.g., at position 1 of the CSV code), and a training status of the training (e.g., at position 9 of the CSV code). In this example, the training state may be encoded as 0 for the warm-up state, 1 for the in-training state, and 2 for the mild state.

In some embodiments, changes to the exercise machine control commands may be synchronized with associated changes to the training depicted in the video. For example, when trainer 108a changes from running at an incline of 0.5% to running at an incline of 4.5% (the change is depicted in frames 300b and 300c of the video), the exercise machine control commands encoded with frames 300b and 300c may be synchronized to reflect the change, i.e., the incline percentage should change from 0.5% to 4.5% (compare position 3 of CSV code 305b with position 3 of CSV code 305 c).

In some embodiments, encoding exercise machine control commands into a subtitle stream for video at act 604 to create a video training program may be performed after capturing the video at act 602. For example, where the video training program being produced is intended to be a pre-recorded video training program to be executed by an exercise machine user at some time in the future, the encoding of the subtitle stream at act 604 may be performed by computer 114 (automatically or by the producer) after the capture of the video at act 602 (e.g., minutes, hours, or days after the video was captured).

In some embodiments, encoding exercise machine control commands into a subtitle stream for video at act 604 to create a video training program may be performed in synchronization with capturing video at act 602. For example, where the video workout being produced is intended to be a live video workout routine performed in real-time by an exercise machine user concurrently with live workout (e.g., live exercise machine workout performed during a live event such as a live marathon or live road bike race), the encoding of the subtitle stream at act 604 may be performed by computer 114 (automatically or exercised by the producer) in synchronization with the capturing of the video at act 602 (e.g., during the live event).

Method 600 may include sending a video training program at act 606 and receiving a video training program at act 608. For example, at act 606, remote server 112 may send a video training program, e.g., via network 118 and local server 116, and at act 608, console 122a of exercise machine 120a may receive the video training program, e.g., via network 118 and local server 116.

Method 600 may include performing a video training program at an exercise machine at act 610. For example, at act 602, the console 122a of the treadmill 120a may execute a video training program. The video training program may include a video including frames 500a through 500d, frames 500a through 500d depicting trainer 108a performing a training including a marathon.

Method 600 may include decoding a subtitle stream for video to access an exercise machine control command at act 612. For example, console 122a of exercise machine 120a may decode a subtitle stream of video of a video exercise program to access exercise machine control commands. In this example, the decoding may include interpreting the values stored in the comma separated value encodings 305a, 305b, 305c or 305d (e.g., by the position of each value), for example, by decoding the 7 th position of the CSV encoding as a trained target heart rate interval, and by decoding the 8 th position of the CSV encoding as a trained target heart rate.

In this example, these exercise machine control commands corresponding to heart rate and heart rate intervals may correspond to a depiction of the trainer in the video. For example, the video of the video training program may include frames 500 a-500 d depicting trainer 108a performing training including a marathon. The video training program may also include a plurality of programmed heart rate intervals shown in graph 450 (e.g., programmed heart rate intervals transitioning from interval 2 to interval 4, to interval 5, to interval 4, to interval 2, to interval 3, to interval 2, to interval 4, to interval 5, and to interval 4), and corresponding to the heart rate interval of trainer 108a as depicted by the video.

Method 600 may include decoding a subtitle stream for video to access an exercise machine control command at act 612. For example, console 122a of exercise machine 120a may decode a subtitle stream of video to access exercise machine control commands. In this example, the decoding may include interpreting the values stored in the comma separated value encodings 305a, 305b, 305c, or 305d (e.g., by the position of each value).

Method 600 may include displaying a video at act 614 and controlling one or more movable members of an exercise machine using exercise machine control commands at act 616. In some embodiments, changes to the control of one or more movable members of the exercise machine may occur in synchronization with associated changes to the workout displayed in the video. For example, console 122a of exercise machine 120a may display a video, including frames 300a through 300d (which may be interlaced with other frames because frames 300a through 300d are successively spaced one second apart). At the same time, console 122a of exercise machine 120a may control tread belt 126a and tread plate 126b of exercise machine 120a using exercise machine control commands. In this example, when the console 122a receives and decodes the CSV code 305b, simultaneously with displaying the frame 300b, the console 122a may control the tread 126a to run at a speed of 6 miles per hour based on the control command "6" found at the 2 nd position of the CSV code 305b, and may control the tread 126b to tilt to 0.5% based on the control command "0.5" found at the 3 rd position of the CSV code 305 b. Similarly, in this example, when the console 122a receives and decodes the CSV code 305c, concurrently with displaying frame 300c, which shows a change in the trainer 108 a's training from running at 6mph to running at 5mph and running at 0.5% incline to running at 4.5% incline, the console 122a may control the running belt 126a to change from running at 6mph to 5mph based on the control command "5" found at the 2 nd position of the CSV code 305c, and may control the running board 126b to change from 0.5% incline to 4.5% incline based on the control command "4.5" found at the 3 rd position of the CSV code 305 c. In this manner, when the trainer 108a transitions from running at 0.5% incline to running at 4.5% incline in the video, the treadmill 120a displaying the video as part of the training may likewise transition its running deck 126b from 0.5% incline to 4.5% incline, thus mimicking the training by the trainer 108a depicted in the video to the user on the treadmill 120 a.

In some embodiments, the video may be transmitted live at act 606 from a location remote from the exercise machine and received at act 608 at a location local to the exercise machine, such that the performing at act 610, the decoding at act 612, the displaying at act 614, and the controlling at act 616 can occur during the performing of the workout at the location remote from the exercise machine, and such that the performing of the workout on the exercise machine can occur at the location local to the exercise machine that mimics the performing of the workout at the location remote from the exercise machine. For example, where the video training program being produced is intended to be a live video training program executed by an exercise machine user concurrently with live training (e.g., training performed during a live event such as boston marathon, massachusetts), the encoding of the subtitle stream (at act 604) may be performed by a computer 114 employed by a producer at a site at the remote location 102, such as a boston marathon site in massachusetts (e.g., in a production truck parked near the finish line, or in a nearby production studio). The live video training program may then be broadcast live to users located at the local location 104, such as to a home of a user located in california, over a network 118 (e.g., via satellite uplink from a production truck or nearby production studio over the internet, possibly through Amazon Web Services (AWS) that may require a drone or blimp to receive in a jungle or on a mountain or in a canyon or when surrounded by a large building). This may enable a user at his home in california to perform training on treadmill 120a that mimics the running of boston marathon, massachusetts, which is actually done in massachusetts. Furthermore, in addition to control commands encoded in the subtitle stream of the video, other information, such as TWITTER or FACEBOOK or INSTAGRAM comments, or other types of comments received from users or trainers over the internet, for example, via an application or website, may also be encoded in or otherwise included in the video. Such other information may be encoded and/or included on-site (e.g., in a production truck parked near the finish line, or in a nearby production studio).

Method 600 may include continuously controlling one or more movable members of the exercise machine at the current difficulty level at act 618. For example, the console 122a of the treadmill 120a may continuously control the tread belt 126a of the treadmill 120a and/or the tread plate 126b of the treadmill 120a at the current difficulty level. In some embodiments, as discussed in connection with acts 630 and 632, the initial difficulty level may be adjusted as needed throughout the training process to help the user 109 maintain their heart rate in the appropriate heart rate interval.

Method 600 may include continuously displaying the video at act 620. For example, the console 122a of the treadmill 120a may continuously display video of a video training program including frames 500a through 500 d.

Method 600 may include continuously monitoring the user's actual heart rate at act 622. In some embodiments, the continuous monitoring of the user's actual heart rate may include continuously monitoring the user's actual heart rate at least once per second, or at some other regular or irregular interval, such as twice per second, four times per second, eight times per second, once every two seconds, once every four seconds, or once every eight seconds. In some embodiments, the continuous monitoring of the user's actual heart rate may include continuously verifying that the user is actually using the exercise machine. For example, console 122a of treadmill 120a may continuously monitor the actual heart rate of user 109 once per second using heart rate belt 111a or heart rate table 111 b. The console 122a of the treadmill 120a may also continuously verify that the user is actually using the treadmill 120a by analyzing the motor load of the treadmill 120a to identify whether the user is actually applying a load on the motor and/or by analyzing sensor data (e.g., a pressure plate sensor) to identify whether the user is actually present, etc. This may prevent dynamic adjustment of the video training program, for example, if the user is still wearing the heart rate belt 111a or heart rate table 111b but has walked down the tread belt 126a of the treadmill 120 a. Various other methods (other than a pressure plate sensor) may be employed to detect that the user has stepped down the tread belt 126a of the treadmill 120 a. For example, a camera device may be employed to detect whether the user is still running on the tread belt 126 a. Further, although the speed of the tread belt 126a is not slowed, the user's heart rate slowing may be an indication that the user has walked down the tread belt 126 a. Further, other security measures may be implemented for certain users (e.g., pre-adults or elderly or users with morbid obesity), such as implementing a regulator to cause a maximum speed and/or a maximum level of resistance (or maximum workload), which may be associated with the user's age or level of self-identified or detected ability (which may be associated with data stored in the user's online account or profile). For example, a minor may be detected based on less than a threshold amount (e.g., less than 100 pounds) of weight detected on the tread belt 126a (e.g., based on a load on the motor or based on a weight scale).

Method 600 may include determining whether the user's actual heart rate interval is equal to the current programming heart rate interval at act 624. If not (NO at act 624), method 600 may include determining whether the user's actual heart rate trends toward the current programming heart rate interval at least a threshold heart rate trend rate at act 626. If not (NO at act 626), method 600 may include determining whether the actual heart rate interval is above or below the current programming heart rate interval at act 628. If so (lower at act 628), method 600 may include adaptively adjusting the video training program by adjusting the current difficulty level upward at act 630. If so (above at act 628), method 600 may include adaptively adjusting the video training program by adjusting the current difficulty level downward at act 632. In some implementations, acts 624 and 626 can be performed periodically, and then in response, acts 628 and 630, or acts 628 and 632 can be performed. In some implementations, the periodic determinations of acts 624 and 626 may be performed every 10 second period of time or some other regular or irregular time interval, such as every 5 second period of time, every 2 second period of time, every second, every 15 second period of time, or every 20 second period of time. In some implementations, any actual heart rate determined to be an outlier may not be used to perform the periodic determination of acts 624 and 626.

For example, at act 624, console 122a of treadmill 120a may determine that the actual heart rate interval of user 109 (e.g., interval 4 in data chart 502 b) is not equal to the current programmed heart rate interval (e.g., interval 3 in data chart 502 b). Then, at act 626, the console 122a of the treadmill 120a determines that the actual heart rate of the user 109 does not trend toward the current programmed heart rate interval (e.g., interval 3 in the data graph 502 b) at least the threshold heart rate trend rate (e.g., +4 seconds in the data graph 502 b). Then, at act 628, the console 122a of the treadmill 120a determines an actual heart rate interval (e.g., data)Interval 4 in graph 502B) is higher than the current programming heart rate interval (e.g., interval 3 in data graph 502B), and at act 632 the current difficulty level (e.g., current difficulty level B at 6.7 MPH) may be determined by comparing the current difficulty level (e.g., current difficulty level B at 6.7 MPH)2) Down-Regulation (e.g., to the New Current difficulty rating B at 6.3MPH1) To adaptively adjust the video training program.

In another example, at act 624, the console 122a of the treadmill 120a may determine that the actual heart rate interval of the user 109 (e.g., interval 3 in the data chart 502 d) is not equal to the current programming heart rate interval (e.g., interval 4 in the data chart 502 d). Then, at act 626, the console 122a of the treadmill 120a determines that the actual heart rate of the user 109 does not trend toward the current programmed heart rate interval (e.g., +5 seconds in the data graph 502 d) at least the threshold heart rate trend rate (e.g., +5 seconds in the data graph 502 d). Then, at act 628, the console 122a of the treadmill 120a determines that the actual heart rate interval (e.g., interval 3 in the data graph 502 d) is lower than the current programmed heart rate interval (e.g., interval 4 in the data graph 502 d), and at act 630, the current difficulty level (e.g., the current difficulty level B at 8.0 MPH) may be adjusted by adjusting the current difficulty level (e.g., the current difficulty level B at 8.0 MPH)0) Up-regulation (e.g., to a new current difficulty rating B at 8.7MPH1) To adaptively adjust the video training program.

In some implementations, acts 624 and 626 may further include at least periodically determining that an elapsed time since the video training program began execution is greater than a warm-up time threshold. For example, the console 122a of the treadmill 120a, in conjunction with acts 624 and 626, may determine that the elapsed time since the video training program began executing (e.g., 675 seconds in the data chart 502 b) is greater than the warm-up time threshold (e.g., 180 seconds), in which case the current difficulty level will be adjusted up or down because the warm-up period has ended. However, if the opposite is true, the current difficulty level may not be adjusted up because the warm-up period has not yet ended.

In some embodiments, acts 624 and 626 may further include at least periodically determining that an elapsed time since the video training program began execution is less than a warm-up time threshold and that the actual heart rate interval is higher than the current programming heart rate interval. For example, the console 122a of the treadmill 120a, in conjunction with acts 624 and 626, may determine that the elapsed time (e.g., 60 seconds) since the video training program began executing is less than the warm-up time threshold (e.g., 180 seconds) and the actual heart rate interval (e.g., interval 3) is higher than the current programmed heart rate interval (e.g., interval 2), in which case the current difficulty level will be adjusted downward at act 632. This may enable the current difficulty level, which is too difficult at the outset, to be adjusted downward, even during the warm-up period.

In some implementations, acts 624 and 626 may also include at least periodically determining that a remaining time in the current programming heart rate interval is greater than a remaining time threshold. For example, the console 122a of the treadmill 120a may determine, in conjunction with acts 624 and 626, that the remaining time in the current programming rate interval (e.g., 60 seconds in the data chart 502 b) is greater than a remaining time threshold (e.g., 10 seconds), in which case the current difficulty level will be adjusted up or down because the remaining time in the current programming rate interval is sufficient to effect a change in the current difficulty level. However, if the opposite is true, it may not be possible to adjust the current difficulty level up or down, since the time remaining in the current programming rate interval is not sufficient to effect a change in the current difficulty level.

In some implementations, the difficulty levels to which the current difficulty level may be adjusted may include a baseline difficulty level, a limited number of positive difficulty levels that are more difficult than the baseline difficulty level, and a limited number of negative difficulty levels that are less difficult than the baseline difficulty level. In some embodiments, the current difficulty level may be initially set to a baseline difficulty level, or may be initially set based on a user's execution history on the exercise machine. For example, the console 122a of the treadmill 120a may be at a reference difficulty level (e.g., B)07.0MPH), six positive difficulty ratings (e.g., B) that are more difficult than the baseline difficulty rating1=7.5MPH、B2=8.0MPH、B3=8.4MPH、B4=9.0MPH、B59.7MPH andB610.5MPH), and six negative difficulty ratings (e.g., B) that are less difficult than the baseline difficulty rating-1=6.5MPH、B-2=6.0MPH、B-3=5.6MPH、B-4=5.0MPH、B-54.6MPH and B-64.3MPH) to adjust the current difficulty level (e.g., the speed of the tread belt 126 a). In this example, the current difficulty level may be initially set to the baseline difficulty level (e.g., B)07.0MPH) or may be set to the user's most recent or most commonly used difficulty rating in previous training (e.g., if the user was recently at B)-3Class execution, then the current difficulty class may be initially set to B-3=5.6MPH)。

Following the method 600, a back-roll video of the video training program may be displayed to the user. For example, after a live or pre-recorded completion time of an exercise session or sporting event, there may be several minutes (e.g., 10 minutes) of a post-roll video that a user may view after completing the session or event. The post-roll video may include pre-recorded video or live video, or may alternate between the two (e.g., starting with the trainer's live video at completion time and then cutting to pre-recorded video 5 minutes after completion time). In some implementations, the post-roll video does not include control commands encoded into the subtitle stream because the encoding ends at the completion time of the lesson or event. In other embodiments, there may be post-lesson or post-event control commands encoded in the subtitle stream of the post-roll video, such as control commands to adjust environmental control devices in the room (e.g., to adjust the temperature, lighting, music, etc. of the room).

Further, after the method 600 or during the method 600, an archived copy of the live video training program may be created. The archived copy may store the exercise machine control commands along with the video, where the exercise machine control commands are encoded in a subtitle stream, or in some other storage format. In this manner, the live video training program may become an archived video training program.

Further, in some embodiments, method 600 may be employed to convert an older video training program having exercise machine control signals stored in another storage format into exercise machine control signals encoded into a subtitle stream of video. The conversion may be performed programmatically or manually (e.g., immediately upon transmission of a video training program).

In some embodiments, method 600 may result in controlling an exercise machine using a video training program. Unlike conventional methods of controlling an exercise machine, which lack reliable synchronization between video and corresponding training control commands in a video training program, method 600 may maintain synchronization of video and corresponding control commands in a video training program due to the fact that frames from the video are timed with frames of a subtitle stream in the video. This synchronization in method 600 between the video and the corresponding control commands in the video training program may enable the user to be immersed in training on the exercise machine, which may help the user avoid boredom and boredom that users of the exercise machine often experience. Further, the method 600 may result in a training performance in which the current difficulty level may be dynamically adjusted based on the monitored heart rate of the user 109. However, since the direction and speed of the heart rate trend of the user 109 is also continuously monitored, the method 600 may avoid video training programs from changing the current difficulty level too frequently and/or too significantly. Thus, the method 600 may result in increased enjoyment by the user 109, avoid inadvertent operation of the exercise machine (e.g., the treadmill 120a of fig. 1) at a difficulty level that is not optimal for the fitness level of the user 109, and maintain integrity between the training of the trainer 108a shown in frames 500 a-500 d from the video and the actual training performed by the user 109, thus increasing the ability of the user 109 to be more immersive in the training on the treadmill 120a, which may help the user avoid boredom and boredom often experienced by the user of the exercise machine.

Although the acts of method 600 are illustrated in fig. 6A and 6B as discrete acts, the acts may be divided into additional acts, combined into fewer acts, reordered, expanded, or removed depending on the desired implementation. For example, in some implementations, acts 604 through 616 may be performed without performing other acts of method 600. Further, in some implementations, acts 618-630 or 632 may be performed without performing other acts of method 600.

FIG. 7 illustrates an example computer system 700 that may be employed when controlling an exercise machine using a video training program. In some embodiments, the computer system 700 may be part of any of the systems or devices described in this disclosure. For example, computer system 700 may be part of any of video cameras 106 a-106 b, computer devices 114, remote server 112, local server 116, exercise machines 120 a-120 d, consoles 122 a-122 d, or tablet 124 of fig. 1.

Computer system 700 may include a processor 702, a memory 704, a file system 706, a communication unit 708, an operating system 710, a user interface 712, and applications 714, all of which may be communicatively coupled. In some embodiments, the computer system may be, for example, a desktop computer, a client computer, a server computer, a mobile phone, a laptop computer, a smartphone, a smartwatch, a tablet computer, a portable music player, an exercise machine console, a video camera, or any other computer system.

In general, the processor 702 may comprise any suitable special purpose or general-purpose computer, computing entity, or processing device comprising various computer hardware or software applications and may be configured to execute instructions stored on any suitable computer-readable storage medium. For example, the processor 702 may include a microprocessor, microcontroller, Digital Signal Processor (DSP), Application Specific Integrated Circuit (ASIC), Field Programmable Gate Array (FPGA), or any other digital or analog circuitry configured to interpret and/or execute program instructions and/or process data, or any combination thereof. In some implementations, the processor 702 may interpret and/or execute program instructions and/or process data stored in the memory 704 and/or the file system 706. In some implementations, the processor 702 can fetch program instructions from the file system 706 and load the program instructions into the memory 704. After loading the program instructions into the memory 704, the processor 702 may execute the program instructions. In some implementations, the instructions may include the processor 702 performing one or more acts of the method 600 of fig. 6A-6B.

The memory 704 and file system 706 may include computer-readable storage media having computer-executable instructions or data structures loaded or stored thereon. Such computer-readable storage media can be any available non-transitory media that can be accessed by a general purpose or special purpose computer, such as the processor 702. By way of example, and not limitation, such computer-readable storage media can comprise non-transitory computer-readable storage media including Read Only Memory (ROM), Electrically Erasable Programmable Read Only Memory (EEPROM), compact disc read only memory (CD-ROM) or other optical disk storage, magnetic disk storage or other magnetic storage devices, flash memory devices (e.g., solid state memory devices), or any other storage medium that can be used to carry or store desired program code in the form of computer-executable instructions or data structures and that can be accessed by a general purpose or special purpose computer. Combinations of the above should also be included within the scope of computer-readable storage media. The computer-executable instructions may include, for example, instructions and data configured to cause the processor 702 to perform a particular operation or set of operations (e.g., one or more acts of the method 600 of fig. 6A-6B). These computer-executable instructions may be included, for example, in operating system 710, in one or more applications, or in some combination thereof.

The communication unit 708 may include any component, device, system, or combination thereof configured to send or receive information over a network, such as the network 118 of fig. 1. In some implementations, the communication unit 708 may communicate with other devices at other locations or at the same location, or even with other components within the same system. For example, the communication unit 708 may include a modem, a network card (wireless or wired), an infrared communication device, a wireless communication device (e.g., an antenna), and/or a chipset (e.g., a bluetooth device, an 802.6 device (e.g., a Metropolitan Area Network (MAN)), a WiFi device, a WiMax device, a cellular communication device, etc.), among others. The communication unit 708 may allow for the exchange of data with a network and/or any other device or system such as those described in this disclosure.

The operating system 710 may be configured to manage the hardware and software resources of the computer system 700 and to provide common services for the computer system 700.

User interface 712 may include any device configured to allow a user to interface with computer system 700. For example, the user interface 712 may include a display, such as an LCD, LED, or other display, configured to present video, text, application user interfaces, and other data as directed by the processor 702. The user interface 712 may also include a mouse, touchpad, keyboard, touch screen, volume controls, other buttons, speaker, microphone, camera, any peripheral device, or other input or output device. The user interface 712 may receive input from a user and provide the input to the processor 702. Similarly, user interface 712 may present output to a user.

The application 714 may be one or more computer-readable instructions stored on one or more non-transitory computer-readable media (e.g., the memory 704 or the file system 706) that, when executed by the processor 702, are configured to perform one or more acts of the method 600 of fig. 6A-6B. In some implementations, the application 714 may be part of the operating system 710 or may be part of an application of the computer system 700, or may be some combination thereof.

INDUSTRIAL APPLICABILITY

Various modifications to the embodiments shown in the drawings will now be disclosed.

In general, some example methods disclosed herein may enable a live or pre-recorded video training program to be executed on an exercise machine that mimics training performed remotely from the exercise machine. For example, training may be performed by trainers at disparate remote locations anywhere in the world, and video of the training performed may be captured in a video training program. Then, after or in synchronization with the capture of the video, the subtitle stream of video may be encoded with exercise machine control commands that mimic training performed at a remote, off-site location to create a video training program. The video training program may then be transmitted to a local location of the exercise machine, a video of the video training program may be displayed to a user of the exercise machine, and control commands of the video training program may simultaneously be used to control the exercise machine to mimic training of a trainer at a disparate remote location depicted in the video to the user on the exercise machine. Because the frames from the video in the video are timed with the frames of the subtitle stream, the encoding of the training control commands in the subtitle stream maintains synchronization of the video and the corresponding training control commands in the video training program. This synchronization between the video and the corresponding control commands in the video training program may enable the user to be immersed in training on the exercise machine, which may help the user avoid boredom and boredom that users of the exercise machine often experience.

Further, in general, some example methods disclosed herein may enable live or pre-recorded video training programs on an exercise machine to be dynamically adjusted based on heart rate monitoring. For example, because of the likelihood that the user's fitness level may be higher or lower than the optimal fitness level for the training performed by the trainer in the video of the video training program, the user's actual heart rate may be continuously monitored during the performance of the training and the difficulty level of the video training program may be dynamically adjusted during the performance of the training to help the user maintain an appropriate heart rate interval during the training. By monitoring not only the current heart rate of the user, but also the direction and speed of the heart rate trend of the user, the method may avoid changing the current difficulty level too frequently. Further, in some embodiments, to avoid the current difficulty level experienced by the user being significantly different from the difficulty level seen by the user in the video, changes to the current difficulty level may be limited from significant changes. As a result of the current difficulty level not changing too frequently and/or too significantly, the enjoyment of the user may be increased, inadvertent operation of the exercise machine at a level that is not optimal for the fitness level of the user may be avoided, and integrity between the trainer's training shown in the video and the actual training performed by the user may be maintained, thus increasing the user's ability to be more immersive in the training on the exercise machine. Maintaining integrity between the trainer's training shown in the video and the actual training performed by the user may cause, for example, the trainer to run but the user to run at a faster or slower pace, but not to walk or run.

In the exercise systems disclosed herein, the video camera may be configured to transmit over a network a video training program to be executed at the exercise machine and to control the exercise machine directly or through any number of intermediate computer systems. For example, the remote server may be eliminated and the video training program may be sent directly from the computer over the network after the video of the video training program is encoded with exercise machine control commands. In another example, both the remote server and the computer device may be eliminated, and encoding of the subtitle stream for video with exercise machine control commands may occur at the video camera, resulting in the creation of a video training program that is sent directly from the video camera over a network. In another example, a subtitle stream of video may be encoded by a photographer or trainer using another device, such as a wearable device worn by the photographer or worn by the trainer, to create a video training program prior to transmission of the video training program over a network, and/or encoding of the subtitle stream may occur automatically based on data collected from sensors worn by the trainer, thus precluding production of a live video training program or a pre-recorded video training program by a producer. In this example, the trainer may be a professional athlete (e.g., an NBA player), and the sensor may be worn by the professional athlete during a professional sporting event (e.g., during an NBA post-season), and may encode the biometric data (e.g., heart rate data) of the professional athlete to allow a user at home to attempt to match their biometric data (e.g., heart rate) with the biometric data of the professional athlete. In another example, the local server may be eliminated and the video training program may be sent directly from the network to the console, or to a tablet computer, where the tablet computer functions as or in conjunction with the console.

Further, in another example, a video training program may be transmitted to two devices — one device for displaying video and the other device for controlling the exercise machine. In this example, a large television, Virtual Reality (VR) or Augmented Reality (AR) headset, or some other device with a display may be configured to display video of a video training program, while another device, such as a console, may be configured to simultaneously control the exercise machine using decoded exercise machine control commands from a subtitle stream of the video training program.

Further, in another example, the video camera may be configured to be operated by a trainer, thus eliminating the photographer.

Further, in another example, the video training program may be broadcast to a single machine, for example, in a one-to-one personalized training session between the trainer and the user, or may be broadcast to multiple machines simultaneously, and multiple users may execute pre-recorded video training programs or live video training programs simultaneously. This may be useful in a gym environment where multiple users are in a group session and wish to perform the same exercises together as a group. This simultaneous execution of a live video workout or a pre-recorded video workout may be performed on the same type of machine (e.g., all treadmills) or a different type of machine (e.g., some users on treadmills and some users on elliptical machines). Where the machines are of different types, the training may include two sets of control commands that are each associated with a single type of machine, or may include a single set of control commands that may be used by both types of machines as associated with each type of machine.

Moreover, although only a treadmill, elliptical machine, exercise bicycle, and rowing machine are shown in the exercise system disclosed herein, it should be understood that other types of exercise machines may be employed in the exercise system. For example, a rope weight jack or rope strength training machine (e.g., a NordicTrack Fusion CST machine), a step climbing machine, or any other type of exercise machine may be used.

Further, while some example heart rate intervals disclosed herein are associated with a particular heart rate range, it should be understood that the heart rate interval may be limited to a smaller heart rate range or a single heart rate. Thus, the term "interval" as used herein may include a single heart rate or a range of heart rates.

In the example frame, data, and CSV encoding disclosed herein, it should be understood that the data collected in the data graph is merely example data, and that other types of data may additionally or alternatively be collected during the capture of a video and/or during the creation of a video training program. For example, precipitation data, temperature data, smell data, wind data, lighting data, and other types of data may be collected during the capture of a video. This data may then be encoded with the exercise machine control commands or included in a sub-title stream, such as video, in CSV encoding to create a video training program. This data may then be automatically employed by the exercise machine once decoded or otherwise accessed in the video training program from the subtitle stream to further create an immersive experience for the user of the exercise machine. For example, precipitation data may be employed to operate a fog initiator, temperature data may be employed to operate a thermostat, odor data may be employed to operate an odor simulator, wind data may be employed to operate a fan, and/or lighting data may be employed to operate lighting, all of which are remote environments that attempt to mimic as much as possible the training depicted in the video of the video training program as the video training program is transmitted to the local location of the exercise machine. Other data may also be used, such as nutritional data for operating an intelligent food processor or food processor (e.g., an intelligent blender connected to an intelligent refrigerator for making a particular protein milkshake with a particular nutritional composition). In this manner, the user may be further immersed in the workout depicted in the video, which may help the user forget any discomfort experienced during the workout and combat boredom and boredom often experienced by users of exercise machines.

Further, while the training depicted in the frames disclosed herein is outdoor training, any training, whether indoor or outdoor, whether live or pre-recorded, and whether using or not using an exercise machine, may be depicted in the video of the video training program disclosed herein. For example, an exerciser may use an exercise machine at a remote location to guide a group lesson in a local gym's studio exercise (or multiple group lessons at multiple local gyms) with a user exercising on the same type of exercise machine as the exerciser. In this example, the video training program may be a live video training program or a pre-recorded video training program, and training may be performed inside a building (e.g., in a training studio) or outside the building. Further, although the training depicted in the frames disclosed herein is training by a trainer, anyone, whether professional or not, may perform the training. For example, if two friends want to experience training in a different territory location (e.g., zuno mumma), but only one friend has money to go to an adult, using the methods disclosed herein, the second friend can experience the same training on his treadmill at home as his friend experiences on his trip to the different territory location.

Further, although the CSV encoding disclosed herein includes nine (9) values, it should be understood that the CSV encoding may include more or less than nine (9) values. Further, value may be added as new control commands or other data become necessary to be sent to the exercise machine over time. Further, while a zero (0) value is used to specify N/a in the CSV encoding disclosed herein, any other value or no value at all may be used instead to specify N/a in the CSV encoding. Furthermore, although CSV encoding is disclosed herein as an example of how control commands and other data are encoded in a subtitle stream, any other type of encoding other than CSV encoding may be employed instead. For example, instead of the values separated by commas, values separated by some other separator may be employed. In addition, other encodings may be employed that do not employ delimiters.

Further, while the subtitle stream encoding disclosed herein includes encoding control commands typically used for exercise machines, it should be understood that these subtitle stream encodings may additionally or alternatively be used to encode control commands for other types of devices (e.g., televisions, smart appliances, automotive systems, environmental systems, etc.). For example, in the case of a sporting event broadcast over a television channel (e.g., NBC), such as an NFL football game, a subtitle stream depicting the broadcast marathon video may be encoded with control commands that: causing the sofa vibration system to rumble and/or throw the user up when a large obstruction occurs, causing the smart popcorn maker to prepare the popcorn for consumption at the end of each section or at the beginning of each advertising period, causing the scent device to emit a green grass or hot dog scent to mimic the scent in the NFL stadium depicted in the video, and causing the smart refrigerator to rewind the viewer of the coca-cola in response to the user sending back an indication of interest in the coca-cola advertisement in the video to the television channel (e.g., via a sensor that notices the user's interest, such as a camera or a biosensor, or via a manual indication of the user, such as a command to a smart speaker or an indication on a smart phone application or website of the television station). Thus, the subtitle stream encoding disclosed herein may be employed to control any device, e.g., to synchronize the automatic operation of the device with content depicted in the video.

Furthermore, it should be understood that the subtitle stream encoding disclosed herein may be protected to prevent malicious third parties from inserting malicious control commands into the subtitle stream encoding. For example, Amazon Web Services (AWS) may be employed to accept video training procedures only from a particular IP address. In this example, when the control command is embedded in the video of the video training program and then the resulting video training program is sent to the AWS from a particular IP address in the encrypted channel (where the AWS holds the key for the encrypted channel), this may prevent the AWS from accepting a malicious video training program from another IP address and/or with another encryption scheme.

Further, although the video training program is described herein as including video and control commands that may cause the exercise machine to mimic the training depicted in the video, it should be understood that an exercise machine employing any of the methods disclosed herein may be configured to allow a user to take control of the exercise machine during execution of the video training program. For example, if the workout depicted in the video of the video workout routine is too strenuous for the user, the user may choose to continue watching the video from the video workout routine but not have the control commands continue to control the exercise machine. Thus, control of the user's exercise machine through the control commands of the video training program may be overridden manually or automatically. In this example, the user may take control of the exercise machine by selecting any of the standard controls of the exercise machine (e.g., a manual speed control), and may then again allow the video training program to again control the exercise machine by selecting a "follow training" control or a "follow trainer" control or a "follow video" control. In a first variation of this example, a video training program executing on an exercise machine may continue to automatically strengthen and lighten the workout even if the user manually modifies the control of the workout in which the user changes the control in the direction the user is deemed to move according to the video training program (e.g., the user increases the speed when the video training program is going to increase the speed, or the user decreases the speed when the video training program is going to decrease the speed). In a second variation of this example, a video training program executing on the exercise machine may continue to automatically strengthen and lighten the training to follow the training depicted in the video, but may do so with the current difficulty level reset to the level set by the user. In a third variation of this example, control by a video training program executing on the exercise machine may be fully overridden, such that control of the exercise machine is fully transferred to the user without automatic adjustment of the training following the training depicted in the video. In this third variation, the heart rate training widget may be disabled as the control by the video training program is fully overridden. Furthermore, this third variation may be generated at any time during the video training procedure as follows: the user's current heart rate data becomes unavailable or unreliable for any reason, such as the user removing their heart rate monitoring device (or initially wearing the heart rate monitoring device from scratch), detecting that the heart rate monitoring device is worn by another user or animal (e.g., a pet dog) or paired with the wrong exercise machine, or the user's heart rate monitoring device otherwise no longer functioning properly for any other reason.

Thus, some example embodiments may produce personalized training that caters to the user's actual physiological response to the training, with hands-free adjustment of the training being performed on-the-fly. Further, some example embodiments enable training to adapt to current or recent conditions because various current or recent factors can affect the heart rate of the user, such as a current fitness level, a recent sleep (or lack of sleep), a current dehydration or moisture level, a recent caffeine intake, a current stress level, a current fatigue level, a current temperature or current humidity level, or some combination thereof. For example, while a user's fitness level may not change significantly on a daily basis, other factors in the user's life may change on a daily basis, and some embodiments may take into account these changes. For example, if the user feels stressed, sleepy, dehydrated, or tired, the user's heart rate may be faster than normal, and the user's training may automatically adjust to be easier. In contrast, if the user has full rest, sufficient moisture, and is feeling active, the user's heart rate may be slower than normal, and the training may automatically adjust to push the user harder. This may result in not just catering to the training of the user, but in more particular catering to the training of the user on a particular day of training taking into account the particular circumstances of the user.

Some example embodiments may be used in connection with various types of training, such as running, cycling, rowing, or other training machine training. Some example embodiments may avoid user overtraining by performing heart rate training more intelligently, and may naturally push users to progress as their fitness level gradually increases, thus ensuring that users increase training loads in an intelligent and meaningful way.

In some embodiments, adaptively adjusting the video training program by adjusting the current difficulty level may include adjusting multiple exercise machine parameters simultaneously. For example, in the case of a treadmill, the adaptation of the video training program may include adjusting the current difficulty level of both the speed of the tread belt and the percentage of incline of the tread plate simultaneously. By adjusting multiple exercise machine parameters simultaneously in this manner, the integrity of the original workout described in the video may be better maintained and a more personalized workout may be performed by the user. For example, in a video training program where the trainer is significantly less robust than the user, in which the trainer is walking in a particular heart rate interval, the only way for the user to enter the same heart rate interval or a higher heart rate interval while maintaining the integrity of the training where the user is walking rather than running may be to increase the slope percentage of the running board significantly above the slope percentage where the trainer is performing his training, rather than substantially or completely increasing the speed of the running belt. In this way, both the trainer and the user perform training by walking, but the significantly more robust user only performs training with a high percentage of incline as compared to a significantly less robust trainer. This may be due, at least in part, to the much greater loss of training integrity due to the difference between walking and running versus walking at a lower percentage of incline and walking at a higher percentage of incline. In other words, while the user may readily notice a loss of training integrity for the user running while the trainer is walking, the user may be less likely to notice a percentage of his incline that is higher than the trainer's incline percentage. The opposite example can also be implemented in a running video training program, where the user's running board's percentage of incline is adjusted below the percentage of incline at which the trainer performs his training (perhaps even to a negative percentage of incline), instead of substantially reducing or completely reducing the speed of the running belt, to compensate for a significantly less robust user. In this way, both the trainer and the user perform the training by running, but the significantly less robust user simply performs the training at a lower percentage of incline than the significantly more robust trainer.

In some embodiments, the adaptation of the video training program may include adjusting a current difficulty level of one or more exercise machine parameters and/or may include adjusting environmental factors that affect the difficulty of training. For example, adjustments to environmental factors may include operation of a mister, adjustments to a thermostat, operation of a scent simulator, operation of a fan, and/or adjustments to lighting. Adjustments to each of these environmental factors may increase or decrease the difficulty of video machine training and may be used in video machine training in conjunction with or in lieu of adjustments to the current difficulty level of one or more exercise machine parameters. Further, during the video training program, the user may be provided with personalized instructions that may affect the difficulty of training, such as instructions to replenish moisture, instructions to change a thermostat, instructions to operate a fan, or any other personalization or combination of personalization.

In some embodiments, adapting the video training program by adjusting the current difficulty level may include adjusting any exercise machine parameter related to the difficulty level using a formula for calculating a varying difficulty level for training. For example, formulas may be employed to calculate six difficulty levels that are easier than the baseline difficulty level and six to twelve difficulty levels that are harder than the baseline difficulty level. The training will be adjusted identically regardless of the exercise machine parameter limitations. If the exercise machine parameter exceeds the exercise machine parameter limit, the exercise machine parameter may be set at the maximum exercise machine parameter limit.

In some implementations, and in view of the likelihood (or likelihood) that the user will perform the video training program at a difficulty level different from the baseline difficulty level (e.g., different from the difficulty level of the trainer), the trainer depicted in the video of the video training program may give verbal instructions in the video that are more directional than the verbal instructions are specific. For example, the trainer may state that the training will now "increase incline", rather than that the training will now "increase incline up to 10% incline". Thus, the trainer may not call out a particular speed, inclination, or resistance, but may call out a more general Revolution Per Minute (RPM), Stroke Per Minute (SPM), or rate of perceived intensity of motion (RPE). The trainer may also make general statements in the video, such as "i choose the difficulty of the workout specifically for you" or "i will take the workout into account for the next workout in the series" to give the trainer credit for changing exercise machine control commands in the corresponding video training program. The trainer in the video may also give verbal instructions that convey the idea, for example, "you can control to make adjustments if needed because you know you better than anyone about you themselves," if you need to do easier training today, only a small adjustment is made and i will deal with the rest, "" if you want additional challenges today, then adjustments are made and i will deal with the rest, "" if you want to increase intensity, perhaps better increase intensity during the difficult part of the interval rather than during recovery, "or" if you feel uncomfortable running faster than a certain speed, then you set your maximum speed at will in the setting, and i will ensure that you will not go beyond this speed. In some embodiments, the live video exercise program may experience some natural lag between being recorded and broadcast and being received and executed to control the user's exercise machine. For example, the natural lag may be several seconds long. In some embodiments, artificial hysteresis may also be introduced into the live video training program. For example, an artificial lag of 10 seconds may be introduced into the live video training program to allow unexpected or unwanted video and/or audio to be deleted from the live video stream (e.g., deleting audible, unsightly speech uttered in the live event, or deleting portions of the video that show visible, unsightly behavior). In either example, although this natural lag and/or artificial lag may result in a delay between the live event or lesson depicted in the video and the user's experience, the user may still view the video so close in time to the actual event depicted that the user feels as if they are participating in the live event in real-time.

In some embodiments, the formulas for the various difficulty levels may be as follows, which correspond to a treadmill, an exercise bicycle, an elliptical machine, and a rowing machine.

For a treadmill (speed of running belt B):

B-1=if(B>1,B-0.7^(5.1-B)-(0.8*(B/8)),B)

B-2=if(B>1,B-0.7^(5.1-B)-(0.5*(B/8)),B)

B-3=if(B>1,B-0.7^(5.1-B),B)

B-4=if(B>1,B-0.7^(6-B),B)

B-5=if(B>1,B-0.7^(7-B),B)

B-6=if(B>1,B-0.7^(9-B),B)

B0=B

B1=if(B>1.4,0.7^(9-B)+B,B)

B2=if(B>1.4,0.7^(7-B)+B,B)

B3=if(B>1.4,0.7^(6-B)+B,B)

B4=if(B>1.4,0.7^(5-B)+B,B)

B5=if(B>1.4,0.7^(4.2-B)+B,B)

B6=if(B>1.4,0.7^(3.5-B)+B,B)

B7=if(B>4,0.7^(2.6-B)+B,if(B>1.4,0.7^(3.5-B)+B,B))

B8=if(B>4,0.7^(1.8-B)+B,if(B>1.4,0.7^(3.5-B)+B,B))

B9=if(B>4,0.7^(1.2-B)+B,if(B>1.4,0.7^(3.5-B)+B,B))

B10=if(B>4,0.7^(0.6-B)+B,if(B>1.4,0.7^(3.5-B)+B,B))

B11=if(B>4,0.7^(-B)+B,if(B>1.4,0.7^(3.5-B)+B,B))

B12=if(B>4,15,if(B>1.4,0.7^ (3.5-B) + B, B)) (note that B is12Is set to 15MPH instead of 12MPH to set for a treadmill with a maximum speed of 15MPH instead of 12MPH)

Examples of the inventionReference speed B07.0MPH, and the device maximum speed is 12 MPH:

B-6=4.3MPH

B-5=4.6MPH

B-4=5.0MPH

B-3=5.6MPH

B-2=6.0MPH

B-1=6.5MPH

B0=7.0MPH

B1=7.5MPH

B2=8MPH

B3=8.4MPH

B4=9MPH

B5=9.7MPH

B6=10.5MPH

B7=11.8MPH

B812MPH (note that the last five levels are set to the highest speed of the device 12MPH)

B9=12MPH

B10=12MPH

B11=12MPH

B12=12MPH

For treadmill (gradient percentage of running belt C)

C-6=if(B<4,(C>0,C-0.65*C,C),C)

C-5=if(B<4,(C>0,C-0.55*C,C),C)

C-4=if(B<4,(C>0,C-0.45*C,C),C)

C-3=if(B<4,(C>0,C-0.35*C,C),C)

C-2=if(B<4,(C>0,C-0.25*C,C),C)

C-1=if(B<4,(C>0,C-0.15*C,C),C)

C0=C

C1=if(B<4,(C>0,0.2*(40-C)/40*C+C,C),C)

C2=if(B<4,(C>0,0.4*(40-C)/40*C+C,C),C)

C3=if(B<4,(C>0,0.6*(40-C)/40*C+C,C),C)

C4=if(B<4,(C>0,0.8*(40-C)/40*C+C,C),C)

C5=if(B<4,(C>0,(40-C)/40*C+C,C),C)

C6=if(B<4,(C>0,1.2*(40-C)/40*C+C,C),C)

Example, where the reference slope percentage is C09% and each slope percentage is rounded to the nearest 0.5%):

C-6=3%

C-5=4%

C-4=5%

C-3=6%

C-2=7%

C-1=7.5%

C0=9%

C1=10.5%

C2=12%

C3=13%

C4=14.5%

C5=16%

C6=17.5%

for exercise bicycles, elliptical machines or rowing machines (resistance R on pedals, handles and/or rowing bars):

R-6=if(if(R-6<1,1,R-6)>24,24,if(R-6<1,1,R-6))

R-5=if(if(R-5<1,1,R-5)>24,24,if(R-5<1,1,R-5))

R-4=if(if(R-4<1,1,R-4)>24,24,if(R-4<1,1,R-4))

R-3=if(if(R-3<1,1,R-3)>24,24,if(R-3<1,1,R-3))

R-2=if(if(R-2<1,1,R-2)>24,24,if(R-2<1,1,R-2))

R-1=if(if(R-1<1,1,R-1)>24,24,if(R-1<1,1,R-1))

R0=R

R1=if(if(R+1<1,1,R+1)>24,24,if R+1<1,1,R+1))

R2=if(if(R+2<1,1,R+2)>24,24,if(R+2<1,1,R+2))

R3=if(if(R+3<1,1,R+3)>24,24,if(R+3<1,1,R+3))

R4=if(if(R+5<1,1,R+5)>24,24,if(R+5<1,1,R+5))

R5=if(if(R+5<1,1,R+5)>24,24,if(R+5<1,1,R+5))

R6=if(if(R+6<1,1,R+6)>24,24,if(R+6<1,1,R+6))

reference resistance on the pedal is R0Example 9:

R-6=3

R-5=4

R-4=5

R-3=6

R-2=7

R-1=8

R0=9

R1=10

R2=11

R3=12

R4=13

R5=14

R6=15

in some embodiments, a starting difficulty level different from the baseline difficulty level may be determined for the user prior to starting the video training procedure. For example, after a user has completed at least a threshold number or at least a threshold duration of exercises (e.g., 3 exercises of duration greater than 5 minutes), data from these exercises and possibly one or more other earlier exercises may be analyzed (e.g., the last 7 completed exercises having a duration of more than 5 minutes, which may be about the last two weeks of exercises for some users, may be analyzed). Abnormal value data can be excluded (in particularIs a low outlier rather than a high outlier because the user does not tend to be over-capacity, but tends to be under-capacity, and the average data of the training (e.g., average VO) can be determined2Average watts, average heart rate, or average heart rate recovery rate, or some combination thereof) and may use the closest difficulty rating as the starting difficulty rating based on the average. In this manner, adjustments to the difficulty level at the beginning of the video training program may be minimized. In other words, based on user history and behavior, some embodiments may intelligently determine what level is best suited for the user, and over time some embodiments become more intelligent and more knowledgeable about the user. The adjusted difficulty rating may be stored and marked for further use after being calculated. For example, a training-based average VO may be based on the following formula2Storing and marking adjusted difficulty ratings:

(C1+C2+C3+C4+C5+C6+C7)/M/*200/(T1+T2+T3+T4+T5+T6+T7)=AVO2

wherein:

mass (kg)

AVO2Average relative VO2(ml/kg/sec)

Caloric burn (kcal)

C1Calorie burn as recently trained

C2Caloric burn as second most recently trained

C3Third most recently trained calorie burn

Etc. of

Time/training duration (seconds)

T1Training duration of recent training

T2Training duration of the second most recent training

T3Training duration of the third most recent training

Etc. of

In one example, if the user has a mass of 68kg, the VO2At 0.453ml/kg/sec, the formula may result in 0.453 × 68 ═ 30.8AVO2AVO of2

In some embodiments, the average VO of the training is calculated2It may be possible to calculate the overall level at which training is programmed. For example, in the context of treadmill training, this may allow a fundamental distinction between walking training as a whole and running training. This may allow for different fitness levels with associated intervals. For example, the instantaneous VO of each control set may be calculated according to the following formula corresponding to a treadmill, exercise bicycle, elliptical machine, and rowing machine2

For a treadmill:

If S<1.8m/s

(.1*S)+(1.8*S*G)+.058333=VO2(ml/kg/sec)Else if S≥1.8m/s

(.2*S)+(.9*S*G)+.058333=VO2(ml/kg/sec) wherein:

speed (m/S)

G percent slope or inclination (m/m)

Then, the average VO can be calculated according to the following formula2

∑(IVO2*T)/∑(T)=AVO2(ml/kg/sec)

Wherein:

t ═ the time (sec) spent at that pace and grade or incline

VO2Instant oxygen consumption (ml/kg/sec)

AVO2Training oxygen consumption (ml/kg/sec)

For exercise bicycles:

VO2=(10.8*W/84)/60+0.11666667

wherein:

w power (watt)

VO2Instant oxygen consumption (ml/kg/sec)

Conversion from minute to second 60 ═

11666667 restVO2(Add to Activity V02)

84 weight default

For an elliptical machine:

VO2=1.15*(10.8*W/84)/60+0.11666667

wherein:

w power (watt)

VO2Instant oxygen consumption (ml/kg/sec)

1.15 efficiency correction

Conversion from minute to second 60 ═

11666667-rest VO2(Add to Activity V02)

84 weight default

For a rowing machine:

W=(((RR/100)+(1-(RR/100))*0.25)*S*1.75)*5

VO2=(0.20833*W+6.92)/84

wherein:

w power (watt)

VO2Instant oxygen consumption (ml/kg/sec)

1.75 meters (5' 9 ") ═ default user height

84kg (185lbs.) default user weight

Other formulas may then be employed to calculate different heart rate interval values for the user. This can be done by passing the instantaneous VO2The values are broken down into simple categories with a maximum and a minimum. A heart rate interval may be calculated for each control set. VO can be trained through the whole body2(AVO2) Two different sets of heart rate interval values are determined. For example, the first training may be divided by the average VO2And an interval may be allocated for each control set according to the following formula corresponding to a treadmill, an exercise bicycle, an elliptical machine, and a rowing machine:

for a treadmill:

If AVO2<0.35ml/kg/sec

for each control set, through INSTANTANTANNAEOUS VO2(instantaneous VO)2) Zone (interval) was thus calculated:

if instantaneous VO2<0.1, Zone 0/- - - (not in real world interval)

0.1≥VO2<0.2,Zone=1

0.2≥VO2<0.3,Zone=2

0.3≥VO2<0.55,Zone=3

0.55≥VO2<0.65,Zone=4

0.65≥VO2,Zone=5

If AVO2≥0.35ml/kg/sec

Zone is thus calculated:

if instantaneous VO2<0.15, Zone 0/- - - (not in real Zone)

0.15≥VO2<0.35,Zone=1

0.35≥VO2<0.6,Zone=2

0.6≥VO2<0.7,Zone=3

0.7≥VO2<0.85,Zone=4

0.85≥VO2,Zone=5

For exercise bicycles:

for each control set, through INSTANTANTANNAEOUS VO2Zone is thus calculated:

if instantaneous VO2<0.2, Zone 0/- - - (not in real Zone)

0.2≥VO2<0.35,Zone=1

0.35≥VO2<0.45,Zone=2

0.45≥VO2<0.6,Zone=3

0.6≥VO2<0.7,Zone=4

0.7≥VO2,Zone=5

For an elliptical machine:

for each control set, through INSTANTANTANNAEOUS VO2Zone is thus calculated:

if instantaneous VO2<0.2, Zone 0/- - - (not in real Zone)

0.2≥VO2<0.3,Zone=1

0.3≥VO2<0.4,Zone=2

0.4≥VO2<0.5,Zone=3

0.5≥VO2<0.6,Zone=4

0.6≥VO2,Zone=5

For a rowing machine:

for each control set, through INSTANTANTANNAEOUS VO2Zone is thus calculated:

if instantaneous VO2<0.2, Zone 0/- - - (not in real Zone)

0.2≥VO2<0.35,Zone=1

0.35≥VO2<0.45,Zone=2

0.45≥VO2<0.6,Zone=3

0.6≥VO2<0.7,Zone=4

0.7≥VO2,Zone=5

In some embodiments, these region calculations may be used to estimate initial intervals for the user, and these initial estimated regions may then be reviewed and fine-tuned by a fitness professional. Furthermore, in some embodiments, other interval calculations may be employed in addition to those listed above.

Next, a section may be allocated to the cross-training section. For example, training with cross-training may have calorie multiplier metadata for portions of training with cross-training. For these fractions, VO can be calculated accordingly2. In these cases, the following calculation may be employed:

1. computing VOs for intervals using metadata2

2. Make the VO2Multiplied by the calorie multiplier (just between the set time codes).

3. The product is used to allocate intervals.

Next, interval smoothing may be added according to the following formula:

If Z0=Z2 AND D<20AND|VO2z0-VO2z|<0.1,Z=Z0

If Z0=Z2AND D is not less than 20, Z is Z (unchanged)

If Z0≠Z2,Z is Z (unchanged)

If|VO2z0-VO2z|>0.1, Z ═ Z (unchanged)

Wherein:

Z0prior interval

Z2Subsequent interval

Duration of interval

Next, a corrective zone measure may be added according to the following formula:

AZ=if(Z0-Z>1,1,0)+Z

if the interval of the previous control set is more than one interval larger than the current calculation interval, 1 is added to the interval.

If not, a calculation interval is used.

Wherein:

AZ-adjusting interval

Z-current interval

PZ is a braided section

PZ0Previously compiled interval

t is the number of seconds after the change of the programming interval

t0Time of interval change

t55 seconds after interval change

T is the number of seconds into training

In some embodiments, in the context of a video training program configured to be executed on a treadmill, exercise bike, elliptical machine, or rowing machine, the following interval evaluation may be performed to determine if the user is in the correct interval and to determine if an interval change is required. This can be achieved according to the following formula:

PZ-AZ=0

without movement

PZ-AZ>0

Possibility of increasing difficulty level

PZ-AZ<0

Possibility of reducing difficulty level

Wherein:

PZ is a section (part of control set)

AZ-actual interval (based on actual user HR)

Continuing with the example context of a video training program configured to be executed on a treadmill, exercise bike, elliptical machine, or rowing machine, there may be at least two different situations in which the difficulty level would need to be adjusted for a user. The first case is when the user drifts out of the correct interval. The second case is where the training itself changes the interval. Each of these two cases will now be discussed.

Turning to the first case where the user drifts out of the correct interval, this may be applied if the user experiences an interval change and is caused to reach the correct interval, but is no longer in the correct interval at a later time. If the user never reaches the correct interval, or is only within less than a threshold period of time (e.g., 5 seconds or 10 seconds), then the second case criterion may apply instead of the first case criterion. The first case may occur due to overcorrection of the heart rate interval, or due to heart rate drift, which is a phenomenon in which the heart rate of the user will steadily rise with their fatigue even under the same workload. In this first case, the following set of criteria corresponding to a treadmill, exercise bicycle, elliptical machine and rowing machine may be employed:

for a treadmill:

standard set 1:

if the duration of the programming interval is more than 25 seconds

If the user is continuously in the correct interval for > 5 seconds

If > 10 seconds remain in the compilation interval

If the user is not in the correct interval

Then action 1 is taken: if they leave the correct interval, the level is immediately increased or decreased. (allowing a Down event only for the first 180 seconds of training and 180 seconds after a pause event)

Standard set 2:

if T > 180

If < 10 seconds remain in the programming interval

If the user is continuously in the correct interval for > 5 seconds

If the user is not in the correct interval

Then action 2 is taken: evaluated again after the interval change. (do nothing)

Standard set 3:

if T > 180

If the duration of the programming interval is less than 25 seconds

If the user is continuously in the correct interval for > 5 seconds

If the user is not in the correct interval

Then action 3 is taken: evaluated again after the interval change (do nothing)

Standard set 4:

if T > 180

If the user is continuously in the correct interval < 5 seconds

If the user is not in the correct interval

Then action 4 is taken: following an interval change protocol

Standard set 5:

if T > 180

If the user is in the correct interval

If at txAnd tx+100 < Δ HR < 4BPM

If at tx+10And tx+200 < Δ HR < 4BPM

The user is still in the correct interval

Then action 5 is taken: immediate downregulation

Standard set 6:

if T > 180

If the user is in the correct interval

If at txAnd tx+10Δ HR < -4BPM

If at tx+10And tx+20Δ HR < -4BPM

The user is still in the correct interval

Then action 6 is taken: immediately up-regulates

For exercise bicycles or elliptical machines (RPM) or rowing machines (SPM):

standard set 1:

if the duration of the programming interval is more than 25 seconds

If the user is continuously in the correct interval for > 5 seconds

If > 10 seconds remain in the compilation interval

If the user is no longer in the correct interval

If the user Revolutions Per Minute (RPM) is less than 15RPM less than the programmed RPM/the user Strokes Per Minute (SPM) is less than 5SPM less than the programmed SPM

Then action 1 is taken: if they leave the correct interval, the level is immediately increased or decreased (events are allowed to be adjusted down only for the first 180 seconds of training and 180 seconds after the pause event)

Standard set 2:

if the duration of the programming interval is more than 25 seconds

If the user is continuously in the correct interval for > 5 seconds

If > 10 seconds remain in the compilation interval

If the user is no longer in the correct interval

If the user RPM is less than the prescribed RPM by more than 15 RPM/the user SPM is less than the prescribed SPM by more than 5SPM

Then action 1 is taken: send message to raise RPM/SPM and evaluate again after interval change (do nothing)

Standard set 3:

if T > 180

If < 10 seconds remain in the programming interval

If the user is continuously in the correct interval for > 5 seconds

If the user is no longer in the correct interval

Then action 2 is taken: evaluated again after the interval change (do nothing)

Standard set 4:

if T > 180

If the duration of the programming interval is less than 25 seconds

If the user is continuously in the correct interval for > 5 seconds

If the user is no longer in the correct interval

Then action 3 is taken: evaluated again after the interval change (do nothing)

Standard set 5:

if T > 180

If the user is continuously in the correct interval < 5 seconds

If the user is no longer in the correct interval

Then action 4 is taken: following a new inter-zone protocol

Turning now to the second case where the training itself changes intervals, this case can be applied whenever the video training program transitions from one interval to another during training. In some embodiments, the initial period of time after changing to a new zone (e.g., from t) may be removed0To t5The first five seconds, or from t0To t10The first ten seconds) of the user's heart rate to allow the user's heart rate to react to a corresponding change in difficulty level. The peak heart rate will typically be seen in the first few seconds of the recovery period (e.g., the first five or 10 seconds) and therefore, to avoid this peak heart rate affecting the change in difficulty level of the exercise, it may be advantageous to remove the first few seconds. Thus, where the first five or ten seconds are removed and the evaluation period is ten seconds, no adjustment change may occur for at least fifteen or twenty seconds after the interval change and/or adjustment event. In some embodiments, the first fifteen seconds after an up event or interval increase may be eliminated. In some embodiments, the slope of the user's heart rate may be evaluated every 10 seconds, and then the appropriateness of adjusting the difficulty level may be evaluated up to every 20 seconds. In this second case, the following set of criteria corresponding to treadmills, exercise bikes, elliptical machines and rowing machines may be employed:

for a treadmill:

standard set 1:

if T > 180

If PZ-PZ0=1

If the duration of the programming interval is more than 25 seconds

If at txAnd tx+100 < Δ HR < 4BPM (at t)5、t15Beginning of office)

If HR is below the target interval

If > 5 seconds remain in the compilation interval

If the user is not already in the correct interval (and not in the correct interval for at least 5 seconds) (their HR is still too low)

Then action 1 is taken: increase grade immediately

Standard set 2:

if PZ-PZ0=-1

If the duration of the programming interval is more than 25 seconds

If at txAnd tx+10Between-4 < Δ HR < -2BPM (at t)5、t15Beginning of office)

If HR is above the target interval

If > 5 seconds remain in the compilation interval

If the user is not already in the correct interval (and not in the correct interval for at least 5 seconds) (their HR is still too high)

Then action 2 is taken: immediately downgrade

Standard set 3:

if PZ-PZ0=-1

If the duration of the programming interval is more than 25 seconds

If at txAnd tx+10Between-2 < Δ HR < 0BPM (at t)5、t15Beginning of office)

If HR is above the target interval

If > 5 seconds remain in the compilation interval

If the user is not already in the correct interval (and not in the correct interval for at least 5 seconds) (their HR is still too high)

Then action 3 is taken: lowering two stages immediately

Standard set 4:

if T > 180

If PZ-PZ0≥2

If the duration of the programming interval is more than 25 seconds

If HR is below the target interval

If at txAnd tx+100 < Δ HR < 5BPM (at t)5、t15Beginning of office)

If > 5 seconds remain in the compilation interval

If the user is not already in the correct interval (and not in the correct interval for at least 5 seconds) (their HR is still too low)

Then action 4 is taken: increase grade immediately

Standard set 5:

if PZ-PZ0≤-2

If the duration of the programming interval is more than 25 seconds

If at txAnd tx+10Between-5 and delta HR (at t) and between-3 BPM5、t15Beginning of office)

If HR is above the target interval

If > 5 seconds remain in the compilation interval

If the user is not already in the correct interval (and not in the correct interval for at least 5 seconds) (their HR is still too high)

Then action 5 is taken: immediately downgrade

Standard set 6:

if PZ-PZ0≤-2

If the duration of the weaving interval is more than or equal to 25 seconds

If at txAnd tx+10Between-3 < Δ HR ≦ 0BPM (at t)5、t15Beginning of office)

If HR is above the target interval

If > 5 seconds remain in the compilation interval

If the user is not already in the correct interval (and not in the correct interval for at least 5 seconds) (their HR is still too high)

Then action 6 is taken: immediately lower by 2 steps

Standard set 7:

if the duration of the programming interval is more than 25 seconds

If > 5 seconds remain in the compilation interval

If the user is not in the correct interval

Then action 7 is taken: evaluated again after the interval change (do nothing)

Standard set 8:

if T > 180

If PZ-PZ0=1

If the duration of the programming interval is more than 25 seconds

If at txAnd tx+10Between delta HR is more than or equal to 4BPM

If HR is below the target interval

If > 5 seconds remain in the compilation interval

If the user is not in the correct interval (their HR is still too low)

Then action 8 is taken: keep evaluating the delta HR for changes (do nothing)

Standard set 9:

if T > 180

If PZ-PZ0=1

If the duration of the programming interval is more than 25 seconds

If HR is above the target interval

If > 5 seconds remain in the compilation interval

If the user is not in the correct interval (their HR is still too low)

Then action 9 is taken: immediate downregulation training

Standard set 10:

if T > 180

If PZ-PZ0=-1

If the duration of the programming interval is more than 25 seconds

If at txAnd tx+10Between delta HR is less than or equal to-4 BPM

If HR is above the target interval

If > 5 seconds remain in the compilation interval

If the user is not in the correct interval (their HR is still too high)

Then action 10 is taken: keep evaluating the delta HR for changes (do nothing)

Standard set 11:

if T > 180

If PZ-PZ0=-1

If the duration of the programming interval is more than 25 seconds

If HR is below the target interval

If > 5 seconds remain in the compilation interval

If the user is not in the correct interval (their HR is still too low)

Then action 11 is taken: immediate reinforcement training

Standard set 12:

if T > 180

If PZ-PZ0≥2

If the duration of the programming interval is more than 25 seconds

If at txAnd tx+10Between delta HR is more than or equal to 5BPM

If HR is below the target interval

If > 5 seconds remain in the compilation interval

If the user is not in the correct interval (their HR is still too low)

Then action 12 is taken: keep evaluating the delta HR for changes (do nothing)

Standard set 13:

if T > 180

If PZ-PZ0≥2

If the duration of the programming interval is more than 25 seconds

If HR is above the target interval

If > 5 seconds remain in the compilation interval

If the user is not in the correct interval (their HR is still too high)

Then action 13 is taken: immediate relief training

Standard set 14:

if T > 180

If PZ-PZ0≤-2

If the duration of the programming interval is more than 25 seconds

If at txAnd tx+10Between delta HR is less than or equal to-5 BPM

If > 5 seconds remain in the compilation interval

If the user is not in the correct interval (their HR is still too high)

Then action 14 is taken: keep evaluating the delta HR of the undulations to see if changes are needed

Standard set 15:

if T > 180

If PZ-PZ0≤-2

If the duration of the programming interval is more than 25 seconds

If HR is below the target interval

If > 5 seconds remain in the compilation interval

If the user is not in the correct interval (their HR is still too low)

Then action 15 is taken: immediate up-regulation training

Standard set 16:

if the user is in the correct interval

Then action 16 is taken: do nothing

Standard set 17:

if T is less than or equal to 180

Then action 17 is taken: the logic of the down regulation event is followed. If an up event is triggered, it is ignored.

For exercise bicycles or elliptical machines (RPM) or rowing machines (SPM):

standard set 1:

if T > 180

If PZ-PZ0=1

If the duration of the programming interval is more than 25 seconds

If at txAnd tx+100 < Δ HR < 4BPM (at t)5、t15Beginning of office)

If > 5 seconds remain in the compilation interval

If the user is not already in the correct interval (and not in the correct interval for at least 5 seconds) (their HR is still too low)

If the user RPM is less than 15RPM less than the programmed RPM/SPM less than 4SPM less than the programmed SPM (which may be higher)

Then action 1 is taken: increase grade immediately

Standard set 2:

if T > 180

If PZ-PZ0=1

If the duration of the programming interval is more than 25 seconds

If at txAnd tx+100 < Δ HR < 4BPM (at t)5、t15Beginning of office)

If > 5 seconds remain in the compilation interval

If the user is not already in the correct interval (and not in the correct interval for at least 5 seconds) (their HR is still too low)

If the user RPM is less than the prescribed RPM by more than 15 RPM/the user SPM is less than the prescribed SPM by more than 4SPM

Then action 2 is taken: evaluated again after the interval change (do nothing)

Standard set 3:

if PZ-PZ0=-1

If the duration of the programming interval is more than 25 seconds

If at txAnd tx+10In between-4 < Δ HR < 0BPM (at t)5、t15Beginning of office)

If > 5 seconds remain in the compilation interval

If the user is not already in the correct interval (and not in the correct interval for at least 5 seconds) (their HR is still too high)

Then action 3 is taken: immediately downgrade

Standard set 4:

if T > 180

If PZ-PZ0≥2

If the duration of the programming interval is more than 25 seconds

If at txAnd tx+100 < delta HR < 5BPM (at t)5、t15Beginning of office)

If > 5 seconds remain in the compilation interval

If the user is not already in the correct interval (and not in the correct interval for at least 5 seconds) (their HR is still too low)

If the user RPM is less than 15RPM less than the programmed RPM/SPM less than 5SPM less than the programmed SPM

Then action 4 is taken: increase grade immediately

Standard set 5:

if T > 180

If PZ-PZ0≥2

If the duration of the programming interval is more than 25 seconds

If at txAnd tx+100 < Δ HR < 5BPM (at t)5、t15Beginning of office)

If > 5 seconds remain in the compilation interval

If the user is not already in the correct interval (and not in the correct interval for at least 5 seconds) (their HR is still too low)

If the user RPM is less than the prescribed RPM by more than 15 RPM/the user SPM is less than the prescribed SPM by more than 4SPM

Then action 5 is taken: evaluated again after the interval change (do nothing)

Standard set 6:

if PZ-PZ0≤-2

If the duration of the programming interval is more than 25 seconds

If at txAnd tx+10Between-5 < Δ HR < 0BPM (at t)5、t15Beginning of office)

If > 5 seconds remain in the compilation interval

If the user is not already in the correct interval (and not in the correct interval for at least 5 seconds) (their HR is still too high)

Then action 6 is taken: immediately downgrade

Standard set 7:

if the duration of the programming interval is less than 25 seconds

If > 5 seconds remain in the compilation interval

If the user is not in the correct interval

Then action 7 is taken: evaluated again after the interval change (do nothing)

Standard set 8:

if T > 180

If PZ-PZ0=1

If the duration of the programming interval is more than 25 seconds

If t isxAnd tx+10Between | Δ HR | ≧ 4BPM

If > 5 seconds remain in the compilation interval

If the user is not in the correct interval (their HR is still too low)

Then action 8 is taken: keep evaluating the delta HR for changes (do nothing)

Standard set 9:

if T > 180

If PZ-PZ0=-1

If the duration of the programming interval is more than 25 seconds

If t isxAnd tx+10Between delta HR is less than or equal to-4 BPM

If > 5 seconds remain in the compilation interval

If the user is not in the correct interval (their HR is still too high)

Then action 9 is taken: keep evaluating the delta HR for changes (do nothing)

Standard set 10:

if T > 180

If PZ-PZ0≥2

If the duration of the programming interval is more than 25 seconds

If t isxAnd tx+10Between delta HR is more than or equal to 5BPM

If > 5 seconds remain in the compilation interval

If the user is not in the correct interval (their HR is still too low)

Then action 10 is taken: keep evaluating the delta HR of the undulations to see if changes are needed

Standard set 11:

if T > 180

If PZ-PZ0≤-2

If the duration of the programming interval is more than 25 seconds

If t isxAnd tx+10Between | < delta HR | < 5BPM

If > 5 seconds remain in the compilation interval

If the user is not in the correct interval (their HR is still too high)

Then action 11 is taken: keep evaluating the delta HR of the undulations to see if changes are needed

Standard set 12:

if the user is in the correct interval

Then action 12 is taken: do nothing.

Standard set 13:

if T is less than or equal to 180

Taking action 13: the logic of the down regulation event is followed. If an up event is triggered, it is ignored.

In some implementations, the aforementioned criteria may follow various criteria with respect to starting a new video training program and/or pausing a video training program. These criteria may include the following:

1. the training is not up-regulated for the first 180 seconds to allow the user's heart rate to increase by himself. The adjustment may exceed the target in the first 180 seconds.

2. Training is not up-regulated within 180 seconds after the pause event to account for the possibility that the user may have their heart rate reduced by resuming when they pause training.

3. The down turn event is allowed to occur within the first 180 seconds of training to account for a warm-up that is too challenging for the user.

4. The downregulating event is allowed to occur within 180 seconds after the suspension event.

5. No up-regulation occurs within 60 seconds after the cross-training portion. The cross-training portion may have metadata with a calorie multiplier for the portion.

6. No adjustment is made during the cross-training portion. The cross-training portion may have metadata with a calorie multiplier for the portion.

7. After the dynamic adjustment based on heart rate monitoring has been switched back on by the user (after the smart adjustment has been previously switched off by the user, in some cases by the user override settings), no up-regulation is performed for 60 seconds (for a treadmill) or 30 seconds (for a exercise bike, elliptical machine, or rowing machine).

8. No adjustment when the last up-regulation event was before < 25 seconds.

9. No adjustment when the last downregulation event was before < 20 seconds.

10. No adjustment was made when the programming interval was increased before < 25 seconds.

11. No adjustment was made when the programming interval was reduced before < 20 seconds.

12. If < 5 seconds remain in the interval and the user is in the interval and not previously in the interval, then no adjustment is made.

13. If < 10 seconds remain in the interval and the user was previously in the interval (but no longer in the interval), then no adjustment is made.

14. If PZ < 25 seconds, no adjustment is made.

15. If the user presses follow-up training before < 60 seconds and HR is below PZ, no adjustment is made.

16. If the cross-training ends before < 60 seconds and the HR is below PZ, no adjustment is made.

17. If the training is cycling or elliptical and the RPM value is not valid, then no adjustment is made.

18. If the training is rowing and the SPM values are not valid, no adjustment is made.

19. If the HR data is not valid, no adjustment is made.

20. When the grades are the same (for example, when the speed is 1mph or the speed is +6 to +12 walking), the adjustment is not carried out.

21. When the plant limit is reached and HR is below PZ, no up-regulation occurs.

22. If the user is at a level that maximizes the regulator and HR is below PZ, no regulation is performed.

23. If each data point in the past 10 seconds of the array is the same value, then no adjustment is made.

24. If the user has changed the control within the past 60 seconds, no adjustment is made.

25. When a user jumps off the tread belt of the treadmill and onto the side rail of the treadmill (e.g., to prevent a runaway (runaway) treadmill), without adjustment, the user jumping off the tread belt of the treadmill and onto the side rail of the treadmill may be detected in a number of ways, including but not limited to:

standard set 1:

if the most recent interval change is not an interval reduction

If there has not been a down-regulation event within the past 30 seconds

If delta HR is less than or equal to-4 bpm

Then action 1 is performed: not sending any up-regulation event, suspending training, and resuming reduced level 2 training

Standard set 2:

if the most recent interval change is an interval reduction

If the interval reduction is at least 120 seconds ago

If there is no down-regulation event within 30 seconds

If delta HR is less than or equal to-4 bpm

Then action 2 is performed: not sending any up-regulation event, suspending training, and resuming training at the previous level

Standard set 3:

if there is a down-regulation event within 30 seconds, or

If there is a decrease in the interval within 120 seconds (and no other change thereafter), or

If the HR drop rate does not exceed 4BPM per 10 seconds

Then action 3 is performed: do nothing

In some embodiments, to avoid dynamic adjustments based on potentially invalid heart rate data, outliers in the heart rate data may be excluded. For example, the following steps may be followed to exclude outlier heart rate data:

step 1: is the value not extraordinary?

If HR > 250, then exclude

If HR < 40, then exclude

If 40 < HR < 250, it is used as part of the data set in step 2

Note that: the null value is considered 0 and automatically excluded from the dataset.

Step 2: is the value an outlier based on other data points around it?

Using the residual value, take the median of the previous 10 seconds (or an array of 10 seconds of data concurrently transferred)

If HR-M > 20, then exclude.

And step 3: if values of ≦ 2 are excluded, they are ignored when Δ for adjustment events are to be found, or if values of > 2 are excluded, no adjustment event is triggered, since it can be assumed that the data is bad.

Wherein:

HR ═ instantaneous HR value

M-median of 10 second data set

In one example following the following steps for excluding outliers in the heart rate data, using ten heart rate values of {123,123,146,125,122,122,121,121,121,120} and M ═ 122, the following results may be obtained:

HR1120, |120 | -122| -2, including

HR2121, |121 | -, 122| -, 1, including

HR3122, |122 | ═ 0, including

HR4123, |123 | -122| ═ 1, including

HR5146, |146 | -122| -24, excluding

In accordance with common practice, the various features shown in the drawings may not be drawn to scale. The illustrations presented in this disclosure are not meant to be actual views of any particular apparatus (e.g., device, system, etc.) or method, but are merely example representations used to describe various embodiments of the present disclosure. Accordingly, the dimensions of the various features may be arbitrarily expanded or reduced for clarity. In addition, some of the drawings may be simplified for clarity. Accordingly, the drawings may not depict all of the components of a given apparatus (e.g., device) or all of the operations of a particular method.

The terms used in the text, particularly in the appended claims (e.g., bodies of the appended claims), are generally intended as "open" terms (e.g., the term "including" should be interpreted as "including but not limited to"), the term "having" should be interpreted as "having at least," the term "includes" should be interpreted as "includes but is not limited to," etc.).

Further, if a specific number of an introduced claim recitation is intended, such an intent will be explicitly recited in the claim, and in the absence of such recitation no such intent is present. For example, as an aid to understanding, the following appended claims may contain usage of the introductory phrases "at least one" and "one or more" to introduce claim recitations. However, even when the same claim includes the introductory phrases "one or more" or "at least one" and indefinite articles such as "a" or "an", the use of such phrases should not be construed to imply that: the introduction of a claim recitation by the indefinite article "a" or "an" limits any particular claim containing such introduced claim recitation to embodiments containing only one such recitation (e.g., "a" and/or "an" should be interpreted to mean "at least one" or "one or more"); the same holds true for the use of definite articles used to introduce claim recitations.

In addition, even if a specific number of an introduced claim recitation is explicitly recited, such recitation should be interpreted to mean at least the recited number (e.g., the bare recitation of "two recitations," without other modifiers, means at least two recitations, or two or more recitations). Further, where a convention analogous to "at least one of A, B and C, etc." or "one or more of A, B and C, etc." is used, in general such a construction is intended to encompass a alone, B alone, C, A and B together, a and C together, B and C together, or A, B and C together, etc. For example, use of the term "and/or" is intended to be interpreted in this manner.

Furthermore, any disjunctive word or phrase presenting two or more alternative terms, whether in the summary, the detailed description, the claims, or the drawings, should be understood to consider the possibility of including one of the terms, any one of the terms, or all of the terms. For example, the phrase "a or B" should be understood to include the possibility of "a" or "B" or "a and B".

In addition, the use of the terms first, second, third, etc. herein are not necessarily intended to imply a particular order or number of elements. In general, the terms "first," "second," "third," and the like are used as general identifiers to distinguish between different elements. Where it is not indicated that the terms "first", "second", "third", etc. imply a particular order, these terms should not be taken to imply a particular order. Moreover, where the terms "first," "second," "third," etc. do not imply a particular number of elements, these terms should not be taken to imply a particular number of elements. For example, a first widget may be described as having a first face and a second widget may be described as having a second face. The use of the term "second face" with respect to the second widget may be used to distinguish such face of the second widget from the "first face" of the first widget without implying that the second widget has two faces.

The foregoing description, for purpose of explanation, has been described with reference to specific embodiments. However, the illustrative discussions above are not intended to be exhaustive or to limit the claimed invention to the precise forms disclosed. Many modifications and variations are possible in light of the above teaching. The embodiments were chosen and described to illustrate practical applications to enable others skilled in the art to utilize the claimed invention and various embodiments with various modifications as may be suited to the particular use contemplated.

64页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:用于手提便携式交通工具的轮子的轮胎

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!